版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫設(shè)計(jì)
3.1數(shù)據(jù)庫設(shè)計(jì)概述3.2需求分析3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)
3.6數(shù)據(jù)庫的實(shí)施
3.7數(shù)據(jù)庫的運(yùn)行和維護(hù)理解數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn);
掌握關(guān)系數(shù)據(jù)庫設(shè)計(jì)的步驟,各個階段的具體任務(wù),特別是面向?qū)ο蟮男枨蠓治?、?shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)的基本任務(wù)和設(shè)計(jì)的結(jié)果;掌握E-R圖的設(shè)計(jì)方法,E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則,關(guān)系模型的優(yōu)化;了解數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)的內(nèi)容和方法,數(shù)據(jù)庫實(shí)施和維護(hù);掌握數(shù)據(jù)庫設(shè)計(jì)的方法,根據(jù)實(shí)際應(yīng)用需求,具備關(guān)系數(shù)據(jù)庫設(shè)計(jì)的基本能力。
數(shù)據(jù)庫設(shè)計(jì)學(xué)習(xí)目標(biāo)
重點(diǎn):需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)。難點(diǎn):概念結(jié)構(gòu)設(shè)計(jì)中的依賴實(shí)體集、強(qiáng)實(shí)體集、弱實(shí)體集、
多值聯(lián)系的建模。
數(shù)據(jù)庫設(shè)計(jì)3.1數(shù)據(jù)庫設(shè)計(jì)概述3.1.1數(shù)據(jù)庫設(shè)計(jì)的基本任務(wù)和目標(biāo)
1.基本任務(wù)根據(jù)用戶的信息需求、數(shù)據(jù)操作需求,設(shè)計(jì)一個結(jié)構(gòu)合理、使用方便、效率較高的數(shù)據(jù)庫(有效的存儲、高效的訪問)。2.設(shè)計(jì)目標(biāo)數(shù)據(jù)庫設(shè)計(jì)的核心問題是建立一個什么樣的數(shù)據(jù)模型。
具體而言,這個模型應(yīng)當(dāng)滿足以下目標(biāo):1)滿足用戶的應(yīng)用要求2)準(zhǔn)確模擬現(xiàn)實(shí)世界3)能被某個DBMS所接受4)具有良好的性能,較好的質(zhì)量
3.1數(shù)據(jù)庫設(shè)計(jì)概述3.1.2數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)與方法
1.?dāng)?shù)據(jù)庫設(shè)計(jì)的特點(diǎn)數(shù)據(jù)庫建設(shè)是指從分析、設(shè)計(jì)、實(shí)施到運(yùn)行與維護(hù)的全過程。和一般的軟件系統(tǒng)的設(shè)計(jì)、開發(fā)與維護(hù)有許多相同之處,也有其自身的一些特點(diǎn)。 1)三分技術(shù)、七分管理,十二分基礎(chǔ)數(shù)據(jù) 2)結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)相結(jié)合
3.1數(shù)據(jù)庫設(shè)計(jì)概述
2.?dāng)?shù)據(jù)庫設(shè)計(jì)方法 1)新奧爾良方法2)基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法3)基于3NF的設(shè)計(jì)方法4)對象定義語言(ObjectDefinitionLanguage,ODL)方法3.1數(shù)據(jù)庫設(shè)計(jì)概述3.1.3數(shù)據(jù)庫設(shè)計(jì)步驟
1.準(zhǔn)備工作在數(shù)據(jù)庫設(shè)計(jì)之前,首先要選定參加設(shè)計(jì)的人員。
系統(tǒng)分析師數(shù)據(jù)庫設(shè)計(jì)人員應(yīng)用開發(fā)人員DBA用戶代表
3.1數(shù)據(jù)庫設(shè)計(jì)概述
2.數(shù)據(jù)庫設(shè)計(jì)的基本步驟3.1數(shù)據(jù)庫設(shè)計(jì)概述
3.?dāng)?shù)據(jù)庫設(shè)計(jì)過程中的各級模式在數(shù)據(jù)庫設(shè)計(jì)的不同階段形成數(shù)據(jù)庫的各級模式。
數(shù)據(jù)庫的各級模式3.2需求分析
需求分析就是正確理解用戶需求并表達(dá)用戶的需求。
需求分析方法:結(jié)構(gòu)化分析方法基本思想:自頂向下,逐步求精。
工具:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹、判定表、結(jié)構(gòu)化語言等。
基本思想:盡可能按照人類認(rèn)識客觀世界的方法來分析和解決問題。
工具:用例圖、對象模型、屬性字典、服務(wù)說明表等。結(jié)構(gòu)化分析方法面向?qū)ο蠓治龇椒?.2需求分析基本任務(wù)系統(tǒng)分析師與用戶一起,充分理解用戶的要求,并把雙方的理解用書面文檔(系統(tǒng)說明書)表達(dá)出來。(1)了解用戶的需求;(2)確定系統(tǒng)邏輯模型,形成系統(tǒng)分析報(bào)告。分析的本質(zhì):理解、發(fā)現(xiàn)、創(chuàng)新觀察、訪談
理解
表述發(fā)掘批判、革新3.2需求分析3.2需求分析3.2.1需求分析的任務(wù)
面向?qū)ο蠓椒ㄐ枨蠓治龅闹饕蝿?wù)是:
1)獲取需求系統(tǒng)需求功能需求:用例模型非功能性需求:技術(shù)需求
2)確定對象及對象間的關(guān)系
所有對象都是通過類來描述的,核心工作是分析和設(shè)計(jì)對象以及類,這是一個迭代的過程。類作為一個整體,貫穿從分析到實(shí)現(xiàn)的整個系統(tǒng)開發(fā)過程,但在每一個階段其抽象層次是不同的。
3.2需求分析3.2.2用例建模
下圖給出了如何在用例圖中表示一個用例以及各模型元素的表示法,其中矩形框表示系統(tǒng)的邊界。
用例圖的表示法3.2需求分析用例建模的主要步驟:
1)確定系統(tǒng)的參與者
2)確定需求用例
3)構(gòu)造用例圖
4)用例描述3.2需求分析3.2.3對象模型
對象模型是用類圖來描述系統(tǒng)中所有對象類的屬性、操作以及對象類之間的相互關(guān)系。對象不是一個個具體的對象,而是一組具有相似屬性和服務(wù)的抽象對象——類。類分為兩種:
對象類,指含有對象實(shí)例的類。
抽象類,指不含對象實(shí)例的類。
類名屬性操作類的圖形符號3.2需求分析構(gòu)造對象模型的主要步驟:
1.識別對象和類2.確定屬性3.確定對象間的關(guān)系4.確定服務(wù)
3.2需求分析對象之間的關(guān)系關(guān)聯(lián)關(guān)系、一般與特殊關(guān)系、整體與部分關(guān)系。
1)關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系描述的是類和類之間的連接,表示的是對象類的實(shí)例之間的相互依賴、相互作用的關(guān)系。關(guān)聯(lián)關(guān)系建立了對象類之間的邏輯連接關(guān)系
(1)關(guān)聯(lián)的表示法
3.2需求分析(2)關(guān)聯(lián)的語義包含關(guān)聯(lián)名稱和關(guān)聯(lián)角色。關(guān)聯(lián)名稱用于標(biāo)記關(guān)聯(lián);關(guān)聯(lián)角色是關(guān)于關(guān)聯(lián)關(guān)系中一個類對另一個類所表現(xiàn)出的職責(zé),用于反映該端的對象在關(guān)聯(lián)中扮演什么角色。兩者不必同時使用,如果在關(guān)聯(lián)上沒有標(biāo)出角色名,則隱含地用類的名稱作為角色名。
3.2需求分析
(3)關(guān)聯(lián)的多重性
關(guān)聯(lián)的多重性表示參與關(guān)聯(lián)的對象實(shí)例的數(shù)量約束。(表示一端的多少個對象可能和另一端的一個任意對象相關(guān))3.2需求分析
(4)關(guān)聯(lián)的類型根據(jù)發(fā)生關(guān)聯(lián)關(guān)系的類之間所涉及的對象實(shí)例的數(shù)目,可以將關(guān)聯(lián)關(guān)系分為一對一關(guān)聯(lián)、一對多關(guān)聯(lián)和多對多關(guān)聯(lián)。
一對一關(guān)聯(lián)是指關(guān)聯(lián)兩端的數(shù)量約束都是1,即每一端的一個對象實(shí)例都只和另一端的一個對象實(shí)例相關(guān)聯(lián)。
一對一關(guān)聯(lián)示意圖3.2需求分析一對多關(guān)聯(lián)示意圖一對多關(guān)聯(lián)是指關(guān)聯(lián)兩端數(shù)量約束一端是1,另一端是*。數(shù)量約束是1的類的一個對象實(shí)例可以和數(shù)量約束是*的類的多個對象實(shí)例相關(guān)聯(lián),數(shù)量約束是*的類的一個對象實(shí)例僅和數(shù)量約束是1的類的一個對象實(shí)例關(guān)聯(lián)。3.2需求分析多對多關(guān)聯(lián)示意圖多對多關(guān)聯(lián)是指關(guān)聯(lián)兩端的數(shù)量約束都是*。即任何一端類的一個對象實(shí)例都可以和另一端類的多個對象實(shí)例相關(guān)聯(lián)。3.2需求分析
(5)帶有屬性和操作的關(guān)聯(lián)
關(guān)聯(lián)類的表示示意圖3.2需求分析把關(guān)聯(lián)類作為一個普通類來處理
關(guān)聯(lián)類作為普通類表示的示意圖
3.2需求分析2)一般和特殊關(guān)系
一般和特殊關(guān)系是指一個一般類和它的特殊類之間的二元關(guān)系。在oo中,“繼承”、“分類”和“泛化”反映的是對象之間的一般特殊關(guān)系。
一般類和特殊類的表示法3.2需求分析
3)整體和部分關(guān)系
整體和部分關(guān)系是指一個類的某些對象實(shí)例是另一個類的某些對象實(shí)例的組成部分,這種關(guān)系在客觀世界中非常常見。整體和部分關(guān)聯(lián)的表示法3.2需求分析對象的服務(wù)對象的服務(wù)是直接體現(xiàn)系統(tǒng)功能性需求的成分,“確定服務(wù)”的目標(biāo)是將事物的動態(tài)特征抽象為對象和類的服務(wù)。對象類的服務(wù)分為兩大類:常規(guī)性服務(wù)或輔助性服務(wù),主要包括每個對象類都有的創(chuàng)建對象、設(shè)置對象屬性值、獲取對象屬性值、刪除對象服務(wù)等;功能性服務(wù)或需求性服務(wù),反映了該類對象實(shí)例所具有的特殊功能。3.2需求分析3.2.4需求分析案例假設(shè)某大學(xué)圖書館需要開發(fā)一個圖書管理系統(tǒng),為了簡化問題,現(xiàn)只考慮圖書管理的核心業(yè)務(wù)圖書信息,讀者信息以及由兩者相互作用產(chǎn)生的借書、還書等信息。為了簡化問題,沒有考慮實(shí)際系統(tǒng)可能還有的其他功能需求,如讀者登錄、讀者預(yù)定圖書、超期罰款處理、借書卡掛失、續(xù)借等,也不考慮同一個讀者多次借閱同一本書的情況。3.2需求分析1.系統(tǒng)功能需求經(jīng)過需求調(diào)查,主要實(shí)現(xiàn)以下功能:
1)圖書管理
2)讀者管理
3)借書管理
4)還書管理3.2需求分析2.系統(tǒng)用例模型
1)確定參與者和用例參與者代表的是使用者在與系統(tǒng)交互時所扮演的角色,而不是某個具體用戶。根據(jù)參與者的定義和參與者的確定方法可以識別出系統(tǒng)最重要的參與者有讀者、圖書管理員。主要系統(tǒng)用例:
讀者;查詢圖書、查詢讀者(本人)信息、查詢借閱情況;圖書管理員:辦理借書證、借書處理、還書處理、查詢圖書信息、查詢讀者信息、查詢借閱信息、統(tǒng)計(jì)館藏圖書。3.2需求分析
2)建立用例圖用例圖是描述參與者和用例之間關(guān)系的圖形。3.2需求分析
3)用例規(guī)約
以文檔的形式詳細(xì)描述用例,描述用例也稱為用例場景,即進(jìn)行的業(yè)務(wù)事件以及如何同系統(tǒng)進(jìn)行交互以完成任務(wù)的文字描述。3.2需求分析
3.系統(tǒng)對象模型
1)識別系統(tǒng)的對象和類考慮到借閱過程中,圖書管理員只是一個執(zhí)行者,為了簡化問題,在對象模型中,不考慮圖書管理員。根據(jù)用例模型和確定類的方法,可以得出高校圖書管理系統(tǒng)所涉及的類有:讀者類、圖書類、讀者類別類、借閱單類。3.2需求分析
2)確定屬性根據(jù)需求描述可以獲取各個對象類的屬性如下:
讀者類別的屬性:類別編號,類別名稱,可借閱天數(shù),可借閱數(shù)量,超期罰款額
讀者的屬性:讀者卡號,姓名,性別,單位,辦卡日期,卡狀態(tài)
圖書的屬性:圖書編號,書名,類別,作者,出版社,出版日期,單價,庫存數(shù)量
借閱單的屬性:借書日期,還書日期
3.2需求分析3)確定關(guān)系兩個類之間需不需要建立關(guān)聯(lián),完全取決于用戶的業(yè)務(wù)需要。4)確定服務(wù)(操作)讀者對象主要操作:辦理借書證,查詢圖書對象主要操作:入庫,查詢,統(tǒng)計(jì)讀者類別對象主要操作:查詢借閱單對象主要操作:借書,還書,查詢
3.2需求分析
高校圖書管理系統(tǒng)的對象模型如下圖所示。圖書管理系統(tǒng)類圖3.2需求分析5)屬性字典和服務(wù)說明3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.3.1概念結(jié)構(gòu)設(shè)計(jì)概述1.概念結(jié)構(gòu)設(shè)計(jì)的步驟概念結(jié)構(gòu)設(shè)計(jì)步驟3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)2.概念結(jié)構(gòu)設(shè)計(jì)的方法概念模型是比數(shù)據(jù)模型更獨(dú)立于機(jī)器、更抽象,也更加穩(wěn)定。概念結(jié)構(gòu)設(shè)計(jì)的方法有4種。
1)自頂向下的設(shè)計(jì)方法
2)自底向上的設(shè)計(jì)方法
3)逐步擴(kuò)張的設(shè)計(jì)方法
4)混合策略設(shè)計(jì)的方法通常采用自底向上的設(shè)計(jì)方法,就是根據(jù)局部應(yīng)用的對象模型設(shè)計(jì)局部E-R圖,再將局部E-R圖合并成總E-R圖。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.概念結(jié)構(gòu)設(shè)計(jì)的作用 其作用主要體現(xiàn)在以下幾個方面:
1)能真實(shí)地描述現(xiàn)實(shí)世界
2)易于理解
3)是各種數(shù)據(jù)模型的共同基礎(chǔ)
4)有利于修改和擴(kuò)充3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)4.E-R的表示
E-R圖(Entity-RelationApproach)用于描述現(xiàn)實(shí)世界的概念模型,提供了表示實(shí)體集、屬性、聯(lián)系的方法。其表示符號有:實(shí)體集名實(shí)體集屬性名屬性聯(lián)系名聯(lián)系3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)5.實(shí)體集之間聯(lián)系的類型
(1)二元聯(lián)系
實(shí)際上,1對1聯(lián)系是一對多聯(lián)系的特例,而1對n聯(lián)系又是多對多聯(lián)系的特例。注意:實(shí)體之間的聯(lián)系類型并不取決于實(shí)體本身,而是取決于現(xiàn)實(shí)世界的管理方法,或者說取決于實(shí)際語義。一對一聯(lián)系(1:1)一對多聯(lián)系(1:n)多對多聯(lián)系(m:n)3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)(2)多元聯(lián)系
多元聯(lián)系是指多個實(shí)體集之間的聯(lián)系,即兩個以上的實(shí)體集之間存在的聯(lián)系。
3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)
(3)遞歸聯(lián)系
遞歸聯(lián)系是指實(shí)體集內(nèi)部的聯(lián)系,也稱為自身聯(lián)系。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.3.2分E-R圖的設(shè)計(jì)和集成
1.分E-R圖的設(shè)計(jì)根據(jù)該局部應(yīng)用的對象模型設(shè)計(jì)分E-R圖。一個對象類對應(yīng)一個實(shí)體集對象類的屬性對應(yīng)實(shí)體集的屬性對象類之間的關(guān)系對應(yīng)實(shí)體集之間的聯(lián)系。
在某些情況下,一個數(shù)據(jù)項(xiàng)可以作為屬性,而在另一些情況下它又可以作為實(shí)體集。
3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)一般能作為屬性對待的盡量作為屬性,在解決這個問題時應(yīng)當(dāng)遵循兩條基本準(zhǔn)則:
(1)作為屬性必須是不可再分的數(shù)據(jù)項(xiàng),也就是屬性中不能再包含其他的屬性。
職工職工號姓名年齡職稱職工職工號姓名年齡職稱職稱號名稱工資標(biāo)準(zhǔn)住房標(biāo)準(zhǔn)聘任1m“職稱”由屬性上升為實(shí)體集3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)(2)屬性不能與其他實(shí)體集之間具有聯(lián)系。病人住院號姓名病房號病人住院號姓名病房醫(yī)生入住醫(yī)療1mn1局部E-R圖設(shè)計(jì)后,還必須返回去征求用戶意見,使之如實(shí)地反映現(xiàn)實(shí)世界,同時還要進(jìn)一步規(guī)范化,以求改進(jìn)和完善。
2.全局E-R圖設(shè)計(jì)
3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)
1)合并局部E-R圖,生成初步全局E-R圖各局部E-R圖之間的沖突主要有3類:
屬性沖突屬性沖突包括域沖突和屬性取值單位沖突兩種情況。命名沖突命名沖突主要有同名異義沖突和異名同義沖突兩種。結(jié)構(gòu)沖突。結(jié)構(gòu)沖突有3種情況同一對象在不同的應(yīng)用中具有不同的抽象。同一實(shí)體在不同局部E-R圖中的屬性組成不一致。實(shí)體之間的聯(lián)系在不同的局部E-R圖中呈現(xiàn)不同的類型。
3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)2)優(yōu)化初步E-R圖優(yōu)化的目標(biāo)是在全面準(zhǔn)確地反映用戶需求的基礎(chǔ)上,使得系統(tǒng)盡量滿足以下要求:
屬性盡可能少,即組成每一個實(shí)體的屬性個數(shù)盡量少。
實(shí)體盡量少,即組成概念結(jié)構(gòu)的實(shí)體個數(shù)盡量少。
聯(lián)系盡量少,即組成概念結(jié)構(gòu)的聯(lián)系的個數(shù)盡量少。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.驗(yàn)證全局E-R圖
驗(yàn)證全局E-R圖時,確保滿足下列條件:(1)必需具有一致性,不存在相互矛盾的表達(dá)。(2)能準(zhǔn)確地反映原來每個局部應(yīng)用的局部E-R圖結(jié)構(gòu),包括實(shí)體、屬性和聯(lián)系。(3)能夠滿足需求分析階段所確定的所有需求。(4)必須征求用戶和相關(guān)人員的意見,需要經(jīng)過評審、修改、優(yōu)化,再確定作為數(shù)據(jù)庫的概念結(jié)構(gòu),提交給用戶。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.3.3概念結(jié)構(gòu)設(shè)計(jì)案例
根據(jù)需求分析,利用數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)的方法,可以得出高校圖書管理系統(tǒng)的數(shù)據(jù)庫的各實(shí)體屬性圖如下圖所示。讀者與讀者類別E-R圖3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)讀者與圖書E-R圖3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)高校圖書管理系統(tǒng)實(shí)體聯(lián)系圖3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.3.4概念結(jié)構(gòu)設(shè)計(jì)的其他問題
在解決實(shí)際問題時,E-R模型一些擴(kuò)充的特征可以更恰當(dāng)?shù)胤从硵?shù)據(jù)庫設(shè)計(jì)的需求。為此,對E-R模型中所涉及的其他一些概念作必要的補(bǔ)充。
1.弱實(shí)體集與強(qiáng)實(shí)體集弱實(shí)體集:實(shí)體的存在必須依賴于其他實(shí)體的存在而存在。強(qiáng)實(shí)體集:被依賴的實(shí)體集。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)對于弱實(shí)體集,必須滿足以下限制強(qiáng)實(shí)體集和弱實(shí)體集的聯(lián)系類型必須是一對多的聯(lián)系。弱實(shí)體集中的每個實(shí)體都參與到聯(lián)系集中至少一個聯(lián)系中。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)2.依賴實(shí)體集
依賴實(shí)體集是指聯(lián)系中一種實(shí)體的存在依賴于該聯(lián)系集中聯(lián)系的存在,將依賴于聯(lián)系集而存在的實(shí)體集稱為依賴實(shí)體集。
依賴于聯(lián)系集的實(shí)體集3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)依賴有兩種約束情況:實(shí)體集與實(shí)體集之間的依賴約束。即弱實(shí)體集依賴于強(qiáng)實(shí)體集。實(shí)體集與聯(lián)系集之間的依賴約束。即實(shí)體的存在依賴于聯(lián)系集中的聯(lián)系。3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)3.多值聯(lián)系的建模
多值聯(lián)系是指在同一個給定的聯(lián)系集中,相關(guān)聯(lián)的相同實(shí)體之間可能存在多個聯(lián)系。
多值依賴的建模解決方法1
多值依賴的建模解決方法23.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)4.實(shí)體的子類型和超類型實(shí)體的子類型和超類型類似于對象模型中對象之間的一般和特殊關(guān)系。如果一個實(shí)體類型的全部實(shí)體也屬于另一個實(shí)體類型,并且具有自己的特殊特征,則前者稱為子類,后者稱為超類。學(xué)生實(shí)體的層次關(guān)系3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)5.多元聯(lián)系和二元聯(lián)系多元聯(lián)系轉(zhuǎn)換為實(shí)體間的相鄰二元聯(lián)系3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)多元聯(lián)系轉(zhuǎn)換為等價的二元聯(lián)系
3.3數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)多元聯(lián)系轉(zhuǎn)換為二元聯(lián)系時,可能會帶來如下問題:(1)為了表示聯(lián)系集而創(chuàng)建的實(shí)體集可能需要額外的標(biāo)識屬性,增加了設(shè)計(jì)的復(fù)雜度及空間占用。(2)多元聯(lián)系可以更清楚地表示多個實(shí)體對同一聯(lián)系的共同參與,而轉(zhuǎn)換為二元聯(lián)系后,在E-R圖中丟失了直接表示多個實(shí)體之間存在的多元聯(lián)系手段。(3)轉(zhuǎn)換過程中,對于多元聯(lián)系上的約束可能無法轉(zhuǎn)換為二元聯(lián)系上的約束(即無法有效保留約束)。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.4.1邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)
轉(zhuǎn)換過程分3步進(jìn)行:
邏輯結(jié)構(gòu)設(shè)計(jì)的步驟
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.4.2概念模型轉(zhuǎn)換為關(guān)系模型的方法 概念模型向關(guān)系模型轉(zhuǎn)換需要解決的問題:
(1)如何將實(shí)體集和實(shí)體集之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式?
(2)如何確定這些關(guān)系模式的屬性和關(guān)鍵字?3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
1.實(shí)體集的轉(zhuǎn)換規(guī)則
1)強(qiáng)實(shí)體集轉(zhuǎn)換方法
每一個強(qiáng)實(shí)體集轉(zhuǎn)換為一個關(guān)系模式;
關(guān)系模式的名稱為強(qiáng)實(shí)體集的名稱,屬性就是原實(shí)體集中的實(shí)體集的屬性;關(guān)系模式的碼就是原實(shí)體集的標(biāo)識符;每個實(shí)體由該關(guān)系的一個元組表示。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
2)弱實(shí)體集轉(zhuǎn)換方法由于弱實(shí)體集的各實(shí)體需借助強(qiáng)實(shí)體集的主標(biāo)識符進(jìn)行標(biāo)識。
弱實(shí)體集轉(zhuǎn)換的關(guān)系模式的屬性=弱實(shí)體集本身的描述屬性+所依賴的強(qiáng)實(shí)體集的主標(biāo)識符組成;
碼=所依賴的強(qiáng)實(shí)體集主標(biāo)識符+弱實(shí)體集的部分標(biāo)識符組合而成;關(guān)系模式名就是弱實(shí)體集的名。3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
2.實(shí)體集之間聯(lián)系集的轉(zhuǎn)換規(guī)則1)聯(lián)系類型1:1的轉(zhuǎn)換方法【例3-1】聯(lián)系類型1:1轉(zhuǎn)換為關(guān)系模式的實(shí)例3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)解:①將兩個實(shí)體集轉(zhuǎn)換為兩個關(guān)系模式: 旅游團(tuán)(團(tuán)號,團(tuán)名,地址,聯(lián)系人,電話) 保險(保險單號,投保日期,保險費(fèi))②再將聯(lián)系轉(zhuǎn)換為關(guān)系模式,有3種方案:方案1:將聯(lián)系形成一個獨(dú)立的關(guān)系模式: 參加(團(tuán)號,保險單號,人數(shù))方案2:將參加與旅游團(tuán)兩個關(guān)系模式進(jìn)行合并,則關(guān)系模式:旅游團(tuán)(團(tuán)號,團(tuán)名,地址,聯(lián)系人,電話,人數(shù),保險單號)方案3:將參加與保險兩個關(guān)系模式進(jìn)行合并,則關(guān)系模式:保險(保險單號,投保日期,保險費(fèi),人數(shù),團(tuán)號)3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 方案1增加了系統(tǒng)的復(fù)雜性;方案2會造成旅游團(tuán)關(guān)系中的保險單號屬性的NULL值過多;方案3比較合理。最終轉(zhuǎn)換的關(guān)系模式集合為:
旅游團(tuán)(團(tuán)號,團(tuán)名,地址,聯(lián)系人,電話)保險(保險單號,投保日期,保險費(fèi),人數(shù),團(tuán)號)
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
2)聯(lián)系類型1:n的轉(zhuǎn)換方法
【例3-2】聯(lián)系類型1:n轉(zhuǎn)換為關(guān)系模式的實(shí)例3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)解:①首先將兩個實(shí)體轉(zhuǎn)換為兩個關(guān)系模式: 旅游團(tuán)(團(tuán)號,團(tuán)名,地址,聯(lián)系人,電話) 旅客(旅客編號,姓名,性別,身份證號,地址,電話) ②再將聯(lián)系轉(zhuǎn)換為關(guān)系模式,有2種方案:
方案1:將聯(lián)系形成一個獨(dú)立的關(guān)系模式: 組成(旅客編號,團(tuán)號)
方案2:將聯(lián)系組成形成的關(guān)系和旅客關(guān)系模式進(jìn)行合并,則關(guān)系模式為: 旅客(旅客編號,姓名,性別,身份證號,地址,電話,團(tuán)號)3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 為了降低系統(tǒng)的復(fù)雜性,一般情況下采用第二種方案。
旅游團(tuán)(團(tuán)號,團(tuán)名,地址,聯(lián)系人,電話)旅客(旅客編號,姓名,性別,身份證號,地址,電話,團(tuán)號)
因此,如果兩個實(shí)體之間是1對多的聯(lián)系,且聯(lián)系沒有自身的屬
性,只需要將1方實(shí)體集的標(biāo)識符加入到多方實(shí)體集轉(zhuǎn)換的關(guān)系
模式中。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
【例3-3】下圖是同一實(shí)體集內(nèi)部的一對多聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式。
同一實(shí)體集內(nèi)部的一對多聯(lián)系
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)解:方案1:轉(zhuǎn)換為兩個關(guān)系模式: 課程(課程編號,課程名,學(xué)分) 先修(先修課程號,課程編號) 方案2:轉(zhuǎn)換為一個關(guān)系模式:
課程(課程編號,課程名稱,學(xué)分,先修課程號) 其中,由于同一關(guān)系中不能有相同的屬性名,故將課程的課程編號改為先修課程號。第二種方案的關(guān)系少,且能充分表達(dá)原有的數(shù)據(jù)聯(lián)系語義,所以采用第二種方案會更好些。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3)聯(lián)系類型m:n的轉(zhuǎn)換方法一個m:n聯(lián)系轉(zhuǎn)換為一個獨(dú)立關(guān)系。轉(zhuǎn)換方法為:與m:n聯(lián)系相連的實(shí)體集的標(biāo)識符以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性新關(guān)系的碼為兩個相連實(shí)體的標(biāo)識符組合(該關(guān)系模式的碼為多屬性構(gòu)成的組合碼,也稱多屬性碼)。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
【例3-4】聯(lián)系類型m:n轉(zhuǎn)換為關(guān)系模式的實(shí)例
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)解:根據(jù)實(shí)體間多對多的轉(zhuǎn)換規(guī)則,轉(zhuǎn)換的關(guān)系模式為:
學(xué)生(學(xué)號,姓名,性別,班級) 課程(課程編號,課程名稱,學(xué)分,先行課) 選修(學(xué)號,課程編號,成績)
此題能否采用其他方案呢?
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
學(xué)生(學(xué)號,姓名,性別,班級)課程(課程編號,課程名稱,學(xué)分,先行課,學(xué)號,成績)
或 學(xué)生(學(xué)號,姓名,性別,班級,課程編號,成績)課程(課程編號,課程名稱,學(xué)分,先行課)
實(shí)體之間m:n的聯(lián)系,聯(lián)系必須轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
【例3-5】下圖是同一實(shí)體集內(nèi)部的多對多聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式。同一實(shí)體集內(nèi)部的多對多聯(lián)系
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)解:根據(jù)實(shí)體間多對多的轉(zhuǎn)換規(guī)則,轉(zhuǎn)換的關(guān)系模式為:
零件(零件編號,名稱,單價) 組裝(組裝件號,零件號,數(shù)量) 其中,組裝件號為組裝后的復(fù)雜零件號。由于同一個關(guān)系中不允許存在相同的屬性名,因此取名為組裝件號。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)4)三個或三個以上實(shí)體集之間多元聯(lián)系的轉(zhuǎn)換方法
(1)一對多的多元聯(lián)系轉(zhuǎn)換為關(guān)系模型的方法將與聯(lián)系相關(guān)的其他實(shí)體集的標(biāo)識符和聯(lián)系自身的屬性作為新屬性加入到n端實(shí)體集中。
(2)多對多的多元聯(lián)系轉(zhuǎn)換為關(guān)系模型的方法聯(lián)系必須轉(zhuǎn)換一個獨(dú)立的關(guān)系模式,該關(guān)系的屬性為多元聯(lián)系相連的各實(shí)體的標(biāo)識符以及聯(lián)系本身的屬性,碼為各實(shí)體轉(zhuǎn)換為各自關(guān)系模式碼的組合。3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
【例3-6】多實(shí)體之間多對多聯(lián)系實(shí)例3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
采購員(采購員編號,姓名,聯(lián)系電話)
供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址)
商品(商品編號,商品名稱,單價)
采購(采購員編號,供應(yīng)商號,商品編號,采購日期,采購數(shù)量)
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.子類型和超類型的轉(zhuǎn)換規(guī)則
將子類型和超類型轉(zhuǎn)換為關(guān)系模式有兩種方法:(1)超類實(shí)體和子類實(shí)體分別轉(zhuǎn)換為單獨(dú)的關(guān)系模式。(2)只將子類實(shí)體轉(zhuǎn)換為關(guān)系模式,其屬性包含超類實(shí)體的全部屬性和子類的特有屬性。在E-R模型轉(zhuǎn)換為關(guān)系模型過程中,除了要遵循以上介紹的轉(zhuǎn)換原則外,還應(yīng)注意兩點(diǎn):
1)命名和屬性域的處理
2)非原子屬性的處理
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.4.3關(guān)系模型優(yōu)化
1.優(yōu)化方法
1)確定數(shù)據(jù)依賴
2)消除冗余的聯(lián)系
3)分析數(shù)據(jù)依賴
4)判斷是否合并或分解
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)2.用戶子模式的設(shè)計(jì)
1)使用更符合用戶習(xí)慣的別名
2)對不同級別的用戶可以定義不同的子模式
3)簡化用戶對系統(tǒng)的使用
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)3.4.4邏輯結(jié)構(gòu)設(shè)計(jì)案例由高校圖書管理系統(tǒng)的E-R圖,可以得到下表所示的高校圖書管理系統(tǒng)的一組關(guān)系模式及相關(guān)信息。
3.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)
讀者類別(類別編號,類別名稱,可借閱天數(shù),可借閱數(shù)量,超期罰款額)讀者(讀者卡號,姓名,性別,單位,辦卡日期,卡狀態(tài),類別編號)
圖書(圖書編號,書名,類別,作者,出版社,出版日期,單價,庫存數(shù)量)
借閱(讀者卡號,圖書編號,借書日期,還書日期)3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)指數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法,它依賴于給定的計(jì)算機(jī)系統(tǒng)。設(shè)計(jì)的任務(wù)是選擇合適的存儲結(jié)構(gòu)和存取路徑(設(shè)計(jì)數(shù)據(jù)庫的內(nèi)模式)。內(nèi)模式的設(shè)計(jì)可以不考慮用戶理解的方便,其主要的設(shè)計(jì)目標(biāo)有兩個:
(1)提高數(shù)據(jù)庫的性能,特別是滿足主要應(yīng)用的性能要求;(2)有效地利用存儲空間。
3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)3.5.1影響物理結(jié)構(gòu)的主要因素?cái)?shù)據(jù)庫的物理結(jié)構(gòu)主要由以下因素決定:
1)應(yīng)用處理需求
2)數(shù)據(jù)的特性
3)數(shù)據(jù)的使用特性
4)可用性要求
5)應(yīng)用環(huán)境
3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫的物理設(shè)計(jì)可以分為兩步進(jìn)行: (1)確定數(shù)據(jù)的物理結(jié)構(gòu),即確定數(shù)據(jù)庫的存取方法和存儲結(jié)構(gòu);(2)對物理結(jié)構(gòu)進(jìn)行評價,對物理結(jié)構(gòu)評價的重點(diǎn)是時間和效率。
3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)3.5.2物理結(jié)構(gòu)設(shè)計(jì)的任務(wù)任務(wù):主要指選擇存取方法和存儲結(jié)構(gòu),包括確定關(guān)系、索引、聚簇、日志、備份等的存儲安排和存儲結(jié)構(gòu),確定系統(tǒng)配置等。
1.關(guān)系模式存取方法的選擇索引方法、聚簇方法和Hash方法。
3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)(1)索引存取方法的選擇選擇索引存取方法實(shí)際上就是根據(jù)應(yīng)用要求確定對關(guān)系的哪些屬性列建立索引,哪些屬性列建立組合索引,哪些索引建立唯一索引等。
選擇索引方法的基本原則是:①如果一個屬性(一組)經(jīng)常在查詢條件中出現(xiàn),則考慮在這個屬性上建立索引(組合索引)。②如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引。
③如果一個(一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(這個)屬性上建立索引。④關(guān)系上定義的索引數(shù)要適當(dāng),并不是越多越好,因?yàn)橄到y(tǒng)維護(hù)索引要付出代價。3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)
(2)聚簇存取方法的選擇為了提高某個屬性或?qū)傩越M的查詢速度,把這個屬性或?qū)傩越M上具有相同值的元組集中存放在連續(xù)的物理塊上的處理稱為聚簇,這個屬性或?qū)傩越M稱為聚簇碼。
一個數(shù)據(jù)庫可以建立多個聚簇,但一個關(guān)系只能加入一個聚簇。
聚簇設(shè)計(jì)的步驟:1)根據(jù)規(guī)則確定候選聚簇,設(shè)計(jì)候選聚簇的原則是:
①
對經(jīng)常在一起進(jìn)行連接操作的關(guān)系可以建立聚簇。
3.5數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)
②如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等、比較條件中,則該單個關(guān)系可建立聚簇。
③如果一個關(guān)系的一個(或一組)屬性上的值重復(fù)率很高,則此單個關(guān)系可建立聚簇。
④如
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人股權(quán)轉(zhuǎn)讓協(xié)議書范本4篇
- 2025年度綠色環(huán)保店鋪?zhàn)赓U及設(shè)施共建合同
- 2025版時尚服飾銷售合同模板(含季節(jié)性折扣)
- 2025年度個人別墅租賃合同模板2篇
- 2025年度環(huán)保工程監(jiān)理服務(wù)合同范本
- 2025年度商鋪買賣合同(含商業(yè)配套移交協(xié)議)4篇
- 2025-2030全球魚雷泵行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國賽車運(yùn)動駕駛模擬器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2024年臨床醫(yī)師定期考核試題中醫(yī)知識題庫及答案(共330題) (二)
- 2024年七年級語文下冊期末專項(xiàng)復(fù)習(xí):記敘文閱讀
- 公司發(fā)展能力提升方案
- 電梯安全守則及乘客須知
- 你好法語第七課課件
- IT硬件系統(tǒng)集成項(xiàng)目質(zhì)量管理方案
- 《容幼穎悟》2020年江蘇泰州中考文言文閱讀真題(含答案與翻譯)
- 水上水下作業(yè)應(yīng)急預(yù)案
- API520-安全閥計(jì)算PART1(中文版)
- 2023年廣東省廣州地鐵城際鐵路崗位招聘筆試參考題庫附帶答案詳解
- 商務(wù)提成辦法
- 直流電機(jī)電樞繞組簡介
- GB/T 19889.5-2006聲學(xué)建筑和建筑構(gòu)件隔聲測量第5部分:外墻構(gòu)件和外墻空氣聲隔聲的現(xiàn)場測量
評論
0/150
提交評論