![《數(shù)據(jù)庫原理與應(yīng)用》課件1第4章 數(shù)據(jù)庫設(shè)計_第1頁](http://file4.renrendoc.com/view/b048cb63ca67effe14bd2ce7a239adf8/b048cb63ca67effe14bd2ce7a239adf81.gif)
![《數(shù)據(jù)庫原理與應(yīng)用》課件1第4章 數(shù)據(jù)庫設(shè)計_第2頁](http://file4.renrendoc.com/view/b048cb63ca67effe14bd2ce7a239adf8/b048cb63ca67effe14bd2ce7a239adf82.gif)
![《數(shù)據(jù)庫原理與應(yīng)用》課件1第4章 數(shù)據(jù)庫設(shè)計_第3頁](http://file4.renrendoc.com/view/b048cb63ca67effe14bd2ce7a239adf8/b048cb63ca67effe14bd2ce7a239adf83.gif)
![《數(shù)據(jù)庫原理與應(yīng)用》課件1第4章 數(shù)據(jù)庫設(shè)計_第4頁](http://file4.renrendoc.com/view/b048cb63ca67effe14bd2ce7a239adf8/b048cb63ca67effe14bd2ce7a239adf84.gif)
![《數(shù)據(jù)庫原理與應(yīng)用》課件1第4章 數(shù)據(jù)庫設(shè)計_第5頁](http://file4.renrendoc.com/view/b048cb63ca67effe14bd2ce7a239adf8/b048cb63ca67effe14bd2ce7a239adf85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)14.1數(shù)據(jù)庫設(shè)計概述1.數(shù)據(jù)庫設(shè)計的特點和方法1)數(shù)據(jù)庫設(shè)計的特點(1)綜合性數(shù)據(jù)庫設(shè)計涉及面廣,較為復(fù)雜,它包含計算機專業(yè)知識及業(yè)務(wù)系統(tǒng)專業(yè)知識,要解決技術(shù)及非技術(shù)兩方面的問題;(2)結(jié)構(gòu)設(shè)計與行為設(shè)計相結(jié)合數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計在模式和外模式中定義,應(yīng)用系統(tǒng)的行為設(shè)計在存取數(shù)據(jù)庫的應(yīng)用程序中設(shè)計和實現(xiàn)。靜態(tài)結(jié)構(gòu)設(shè)計是指數(shù)據(jù)庫的模式框架設(shè)計(包括語義結(jié)構(gòu)(概念)、數(shù)據(jù)結(jié)構(gòu)(邏輯)、存儲結(jié)構(gòu)(物理)),動態(tài)行為設(shè)計是指應(yīng)用程序設(shè)計(動作操縱:功能組織、流程控制)。由于結(jié)構(gòu)設(shè)計和行為設(shè)計是分離進行的,程序和數(shù)據(jù)不易結(jié)合,我們必須強調(diào)數(shù)據(jù)庫設(shè)計和應(yīng)用系統(tǒng)設(shè)計的密切結(jié)合。數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)22)數(shù)據(jù)庫設(shè)計的方法(1)新奧爾良(NewOrleans)設(shè)計方法新奧爾良方法是規(guī)范設(shè)計方法中比較著名的數(shù)據(jù)庫設(shè)計方法,該方法將數(shù)據(jù)庫設(shè)計分成4個階段:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。經(jīng)過很多人的改進,將數(shù)據(jù)庫設(shè)計分為6個階段:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施和數(shù)據(jù)庫運行維護。(2)基于E-R模型的數(shù)據(jù)庫設(shè)計方法在需求分析的基礎(chǔ)上,基于E-R模型的數(shù)據(jù)庫設(shè)計方法設(shè)計數(shù)據(jù)庫的概念模型,是數(shù)據(jù)庫概念設(shè)計階段廣泛采用的方法。(3)3NF設(shè)計方法3NF的設(shè)計方法以關(guān)系數(shù)據(jù)庫設(shè)計理論為指導(dǎo)來設(shè)計數(shù)據(jù)庫的邏輯模型,是設(shè)計關(guān)系數(shù)據(jù)庫時在邏輯設(shè)計階段采用的一種有效方法。4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)3(4)對象定義語言(ObjectDefinitionLanguage,ODL)方法ODL方法是面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法,該方法使用面向?qū)ο蟮母拍詈托g(shù)語來描述和完成數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計,通過統(tǒng)一建模語言(UML,UnifiedModelingLanguage)的類圖表示數(shù)據(jù)對象的匯集及它們之間的聯(lián)系,其所得到的對象模型,既可用于設(shè)計關(guān)系數(shù)據(jù)庫,也可用于設(shè)計面向?qū)ο髷?shù)據(jù)庫等。數(shù)據(jù)庫設(shè)計工具已經(jīng)實用化和商品化,例如SYSBASE公司的PowerDesigner、Oracle公司的Designer2000、Rational公司的RationalRose等。2.數(shù)據(jù)庫設(shè)計的基本步驟按照規(guī)范設(shè)計的方法,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計分為以下6個階段:需求分析階段,概念結(jié)構(gòu)設(shè)計階段,邏輯結(jié)構(gòu)設(shè)計階段,物理結(jié)構(gòu)設(shè)計階段,數(shù)據(jù)庫實施階段,數(shù)據(jù)庫運行和維護階段,如圖4.1所示。4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)4(1)需求分析階段需求分析是整個數(shù)據(jù)庫設(shè)計的基礎(chǔ),在數(shù)據(jù)庫設(shè)計中,首先需要準(zhǔn)確了解與分析用戶的需求,明確系統(tǒng)的目標(biāo)和實現(xiàn)的功能。(2)概念結(jié)構(gòu)設(shè)計階段概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,其任務(wù)是根據(jù)需求分析,形成一個獨立于具體數(shù)據(jù)庫管理系統(tǒng)的概念模型,即設(shè)計E-R模型。圖4.1數(shù)據(jù)庫設(shè)計步驟4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)5(3)邏輯結(jié)構(gòu)設(shè)計階段邏輯結(jié)構(gòu)設(shè)計是將概念結(jié)構(gòu)轉(zhuǎn)換為某個具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。(4)物理結(jié)構(gòu)設(shè)計階段物理結(jié)構(gòu)設(shè)計是為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括存儲結(jié)構(gòu)和存取方法等。(5)數(shù)據(jù)庫施現(xiàn)階段設(shè)計人員運用數(shù)據(jù)庫管理系統(tǒng)所提供的數(shù)據(jù)庫語言和宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編寫和調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫和試運行。(6)數(shù)據(jù)庫運行與維護階段通過試運行后即可投入正式運行,在數(shù)據(jù)庫運行過程中,不斷地對其進行評估、調(diào)整和修改。4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)6數(shù)據(jù)庫設(shè)計的不同階段形成的數(shù)據(jù)庫各級模式,如圖4.2所示。圖4.2數(shù)據(jù)庫各級模式4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)7在需求分析階段,設(shè)計的中心工作是綜合各個用戶的需求。在概念結(jié)構(gòu)設(shè)計階段,形成與計算機硬件無關(guān)的、獨立于各個數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品的概念模式,即E-R圖。在邏輯結(jié)構(gòu)設(shè)計階段,將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品支持的數(shù)據(jù)模型,形成數(shù)據(jù)庫邏輯模式,然后,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式。在物理結(jié)構(gòu)設(shè)計階段,根據(jù)數(shù)據(jù)庫管理系統(tǒng)的特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫物理模式。4.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)84.2需求分析1.需求分析的任務(wù)需求分析階段的主要任務(wù)是對現(xiàn)實世界要處理的對象(公司,部門,企業(yè))進行詳細(xì)調(diào)查,在了解現(xiàn)行系統(tǒng)的概況、確定新系統(tǒng)功能的過程中,收集支持系統(tǒng)目標(biāo)的基礎(chǔ)數(shù)據(jù)及其處理方法。需求分析是在用戶調(diào)查的基礎(chǔ)上,通過分析,逐步明確用戶對系統(tǒng)的需求,包括數(shù)據(jù)需求和圍繞這些數(shù)據(jù)的業(yè)務(wù)處理需求。用戶調(diào)查的重點是“數(shù)據(jù)”和“處理”。(1)信息需求定義未來數(shù)據(jù)庫系統(tǒng)用到的所有信息,明確用戶將向數(shù)據(jù)庫中輸入什么樣的數(shù)據(jù),從數(shù)據(jù)庫中要求獲得哪些內(nèi)容,將要輸出哪些信息,以及描述數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)9(2)處理需求定義了系統(tǒng)數(shù)據(jù)處理的操作功能,描述操作的優(yōu)先次序,包括操作的執(zhí)行頻率和場合,操作與數(shù)據(jù)間的聯(lián)系。處理需求還要明確用戶要完成哪些處理功能,每種處理的執(zhí)行頻度,用戶需求的響應(yīng)時間以及處理的方式,比如是聯(lián)機處理還是批處理等。(3)安全性與完整性要求描述了系統(tǒng)中不同用戶對數(shù)據(jù)庫的使用和操作情況,完整性要求描述了數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系以及數(shù)據(jù)的取值范圍要求。2.需求分析的方法1)數(shù)據(jù)流圖數(shù)據(jù)流圖用來描述系統(tǒng)的功能,表達了數(shù)據(jù)和處理的關(guān)系。數(shù)據(jù)流圖采用4個基本符號:外部實體、數(shù)據(jù)流、數(shù)據(jù)處理、數(shù)據(jù)存儲。4.2需求分析數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)10(1)外部實體數(shù)據(jù)來源和數(shù)據(jù)輸出又稱為外部實體,表示系統(tǒng)數(shù)據(jù)的外部來源和去處,也可是另外一個系統(tǒng)。(2)數(shù)據(jù)流由數(shù)據(jù)組成,表示數(shù)據(jù)的流向,數(shù)據(jù)流都需要命名,數(shù)據(jù)流的名稱反映了數(shù)據(jù)流的含義。(3)數(shù)據(jù)處理指對數(shù)據(jù)的邏輯處理,也就是數(shù)據(jù)的變換。(4)數(shù)據(jù)存儲表示數(shù)據(jù)保存的地方,即數(shù)據(jù)存儲的邏輯描述。數(shù)據(jù)流圖如圖4.3所示。圖4.3數(shù)據(jù)流圖4.2需求分析數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)112)數(shù)據(jù)字典數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,對數(shù)據(jù)流圖中的數(shù)據(jù)流和數(shù)據(jù)存儲等進行詳細(xì)的描述,它包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、存儲、處理過程等。(1)數(shù)據(jù)項數(shù)據(jù)項是數(shù)據(jù)最小的組成單位,即不可再分的基本數(shù)據(jù)單位,記錄了數(shù)據(jù)對象的基本信息,描述了數(shù)據(jù)的靜態(tài)特性.數(shù)據(jù)項描述={數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系}(2)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是若干數(shù)據(jù)項有意義的集合,由若干數(shù)據(jù)項組成,或由若干數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)組成。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)}}4.2需求分析數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)12(3)數(shù)據(jù)流數(shù)據(jù)流表示某一處理過程的輸入和輸出,表示了數(shù)據(jù)處理過程中的傳輸流向,是對數(shù)據(jù)動態(tài)特性的描述,。數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}(4)數(shù)據(jù)存儲數(shù)據(jù)存儲是處理過程中存儲的數(shù)據(jù),它是在事務(wù)和處理過程中數(shù)據(jù)所停留和保存過的地方.數(shù)據(jù)存儲描述={數(shù)據(jù)存儲名,說明,編號,流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度,存取方式}(5)處理過程在數(shù)據(jù)字典中,只需描述簡要描述處理過程的信息。處理過程描述={處理過程名,說明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡要說明}}4.2需求分析數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)134.3概念結(jié)構(gòu)設(shè)計4.3.1概念結(jié)構(gòu)的特點和設(shè)計步驟1.概念結(jié)構(gòu)的特點(1)能真實、充分地反映現(xiàn)實世界概念模型是現(xiàn)實世界的一個真實模型,能滿足用戶對數(shù)據(jù)的處理要求。(2)易于理解便于數(shù)據(jù)庫設(shè)計人員和用戶交流,用戶的積極參與是數(shù)據(jù)庫設(shè)計成功的關(guān)鍵。(3)易于更改當(dāng)應(yīng)用環(huán)境和應(yīng)用要求發(fā)生改變時,易于修改和擴充概念模型(4)易于轉(zhuǎn)換為關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型。描述概念模型的有力工具是E-R模型,在第1章已經(jīng)介紹,本章在介紹概念結(jié)構(gòu)設(shè)計中也采用E-R模型。數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)142.概念結(jié)構(gòu)設(shè)計的方法概念結(jié)構(gòu)設(shè)計的方法有4種。(1)自底向上首先定義局部應(yīng)用的概念結(jié)構(gòu),然后按一定的規(guī)則把它們集成起來,得到全局概念模型。(2)自頂向下首先定義全局概念模型,然后再逐步細(xì)化。(3)由里向外首先定義最重要的核心概念結(jié)構(gòu),然后再逐步向外擴展。(4)混合策略將自頂向下和自底向上結(jié)合起來使用。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)153.概念結(jié)構(gòu)設(shè)計的步驟(1)根據(jù)需求分析劃分的局部應(yīng)用,設(shè)計局部E-R圖。(2)將局部E-R圖合并,冗余和可能的矛盾,得到系統(tǒng)的全局E-R圖,審核和驗證全局E-R圖,完成概念模型的設(shè)計。概念結(jié)構(gòu)設(shè)計步驟如圖4.4所示。圖4.4概念結(jié)構(gòu)設(shè)計步驟4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)164.3.2E-R模型描述概念模型的有力工具是E-R模型,E-R模型即實體-聯(lián)系模型,在E-R模型中:●實體:客觀存在并可相互區(qū)別的事物稱為實體,實體用矩形框表示,框內(nèi)為實體名。實體可以是具體的人、事、物或抽象的概念,例如,在學(xué)生成績管理系統(tǒng)中,“學(xué)生”就是一個實體?!駥傩裕簩嶓w所具有的某一特性稱為屬性,屬性采用橢圓框表示,框內(nèi)為屬性名,并用無向邊與其相應(yīng)實體連接。例如,在學(xué)生成績管理系統(tǒng)中,學(xué)生的特性有學(xué)號、姓名、性別、出生日期、專業(yè)、班號、總學(xué)分,它們就是學(xué)生實體的7個屬性?!?/p>
實體型:用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),班號,總學(xué)分)就是一個實體型。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)17●實體集:同型實體的集合稱為實體集,例如全體學(xué)生記錄就是一個實體集。●聯(lián)系:實體之間的聯(lián)系,可分為一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系。實體間的聯(lián)系采用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向邊將參加聯(lián)系的實體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即1—1、1—n或m—n。如果聯(lián)系也具有屬性,則將屬性與菱形也用無向邊連上。(1)一對一的聯(lián)系(1:1)例如,一個班只有一個正班長,而一個正班長只屬于一個班,班級與正班長兩個實體間具有一對一的聯(lián)系。(2)一對多的聯(lián)系(1:n)例如,一個班可有若干學(xué)生,一個學(xué)生只能屬于一個班,班級與學(xué)生兩個實體間具有一對多的聯(lián)系。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)18(3)多對多的聯(lián)系(m:n)例如,一個學(xué)生可選多門課程,一門課程可被多個學(xué)生選修,學(xué)生與課程兩個實體間具有多對多的聯(lián)系。實體之間的三種聯(lián)系如圖4.5所示。圖4.5實體之間的聯(lián)系4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)194.3概念結(jié)構(gòu)設(shè)計4.3.3局部E-R模型設(shè)計使用系統(tǒng)需求分析階段得到的數(shù)據(jù)流程圖、數(shù)據(jù)字典和需求規(guī)格說明,建立對應(yīng)于每一部門或應(yīng)用的局部E-R模型,關(guān)鍵問題是如何確定實體(集)和實體屬性,即首先要確定系統(tǒng)中的每一個子系統(tǒng)包含哪些實體和屬性。設(shè)計局部E-R模型時,最大的困難在于實體和屬性的正確劃分,其基本劃分原則如下:(1)屬性應(yīng)是系統(tǒng)中最小的信息單位。(2)若屬性具有多個值時,應(yīng)該升級為實體。【例4.1】設(shè)有學(xué)生、課程、教師、學(xué)院實體如下:學(xué)生:學(xué)號、姓名、性別、出生日期、專業(yè)、總學(xué)分、選修課程號課程:課程號、課程名、學(xué)分、開課學(xué)院、任課教師號數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)20教師:教師號、姓名、性別、出生日期、職稱、學(xué)院名、講授課程號學(xué)院:學(xué)院號、學(xué)院名、電話、教師號、教師名上述實體中存在如下聯(lián)系:(1)一個學(xué)生可選修多門課程,一門課程可為多個學(xué)生選修。(2)一個教師可講授多門課程,一門課程可為多個教師講授。(3)一個學(xué)院可有多個教師,一個教師只能屬于一個學(xué)院。(4)一個學(xué)院可擁有多個學(xué)生,一個學(xué)生只屬于一個學(xué)院。(5)假設(shè)學(xué)生只能選修本學(xué)院的課程,教師只能為本學(xué)院的學(xué)生講課。要求分別設(shè)計學(xué)生選課和教師任課兩個局部信息的結(jié)構(gòu)E-R圖。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)21圖4.6學(xué)生選課局部E-R圖解:從各實體屬性看到,學(xué)生實體與學(xué)院實體和課程實體關(guān)聯(lián),不直接與教師實體關(guān)聯(lián),一個學(xué)院可以開設(shè)多門課程,學(xué)院實體與課程實體之間是1:m關(guān)系,學(xué)生選課局部E-R圖如圖4.6所示。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)22教師實體與學(xué)院實體和課程實體關(guān)聯(lián),不直接與學(xué)生實體關(guān)聯(lián),教師任課局部E-R圖如圖4.7所示。圖4.7教師講課局部E-R圖4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)234.3.4全局E-R模型設(shè)計綜合各部門或應(yīng)用的局部E-R模型,就可以得到系統(tǒng)的全局E-R模型。綜合局部E-R模型的方法有兩種:(1)多個局部E-R圖逐步綜合,一次綜合兩個E-R圖。(2)多個局部E-R圖一次綜合。第一種方法,由于一次只綜合兩個E-R圖,難度降低,較易使用。在上述兩種方法中,每次綜合可分為以下兩個步驟:(1)進行合并,解決各局部E-R圖之間的沖突問題,生成初步E-R圖。(2)修改和重組,消除冗余,生成基本E-R圖。1)合并局部E-R圖,消除沖突由于各個局部應(yīng)用不同,通常由不同的設(shè)計人員去設(shè)計局部E-R圖,因此,各局部E-R圖之間往往會有很多不一致,被稱為沖突,沖突的類型有:4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)24(1)屬性沖突屬性域沖突:屬性取值的類型、取值范圍或取值集合不同。例如年齡可用出生年月和整數(shù)表示?!駥傩匀≈祮挝粵_突:例如重量,可用公斤、克、斤為單位。(2)結(jié)構(gòu)沖突●同一事物,不同的抽象:例如職工,在一個應(yīng)用中為實體,而在另一個應(yīng)用中為屬性?!裢粚嶓w在不同應(yīng)用中的屬性組成不同。●同一聯(lián)系在不同應(yīng)用中類型不同。(3)命名沖突命名沖突包括實體名、屬性名、聯(lián)系名之間的沖突●同名異議:不同意義的事物具有相同的名稱?!癞惷x:不同意義的事物具有相同的名稱。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)25屬性沖突和命名沖突可通過協(xié)商來解決,結(jié)構(gòu)沖突在認(rèn)真分析后通過技術(shù)手段解決?!纠?.2】將例4.1設(shè)計完成的兩個局部E-R圖合并成一個初步的全局E-R圖。解:將圖4.5中的’’教師號’’屬性轉(zhuǎn)換為’’教師”實體,將兩個局部E-R圖中的”選修課程號”和”講授課程號”統(tǒng)一為”課程號”,并將”課程”實體的屬性統(tǒng)一為”課程號”和”課程名”,初步的全局E-R圖如圖4.8所示。圖4.8初步的全局E-R圖4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)262)消除冗余在初步的E-R圖中,可能存在冗余的數(shù)據(jù)或冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系也可由由其他的聯(lián)系導(dǎo)出。冗余的存在容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護增加困難,應(yīng)該消除?!纠?.3】消除冗余,對例4.8的初步的全局E-R圖進行改進。解:在圖4.8中,”屬于”和”開課”是冗余聯(lián)系,它們可以通過其他聯(lián)系導(dǎo)出,消除冗余聯(lián)系后得到改進的全局E-R圖,如圖4.9所示。4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)27圖4.9改進的全局E-R圖4.3概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)284.4邏輯結(jié)構(gòu)設(shè)計4.4.1邏輯結(jié)構(gòu)設(shè)計的步驟以關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)為例,邏輯結(jié)構(gòu)設(shè)計步驟如圖4.10所示。圖4.10邏輯結(jié)構(gòu)設(shè)計步驟(1)將用E-R圖表示的概念結(jié)構(gòu)轉(zhuǎn)換為關(guān)系模型。(2)優(yōu)化模型。(3)設(shè)計適合DBMS的關(guān)系模式。數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)294.4.2E-R模型向關(guān)系模型的轉(zhuǎn)換由E-R圖向關(guān)系模型轉(zhuǎn)換有以下兩個規(guī)則:1)一個實體轉(zhuǎn)換為一個關(guān)系模式實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。2)實體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式有以下不同的情況(1)一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端所對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,每個實體的碼都是該關(guān)系的候選碼。如果與某一端實體對應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入另一個關(guān)系模式的碼和聯(lián)系本身的屬性。(2)一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端所對應(yīng)的關(guān)系模式合并。4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)30如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,且關(guān)系的碼為n端實體的碼。如果與n端實體對應(yīng)的關(guān)系模式合并,則需在該關(guān)系模式的屬性中加入1端實體的碼和聯(lián)系本身的屬性。(3)一個m:n聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(4)三個或三個以上實體間的一個多元聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式。與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性都轉(zhuǎn)換為關(guān)系的屬性,各實體的碼組成該關(guān)系的碼或關(guān)系碼的一部分。(5)具有相同碼的關(guān)系模式可以合并。4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)31【例4.4】
1:1聯(lián)系的E-R圖如圖4.11所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖4.111:1聯(lián)系的E-R圖示例方案1:聯(lián)系轉(zhuǎn)換為獨立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址)校長(校長編號,姓名,職稱)任職(學(xué)校編號,校長編號)方案2:聯(lián)系合并到”學(xué)?!标P(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址,校長編號)校長(校長編號,姓名,職稱)4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)32方案3:聯(lián)系合并到”校長”關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:學(xué)校(學(xué)校編號,名稱,地址)校長(校長編號,姓名,職稱,學(xué)校編號)在1:1聯(lián)系中,一般不將聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式,這是由于關(guān)系模式個數(shù)多,相應(yīng)的表也越多,查詢時會降低查詢效率。【例4.5】1:n聯(lián)系的E-R圖如圖4.12所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖4.121:n聯(lián)系的E-R圖示例4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)33方案1:聯(lián)系轉(zhuǎn)換為獨立的關(guān)系模式,則轉(zhuǎn)換后的關(guān)系模式為:班級(班級編號,教室號,人數(shù))學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)屬于(學(xué)號,班級編號)方案2:聯(lián)系合并到n端實體對應(yīng)的關(guān)系模式中,則轉(zhuǎn)換后的關(guān)系模式為:班級(班級編號,教室號,人數(shù))學(xué)生(學(xué)號,姓名,性別,出生日期,班級編號)同樣原因,在1:n聯(lián)系中,一般也不將聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式。
4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)34【例4.6】m:n聯(lián)系的E-R圖如圖4.13所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。圖4.13m:n聯(lián)系的E-R圖示例對于m:n聯(lián)系,必須轉(zhuǎn)換為獨立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),總學(xué)分)課程(課程號,課程名,學(xué)分,教師號)選課(學(xué)號,課程號,成績)4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)35【例4.7】三個實體聯(lián)系的E-R圖如圖4.14所示,將E-R圖轉(zhuǎn)換為關(guān)系模型。三個實體聯(lián)系聯(lián)系,一般也轉(zhuǎn)換為獨立的關(guān)系模式,轉(zhuǎn)換后的關(guān)系模式為:供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)項目(零件號,零件名,重量)零件(項目編號,項目名稱,開工日期)供應(yīng)(供應(yīng)商號,零件號,項目編號,零件數(shù))圖4.14三個實體聯(lián)系的E-R圖示例4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)36【例4.8】將圖4.8所示的改進的全局E-R圖轉(zhuǎn)換為關(guān)系模式。將”學(xué)生”實體、”課程”實體、”教師”實體、”學(xué)院”實體分別設(shè)計成一個關(guān)系模式,將”擁有”聯(lián)系(1:n聯(lián)系)合并到”學(xué)生”實體(n端實體)對應(yīng)的關(guān)系模式中,將”選課”聯(lián)系和”講課”(m:n聯(lián)系)轉(zhuǎn)換為獨立的關(guān)系模式。學(xué)生(學(xué)號,姓名,性別,年齡,專業(yè),總學(xué)分,學(xué)院號)課程(課程號,課程名,學(xué)分)教師(教師號,姓名,性別,出生日期、職稱、學(xué)院名)學(xué)院(學(xué)院號,學(xué)院名,電話)選課(學(xué)號,課程號,成績)講課(教師號,課程號,上課地點)4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)37【例4.9】將圖1.12所示的商店銷售管理系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系模式。將”部門”實體、”員工”實體、”訂單”實體、”商品”實體分別設(shè)計成一個關(guān)系模式,將”擁有”聯(lián)系(1:n聯(lián)系)合并到”員工”實體(n端實體)對應(yīng)的關(guān)系模式中,將”開出”聯(lián)系(1:n聯(lián)系)合并到”訂單”實體(n端實體)對應(yīng)的關(guān)系模式中,將”訂單明細(xì)”聯(lián)系(m:n聯(lián)系)轉(zhuǎn)換為獨立的關(guān)系模式。部門(部門號,部門名稱)員工(員工號,姓名,性別,出生日期,地址,工資,部門號)訂單(訂單號,客戶號,銷售日期,總金額,員工號)商品(商品號,商品名稱,商品類型代碼,單價,庫存量,未到貨商品數(shù)量)訂單明細(xì)(訂單號,商品號,單價,數(shù)量,總價,折扣率,折扣總價)4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)384.4.3數(shù)據(jù)模型的優(yōu)化和設(shè)計外模式1)關(guān)系模型的優(yōu)化數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的,為了進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,有必要根據(jù)應(yīng)用需求適當(dāng)修改、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化,規(guī)范化理論是關(guān)系數(shù)據(jù)模型的優(yōu)化的指南和工具,具體方法如下:(1)確定數(shù)據(jù)依賴,考查各關(guān)系模式的函數(shù)依賴關(guān)系,以及不同關(guān)系模式屬性之間的數(shù)據(jù)依賴。(2)對各關(guān)系模式之間的數(shù)據(jù)依賴進行最小化處理,消除冗余的聯(lián)系。(3)確定各關(guān)系模式屬于第幾范式,并根據(jù)需求分析階段的處理要求,確定是否要對這些關(guān)系模式進行合并或分解。4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)39(4)對關(guān)系模式進行必要的分解,以提高數(shù)據(jù)操作的效率和存儲空間的利用率,常用的分解方法有垂直分解和水平分解?!翊怪狈纸猓喊殃P(guān)系模式R的屬性分解成若干屬性子集合,定義每個屬性子集合為一個子關(guān)系?!?/p>
水平分解:把基本關(guān)系的元組分為若干元組子集合,定義每個子集合為一個子關(guān)系,以提高系統(tǒng)的效率。2)設(shè)計外模式將概念模型轉(zhuǎn)換為全局邏輯模型后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體數(shù)據(jù)庫管理系統(tǒng)的特點,設(shè)計用戶外模式。外模式設(shè)計的目標(biāo)是抽取或?qū)С瞿J降淖蛹?,以?gòu)造各不同用戶使用的局部數(shù)據(jù)邏輯結(jié)構(gòu)。外模式概念對應(yīng)關(guān)系數(shù)據(jù)庫的視圖概念,設(shè)計外模式是為了更好地滿足局部用戶的需求。4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)40定義數(shù)據(jù)庫的模式主要是從系統(tǒng)的時間效率、空間效率、易維護等角度出發(fā),而用戶外模式和模式是相對獨立的,所以在設(shè)計外模式時,可以更多地考慮用戶的習(xí)慣和方便。(1)使用更符合用戶習(xí)慣的別名。(2)對不同級別的用戶定義不同的視圖,以保證系統(tǒng)的安全性。(3)簡化用戶對系統(tǒng)的使用,如將復(fù)雜的查詢定義為視圖等。4.4邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)414.5物理結(jié)構(gòu)設(shè)計1.物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計主要包括的內(nèi)容為:確定數(shù)據(jù)的存取方法和確定數(shù)據(jù)的存儲結(jié)構(gòu)。(1)確定數(shù)據(jù)的存取方法存取方法是快速存取數(shù)據(jù)庫中數(shù)據(jù)的技術(shù),具體采用的方法由數(shù)據(jù)庫管理系統(tǒng)根據(jù)數(shù)據(jù)的存儲方式?jīng)Q定,一般用戶不能干預(yù)。一般用戶可以通過建立索引的方法來加快數(shù)據(jù)的查詢效率。建立索引的一般原則為:
●
在經(jīng)常作為查詢條件的屬性上建立索引。
●
在經(jīng)常作為連接條件的屬性上建立索引。
●
在經(jīng)常作為分組依據(jù)列的屬性上建立索引。
●
對經(jīng)常進行連接操作的表可以建立索引。數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)42一個表可以建立多個索引,但只能建立一個聚簇索引。(2)確定數(shù)據(jù)的存儲結(jié)構(gòu)一般的存儲方式有順序存儲、散列存儲和聚簇存儲?!?/p>
順序存儲:該存儲方式平均查找次數(shù)為表中記錄數(shù)的二分之一?!?/p>
散列存儲:其平均查找次數(shù)由散列算法確定?!?/p>
聚簇存儲:為了提高某個屬性或?qū)傩越M的查詢速度,把這個屬性或?qū)傩越M上具有相同值的元組集中存放在連續(xù)的物理塊上的處理稱為聚簇,這個屬性或?qū)傩越M稱為聚簇碼,通過聚簇可以極大提高按聚簇碼進行查詢的速度。一般情況下系統(tǒng)都會為數(shù)據(jù)選擇一種最合適的存儲方式。2.物理結(jié)構(gòu)設(shè)計的評價4.5物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫原理與應(yīng)用教程(Oracle12c版)43在物理設(shè)計過程中,需要對時間效率、空間效率、維護代價和各種用戶要求進行權(quán)衡,從而產(chǎn)生多種設(shè)計方案,數(shù)據(jù)庫設(shè)計人員應(yīng)對這些方案進行詳細(xì)地評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。評價物理結(jié)構(gòu)設(shè)計的方法完全依賴于具體的數(shù)據(jù)庫管理系統(tǒng),主要考慮的是操作開銷,即為使用戶獲得及時、準(zhǔn)確的數(shù)據(jù)所需的開銷和計算機的資源的開銷。具體可分為如下幾類:●
查詢和響應(yīng)時間●
更新事務(wù)的開銷●
生成報告的開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版部編歷史七年級上冊《第19課 北魏政治和北方民族大交融》聽課評課記錄
- 湘教版數(shù)學(xué)八年級上冊1.5《分式方程的應(yīng)用》聽評課記錄2
- 八年級數(shù)學(xué)下冊23.3事件的概率1聽評課記錄滬教版五四制
- 人教版地理八年級下冊6.3《世界上最大的黃土堆積區(qū)-黃土高原》聽課評課記錄1
- 蘇科版數(shù)學(xué)八年級上冊聽評課記錄《5-1物體位置的確定》
- 用功合同范本(2篇)
- 環(huán)境友好原材料采購合同(2篇)
- 人教版五年級下冊數(shù)學(xué)《第2單元因數(shù)與倍數(shù) 第1課時 因數(shù)和倍數(shù)(1)》聽評課記錄
- 聽評課記錄2年級
- 統(tǒng)編教材部編人教版道德與法治九年級下冊《3.2 與世界深度互動》聽課評課記錄
- 二零二五年度大型自動化設(shè)備買賣合同模板2篇
- 2024版金礦居間合同協(xié)議書
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語試題(含解析無聽力音頻有聽力原文)
- GA/T 2145-2024法庭科學(xué)涉火案件物證檢驗實驗室建設(shè)技術(shù)規(guī)范
- 2025內(nèi)蒙古匯能煤化工限公司招聘300人高頻重點提升(共500題)附帶答案詳解
- 2025年中國融通資產(chǎn)管理集團限公司春季招聘(511人)高頻重點提升(共500題)附帶答案詳解
- 寵物護理行業(yè)客戶回訪制度構(gòu)建
- 電廠檢修管理
- 《SPIN銷售法課件》課件
- 機動車屬性鑒定申請書
- 2024年中考語文試題分類匯編:非連續(xù)性文本閱讀(學(xué)生版)
評論
0/150
提交評論