




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第16章數(shù)據(jù)庫(kù)設(shè)計(jì)16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述16.2需求分析16.3概念結(jié)構(gòu)設(shè)計(jì)16.4邏輯結(jié)構(gòu)設(shè)計(jì)16.5物理結(jié)構(gòu)設(shè)計(jì)16.6數(shù)據(jù)庫(kù)實(shí)施16.7數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)216.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述1.數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)和方法1)數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)(1)綜合性數(shù)據(jù)庫(kù)設(shè)計(jì)涉及面廣,較為復(fù)雜,它包含計(jì)算機(jī)專業(yè)知識(shí)及業(yè)務(wù)系統(tǒng)專業(yè)知識(shí),要解決技術(shù)及非技術(shù)兩方面的問(wèn)題;(2)結(jié)構(gòu)設(shè)計(jì)與行為設(shè)計(jì)相結(jié)合數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)在模式和外模式中定義,應(yīng)用系統(tǒng)的行為設(shè)計(jì)在存取數(shù)據(jù)庫(kù)的應(yīng)用程序中設(shè)計(jì)和實(shí)現(xiàn)。靜態(tài)結(jié)構(gòu)設(shè)計(jì)是指數(shù)據(jù)庫(kù)的模式框架設(shè)計(jì)(包括語(yǔ)義結(jié)構(gòu)(概念)、數(shù)據(jù)結(jié)構(gòu)(邏輯)、存儲(chǔ)結(jié)構(gòu)(物理)),動(dòng)態(tài)行為設(shè)計(jì)是指應(yīng)用程序設(shè)計(jì)(動(dòng)作操縱:功能組織、流程控制)。由于結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)是分離進(jìn)行的,程序和數(shù)據(jù)不易結(jié)合,我們必須強(qiáng)調(diào)數(shù)據(jù)庫(kù)設(shè)計(jì)和應(yīng)用系統(tǒng)設(shè)計(jì)的密切結(jié)合。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)32)數(shù)據(jù)庫(kù)設(shè)計(jì)的方法(1)新奧爾良(NewOrleans)設(shè)計(jì)方法新奧爾良方法是規(guī)范設(shè)計(jì)方法中比較著名的數(shù)據(jù)庫(kù)設(shè)計(jì)方法,該方法將數(shù)據(jù)庫(kù)設(shè)計(jì)分成4個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。經(jīng)過(guò)很多人的改進(jìn),將數(shù)據(jù)庫(kù)設(shè)計(jì)分為6個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施和數(shù)據(jù)庫(kù)運(yùn)行維護(hù)。(2)基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法在需求分析的基礎(chǔ)上,基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法設(shè)計(jì)數(shù)據(jù)庫(kù)的概念模型,是數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段廣泛采用的方法。(3)3NF設(shè)計(jì)方法3NF的設(shè)計(jì)方法以關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論為指導(dǎo)來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)的邏輯模型,是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí)在邏輯設(shè)計(jì)階段采用的一種有效方法。16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)4(4)對(duì)象定義語(yǔ)言(ObjectDefinitionLanguage,ODL)方法ODL方法是面向?qū)ο蟮臄?shù)據(jù)庫(kù)設(shè)計(jì)方法,該方法使用面向?qū)ο蟮母拍詈托g(shù)語(yǔ)來(lái)描述和完成數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì),通過(guò)統(tǒng)一建模語(yǔ)言(UML,UnifiedModelingLanguage)的類(lèi)圖表示數(shù)據(jù)對(duì)象的匯集及它們之間的聯(lián)系,其所得到的對(duì)象模型,既可用于設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù),也可用于設(shè)計(jì)面向?qū)ο髷?shù)據(jù)庫(kù)等。數(shù)據(jù)庫(kù)設(shè)計(jì)工具已經(jīng)實(shí)用化和商品化,例如SYSBASE公司的PowerDesigner、Oracle公司的Designer2000、Rational公司的RationalRose等。2.數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)開(kāi)發(fā)全過(guò)程,將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)階段:需求分析階段,概念結(jié)構(gòu)設(shè)計(jì)階段,邏輯結(jié)構(gòu)設(shè)計(jì)階段,物理結(jié)構(gòu)設(shè)計(jì)階段,數(shù)據(jù)庫(kù)實(shí)施階段,數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段,如圖16.1所示。16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)5(1)需求分析階段需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ),在數(shù)據(jù)庫(kù)設(shè)計(jì)中,首先需要準(zhǔn)確了解與分析用戶的需求,明確系統(tǒng)的目標(biāo)和實(shí)現(xiàn)的功能。(2)概念結(jié)構(gòu)設(shè)計(jì)階段概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,其任務(wù)是根據(jù)需求分析,形成一個(gè)獨(dú)立于具體數(shù)據(jù)庫(kù)管理系統(tǒng)的概念模型,即設(shè)計(jì)E-R模型。圖16.1數(shù)據(jù)庫(kù)設(shè)計(jì)步驟16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)6(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)具體的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的數(shù)據(jù)模型。(4)物理結(jié)構(gòu)設(shè)計(jì)階段物理結(jié)構(gòu)設(shè)計(jì)是為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)和存取方法等。(5)數(shù)據(jù)庫(kù)施現(xiàn)階段設(shè)計(jì)人員運(yùn)用數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的數(shù)據(jù)庫(kù)語(yǔ)言和宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù),編寫(xiě)和調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù)和試運(yùn)行。(6)數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)階段通過(guò)試運(yùn)行后即可投入正式運(yùn)行,在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,不斷地對(duì)其進(jìn)行評(píng)估、調(diào)整和修改。16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)7數(shù)據(jù)庫(kù)設(shè)計(jì)的不同階段形成的數(shù)據(jù)庫(kù)各級(jí)模式,如圖16.2所示。圖16.2數(shù)據(jù)庫(kù)各級(jí)模式16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)8在需求分析階段,設(shè)計(jì)的中心工作是綜合各個(gè)用戶的需求。在概念結(jié)構(gòu)設(shè)計(jì)階段,形成與計(jì)算機(jī)硬件無(wú)關(guān)的、獨(dú)立于各個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品的概念模式,即E-R圖。在邏輯結(jié)構(gòu)設(shè)計(jì)階段,將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫(kù)邏輯模式,然后,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計(jì)階段,根據(jù)數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫(kù)物理模式。16.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)916.2需求分析1.需求分析的任務(wù)需求分析階段的主要任務(wù)是對(duì)現(xiàn)實(shí)世界要處理的對(duì)象(公司,部門(mén),企業(yè))進(jìn)行詳細(xì)調(diào)查,在了解現(xiàn)行系統(tǒng)的概況、確定新系統(tǒng)功能的過(guò)程中,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理方法。需求分析是在用戶調(diào)查的基礎(chǔ)上,通過(guò)分析,逐步明確用戶對(duì)系統(tǒng)的需求,包括數(shù)據(jù)需求和圍繞這些數(shù)據(jù)的業(yè)務(wù)處理需求。用戶調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”。(1)信息需求定義未來(lái)數(shù)據(jù)庫(kù)系統(tǒng)用到的所有信息,明確用戶將向數(shù)據(jù)庫(kù)中輸入什么樣的數(shù)據(jù),從數(shù)據(jù)庫(kù)中要求獲得哪些內(nèi)容,將要輸出哪些信息,以及描述數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)10(2)處理需求定義了系統(tǒng)數(shù)據(jù)處理的操作功能,描述操作的優(yōu)先次序,包括操作的執(zhí)行頻率和場(chǎng)合,操作與數(shù)據(jù)間的聯(lián)系。處理需求還要明確用戶要完成哪些處理功能,每種處理的執(zhí)行頻度,用戶需求的響應(yīng)時(shí)間以及處理的方式,比如是聯(lián)機(jī)處理還是批處理等。(3)安全性與完整性要求描述了系統(tǒng)中不同用戶對(duì)數(shù)據(jù)庫(kù)的使用和操作情況,完整性要求描述了數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系以及數(shù)據(jù)的取值范圍要求。2.需求分析的方法1)數(shù)據(jù)流圖數(shù)據(jù)流圖用來(lái)描述系統(tǒng)的功能,表達(dá)了數(shù)據(jù)和處理的關(guān)系。數(shù)據(jù)流圖采用4個(gè)基本符號(hào):外部實(shí)體、數(shù)據(jù)流、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)。16.2需求分析數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)11(1)外部實(shí)體數(shù)據(jù)來(lái)源和數(shù)據(jù)輸出又稱為外部實(shí)體,表示系統(tǒng)數(shù)據(jù)的外部來(lái)源和去處,也可是另外一個(gè)系統(tǒng)。(2)數(shù)據(jù)流由數(shù)據(jù)組成,表示數(shù)據(jù)的流向,數(shù)據(jù)流都需要命名,數(shù)據(jù)流的名稱反映了數(shù)據(jù)流的含義。(3)數(shù)據(jù)處理指對(duì)數(shù)據(jù)的邏輯處理,也就是數(shù)據(jù)的變換。(4)數(shù)據(jù)存儲(chǔ)表示數(shù)據(jù)保存的地方,即數(shù)據(jù)存儲(chǔ)的邏輯描述。數(shù)據(jù)流圖如圖16.3所示。圖16.3數(shù)據(jù)流圖16.2需求分析數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)122)數(shù)據(jù)字典數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,對(duì)數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)等進(jìn)行詳細(xì)的描述,它包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、存儲(chǔ)、處理過(guò)程等。(1)數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是數(shù)據(jù)最小的組成單位,即不可再分的基本數(shù)據(jù)單位,記錄了數(shù)據(jù)對(duì)象的基本信息,描述了數(shù)據(jù)的靜態(tài)特性.數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說(shuō)明,別名,數(shù)據(jù)類(lèi)型,長(zhǎng)度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是若干數(shù)據(jù)項(xiàng)有意義的集合,由若干數(shù)據(jù)項(xiàng)組成,或由若干數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)組成。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}16.2需求分析數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)13(3)數(shù)據(jù)流數(shù)據(jù)流表示某一處理過(guò)程的輸入和輸出,表示了數(shù)據(jù)處理過(guò)程中的傳輸流向,是對(duì)數(shù)據(jù)動(dòng)態(tài)特性的描述,。數(shù)據(jù)流描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}(4)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是處理過(guò)程中存儲(chǔ)的數(shù)據(jù),它是在事務(wù)和處理過(guò)程中數(shù)據(jù)所停留和保存過(guò)的地方.數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào),流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度,存取方式}(5)處理過(guò)程在數(shù)據(jù)字典中,只需描述簡(jiǎn)要描述處理過(guò)程的信息。處理過(guò)程描述={處理過(guò)程名,說(shuō)明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡(jiǎn)要說(shuō)明}}16.2需求分析數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)1416.3概念結(jié)構(gòu)設(shè)計(jì)16.3.1概念結(jié)構(gòu)的特點(diǎn)和設(shè)計(jì)步驟1.概念結(jié)構(gòu)的特點(diǎn)(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界概念模型是現(xiàn)實(shí)世界的一個(gè)真實(shí)模型,能滿足用戶對(duì)數(shù)據(jù)的處理要求。(2)易于理解便于數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶交流,用戶的積極參與是數(shù)據(jù)庫(kù)設(shè)計(jì)成功的關(guān)鍵。(3)易于更改當(dāng)應(yīng)用環(huán)境和應(yīng)用要求發(fā)生改變時(shí),易于修改和擴(kuò)充概念模型(4)易于轉(zhuǎn)換為關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型。描述概念模型的有力工具是E-R模型,在第1章已經(jīng)介紹,本章在介紹概念結(jié)構(gòu)設(shè)計(jì)中也采用E-R模型。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)152.概念結(jié)構(gòu)設(shè)計(jì)的方法概念結(jié)構(gòu)設(shè)計(jì)的方法有4種。(1)自底向上首先定義局部應(yīng)用的概念結(jié)構(gòu),然后按一定的規(guī)則把它們集成起來(lái),得到全局概念模型。(2)自頂向下首先定義全局概念模型,然后再逐步細(xì)化。(3)由里向外首先定義最重要的核心概念結(jié)構(gòu),然后再逐步向外擴(kuò)展。(4)混合策略將自頂向下和自底向上結(jié)合起來(lái)使用。16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)163.概念結(jié)構(gòu)設(shè)計(jì)的步驟(1)根據(jù)需求分析劃分的局部應(yīng)用,設(shè)計(jì)局部E-R圖。(2)將局部E-R圖合并,冗余和可能的矛盾,得到系統(tǒng)的全局E-R圖,審核和驗(yàn)證全局E-R圖,完成概念模型的設(shè)計(jì)。概念結(jié)構(gòu)設(shè)計(jì)步驟如圖16.4所示。圖16.4概念結(jié)構(gòu)設(shè)計(jì)步驟16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)1716.3概念結(jié)構(gòu)設(shè)計(jì)16.3.2局部E-R模型設(shè)計(jì)使用系統(tǒng)需求分析階段得到的數(shù)據(jù)流程圖、數(shù)據(jù)字典和需求規(guī)格說(shuō)明,建立對(duì)應(yīng)于每一部門(mén)或應(yīng)用的局部E-R模型,關(guān)鍵問(wèn)題是如何確定實(shí)體(集)和實(shí)體屬性,即首先要確定系統(tǒng)中的每一個(gè)子系統(tǒng)包含哪些實(shí)體和屬性。設(shè)計(jì)局部E-R模型時(shí),最大的困難在于實(shí)體和屬性的正確劃分,其基本劃分原則如下:(1)屬性應(yīng)是系統(tǒng)中最小的信息單位。(2)若屬性具有多個(gè)值時(shí),應(yīng)該升級(jí)為實(shí)體?!纠?6.1】設(shè)有學(xué)生、課程、教師、學(xué)院實(shí)體如下:學(xué)生:學(xué)號(hào)、姓名、性別、出生日期、專業(yè)、總學(xué)分、選修課程號(hào)課程:課程號(hào)、課程名、學(xué)分、開(kāi)課學(xué)院、任課教師號(hào)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)18教師:教師號(hào)、姓名、性別、出生日期、職稱、學(xué)院名、講授課程號(hào)學(xué)院:學(xué)院號(hào)、學(xué)院名、電話、教師號(hào)、教師名上述實(shí)體中存在如下聯(lián)系:(1)一個(gè)學(xué)生可選修多門(mén)課程,一門(mén)課程可為多個(gè)學(xué)生選修。(2)一個(gè)教師可講授多門(mén)課程,一門(mén)課程可為多個(gè)教師講授。(3)一個(gè)學(xué)院可有多個(gè)教師,一個(gè)教師只能屬于一個(gè)學(xué)院。(4)一個(gè)學(xué)院可擁有多個(gè)學(xué)生,一個(gè)學(xué)生只屬于一個(gè)學(xué)院。(5)假設(shè)學(xué)生只能選修本學(xué)院的課程,教師只能為本學(xué)院的學(xué)生講課。要求分別設(shè)計(jì)學(xué)生選課和教師任課兩個(gè)局部信息的結(jié)構(gòu)E-R圖。16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)19圖16.5學(xué)生選課局部E-R圖解:從各實(shí)體屬性看到,學(xué)生實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與教師實(shí)體關(guān)聯(lián),一個(gè)學(xué)院可以開(kāi)設(shè)多門(mén)課程,學(xué)院實(shí)體與課程實(shí)體之間是1:m關(guān)系,學(xué)生選課局部E-R圖如圖16.5所示。16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)20教師實(shí)體與學(xué)院實(shí)體和課程實(shí)體關(guān)聯(lián),不直接與學(xué)生實(shí)體關(guān)聯(lián),教師任課局部E-R圖如圖16.6所示。圖16.6教師講課局部E-R圖16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)2116.3.3全局E-R模型設(shè)計(jì)綜合各部門(mén)或應(yīng)用的局部E-R模型,就可以得到系統(tǒng)的全局E-R模型。綜合局部E-R模型的方法有兩種:(1)多個(gè)局部E-R圖逐步綜合,一次綜合兩個(gè)E-R圖。(2)多個(gè)局部E-R圖一次綜合。第一種方法,由于一次只綜合兩個(gè)E-R圖,難度降低,較易使用。在上述兩種方法中,每次綜合可分為以下兩個(gè)步驟:(1)進(jìn)行合并,解決各局部E-R圖之間的沖突問(wèn)題,生成初步E-R圖。(2)修改和重組,消除冗余,生成基本E-R圖。1)合并局部E-R圖,消除沖突由于各個(gè)局部應(yīng)用不同,通常由不同的設(shè)計(jì)人員去設(shè)計(jì)局部E-R圖,因此,各局部E-R圖之間往往會(huì)有很多不一致,被稱為沖突,沖突的類(lèi)型有:16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)22(1)屬性沖突屬性域沖突:屬性取值的類(lèi)型、取值范圍或取值集合不同。例如年齡可用出生年月和整數(shù)表示。●屬性取值單位沖突:例如重量,可用公斤、克、斤為單位。(2)結(jié)構(gòu)沖突●同一事物,不同的抽象:例如職工,在一個(gè)應(yīng)用中為實(shí)體,而在另一個(gè)應(yīng)用中為屬性?!裢粚?shí)體在不同應(yīng)用中的屬性組成不同。●同一聯(lián)系在不同應(yīng)用中類(lèi)型不同。(3)命名沖突命名沖突包括實(shí)體名、屬性名、聯(lián)系名之間的沖突●同名異議:不同意義的事物具有相同的名稱?!癞惷x:不同意義的事物具有相同的名稱。16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)23屬性沖突和命名沖突可通過(guò)協(xié)商來(lái)解決,結(jié)構(gòu)沖突在認(rèn)真分析后通過(guò)技術(shù)手段解決。【例16.2】將例16.1設(shè)計(jì)完成的兩個(gè)局部E-R圖合并成一個(gè)初步的全局E-R圖。解:將圖16.5中的’’教師號(hào)’’屬性轉(zhuǎn)換為’’教師”實(shí)體,將兩個(gè)局部E-R圖中的”選修課程號(hào)”和”講授課程號(hào)”統(tǒng)一為”課程號(hào)”,并將”課程”實(shí)體的屬性統(tǒng)一為”課程號(hào)”和”課程名”,初步的全局E-R圖如圖16.7所示。圖16.7初步的全局E-R圖16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)242)消除冗余在初步的E-R圖中,可能存在冗余的數(shù)據(jù)或冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系也可由由其他的聯(lián)系導(dǎo)出。冗余的存在容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)的維護(hù)增加困難,應(yīng)該消除?!纠?6.3】消除冗余,對(duì)例16.7的初步的全局E-R圖進(jìn)行改進(jìn)。解:在圖16.7中,”屬于”和”開(kāi)課”是冗余聯(lián)系,它們可以通過(guò)其他聯(lián)系導(dǎo)出,消除冗余聯(lián)系后得到改進(jìn)的全局E-R圖,如圖16.8所示。16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)25圖16.8改進(jìn)的全局E-R圖16.3概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)2616.4邏輯結(jié)構(gòu)設(shè)計(jì)16.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的步驟以關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)為例,邏輯結(jié)構(gòu)設(shè)計(jì)步驟如圖16.9所示。圖16.9邏輯結(jié)構(gòu)設(shè)計(jì)步驟(1)將用E-R圖表示的概念結(jié)構(gòu)轉(zhuǎn)換為關(guān)系模型。(2)優(yōu)化模型。(3)設(shè)計(jì)適合DBMS的關(guān)系模式。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)2716.4.2E-R模型向關(guān)系模型的轉(zhuǎn)換由E-R圖向關(guān)系模型轉(zhuǎn)換有以下兩個(gè)規(guī)則:1)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2)實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式有以下不同的情況(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端所對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼都是該關(guān)系的候選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端所對(duì)應(yīng)的關(guān)系模式合并。16.4邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)28如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為n端實(shí)體的碼。如果與n端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入1端實(shí)體的碼和聯(lián)系本身的屬性。(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(5)具有相同碼的關(guān)系模式可以合并。16.4邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)29圖16.101:1聯(lián)系的E-R圖示例方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱,地址)校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱)任職(學(xué)校編號(hào),校長(zhǎng)編號(hào))方案2:聯(lián)系合并到”學(xué)?!标P(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱,地址,校長(zhǎng)編號(hào))校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱)16.4邏輯結(jié)構(gòu)設(shè)計(jì)【例16.4】1:1聯(lián)系的E-R圖如圖16.10所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)30方案3:聯(lián)系合并到”校長(zhǎng)”關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號(hào),名稱,地址)校長(zhǎng)(校長(zhǎng)編號(hào),姓名,職稱,學(xué)校編號(hào))在1:1聯(lián)系中,一般不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,這是由于關(guān)系模式個(gè)數(shù)多,相應(yīng)的表也越多,查詢時(shí)會(huì)降低查詢效率?!纠?6.5】1:n聯(lián)系的E-R圖如圖16.11所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖16.111:n聯(lián)系的E-R圖示例16.4邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)31方案1:聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:班級(jí)(班級(jí)編號(hào),教室號(hào),人數(shù))學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專業(yè),總學(xué)分)屬于(學(xué)號(hào),班級(jí)編號(hào))方案2:聯(lián)系合并到n端實(shí)體對(duì)應(yīng)的關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:班級(jí)(班級(jí)編號(hào),教室號(hào),人數(shù))學(xué)生(學(xué)號(hào),姓名,性別,出生日期,班級(jí)編號(hào))同樣原因,在1:n聯(lián)系中,一般也不將聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。
16.4邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)32圖16.12m:n聯(lián)系的E-R圖示例對(duì)于m:n聯(lián)系,必須轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,專業(yè),總學(xué)分)課程(課程號(hào),課程名,學(xué)分,教師號(hào))選課(學(xué)號(hào),課程號(hào),成績(jī))16.4邏輯結(jié)構(gòu)設(shè)計(jì)【例16.6】m:n聯(lián)系的E-R圖如圖16.12所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)33三個(gè)實(shí)體聯(lián)系聯(lián)系,一般也轉(zhuǎn)換為獨(dú)立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:供應(yīng)商(供應(yīng)商號(hào),供應(yīng)商名,地址)項(xiàng)目(零件號(hào),零件名,重量)零件(項(xiàng)目編號(hào),項(xiàng)目名稱,開(kāi)工日期)供應(yīng)(供應(yīng)商號(hào),零件號(hào),項(xiàng)目編號(hào),零件數(shù))圖16.13三個(gè)實(shí)體聯(lián)系的E-R圖示例16.4邏輯結(jié)構(gòu)設(shè)計(jì)【例16.7】三個(gè)實(shí)體聯(lián)系的E-R圖如圖16.13所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)34【例16.8】將圖16.8所示的改進(jìn)的全局E-R圖轉(zhuǎn)換為關(guān)系模式。將”學(xué)生”實(shí)體、”課程”實(shí)體、”教師”實(shí)體、”學(xué)院”實(shí)體分別設(shè)計(jì)成一個(gè)關(guān)系模式,將”擁有”聯(lián)系(1:n聯(lián)系)合并到”學(xué)生”實(shí)體(n端實(shí)體)對(duì)應(yīng)的關(guān)系模式中,將”選課”聯(lián)系和”講課”(m:n聯(lián)系)轉(zhuǎn)換為獨(dú)立的關(guān)系模式。學(xué)生(學(xué)號(hào),姓名,性別,年齡,專業(yè),總學(xué)分,學(xué)院號(hào))課程(課程號(hào),課程名,學(xué)分)教師(教師號(hào),姓名,性別,出生日期、職稱、學(xué)院名)學(xué)院(學(xué)院號(hào),學(xué)院名,電話)選課(學(xué)號(hào),課程號(hào),成績(jī))講課(教師號(hào),課程號(hào),上課地點(diǎn))16.4邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)3516.5物理結(jié)構(gòu)設(shè)計(jì)1.物理結(jié)構(gòu)設(shè)計(jì)的內(nèi)容和方法數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì)主要包括的內(nèi)容為:確定數(shù)據(jù)的存取方法和確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。(1)確定數(shù)據(jù)的存取方法存取方法是快速存取數(shù)據(jù)庫(kù)中數(shù)據(jù)的技術(shù),具體采用的方法由數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)數(shù)據(jù)的存儲(chǔ)方式?jīng)Q定,一般用戶不能干預(yù)。一般用戶可以通過(guò)建立索引的方法來(lái)加快數(shù)據(jù)的查詢效率。建立索引的一般原則為:
●
在經(jīng)常作為查詢條件的屬性上建立索引。
●
在經(jīng)常作為連接條件的屬性上建立索引。
●
在經(jīng)常作為分組依據(jù)列的屬性上建立索引。
●
對(duì)經(jīng)常進(jìn)行連接操作的表可以建立索引。數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)36一個(gè)表可以建立多個(gè)索引,但只能建立一個(gè)聚簇索引。(2)確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一般的存儲(chǔ)方式有順序存儲(chǔ)、散列存儲(chǔ)和聚簇存儲(chǔ)?!?/p>
順序存儲(chǔ):該存儲(chǔ)方式平均查找次數(shù)為表中記錄數(shù)的二分之一。●
散列存儲(chǔ):其平均查找次數(shù)由散列算法確定。●
聚簇存儲(chǔ):為了提高某個(gè)屬性或?qū)傩越M的查詢速度,把這個(gè)屬性或?qū)傩越M上具有相同值的元組集中存放在連續(xù)的物理塊上的處理稱為聚簇,這個(gè)屬性或?qū)傩越M稱為聚簇碼,通過(guò)聚簇可以極大提高按聚簇碼進(jìn)行查詢的速度。一般情況下系統(tǒng)都會(huì)為數(shù)據(jù)選擇一種最合適的存儲(chǔ)方式。2.物理結(jié)構(gòu)設(shè)計(jì)的評(píng)價(jià)16.5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)37在物理設(shè)計(jì)過(guò)程中,需要對(duì)時(shí)間效率、空間效率、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,從而產(chǎn)生多種設(shè)計(jì)方案,數(shù)據(jù)庫(kù)設(shè)計(jì)人員應(yīng)對(duì)這些方案進(jìn)行詳細(xì)地評(píng)價(jià),從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。評(píng)價(jià)物理結(jié)構(gòu)設(shè)計(jì)的方法完全依賴于具體的數(shù)據(jù)庫(kù)管理系統(tǒng),主要考慮的是操作開(kāi)銷(xiāo),即為使用戶獲得及時(shí)、準(zhǔn)確的數(shù)據(jù)所需的開(kāi)銷(xiāo)和計(jì)算機(jī)的資源的開(kāi)銷(xiāo)。具體可分為如下幾類(lèi):●
查詢和響應(yīng)時(shí)間●
更新事務(wù)的開(kāi)銷(xiāo)●
生成報(bào)告的開(kāi)銷(xiāo)●
主存儲(chǔ)空間的開(kāi)銷(xiāo)●
輔助存儲(chǔ)空間的開(kāi)銷(xiāo)16.5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)原理與應(yīng)用(基于MySQL)3816.6數(shù)據(jù)庫(kù)實(shí)施1.建立數(shù)據(jù)庫(kù)的結(jié)構(gòu)使用給定的數(shù)據(jù)庫(kù)管理系統(tǒng)提供的命令,建立數(shù)據(jù)庫(kù)的模式、子模式和內(nèi)模式,對(duì)于關(guān)系數(shù)據(jù)庫(kù),即是創(chuàng)建數(shù)據(jù)庫(kù)和建立數(shù)據(jù)庫(kù)中的表、視圖、索引。2.加載數(shù)據(jù)和應(yīng)用程序的調(diào)試數(shù)據(jù)庫(kù)實(shí)施階段有兩項(xiàng)重要工作:一是加載數(shù)據(jù),一是應(yīng)用程序的編碼和調(diào)試。數(shù)據(jù)庫(kù)系統(tǒng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 用戶體驗(yàn)驅(qū)動(dòng)資源開(kāi)發(fā)-深度研究
- 無(wú)線通信能耗優(yōu)化-深度研究
- 移動(dòng)支付技術(shù)對(duì)金融安全的影響-深度研究
- 能源碳排放監(jiān)測(cè)技術(shù)-深度研究
- 2025年許昌貨運(yùn)從業(yè)資格證繼續(xù)教育考試題
- 企業(yè)修理罩棚合同范本
- 關(guān)于登高作合同范本
- 化肥農(nóng)藥合同范例
- 關(guān)于短期借款合同范本
- 個(gè)人貸款擔(dān)保合同范本
- 三好學(xué)生競(jìng)選12
- 2024年河南鄭州二七區(qū)侯寨中心衛(wèi)生院招聘筆試真題
- 中國(guó)糖尿病防治指南+2024+解讀
- 崗位職責(zé)心得體會(huì)(2篇)
- 2025年上海寶冶集團(tuán)限公司招聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 機(jī)械設(shè)計(jì)基礎(chǔ) 課件 01機(jī)械設(shè)計(jì)概論
- GB/T 6822-2024船體防污防銹漆體系
- 全國(guó)第三屆職業(yè)技能大賽(智能網(wǎng)聯(lián)汽車(chē)裝調(diào)運(yùn)維)選拔賽理論考試題庫(kù)(含答案)
- 電信網(wǎng)絡(luò)詐騙犯罪的特征、治理困境及對(duì)策建議
- 救護(hù)車(chē)掛靠私立醫(yī)院協(xié)議書(shū)(2篇)
- 《血透患教》課件
評(píng)論
0/150
提交評(píng)論