




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章關(guān)系數(shù)據(jù)庫設(shè)計(jì)6.1設(shè)計(jì)方法概述數(shù)據(jù)庫設(shè)計(jì)定義:對于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及應(yīng)用系統(tǒng),使之能有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。數(shù)據(jù)庫設(shè)計(jì)的目標(biāo)能夠滿足數(shù)據(jù)存儲需求便于最終用戶訪問具有良好的安全機(jī)制數(shù)據(jù)準(zhǔn)確并易于管理數(shù)據(jù)庫整體性能良好數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)涉及多學(xué)科的綜合技術(shù)硬件、軟件和干件的結(jié)合龐大的工程項(xiàng)目。三分技術(shù),七分管理與經(jīng)驗(yàn),十二分基礎(chǔ)數(shù)據(jù)。涉及結(jié)構(gòu)設(shè)計(jì)和行為設(shè)計(jì)二方面。典型的數(shù)據(jù)庫設(shè)計(jì)方法1、NEWORLEANS框架法2、基于3NF的方法3、ORACLEBarker方法4、基于ER模型的方法5、計(jì)算機(jī)輔助設(shè)計(jì)方法
ORACLE:DESIGNER2000SYBASE:POWERDESIGNER1、基于3NF的數(shù)據(jù)庫設(shè)計(jì)由S.Atre提出。分五個(gè)階段進(jìn)行。每個(gè)階段又分為若干步。在(第一階段)企業(yè)模式設(shè)計(jì)階段利用關(guān)系數(shù)據(jù)庫規(guī)范化理論指導(dǎo)設(shè)計(jì)3NF的關(guān)系?;?NF的數(shù)據(jù)庫設(shè)計(jì)過程
設(shè)計(jì)企業(yè)模式研究應(yīng)用環(huán)境,并設(shè)定環(huán)境中所使用的資料。決定每一種報(bào)表里各自包含的數(shù)據(jù)元素決定數(shù)據(jù)元素之間的關(guān)系,確定主關(guān)鍵字的數(shù)據(jù)元素和普通數(shù)據(jù)元素。對每一組數(shù)據(jù)元素推導(dǎo)第三范式關(guān)系?;诘玫降牡谌妒疥P(guān)系給出數(shù)據(jù)庫企業(yè)模式。2、ORACLEBarker方法
以oracle的董事RichardBarker命名。Barker負(fù)責(zé)設(shè)計(jì)了OracleDesigner關(guān)系數(shù)據(jù)庫設(shè)計(jì)和開發(fā)的自動化工具。Barker方法是傳統(tǒng)的設(shè)計(jì)方法的實(shí)時(shí)版,它提出了更好的組織數(shù)據(jù)庫設(shè)計(jì)工作的詳細(xì)步驟。Barker方法包括七個(gè)階段:制定策略:安排設(shè)計(jì)工作。分析階段:開發(fā)小組與關(guān)鍵人員進(jìn)行交流,收集所有的業(yè)務(wù)需求。設(shè)計(jì)階段:在確定邏輯模型的基礎(chǔ)上進(jìn)行物理模型的設(shè)計(jì)。構(gòu)建階段:創(chuàng)建數(shù)據(jù)庫,應(yīng)用程序。編寫文檔:技術(shù)文檔,系統(tǒng)文檔和用戶文檔。轉(zhuǎn)換階段:將準(zhǔn)備好的數(shù)據(jù)轉(zhuǎn)換到產(chǎn)品環(huán)境中。使用真實(shí)的數(shù)據(jù)對最終用戶應(yīng)用軟件和數(shù)據(jù)庫進(jìn)行測試,確保應(yīng)用軟件的各個(gè)功能模塊工作正常,以及存儲在數(shù)據(jù)庫中的數(shù)據(jù)是一致的。產(chǎn)品階段:數(shù)據(jù)庫必須在產(chǎn)品環(huán)境下運(yùn)行,并可供最終用戶的日常使用。Barker數(shù)據(jù)庫設(shè)計(jì)方法過程
3E-R方法P.P.S.Chen于1976年提出,基本思想是:首先設(shè)計(jì)一個(gè)企業(yè)模式(現(xiàn)實(shí)世界的反映),與存儲組織、存取方法、效率等無關(guān)。然后將企業(yè)模式變換為某個(gè)DBMS上的數(shù)據(jù)模式。E-R圖所描述的模式叫企業(yè)模式。
企業(yè)模式是面向問題的、概念性的模型,與DBMS無關(guān),是高級概念模型。與DBMS有關(guān)的模式稱為邏輯模式或用戶模式
E-R方法簡單易懂,企業(yè)模式比較穩(wěn)定,不受DBMS改變的影響,在優(yōu)化系統(tǒng)性能時(shí),只需修改用戶模式。因此,E-R方法是使用最廣泛的方法之一。
1981年M.Flavin對E-R方法進(jìn)行了改進(jìn)并稱之為信息建模法
,信息建模=實(shí)體(對象)+屬性+關(guān)系+父類型/子類型+關(guān)聯(lián)對象。
1988年又由S.Shlaer和S.Mellor發(fā)展為語義數(shù)據(jù)建模方法,并因此有了許多面向?qū)ο蟮奶攸c(diǎn)。
基于ER方法數(shù)據(jù)庫設(shè)計(jì)的一般步驟1.需求分析2.概念設(shè)計(jì)3.邏輯設(shè)計(jì)4.物理設(shè)計(jì)5.實(shí)現(xiàn)設(shè)計(jì)4OracledesignerOracleDesigner的功能:系統(tǒng)需求建模(ModellingSystemRequirements):用于策略和分析工作。生成初步設(shè)計(jì)(GeneratingPreliminaryDesigns):用于轉(zhuǎn)換到預(yù)設(shè)計(jì)工作。設(shè)計(jì)和生成(DesigningandGenerating):用于設(shè)計(jì)和建造工作。實(shí)用程序(Utilities):用于整個(gè)生命周期的工作。有四種表示系統(tǒng)的數(shù)據(jù)和過程的工具:過程建模工具
(ProcessModeller)功能層次圖示化工具
(FunctionHierarchyDiagrammer)實(shí)體關(guān)系圖示化工具
(EntityRelationshipDiagrammer)數(shù)據(jù)流圖示化工具
(DataflowDiagrammer)系統(tǒng)需求建模系統(tǒng)需求建模產(chǎn)生初步設(shè)計(jì)從分析轉(zhuǎn)向設(shè)計(jì)(從邏輯定義轉(zhuǎn)換為物理定義),即實(shí)體轉(zhuǎn)換為數(shù)據(jù)表、屬性轉(zhuǎn)換為列、聯(lián)系轉(zhuǎn)換為外部鍵列和約束、功能轉(zhuǎn)換為模塊。產(chǎn)生初步設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)轉(zhuǎn)換器(DatabaseDesignTransformer)應(yīng)用設(shè)計(jì)轉(zhuǎn)換器(ApplicationDesignTransformer)轉(zhuǎn)換工作大大減少了轉(zhuǎn)換中需要做的耗時(shí)、重復(fù)和易于出錯(cuò)工作產(chǎn)生初步設(shè)計(jì)產(chǎn)生初步設(shè)計(jì)DatabaseDesignTransformer(DDT)復(fù)制實(shí)體和屬性定義為設(shè)計(jì)中的數(shù)據(jù)庫和列表根據(jù)實(shí)體間關(guān)系創(chuàng)建外部鍵約束產(chǎn)生初步設(shè)計(jì)設(shè)計(jì)編輯器(DesignerEditor)對象數(shù)據(jù)庫設(shè)計(jì)器(ObjectDatabaseDesigner)生成數(shù)據(jù)庫實(shí)用程序(GenerateDatabaseUtilities)前端代碼生成器(Front-EndCodeGenerator)設(shè)計(jì)捕獲實(shí)用程序(DesignCaptureUtilities)設(shè)計(jì)和生成設(shè)計(jì)和生成實(shí)用程序RepositoryObjectNavigator對象瀏覽器MatrixDiagrammer陣列圖示化工具RepositoryReports報(bào)表工具RepositoryAdministrationUtility管理實(shí)用程序使用程序6.2數(shù)據(jù)庫設(shè)計(jì)理論關(guān)系模式設(shè)計(jì)中的問題函數(shù)依賴函數(shù)依賴的公理系統(tǒng)關(guān)系模式規(guī)范形式關(guān)系模式的規(guī)范化從理論上能否找到判斷設(shè)計(jì)好的數(shù)據(jù)庫模式的標(biāo)準(zhǔn)?
例在校大學(xué)生的學(xué)習(xí)情況會涉及的屬性:
學(xué)號(S#)、課程號(CB)、課程名(CN)、學(xué)期數(shù)(T)、學(xué)分(CG)、 成績(G),其屬性集合表示為:U={S#,CB,CN,T,CG,G}。
關(guān)系r關(guān)系r存在問題?學(xué)號課程號課程名學(xué)期數(shù)學(xué)分成績關(guān)系r存在的弊?。?/p>
(1)冗余:課程號為J1的課程在第4學(xué)期開,課程名是“數(shù)據(jù)庫系統(tǒng)”,在關(guān)系r的5個(gè)元組中都有記載。
(2)插入異常:如果有一門課,課程號為J5,課程名為“編譯原理”,學(xué)分為3,計(jì)劃在第5學(xué)期開,但因?qū)W生還未選課,學(xué)號沒有確定值,構(gòu)不成一個(gè)元組,無法插入到關(guān)系r中去。 存在計(jì)劃開設(shè)的課程因暫時(shí)沒有學(xué)生選,無法將這些課程號和課程名等信息保存到數(shù)據(jù)庫中。(3)刪除異常:如學(xué)號1110703的學(xué)生考J2課時(shí)違紀(jì),分?jǐn)?shù)作廢,應(yīng)在關(guān)系r中刪去這個(gè)元組。 但這個(gè)元組還包含課程號為J2,課程名為數(shù)據(jù)結(jié)構(gòu),學(xué)分為3的信息。要?jiǎng)h除只能刪除整個(gè)元組.
“冤枉”地刪除掉了課程號為J2,課程名為“數(shù)據(jù)結(jié)構(gòu)”,學(xué)分為3的信息。 不管目前有無學(xué)生學(xué)習(xí)“數(shù)據(jù)結(jié)構(gòu)”這門課程,這門課程的相關(guān)信息應(yīng)保留在數(shù)據(jù)庫中.
在數(shù)據(jù)庫模式中,針對關(guān)系模式的某一關(guān)系r為什么會存在上述弊端呢?怎樣才能在同一個(gè)屬性集U上給出沒有這些弊端的數(shù)據(jù)庫模式呢?--關(guān)系數(shù)據(jù)庫理論函數(shù)依賴
關(guān)系r的關(guān)系模式:
R={S#,CB,CN,T,CG,G}
存在的函數(shù)依賴:T函數(shù)依賴于CB,CN函數(shù)依賴于CB,CG函數(shù)依賴于CB,G函數(shù)依賴于(S#,CB)等。注:學(xué)號(S#)、課程號(CB)、課程名(CN)、學(xué)期數(shù)(T)、學(xué)分(CG)、 成績(G).
函數(shù)依賴的概念(簡記為FD)設(shè)R(U)是屬性集U上的一個(gè)關(guān)系模式,
X,YU。若對R(U)中任意一個(gè)可能關(guān)系r,r中不可能有兩個(gè)元組在X的屬性分量值相等,而在Y的那些屬性分量值不相等,則稱“X函數(shù)決定Y”,或“Y函數(shù)依賴于X”,記作X→Y。
X稱為決定因子,或稱為函數(shù)依賴的左部,Y稱為函數(shù)依賴的右部。
幾種特定的函數(shù)依賴
1.非平凡函數(shù)依賴和平凡函數(shù)依賴定義設(shè)關(guān)系模式R(U),X、YU:
如果X→Y,且Y不是X的子集,則稱X→Y為非平凡的函數(shù)依賴;如果X→Y,且YX,則稱X→Y為平凡的函數(shù)依賴。
2.完全函數(shù)依賴和部分函數(shù)依賴設(shè)關(guān)系模式R(U),X,YU:
如果X→Y,并且對于X的任何一個(gè)真子集Z,Z→Y都不成立,則稱Y完全函數(shù)依賴于X;
若X→Y,但對于X的某一個(gè)真子集Z,有Z→Y成立,則稱Y部分函數(shù)依賴于X。
例關(guān)系模式R={S#,CB,CN,T,CG,G}中,CB→T說明T完全函數(shù)依賴于CB;
(S#,CB,CN)→G,G部分依賴于(S#,CB,CN)因?yàn)?S#,CB)→G。3.傳遞函數(shù)依賴設(shè)關(guān)系模式R(U),XU,YU,ZU。如果X→Y,Y→Z成立,但Y→X不成立,且Z-X、Z-Y和Y-X均不空,則稱X→Z為傳遞函數(shù)依賴。
例如:關(guān)系模式R={A,B,C,D},其上的函數(shù)依賴集F={A→B,B→C,A→C,AB→D},則A→C為傳遞函數(shù)依賴。
關(guān)系模式規(guī)范形式第一范式(1NF)
定義:設(shè)R是一個(gè)關(guān)系模式。如果R的每個(gè)屬性的值域都是不可分的簡單數(shù)據(jù)項(xiàng)(原子)的集合, 稱這個(gè)關(guān)系模式屬于第一范式(firstnormalform),簡記作R∈1NF。
不滿足1NF的關(guān)系稱為非規(guī)范化的關(guān)系,滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系。在任何一個(gè)關(guān)系數(shù)據(jù)庫系統(tǒng)中,關(guān)系至少應(yīng)該是第一范式。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。【例】如表描述的是學(xué)生選課的情況。
表
學(xué)生選課關(guān)系上表描述的學(xué)生選課關(guān)系不是1NF,因?yàn)檎n程一列包含多門課,不是原子值.表:學(xué)生選課關(guān)系第二范式(2NF)定義
若關(guān)系模式R是1NF,而且每一個(gè)非主屬性都完全函數(shù)依賴于R的候選鍵,則R稱為第二范式,記作R∈2NF。
例:學(xué)生-宿舍-課程關(guān)系模式SLC(SNO,SD,SL,CNO,G)為第幾范式?SC(SNO,CNO,G)為第幾范式?SDL(SNO,SD,SL)為第幾范式?2NF存在的問題?
第三范式(3NF)定義:如果關(guān)系模式R是2NF,而且它的任何一個(gè)非主屬性都不傳遞地依賴于任何候選鍵,則R稱為第三范式,記作R∈3NF。SC(SNO,CNO,G)為第幾范式?SDL(SNO,SD,SL)為第幾范式?問題1:供應(yīng)關(guān)系SSP(SNO,SNAME,PNO,QTY)問題2:SC(SNO,CNO,G)為第幾范式?問題1:供應(yīng)關(guān)系SSP(SNO,SNAME,PNO,QTY)?
1NF問題2:SC(SNO,CNO,G)為第幾范式?3NF關(guān)系模式的規(guī)范化關(guān)系分為兩類:
(1)靜態(tài)關(guān)系:一旦加載數(shù)據(jù)后,用戶只能在這個(gè)關(guān)系上運(yùn)行查詢操作。這種關(guān)系的要求是必須屬于1NF。
(2)動態(tài)關(guān)系:當(dāng)數(shù)據(jù)加載后,經(jīng)常對數(shù)據(jù)進(jìn)行增、刪、改操作。這種關(guān)系的要求是至少屬于3NF。
一個(gè)低一級范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級范式的關(guān)系模式集合,這種過程就叫關(guān)系模式的規(guī)范化。關(guān)系模式規(guī)范化的步驟關(guān)系模式規(guī)范化的基本步驟
1NF ↓消除非主屬性對碼的部分函數(shù)依賴消除決定屬性 2NF集非碼的非平 ↓消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴3NF ↓消除主屬性對碼的部分和傳遞函數(shù)依賴
BCNF ↓消除非平凡且非函數(shù)依賴的多值依賴
4NF關(guān)系模式規(guī)范化的步驟(續(xù))規(guī)范化的基本思想 逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”, 采用“一事一地”的模式設(shè)計(jì)原則,讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它“分離”出去。規(guī)范化實(shí)質(zhì)上是概念的單一化。關(guān)系模式規(guī)范化的步驟(續(xù))不能說規(guī)范化程度越高的關(guān)系模式就越好。在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式。分解可能帶來的問題?
分解后的多個(gè)模式是否與原來的模式完全一樣呢? 分解后所表達(dá)的函數(shù)依賴集是否與原來的函數(shù)依賴集等價(jià)呢?
分解要“保持函數(shù)依賴性”,又要具有“無損連接性”。具有無損連接性的關(guān)系模式分解
1.分解ρ具有無損連接性設(shè)關(guān)系模式R(U),F(xiàn)是R上的函數(shù)依賴集合,ρ={R1,R2,…,Rn}是R的一個(gè)分解,如果對R的任一滿足F的關(guān)系r下式成立:則稱分解ρ為具有無損連接性或分解ρ為無損連接分解。3、定理
設(shè)關(guān)系模式R的一個(gè)分解ρ={R1,R2}, U1、U2和U分別是R1、R2和R的屬性集合,F(xiàn)是R上的函數(shù)依賴集。ρ具有無損連接性的充分必要條件是:
(R1∩R2)→(R1-R2)∈F+或(R1∩R2)→(R2-R1)∈F+即:(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+
例:R(A,B,C),F(xiàn)={A
→B,B→C},問:ρ1={R1(A,B),R2(B,C)};
ρ2={R1(A,C),R2(B,C)};
ρ3={R1(A,C),R2(A,B)};是否為無損連接分解?(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+
ρ1={R1(A,B),R2(B,C)};無損連接分解
ρ2={R1(A,C),R2(B,C)};有損連接分解
ρ3={R1(A,C),R2(A,B)};無損連接分解保持函數(shù)依賴分解設(shè)關(guān)系模式R<U,F>被分解為若干個(gè)關(guān)系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>(Fi為F在Ui上的投影),若F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊(yùn)含,
F+=(F1UF2…UFN)+則稱關(guān)系模式R的這個(gè)分解是保持函數(shù)依賴的分解。Fi為F在Ui上的投影
:π
Ui(F)=={X→Y|X→Y∈F+,且XY∈Ui}
分解為3NF,且具有函數(shù)依賴保持性的算法。輸入:關(guān)系模式R(U)和關(guān)系模式R的函數(shù)依賴F的極小依賴集F;輸出:R的一個(gè)分解ρ={R1,R2,…,Rn},Ri為3NF(i=1,2,…,n),ρ具有函數(shù)依賴保持性。方法:(1)如果極小依賴集F中有一個(gè)依賴X→A,且XA=U,則輸出ρ={R},轉(zhuǎn)向(5);(2)如果R中某些屬性與F中所有函數(shù)依賴的左部和右部都無關(guān),則將它們構(gòu)成一個(gè)關(guān)系子模式Rj,并從R中將它們分出去。
(3)對于F中的每一個(gè)有相同左邊的分在一個(gè)模式內(nèi),如X→Ai,則XAi構(gòu)成一個(gè)子模式(i=1,2,3…);
(4)對于F中的每一個(gè)Xi→Ai,都構(gòu)成一個(gè)關(guān)系子模式Ri=XiAi;
(5)停止分解,輸出ρ。
算法把一個(gè)關(guān)系模式分解為3NF,使它既具有無損連接性,又具有函數(shù)依賴保持性。輸入:關(guān)系模式R和R的函數(shù)依賴集F,X是R的一個(gè)候選鍵。輸出:R的一個(gè)分解ρ={R1,R2,…,Rn},Ri為3NF(i=1,2,…,n),且ρ具有無損連接性和函數(shù)依賴保持性。
方法:
(1)根據(jù)算法求出函數(shù)依賴保持性分解:ρ={R1,R2,…,Rn};
(2)X∈Ri
具有無損連接性,轉(zhuǎn)向(4);
(3)令ρ=ρ∪{X},其中,X是R的一個(gè)候選鍵;
(4)輸出ρ。
【例】設(shè)關(guān)系模式R(U),其中U={C,T,H,R,S,G},R上的函數(shù)依賴集F={CS→G,C→T,TH→R,HR→C,HS→R}。試將其保持函數(shù)依賴且無損連接分解為3NF。解:1、因?yàn)?HS)+={C,T,H,R,S,G},所以HS是關(guān)系模式R的惟一候選鍵。2、利用算法R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR3、HS∈R5
于是,求出的分解ρ={R1,R2,R3,R4,R5}滿足3NF。且保持函數(shù)依賴和無損連接分解。規(guī)范化理論提供了一套完整的模式分解算法,按照這套算法可以做到:若要求分解具有無損連接性,那么模式分解一定能夠達(dá)到4NF。若要求分解保持函數(shù)依賴,那么模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。若要求分解既具有無損連接性,又保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。規(guī)范化理論為數(shù)據(jù)庫設(shè)計(jì)提供了理論的指南和工具并不是規(guī)范化程度越高(范式越高),模式就越好必須結(jié)合應(yīng)用環(huán)境和現(xiàn)實(shí)世界的具體情況合理地選擇數(shù)據(jù)庫模式6.3基于ER方法的數(shù)據(jù)庫設(shè)計(jì)1.需求分析2.概念設(shè)計(jì)3.邏輯設(shè)計(jì)4.物理設(shè)計(jì)5.實(shí)現(xiàn)設(shè)計(jì)需求分析
需求收集和分析1.信息要求2.處理要求3.功能要求 4
.環(huán)境特征結(jié)果:數(shù)據(jù)字典(數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個(gè)部分)需求分析(1)信息要求,用戶對即將建立的數(shù)據(jù)庫有些什么要求?保存什么信息?要從數(shù)據(jù)庫中得到什么信息?提供的數(shù)據(jù)與取得的信息是什么形式?等等。(2)處理要求,如何使用數(shù)據(jù)?對各種數(shù)據(jù)的使用頻率如何?檢索方式如何?要輸出那些表格?被存取的數(shù)據(jù)量與運(yùn)行限制等。
需求分析(3).功能要求,對將要建立的信息系統(tǒng)應(yīng)具有那些功能?能給組織解決那些處理問題?功能要求包括規(guī)劃的、現(xiàn)存的、人工的或自動的等各方面。 (4).環(huán)境特征,企業(yè)的規(guī)模與結(jié)構(gòu)、部門的地理分布、現(xiàn)有系統(tǒng)資源、數(shù)據(jù)庫的安全性、完整性限制以及DBMS與運(yùn)行環(huán)境約束等。
學(xué)生學(xué)籍管理子系統(tǒng)簡要數(shù)據(jù)字典數(shù)據(jù)結(jié)構(gòu):學(xué)生含義說明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)學(xué)生的有關(guān)信息組成:學(xué)號,姓名,性別,年齡,所在系,年級
學(xué)生學(xué)籍管理子系統(tǒng)簡要數(shù)據(jù)字典數(shù)據(jù)項(xiàng):學(xué)號含義說明:唯一標(biāo)識每個(gè)學(xué)生別名:學(xué)生編號類型:字符型長度:8取值范圍:00000000至99999999取值含義:前兩位標(biāo)別該學(xué)生所在年級,后六位按順序編號
學(xué)生學(xué)籍管理子系統(tǒng)簡要數(shù)據(jù)字典數(shù)據(jù)流:體檢結(jié)果說明:學(xué)生參加體格檢查的最終結(jié)果數(shù)據(jù)流來源:體檢數(shù)據(jù)流去向:批準(zhǔn)組成:……學(xué)生學(xué)籍管理子系統(tǒng)簡要數(shù)據(jù)字典數(shù)據(jù)存儲:學(xué)生登記表說明:記錄學(xué)生的基本情況組成:……數(shù)據(jù)量:每年3000張存取方式:隨機(jī)存取
學(xué)生學(xué)籍管理子系統(tǒng)簡要數(shù)據(jù)字典處理過程:分配宿舍說明:為所有新生分配學(xué)生宿舍輸入:學(xué)生,宿舍,輸出:宿舍安排處理:在新生報(bào)到后,為所有新生分配學(xué)生宿舍。要求同一間宿舍只能安排同一性別的學(xué)生,同一個(gè)學(xué)生只能安排在一個(gè)宿舍中。每個(gè)學(xué)生的居住面積不小于3平方米。安排新生宿舍其處理時(shí)間應(yīng)不超過15分鐘。
概念設(shè)計(jì)對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。結(jié)果:E-R圖概念設(shè)計(jì)常用方法:
(1)自底向上:首先根據(jù)需求分析的結(jié)果設(shè)計(jì)各個(gè)局部E-R圖;然后集成并優(yōu)化局部視圖。
(2)逐步擴(kuò)張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。
畫E-R圖的基本步驟:(1)確定實(shí)體類型;(2)確定聯(lián)系類型;(3)畫出E-R圖;(4)確定屬性;集成局部E-R圖集成時(shí)注意三類沖突:屬性沖突
(1)屬性域沖突,即屬性值的類型、取值范圍或取值集合不同。(2)屬性取值單位沖突。命名沖突(1)同名異義。(2)異名同義(一義多名)。
集成局部E-R圖結(jié)構(gòu)沖突
(1)同一對象在不同應(yīng)用中具有不同的抽象。(實(shí)體/屬性)(2)同一實(shí)體在不同局部視圖中所包含的屬性不完全相同。(3)實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型。
優(yōu)化:消除冗余數(shù)據(jù)和冗余聯(lián)系
學(xué)生學(xué)籍管理局部E-R圖課程管理局部E-R圖學(xué)生管理集成E-R圖邏輯設(shè)計(jì)將概念設(shè)計(jì)轉(zhuǎn)換為關(guān)系模型E-R圖轉(zhuǎn)換為關(guān)系模式的原則:
(1)
一個(gè)實(shí)體集轉(zhuǎn)換為一個(gè)關(guān)系模式。
(2)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。(3)一個(gè)1:n聯(lián)系可以與n端對應(yīng)的關(guān)系模式合并(1的關(guān)鍵字放入N的關(guān)系中)。(4)
一個(gè)1:1聯(lián)系可以與任意一端對應(yīng)的關(guān)系模式合并。(5)
三個(gè)或三個(gè)以上實(shí)體間的多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式
(6)
同一實(shí)體集間的聯(lián)系(自聯(lián)系),可按上述1:1、1:n和m:n三種情況分別處理。
邏輯設(shè)計(jì)—關(guān)系模型的優(yōu)化以規(guī)范化理論為指導(dǎo),進(jìn)行優(yōu)化。確定數(shù)據(jù)依賴。對于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。對關(guān)系模式逐一進(jìn)行分析,確定各關(guān)系模式分別屬于第幾范式??疾槭欠翊嬖诓糠忠蕾嚒鬟f依賴、多值依賴等,對關(guān)系模式進(jìn)行必要的分解。按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析得到的模式是否合適,確定是否需要對它們進(jìn)行合并或分解。物理設(shè)計(jì)為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)。確定數(shù)據(jù)庫物理結(jié)構(gòu)的內(nèi)容(1).確定數(shù)據(jù)的存儲結(jié)構(gòu)(2).設(shè)計(jì)數(shù)據(jù)的存取路徑(3).確定數(shù)據(jù)的存放位置(4).確定系統(tǒng)配置
確定數(shù)據(jù)的存儲結(jié)構(gòu)確定數(shù)據(jù)存儲結(jié)構(gòu):綜合考慮存取時(shí)間、存儲空間利用率和維護(hù)代價(jià)三方面的因素
使用聚簇功能,提高某個(gè)屬性或?qū)傩越M的查詢速度建立和維護(hù)聚簇的開銷是很大的設(shè)計(jì)數(shù)據(jù)的存取路徑在關(guān)系數(shù)據(jù)庫中,設(shè)計(jì)存取路徑主要是指確定如何建立索引確定數(shù)據(jù)的存放位置(續(xù))基本原則根據(jù)應(yīng)用情況將易變部分與穩(wěn)定部分分開存放存取頻率較高部分與存取頻率較低部分分開存放以提高系統(tǒng)性能確定數(shù)據(jù)的存放位置(續(xù))例:數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上。如果計(jì)算機(jī)有多個(gè)磁盤,可以考慮將表和索引分別放在不同的磁盤上,在查詢時(shí),由于兩個(gè)磁盤驅(qū)動器分別在工作,因而可以保證物理讀寫速度比較快??梢詫⑷罩疚募c數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能。確定系統(tǒng)配置DBMS產(chǎn)品一般都提供了一些存儲分配參數(shù)
同時(shí)使用數(shù)據(jù)庫的用戶數(shù)同時(shí)打開的數(shù)據(jù)庫對象數(shù)使用的緩沖區(qū)大小、個(gè)數(shù)時(shí)間片大小數(shù)據(jù)庫的大小裝填因子鎖的數(shù)目等等確定系統(tǒng)配置(續(xù))系統(tǒng)都為這些變量賦予了合理的缺省值。但是這些值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行物理設(shè)計(jì)時(shí),需要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)。
在物理設(shè)計(jì)時(shí)對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運(yùn)行時(shí)還要根據(jù)系統(tǒng)實(shí)際運(yùn)行情況做進(jìn)一步的調(diào)整,以期切實(shí)改進(jìn)系統(tǒng)性能。實(shí)現(xiàn)設(shè)計(jì)
運(yùn)用DBMS提供的數(shù)據(jù)語言(例如SQL)開發(fā)工具,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,進(jìn)行試運(yùn)行。數(shù)據(jù)庫實(shí)施定義數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)裝載
數(shù)據(jù)庫試運(yùn)行數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫運(yùn)行和維護(hù)物理模型編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫系統(tǒng)定義數(shù)據(jù)庫結(jié)構(gòu)(續(xù))例,可以用SQL語句如下定義表結(jié)構(gòu):CREATETABLE學(xué)生
(學(xué)號CHAR(8),
……………);CREATETABLE課程
(
……………);……………定義數(shù)據(jù)庫結(jié)構(gòu)(續(xù))在這些基本表上定義視圖:
CREATEVIEW.... (
…………… ); ……………
如果需要使用聚簇,在建基本表之前,應(yīng)先用CREATECLUSTER語句定義聚族。數(shù)據(jù)裝載數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫是數(shù)據(jù)庫實(shí)施階段最主要的工作。數(shù)據(jù)裝載方法人工方法計(jì)算機(jī)輔助數(shù)據(jù)入庫數(shù)據(jù)裝載(續(xù))人工方法:適用于小型系統(tǒng)步驟1)篩選數(shù)據(jù)。需要裝入數(shù)據(jù)庫中的數(shù)據(jù)通常都分散在各個(gè)部門的數(shù)據(jù)文件或原始憑證中,所以首先必須把需要入庫的數(shù)據(jù)篩選出來。2)轉(zhuǎn)換數(shù)據(jù)格式。篩選出來的需要入庫的數(shù)據(jù),其格式往往不符合數(shù)據(jù)庫要求,還需要進(jìn)行轉(zhuǎn)換。這種轉(zhuǎn)換有時(shí)可能很復(fù)雜。
3)輸入數(shù)據(jù)。將轉(zhuǎn)換好的數(shù)據(jù)輸入計(jì)算機(jī)中。
4)校驗(yàn)數(shù)據(jù)。檢查輸入的數(shù)據(jù)是否有誤。數(shù)據(jù)裝載(續(xù))計(jì)算機(jī)輔助數(shù)據(jù)入庫:適用于中大型系統(tǒng)步驟1)
篩選數(shù)據(jù)2)輸入數(shù)據(jù)。由錄入員將原始數(shù)據(jù)直接輸入計(jì)算機(jī)中。數(shù)據(jù)輸入子系統(tǒng)應(yīng)提供輸入界面。3)校驗(yàn)數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)采用多種檢驗(yàn)技術(shù)檢查輸入數(shù)據(jù)的正確性。數(shù)據(jù)裝載(續(xù))4)
轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)根據(jù)數(shù)據(jù)庫系統(tǒng)的要求,從錄入的數(shù)據(jù)中抽取有用成分,對其進(jìn)行分類,然后轉(zhuǎn)換數(shù)據(jù)格式。抽取、分類和轉(zhuǎn)換數(shù)據(jù)是數(shù)據(jù)輸入子系統(tǒng)的主要工作,也是數(shù)據(jù)輸入子系統(tǒng)的復(fù)雜性所在。5)綜合數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)對轉(zhuǎn)換好的數(shù)據(jù)根據(jù)系統(tǒng)的要求進(jìn)一步綜合成最終數(shù)據(jù)。數(shù)據(jù)裝載(續(xù))如果數(shù)據(jù)庫是在老的文件系統(tǒng)或數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上設(shè)計(jì)的,則數(shù)據(jù)輸入子系統(tǒng)只需要完成轉(zhuǎn)換數(shù)據(jù)、綜合數(shù)據(jù)兩項(xiàng)工作,直接將老系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)換成新系統(tǒng)中需要的數(shù)據(jù)格式。為了保證數(shù)據(jù)能夠及時(shí)入庫,應(yīng)在數(shù)據(jù)庫物理設(shè)計(jì)的同時(shí)編制數(shù)據(jù)輸入子系統(tǒng)。編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì)應(yīng)該與數(shù)據(jù)庫設(shè)計(jì)并行進(jìn)行。在數(shù)據(jù)庫實(shí)施階段,當(dāng)數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以開始編制與調(diào)試數(shù)據(jù)庫的應(yīng)用程序。調(diào)試應(yīng)用程序時(shí)由于數(shù)據(jù)入庫尚未完成,可先使用模擬數(shù)據(jù)。數(shù)據(jù)庫試運(yùn)行應(yīng)用程序調(diào)試完成,并且已有一小部分?jǐn)?shù)據(jù)入庫后,就可以開始數(shù)據(jù)庫的試運(yùn)行。數(shù)據(jù)庫試運(yùn)行也稱為聯(lián)合調(diào)試,其主要工作包括:1)功能測試:實(shí)際運(yùn)行應(yīng)用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,測試應(yīng)用程序的各種功能。2)性能測試:測量系統(tǒng)的性能指標(biāo),分析是否符合設(shè)計(jì)目標(biāo)。數(shù)據(jù)庫試運(yùn)行(續(xù))數(shù)據(jù)庫試運(yùn)行則是要實(shí)際測量系統(tǒng)的各種性能指標(biāo)(不僅是時(shí)間、空間指標(biāo)),如果結(jié)果不符合設(shè)計(jì)目標(biāo),則需要返回物理設(shè)計(jì)階段,調(diào)整物理結(jié)構(gòu),修改參數(shù);有時(shí)甚至需要返回邏輯設(shè)計(jì)階段,調(diào)整邏輯結(jié)構(gòu)。數(shù)據(jù)庫試運(yùn)行(續(xù))數(shù)據(jù)的分期入庫重新設(shè)計(jì)物理結(jié)構(gòu)甚至邏輯結(jié)構(gòu),會導(dǎo)致數(shù)據(jù)重新入庫。由于數(shù)據(jù)入庫工作量實(shí)在太大,所以可以采用分期輸入數(shù)據(jù)的方法先輸入小批量數(shù)據(jù)供先期聯(lián)合調(diào)試使用待試運(yùn)行基本合格后再輸入大批量數(shù)據(jù)逐步增加數(shù)據(jù)量,逐步完成運(yùn)行評價(jià)數(shù)據(jù)庫試運(yùn)行(續(xù))數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)在數(shù)據(jù)庫試運(yùn)行階段,系統(tǒng)還不穩(wěn)定,硬、軟件故障隨時(shí)都可能發(fā)生系統(tǒng)的操作人員對新系統(tǒng)還不熟悉,誤操作也不可避免因此必須做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)工作,盡量減少對數(shù)據(jù)庫的破壞。眾恒信息管理系統(tǒng)設(shè)計(jì)請基于ER方法進(jìn)行數(shù)據(jù)庫設(shè)計(jì)(2.概念設(shè)計(jì)3.邏輯設(shè)計(jì)4.物理設(shè)計(jì)5.實(shí)現(xiàn)設(shè)計(jì))至少包括以下工作:1設(shè)計(jì)該系統(tǒng)的E一R圖(注:E-R模型圖中可以省略屬性,只在關(guān)系模式中給出每個(gè)實(shí)體所含字段)。2將E-R模型轉(zhuǎn)換成為關(guān)系模型,主鍵以雙下劃線標(biāo)出,外鍵以單下劃線標(biāo)出。3假設(shè)用ORACLE實(shí)現(xiàn)該數(shù)據(jù)庫系統(tǒng),請?jiān)O(shè)計(jì)該系統(tǒng)的表空間、索引、聚簇、視圖、角色,并為角色授權(quán)等。練習(xí)題1.
指出下列關(guān)系模式的候選鍵是什么,它是第幾范式?并解釋其理由。
(1)R的屬性集合為{A,B,C},其函數(shù)依賴集合為F={AB→C}。
(2)R的屬性集合為{A,B,C,D},其函數(shù)依賴集合為F={B→D,AB→C}。(3)R的屬性集合為{A,B,C,D,E,G},其函數(shù)依賴集合為F={C→G,E→A,CE→D,A→B}。
(4)R的屬性集合為{A,B,C},其函數(shù)依賴集合為F={B→A,C→B,A→B}。
(5)R的屬性集合為{A,B,C},其函數(shù)依賴集合為F={AC→B,B→C}。
(6)R的屬性集合為{A,B,C,D},其函數(shù)依賴集合為F={AB→C,CD→A,BC→D,AD→B}。
(7)R的屬性集合為{A,B,C,D,E},其函數(shù)依賴集合為F={AC→B,B→D,D→C,D→E}。
2.若關(guān)系模式S(S#,SN,SD,MN,C#,GR),關(guān)系模式R的函數(shù)依賴集F={S?!鶶D,S?!鶶N,SD→MN,(S#,C#)→GR}。 將其分解為S1(S#,SN,SD,MN),SC(S#,C#,GR)。再將S1分為S11(S#,SN,MN)和S12(SD,MN),
求關(guān)系S的范式等級,關(guān)系S1和SC的范式等級,關(guān)系S11,S12的范式等級。3.設(shè)關(guān)系模式R的屬性集合為{A,B,C},其上的函數(shù)依賴集F={B→C,A→C},判斷分解ρ1={R1(A,B),R2(A,C)},ρ2={R1(A,C),R2(B,C)}是否具有無損連接性和函數(shù)依賴保持性?
4設(shè)有下表所示的關(guān)系R:
試問:(1)關(guān)系R為第幾范式?為什么?
(2)它是否存在刪除異常操作?若存在,何時(shí)發(fā)生?(3)討論這些數(shù)據(jù)的語義,寫出它相應(yīng)的函數(shù)依賴集。(4)將它分解為高一級范式。函數(shù)依賴的公理系統(tǒng)Armstrong公理系統(tǒng)
1.Armstrong公理系統(tǒng)的三條推理規(guī)則設(shè)關(guān)系模式R(U),X,Y,Z,WU,F(xiàn)是R的一個(gè)函數(shù)依賴集合,則Armstrong公理系統(tǒng)包含如下三條推理規(guī)則:
(1)自反律(Reflexivity):若YXU,則F蘊(yùn)涵X→Y。(2)增廣律(又稱外延性,augmentation):若F蘊(yùn)涵X→Y,ZU,則F蘊(yùn)涵XZ→YZ。(3)傳遞律(transitivity):若F蘊(yùn)涵X→Y和Y→Z,則F蘊(yùn)涵X→Z。
Armstrong公理提供一整套推理規(guī)則,它能從F推導(dǎo)出F+中的所有依賴(完備性),從F推不出任何不屬于F+的依賴(正確性)。2.Arestrong公理的三個(gè)推論
由Arestrong公理可得到下面三個(gè)推論:
(1)合并規(guī)則:若X→Y,X→Z,則X→YZ。
(2)分解規(guī)則:若X→Y且ZY,則X→Z。
(3)偽傳遞規(guī)則:若X→Y,YZ→W,則XZ→W。
屬性集合X關(guān)于函數(shù)依賴集F的閉包
關(guān)系模式R(U),U={A1,A2,…,An},Ai∈U,XU,X+={Ai|X→Ai能由F根據(jù)Armstrong公理系統(tǒng)導(dǎo)出且Ai∈U}, 則稱X+是屬性集合X關(guān)于函數(shù)依賴集F的閉包。
算法
計(jì)算屬性集X的閉包X+。輸入:屬性集X和函數(shù)依賴集F。輸出:關(guān)于F的X的閉包X+。方法:①令X(0)=X,i=0;②令X(i+1)=X(i)∪{A|VX(i),V→W∈F,A∈W};③若已經(jīng)沒有V→W∈F,能使X(i+1)≠X(i),則X+=X(i),輸出X+,算法結(jié)束;否則,令i=i+1,轉(zhuǎn)去執(zhí)行第(2)步?!纠吭O(shè)關(guān)系模式R(U)上的函數(shù)依賴集為F,U={A,B,C,D,E,I};F={A→D,AB→E,BI→E,CD→I,E→C},試計(jì)算(AE)+。
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆第二醫(yī)學(xué)院《基礎(chǔ)老撾語一》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年中國無人化打包系統(tǒng)市場調(diào)查研究報(bào)告
- 2025年中國斜紋縐市場調(diào)查研究報(bào)告
- 2025年中國數(shù)字式電腦吊桿控制臺數(shù)據(jù)監(jiān)測報(bào)告
- 2025至2031年中國織物水洗酶行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025-2030年中國丁苯透明抗沖樹脂(K膠)產(chǎn)量預(yù)測及發(fā)展趨勢研究報(bào)告
- 2025至2031年中國翅片式散熱器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025-2030干手器產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 2025至2030年中國阻燃液市場分析及競爭策略研究報(bào)告
- 新疆生產(chǎn)建設(shè)兵團(tuán)一師高級中學(xué)2025屆高三下學(xué)期第6周考試生物試題含解析
- 2025年重慶市中考物理模擬試卷(一)(含解析)
- 《服務(wù)營銷雙主動》課件
- 公司法公章管理制度
- 希爾頓管理制度
- 成都交通投資集團(tuán)有限公司招聘考試真題2024
- 2022繼電保護(hù)微機(jī)型試驗(yàn)裝置技術(shù)條件
- (二模)嘉興市2025年高三教學(xué)測試語文試卷(含答案)
- 湖北省宜昌二中2025年高考化學(xué)考前最后一卷預(yù)測卷含解析
- 醫(yī)院不良事件上報(bào)制度
- MTK安全架構(gòu)研究-全面剖析
- 餐飲食堂消防安全培訓(xùn)
評論
0/150
提交評論