數(shù)據(jù)庫設(shè)計案例教學(xué)_第1頁
數(shù)據(jù)庫設(shè)計案例教學(xué)_第2頁
數(shù)據(jù)庫設(shè)計案例教學(xué)_第3頁
數(shù)據(jù)庫設(shè)計案例教學(xué)_第4頁
數(shù)據(jù)庫設(shè)計案例教學(xué)_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/20221何謂數(shù)據(jù)庫設(shè)計?

數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計)出某種數(shù)據(jù)庫管理系統(tǒng)所支持的優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)處理要求。

數(shù)據(jù)庫已經(jīng)成為現(xiàn)代信息系統(tǒng)的基礎(chǔ)和核心部分,而數(shù)據(jù)庫設(shè)計的好壞直接影響到整個系統(tǒng)的效率和質(zhì)量。10/26/20222數(shù)據(jù)庫設(shè)計有別于其他軟件系統(tǒng)的設(shè)計,有其獨特的特點——以數(shù)據(jù)為中心。由于DBMS和前臺開發(fā)技術(shù)進步,數(shù)據(jù)的表現(xiàn)形式可以比較容易的實現(xiàn)。設(shè)計人員把注意力放在數(shù)據(jù)的組織結(jié)構(gòu)和數(shù)據(jù)處理過程中的流向問題。10/26/20223數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/20224數(shù)據(jù)庫設(shè)計的任務(wù)和目標 一個成功的管理系統(tǒng)=50%的業(yè)務(wù)+50%的軟件 50%的成功軟件=25%的數(shù)據(jù)庫設(shè)計+25%的程序◆

數(shù)據(jù)庫設(shè)計的任務(wù)狹義上講,就是對某個給定的應(yīng)用領(lǐng)域,設(shè)計優(yōu)化的數(shù)據(jù)庫邏輯結(jié)構(gòu)和物理結(jié)構(gòu),并建立數(shù)據(jù)庫。廣義地講是數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計,即設(shè)計整個的數(shù)據(jù)庫應(yīng)用系統(tǒng)。10/26/20225◆

數(shù)據(jù)庫設(shè)計的目標

創(chuàng)建一個完整的、盡可能規(guī)范化的和完全集成的概念、邏輯和物理數(shù)據(jù)庫模型。具體要達到以下要求:

減少有害的數(shù)據(jù)冗余,提高程序共享性; 保證數(shù)據(jù)的獨立性,可修改,可擴充; 訪問數(shù)據(jù)庫的時間要短; 數(shù)據(jù)庫的存儲空間要小; 要保證數(shù)據(jù)的安全性和保密性; 易于維護。10/26/20226數(shù)據(jù)庫設(shè)計的特點◆三分技術(shù),七分管理,十二分數(shù)據(jù)

數(shù)據(jù)庫的建設(shè)中不僅涉及數(shù)據(jù)庫的設(shè)計和開發(fā)等技術(shù),也涉及管理問題。這里的管理不僅僅包括項目管理,也包括與該項目關(guān)聯(lián)的企業(yè)的業(yè)務(wù)管理。基礎(chǔ)數(shù)據(jù)的收集、整理是非常繁瑣吃力的事情。10/26/20227◆

數(shù)據(jù)庫結(jié)構(gòu)設(shè)計和對數(shù)據(jù)的處理設(shè)計密切結(jié)合

結(jié)構(gòu)設(shè)計:就是設(shè)計各級數(shù)據(jù)庫模式,決定數(shù)據(jù)庫系統(tǒng)的信息內(nèi)容。

行為設(shè)計:它決定數(shù)據(jù)庫系統(tǒng)的功能,是事務(wù)處理等應(yīng)用程序的設(shè)計。10/26/20228現(xiàn)實世界數(shù)據(jù)分析功能分析概念模型設(shè)計邏輯模型設(shè)計物理數(shù)據(jù)庫設(shè)計子模式設(shè)計建立數(shù)據(jù)庫功能模型功能說明事務(wù)設(shè)計程序說明應(yīng)用程序設(shè)計程序編碼調(diào)試結(jié)構(gòu)與行為設(shè)計分離示意圖結(jié)構(gòu)設(shè)計行為設(shè)計10/26/20229數(shù)據(jù)分析功能分析概念模型設(shè)計邏輯模型設(shè)計物理數(shù)據(jù)庫設(shè)計子模式設(shè)計建立數(shù)據(jù)庫數(shù)據(jù)庫功能模型功能說明事務(wù)設(shè)計程序說明應(yīng)用程序設(shè)計程序調(diào)試程序運行結(jié)構(gòu)與行為設(shè)計結(jié)合示意圖現(xiàn)實世界10/26/202210數(shù)據(jù)庫設(shè)計方法◆直觀設(shè)計法(手工試湊法)

數(shù)據(jù)庫設(shè)計只是一種經(jīng)驗的反復(fù)實施,而不能稱為是一門科學(xué),缺乏科學(xué)分析理論基礎(chǔ)和工程手段的支持,所以設(shè)計質(zhì)量很難保證?!粢?guī)范設(shè)計法(新奧爾良法)

新奧爾良法將數(shù)據(jù)庫設(shè)計分成需求分析(分析用戶需求)、概念設(shè)計(信息分析和定義)、邏輯設(shè)計(設(shè)計實現(xiàn))和物理設(shè)計(物理數(shù)據(jù)庫設(shè)計)。10/26/202211常用的規(guī)范設(shè)計方法 基于ER模型的數(shù)據(jù)庫設(shè)計方法;

于1976年提出

基于3NF的數(shù)據(jù)庫設(shè)計方法;

S·Atre提出

ODL(ObjectDefinitionLanguage)方法;

語義對象模型(SemanticObject)方法。10/26/202212◆計算機輔助設(shè)計法計算機輔助設(shè)計法是指在數(shù)據(jù)庫設(shè)計的某些過程中模擬某一規(guī)范化設(shè)計的方法,并以人的知識或經(jīng)驗為主導(dǎo),通過人機交互方式實現(xiàn)設(shè)計中的某些部分。

Oracle公司開發(fā)的DesignerSybase公司開發(fā)的PowerDesigner這些軟件簡稱為CASE(ComputerAidedSoftwareEngineering)工具?!糇詣踊O(shè)計法

10/26/202213數(shù)據(jù)庫設(shè)計的步驟

按規(guī)范設(shè)計法可將數(shù)據(jù)庫設(shè)計分為四個階段:系統(tǒng)需求分析階段、概念結(jié)構(gòu)設(shè)計階段、邏輯結(jié)構(gòu)設(shè)計階段、物理設(shè)計階段。而一個完整的數(shù)據(jù)庫系統(tǒng)的開發(fā)過程還需增加數(shù)據(jù)庫實施和數(shù)據(jù)庫運行與維護兩個階段。10/26/202214不滿意不滿意需求收集和分析應(yīng)用需求(數(shù)據(jù)、處理)設(shè)計概念結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)數(shù)據(jù)模型優(yōu)化設(shè)計物理結(jié)構(gòu)評價設(shè)計,性能預(yù)測物理實現(xiàn)試驗性運行使用維護數(shù)據(jù)庫需求分析階段概念設(shè)計階段邏輯設(shè)計階段物理設(shè)計階段數(shù)據(jù)庫實施數(shù)據(jù)庫運行和維護轉(zhuǎn)換規(guī)則、DBMS功能、優(yōu)化方法應(yīng)用要求、DBMS詳細特征數(shù)據(jù)庫設(shè)計10/26/202215設(shè)計階段設(shè)計描述數(shù)據(jù)處理需求分析數(shù)據(jù)字典、數(shù)據(jù)項、數(shù)據(jù)流、數(shù)據(jù)存儲的描述數(shù)據(jù)流圖和判定樹、數(shù)據(jù)字典中處理過程的描述概念結(jié)構(gòu)設(shè)計概念模型(ER圖)、數(shù)據(jù)字典系統(tǒng)說明書(系統(tǒng)要求、方案、概圖、數(shù)據(jù)流圖)邏輯結(jié)構(gòu)設(shè)計某種數(shù)據(jù)模型(如關(guān)系)系統(tǒng)結(jié)構(gòu)圖(模塊結(jié)構(gòu))物理設(shè)計存儲安排、方法選擇、存取路徑建立模塊設(shè)計實施階段編寫模式、裝入數(shù)據(jù)、數(shù)據(jù)庫試運行程序編碼、編譯聯(lián)結(jié)、測試運行維護性能監(jiān)測、轉(zhuǎn)儲/恢復(fù)、數(shù)據(jù)庫重組和重構(gòu)新舊系統(tǒng)轉(zhuǎn)換、運行、維護10/26/202216數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/202217需求分析的任務(wù)

對現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等)進行詳細的調(diào)查,通過對原系統(tǒng)的了解,收集支持新系統(tǒng)的基礎(chǔ)數(shù)據(jù)并對其進行處理,在此基礎(chǔ)上確定新系統(tǒng)的功能?!粽{(diào)查分析用戶的活動

調(diào)查組織機構(gòu)情況,調(diào)查各部門的業(yè)務(wù)活動情況?!羰占头治鲂枨髷?shù)據(jù),確定系統(tǒng)邊界

信息需求;處理需求;安全性;完整性的需求

10/26/202218◆編寫需求分析說明書(系統(tǒng)分析報告)(1)系統(tǒng)概況,系統(tǒng)的目標、范圍、背景、歷史和現(xiàn)狀;(2)系統(tǒng)的原理和技術(shù),對原系統(tǒng)的改善;(3)系統(tǒng)總體結(jié)構(gòu)與子系統(tǒng)結(jié)構(gòu)說明;(4)系統(tǒng)功能說明;(5)數(shù)據(jù)處理概要、工程體制和設(shè)計階段劃分;(6)系統(tǒng)方案及技術(shù)、經(jīng)濟、功能和操作上的可行性10/26/202219隨系統(tǒng)分析報告要提供下列附件:(1)系統(tǒng)的硬件、軟件支持環(huán)境的選擇及規(guī)格要求(所選擇的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、漢字平臺、計算機型號及其網(wǎng)絡(luò)環(huán)境等)。(2)組織機構(gòu)圖、組織之間聯(lián)系圖及各機構(gòu)功能業(yè)務(wù)一覽圖。(3)數(shù)據(jù)流程圖、功能模塊圖和數(shù)據(jù)字典等圖表。10/26/202220需求分析的方法

主要方法有自頂向下和自底向上兩種。(a)自頂向下的需求分析(b)自底向上的需求分析………………需求需求……需求…需求需求需求需求需求需求需求需求需求需求…需求…需求分析的方法10/26/202221

自頂向下的分析方法(StructuredAnalysis,簡稱SA方法)是最簡單實用的方法。SA方法從最上層的系統(tǒng)組織機構(gòu)入手,采用逐層分解的方式分析系統(tǒng),并把每一層用數(shù)據(jù)流圖(DataFlowDiagram,DFD)和數(shù)據(jù)字典(DataDictionary,DD)描述。10/26/202222

數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。在數(shù)據(jù)流圖中,用命名的箭頭表示數(shù)據(jù)流,用圓圈表示處理,用矩形或其他形狀表示數(shù)據(jù)的存儲。

數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲數(shù)據(jù)來源處理數(shù)據(jù)輸出處理需求信息需求數(shù)據(jù)流圖10/26/202223讀者借書登記資格核查借書單書籍一個簡單的系統(tǒng)可用一張數(shù)據(jù)流圖來表示。當(dāng)系統(tǒng)比較復(fù)雜時,為了便于理解,控制其復(fù)雜性,可以采用分層描述的方法。一般用第一層描述系統(tǒng)的全貌,第二層分別描述各子系統(tǒng)的結(jié)構(gòu)。

10/26/202224

數(shù)據(jù)字典是對系統(tǒng)中數(shù)據(jù)的詳細描述,是各類數(shù)據(jù)結(jié)構(gòu)和屬性的清單。它與數(shù)據(jù)流圖互為注釋。數(shù)據(jù)字典貫穿于數(shù)據(jù)庫需求分析直到數(shù)據(jù)庫運行的全過程,在不同的階段其內(nèi)容和用途各有區(qū)別。在需求分析階段,數(shù)據(jù)字典通常包含以下五部分內(nèi)容:

◆數(shù)據(jù)項數(shù)據(jù)項是數(shù)據(jù)的最小單位,其具體內(nèi)容包括:數(shù)據(jù)項名、含義說明、別名、類型、長度、取值范圍、與其他數(shù)據(jù)項的關(guān)系。10/26/202225◆數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)項有意義的集合。內(nèi)容包括:數(shù)據(jù)結(jié)構(gòu)名、含義說明,這些內(nèi)容組成數(shù)據(jù)項名。◆數(shù)據(jù)流數(shù)據(jù)流可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu),它表示某一處理過程中數(shù)據(jù)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?nèi)容包括:數(shù)據(jù)流名、說明、流出過程、流入過程,這些內(nèi)容組成數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)。10/26/202226◆數(shù)據(jù)存儲處理過程中數(shù)據(jù)的存放場所,也是數(shù)據(jù)流的來源和去向之一??梢允鞘止{證,手工文檔或計算機文件。◆處理過程處理過程的處理邏輯通常用判定表或判定樹來描述,數(shù)據(jù)字典只用來描述處理過程的說明性信息。10/26/202227

需求分析得到的DFD圖集和數(shù)據(jù)字典中的內(nèi)容必須返回用戶,并且用非專業(yè)術(shù)語與用戶交流。在反饋時,設(shè)計者與用戶一起檢查與修改那些沒有如實反映現(xiàn)實世界的錯誤或遺漏。修改DFD圖、補充數(shù)據(jù)字典的過程可能需要反復(fù)多次,最終取得用戶的認可。

最終形成的數(shù)據(jù)流圖和數(shù)據(jù)字典為“需求分析說明書”的主要內(nèi)容,這是下一步進行概念設(shè)計的基礎(chǔ)。也是將來系統(tǒng)維護的基礎(chǔ)。10/26/202228需求分析過程中要注意的3點:第一,應(yīng)用部門的業(yè)務(wù)人員常常缺少計算機的專業(yè)知識,而數(shù)據(jù)庫設(shè)計人員又常常缺乏應(yīng)用領(lǐng)域的業(yè)務(wù)知識,因此相互的溝通往往比較困難。第二,不少業(yè)務(wù)人員往往對開發(fā)計算機系統(tǒng)有不同程度的抵觸情緒。有的認為需求調(diào)查影響了他們的工作,給他們造成了負擔(dān),特別是新系統(tǒng)的建設(shè)常常伴隨企業(yè)管理的改革,這會遇到不同部門不同程度的抵觸。10/26/202229第三,應(yīng)用需求常常在不斷改變,使系統(tǒng)設(shè)計也常常要進行調(diào)整甚至要有重大改變。

面對這些困難,設(shè)計人員特別應(yīng)該注意:1.用戶參與的重要性2.用原型法來幫助用戶確定他們的需求3.預(yù)測系統(tǒng)的未來改變10/26/202230數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/202231

概念設(shè)計就是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu),即概念(語義)數(shù)據(jù)模型(簡稱概念模型)。概念模型作為概念設(shè)計的表達工具,為數(shù)據(jù)庫提供一個說明性結(jié)構(gòu),是設(shè)計數(shù)據(jù)庫邏輯結(jié)構(gòu)(邏輯模型)的基礎(chǔ)。概念模型必須具備以下特點:

語義表達能力豐富;易于交流和理解; 易于修改和擴充;易于向各種數(shù)據(jù)模型轉(zhuǎn)換。

10/26/202232人們提出了許多概念模型,如語義對象模型(SemanticObjectModel,簡稱SOM)、實體關(guān)系(Entity-Relationship,簡稱ER)模型等。目前應(yīng)用最普遍的是實體關(guān)系模型,它將現(xiàn)實世界的信息結(jié)構(gòu)統(tǒng)一用屬性、實體以及它們之間的聯(lián)系來描述。10/26/202233實體關(guān)系模型10/26/202234◆基本概念實體(Entity)??陀^存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。屬性(Attribute)。屬性為實體的某一方面特征的抽象表示。如教師實體可由教師編號、姓名、年齡、性別、職稱等屬性來刻畫。域(Domain)。屬性的取值范圍稱為屬性的域。如:教師實體中,屬性性別的域為男和女。10/26/202235主碼(PrimaryKey)。碼也稱關(guān)鍵字,它是能夠唯一標識一個實體的屬性集。如:教師實體的主碼為教師編號。

聯(lián)系(Relationship)?,F(xiàn)實世界的事物總是存在著這樣或那樣的聯(lián)系,這種聯(lián)系必然要在信息世界中得到反映。事物之間的聯(lián)系可分為兩類:一類是實體內(nèi)部的聯(lián)系,如組成實體的各屬性之間的關(guān)系;另一類是實體之間的聯(lián)系,即不同實體之間的聯(lián)系。10/26/202236◆兩個實體集之間的聯(lián)系

1:1聯(lián)系:如果對于A中的一個實體,B中至多有一個實體與其發(fā)生聯(lián)系,反之,B中的每一實體至多對應(yīng)A中一個實體,則稱A與B是1:1聯(lián)系。1:n聯(lián)系:如果對于A中的每一實體,實體B中有一個以上實體與之發(fā)生聯(lián)系,反之,B中的每一實體至多只能對應(yīng)于A中的一個實體,則稱A與B是1:n聯(lián)系。

m:n聯(lián)系:如果A中至少有一實體對應(yīng)于B中一個以上實體,反之,B中也至少有一個實體對應(yīng)于A中一個以上實體,則稱A與B為m:n聯(lián)系。10/26/202237兩個實體集之間的3類聯(lián)系10/26/202238◆聯(lián)系的強度

聯(lián)系的強度反應(yīng)的是聯(lián)系框架內(nèi)的存在依賴性。如果一個實體的存在依賴于一個或更多的實體,就稱作存在依賴。否則就稱作存在獨立,由此聯(lián)系有弱聯(lián)系和強聯(lián)系之分。

弱聯(lián)系(非標識聯(lián)系):相關(guān)實體是存在獨立的,即相關(guān)實體的主碼不包含父實體主碼的組成部分。例如: 課程(課程編號,課程名,開課系別,學(xué)分) 班級(班級編號,課程編號,開課學(xué)期,學(xué)時)10/26/202239

強聯(lián)系(可標識聯(lián)系):相關(guān)實體是存在依賴的.即相關(guān)實體的主碼包含父實體的主碼組成部分。例如: 課程(課程編號,課程名,開課系別,學(xué)分) 班級(班級編號,課程編號,開課學(xué)期,學(xué)時)主碼10/26/202240◆實體關(guān)系模型的表示方法

ER圖是直觀表示概念模型的工具,ER圖的基本思想就是分別用矩形框、橢圓形框和菱形框表示實體、屬性和聯(lián)系,使用無向邊將屬性與其相應(yīng)的實體連接起來,并將聯(lián)系分別和有關(guān)實體相連接,注明聯(lián)系類型。班級班長管理11班級學(xué)生擁有1n學(xué)生課程選課mn10/26/202241◆概念設(shè)計方法設(shè)計概念結(jié)構(gòu)的ER模型可采用自頂向下、自底向上、逐步擴張和混合策略四種方法。其中最常用的方法是自底向上。自底向上方法是先定義各局部應(yīng)用的概念結(jié)構(gòu)ER模型,然后將它們集成,得到全局概念結(jié)構(gòu)ER模型。10/26/202242

[例1]在簡單的教務(wù)管理系統(tǒng)中,有如下語義約束:

一個學(xué)生可選修多門課程,一門課程可被多個學(xué)生選修。因此學(xué)生和課程之間是多對多的聯(lián)系;

一個教師可講授多門課程,一門課程可以由多個教師講授。因此教師和課程之間也是多對多的聯(lián)系;

一個系可有多個教師,一個教師只能屬于一個系。因此系和教師是之間一對多的聯(lián)系,同樣系和學(xué)生之間也是一對多的聯(lián)系。10/26/202243nm名稱系開課1擁有m學(xué)生m選修課程教師號課程名成績性別年齡平均成績課程號學(xué)號姓名學(xué)生選課局部ER圖10/26/202244教師任課局部E-R圖1m教師號姓名性別職稱課程號教師講授課程n屬于單位單位名

m10/26/202245

[例2]

以[例6.1]中教務(wù)管理系統(tǒng)的兩個局部ER圖為例,來說明如何消除各局部ER圖之間的沖突,進行局部ER模型的合并,從而生成初步ER圖。

首先,這兩個局部ER圖中存在著命名沖突,學(xué)生選課局部ER圖中的系實體與教師任課局部ER圖中的單位實體,都是指“系”,即所謂的異名同義,合并后統(tǒng)一改為“系”,這樣屬性“名稱”和“單位名”即可統(tǒng)一為“系名”。10/26/202246

其次,還存在著結(jié)構(gòu)沖突,實體“系”和實體“課程”在兩個不同應(yīng)用中的屬性組成不同,合并后這兩個實體的屬性組成為原來局部ER圖中的同名實體屬性的并集。解決上述沖突后,合并兩個局部ER圖,生成如下圖所示的初步的全局ER圖。10/26/202247mn1系屬于教師擁有學(xué)生開課講授選修課程mmnm1m1學(xué)號姓名性別年齡平均成績成績教師號課程號課程名教師號姓名性別職稱系名

教務(wù)管理系統(tǒng)的初步ER圖10/26/202248一個好的ER模式,除了能夠準確、全面的反映用戶需求之外,還應(yīng)該達到下列要求:◆實體類型的個數(shù)應(yīng)盡量少;◆實體類型所含屬性個數(shù)應(yīng)盡可能少;◆實體類型間的聯(lián)系應(yīng)無冗余。10/26/202249優(yōu)化初步ER圖的方法:

實體類型的合并。指相關(guān)實體類型的合并。因為實體類型最終要轉(zhuǎn)換成關(guān)系模式,涉及多個實體類型的信息要通過連接操作獲得。減少實體類型個數(shù),可減少連接的開銷,提高處理速度。一般可以把一對一聯(lián)系的兩個實體類型合并。

消除冗余。在這里指冗余的數(shù)據(jù)和實體之間冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是由其他的聯(lián)系導(dǎo)出的聯(lián)系。冗余的存在容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護增加困難,應(yīng)該消除。10/26/202250

消除冗余的方法主要有兩種:分析方法消除冗余和規(guī)范化理論消除冗余。

采用分析的方法消除冗余,是以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項之間的邏輯關(guān)系的說明消除冗余;規(guī)范化理論消除冗余主要是運用函數(shù)依賴提供的工具實現(xiàn)。10/26/202251

[例3]

對[例2]中生成的初步ER圖進行分析優(yōu)化。在前圖所示的初步ER圖中,“課程”實體中的屬性“教師號”可由教師實體與課程實體之間的聯(lián)系“講授”導(dǎo)出;而學(xué)生的平均成績可由“選修”聯(lián)系中的屬性“成績”計算出來,所以“課程”實體中的“教師號”與“學(xué)生”實體中的“平均成績”均屬于冗余數(shù)據(jù)。另外,系實體和課程實體之間的聯(lián)系“開課”,可以由系實體和教師實體之間的“屬于”聯(lián)系與教師實體和課程實體之間的“講授”聯(lián)系推導(dǎo)出來,所以“開課”屬于冗余聯(lián)系。10/26/202252n1系屬于教師擁有學(xué)生講授選修課程mmnm1m學(xué)號姓名性別年齡成績課程號課程名教師號姓名性別職稱系名

教務(wù)管理系統(tǒng)的基本ER圖10/26/202253典型實例[例4]NewCentury唱片公司決定將制作唱片的有關(guān)音樂人的信息存入數(shù)據(jù)庫中?!裘總€NewCentury中的音樂人都有No、姓名,地址、號碼等信息?!裘繕訕菲鞫加袠菲髅ㄈ缂?、電子合成器、長笛等),音樂的基調(diào)(如C、B-flat、E-flat)等信息?!裘繌埑加袠祟}、出版日期、格式(如CD和MC)、唱片標識碼等信息。數(shù)據(jù)庫設(shè)計舉例10/26/202254◆每首歌曲都有標題和作者等信息。

◆每個音樂人可以演奏多種樂器,且一種樂器可以由多個音樂人演奏?!裘繌埑幸唤M歌曲,但一首歌曲只能出現(xiàn)在一張唱片中。◆每首歌曲由一名或多名音樂人來完成,一名音樂人可以完成多首歌曲?!裘總€唱片只有一名制片人,一個音樂人可以制作多個唱片。10/26/202255音樂人唱片歌曲樂器號碼NO.樂器名音樂基調(diào)地址姓名演奏格式出版日期唱片標題作者標題唱片標識碼制作完成有n11nnmnm10/26/202256

[例5]設(shè)計一個科研檔案管理系統(tǒng)的ER圖。

教師:教師編號、姓名、性別、年齡、出生日期、工作時間、職稱、政治面貌、文化程度;

研究生:研究生學(xué)號、姓名、指導(dǎo)教師編號、指導(dǎo)教師姓名、專業(yè)代碼、班級;

項目:項目編號、項目名稱、項目來源、項目級別、開始時間、結(jié)束時間;

論文:論文編號、論文題目、論文級別、發(fā)表刊物、發(fā)表時間、主辦單位

專業(yè):專業(yè)代碼、專業(yè)名稱、學(xué)科代碼、學(xué)科名稱10/26/202257每位研究生都有一位教師作為導(dǎo)師,一個教師可以指導(dǎo)多名研究生(教師和研究生之間存在一對多的關(guān)系)。每個項目都有多名教師和研究生參加,并有一位教師作為項目負責(zé)人(項目和研究生之間、項目和教師之間都是多對多的關(guān)系)。每篇論文由一名以上教師或研究生完成,按作者順序排列(教師和論文之間、研究生和論文之間都是多對多的關(guān)系)。每位研究生只屬于某一專業(yè)(研究生和專業(yè)之間是一對多的關(guān)系)。10/26/202258nmmm11nnn項目研究生專業(yè)教師論文科研檔案管理ER圖參加指導(dǎo)發(fā)表參加屬于發(fā)表編號名稱成果學(xué)號姓名專業(yè)代碼專業(yè)名稱教師編號教師姓名論文編號論文名稱級別刊物nnm排名排名排名排名10/26/202259[例6]下面用ER圖來表示某個工廠物資管理的概念模型。物資管理涉及的實體有:倉庫。屬性有倉庫號、面積、號碼。零件。屬性有零件號、名稱、規(guī)格、單價、描述。供應(yīng)商。屬性有供應(yīng)商號、姓名、地址、號碼、賬號。項目。屬性有項目號、預(yù)算、開工日期。職工。屬性有職工號、姓名、年齡、職稱。10/26/202260這些實體之間的聯(lián)系如下:

(1)一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中,因此倉庫和零件具有多對多的聯(lián)系。用庫存量表示某種零件在某個倉庫中的數(shù)量。(2)一個倉庫有多個職工當(dāng)倉庫保管員,一個職工只能在一個倉庫工作,因此倉庫和職工之間是一對多的聯(lián)系。(3)職工之間具有領(lǐng)導(dǎo)-被領(lǐng)導(dǎo)關(guān)系。即倉庫主任領(lǐng)導(dǎo)若干保管員,因此職工實體集中具有一對多的聯(lián)系。10/26/202261(4)供應(yīng)商、項目和零件三者之間具有多對多的聯(lián)系。即一個供應(yīng)商可以供給若干項目多種零件,每個項目可以使用不同供應(yīng)商供應(yīng)的零件,每種零件可由不同供應(yīng)商供給。下面給出此工廠的物資管理E-R圖。為了更清晰地表示實體及其實體之間的聯(lián)系,人們常常把實體及其屬性用一幅圖表示,如圖(a)所示;實體及其實體之間的聯(lián)系如圖(b)所示,完整的實體聯(lián)系圖如圖(c)所示。10/26/202262項目號開工日期預(yù)算描述零件零件號名稱規(guī)格單價項目電話倉庫號面積倉庫供應(yīng)商號姓名地址

供應(yīng)商帳號職工號姓名年齡職稱職工(a)實體及其屬性圖10/26/202263零件倉庫職工工作1n領(lǐng)導(dǎo)1n儲存庫存量mn供應(yīng)商項目供應(yīng)供應(yīng)供應(yīng)供應(yīng)量mnmqpm(b)實體及其聯(lián)系圖10/26/202264項目供應(yīng)供應(yīng)供應(yīng)供應(yīng)量mnmqpm零件倉庫職工工作n工作1n儲存庫存量mn1供應(yīng)商零件號名稱規(guī)格單價項目號開工日期預(yù)算電話倉庫號面積職工號姓名年齡職稱供應(yīng)商號姓名地址電話帳號描述(c)完整的實體聯(lián)系圖10/26/202265數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/202266概述

概念結(jié)構(gòu)設(shè)計階段得到的ER模型是用戶模型,它獨立于任何一種數(shù)據(jù)模型,獨立于任何一個具體的DBMS,是一個與計算機軟、硬件的具體性能無關(guān)的全局概念模式。為了建立用戶所要求的數(shù)據(jù)庫,需要把上述概念模型轉(zhuǎn)換為某個具體的DBMS所支持的數(shù)據(jù)模型,即邏輯結(jié)構(gòu)設(shè)計。

數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型的過程。關(guān)系數(shù)據(jù)庫邏輯設(shè)計的結(jié)果是一組關(guān)系模式的定義。10/26/202267初始關(guān)系模式設(shè)計關(guān)系模式規(guī)范化模式評價是否修正以DBMS語法描述物理設(shè)計模式修正否是邏輯設(shè)計的步驟10/26/202268初始關(guān)系模式設(shè)計初始關(guān)系模式設(shè)計過程就是ER圖向關(guān)系模式的轉(zhuǎn)換。ER圖向關(guān)系模式轉(zhuǎn)換的實質(zhì)是要將ER圖中的實體、屬性和聯(lián)系轉(zhuǎn)換成關(guān)系模式。10/26/202269

轉(zhuǎn)換原則

一個實體轉(zhuǎn)換為一個關(guān)系模式,實體的屬性就是關(guān)系的屬性,實體的鍵就是關(guān)系的鍵。具有相同主鍵的關(guān)系可以合并。一個聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,分為以下幾種情況。10/26/202270一個1:1的聯(lián)系可以轉(zhuǎn)化為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。當(dāng)聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式時,關(guān)系的屬性由聯(lián)系本身的屬性和與之聯(lián)系的兩個實體的鍵組成,而關(guān)系的主鍵由各實體的鍵組成;而當(dāng)聯(lián)系與某一端的關(guān)系模式合并時,在該關(guān)系模式中加入聯(lián)系自身的屬性及另一關(guān)系模式的鍵。10/26/202271

一個1:n的聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨立的關(guān)系模式,則關(guān)系的屬性由聯(lián)系本身的屬性和與之聯(lián)系的兩個實體的主鍵組成,而關(guān)系的主鍵為n端實體的主鍵;如果采用合并的方式,應(yīng)將聯(lián)系與n端關(guān)系模式合并,合并時在n端關(guān)系模式中加入聯(lián)系自身的屬性及1端關(guān)系模式的主鍵,合并后關(guān)系模式的主鍵沒有變化。10/26/202272

一個n:m的聯(lián)系轉(zhuǎn)換為一個關(guān)系。關(guān)系的屬性由聯(lián)系本身的屬性和與之聯(lián)系的實體的主鍵組成,關(guān)系的主鍵由聯(lián)系中各實體的主鍵組合而成(組合鍵)。

10/26/202273

[例8]將[例2]所示教務(wù)管理系統(tǒng)的ER圖轉(zhuǎn)換成一組初始關(guān)系模式。把每一個實體轉(zhuǎn)換為一個關(guān)系。

首先分析各實體的屬性,從中確定其主鍵,然后分別用關(guān)系模式表示。轉(zhuǎn)換步驟

10/26/202274四個實體分別轉(zhuǎn)換成四個關(guān)系模式:實體:學(xué)生對應(yīng)的關(guān)系:學(xué)生(學(xué)號,姓名,性別,年齡)實體:課程對應(yīng)的關(guān)系:課程(課程號,課程名)實體:教師對應(yīng)的關(guān)系:教師(教師號,姓名,性別,職稱)實體:系對應(yīng)的關(guān)系:系(系名,)10/26/202275把每一個聯(lián)系轉(zhuǎn)換為關(guān)系模式由聯(lián)系轉(zhuǎn)換得到的關(guān)系模式的屬性集中,包含兩個發(fā)生聯(lián)系的實體中的主鍵以及聯(lián)系本身的屬性,其關(guān)系鍵的確定與聯(lián)系的類型有關(guān)。

[例6.2]的ER圖中,將4個聯(lián)系轉(zhuǎn)換為關(guān)系模式,其中1個多對多類型的聯(lián)系轉(zhuǎn)換為獨立關(guān)系模式,3個一對多的聯(lián)系也轉(zhuǎn)換為獨立的關(guān)系模式,結(jié)果如下:10/26/202276聯(lián)系:屬于對應(yīng)的關(guān)系:屬于(教師號,系名)聯(lián)系:講授對應(yīng)的關(guān)系:講授(教師號,課程號)聯(lián)系:選修對應(yīng)的關(guān)系:選修(學(xué)號,課程號,成績)聯(lián)系:擁有對應(yīng)的關(guān)系:擁有(學(xué)號,系名)10/26/202277畫出關(guān)系圖

邏輯設(shè)計中,ER圖轉(zhuǎn)換為關(guān)系模式后,應(yīng)該考慮數(shù)據(jù)的完整性。實體完整性通過確定主鍵已完成。用戶定義的完整性在實現(xiàn)階段完成。對于參照完整性,可以用關(guān)系圖來描述。10/26/20227810/26/20227910/26/202280實例分析

[例9]

將[例]設(shè)計的NewCentury唱片公司信息管理系統(tǒng)的ER圖轉(zhuǎn)換為關(guān)系模式,并畫出相應(yīng)的關(guān)系圖。由ER圖轉(zhuǎn)換為關(guān)系模式首先根據(jù)實體轉(zhuǎn)換原則,將4個實體轉(zhuǎn)換為關(guān)系模式:音樂人(編號,姓名,地址,號碼)樂器(樂器名,音樂基調(diào))唱片(唱片標識碼,唱片標題,出版日期,格式)歌曲(歌曲標題,作者)10/26/202281

其次,將4個聯(lián)系轉(zhuǎn)換為關(guān)系模式,其中2個多對多類型的聯(lián)系轉(zhuǎn)換為關(guān)系模式,2個一對多的聯(lián)系采用與多端實體合并的方法。完成((編號,歌曲標題)演奏(編號,樂器名)唱片(唱片標識碼,編號No,唱片標題,出版日期,格式)歌曲(歌曲標題,編號No

,唱片標識碼)10/26/20228210/26/202283[例10]

將[例5]中設(shè)計的教師和研究生科研檔案管理系統(tǒng)的ER圖轉(zhuǎn)換為關(guān)系模式,并畫出相應(yīng)的關(guān)系圖。實例分析

由ER圖轉(zhuǎn)換為關(guān)系模式

首先根據(jù)實體轉(zhuǎn)換原則,將5個實體轉(zhuǎn)換為關(guān)系模式;

教師,研究生,論文,項目,專業(yè)。10/26/202284由ER圖轉(zhuǎn)換為關(guān)系模式其次,把4個m:n類型的聯(lián)系轉(zhuǎn)換為關(guān)系模式,2個1:n的聯(lián)系采用與多端實體合并的方法。

參加1(項目編號,教師編號,排名)反應(yīng)教師和項目之間的聯(lián)系。參加2(項目編號,研究生學(xué)號,排名)反應(yīng)研究生和項目之間的聯(lián)系。發(fā)表1(教師編號,論文編號,排名)反應(yīng)教師和論文之間的聯(lián)系。發(fā)表2(研究生學(xué)號,論文編號,排名)反應(yīng)研究生和論文之間的聯(lián)系。10/26/20228510/26/202286數(shù)據(jù)庫設(shè)計

1數(shù)據(jù)庫設(shè)計概述

2需求分析

3概念設(shè)計

4邏輯設(shè)計

5模式求精

6物理設(shè)計

7數(shù)據(jù)庫實施

8數(shù)據(jù)庫運行和維護10/26/202287關(guān)系數(shù)據(jù)庫設(shè)計中存在的問題

示例:

考慮為管理職工的工資信息而設(shè)計一個關(guān)系模式。10/26/202288在表中包含著兩類信息:

職工個人的工資信息;各個級別的工資數(shù)額。問題:

如果我希望知道在這個單位8級工的工資是多少,能否查詢到?10/26/202289問題:

插入異常:如果沒有職工具有8級工資,則8級工資的工資數(shù)額就難以插入

刪除異常:如果僅有職工趙明具有4級工資,如果將趙明刪除,則有關(guān)4級工資的工資數(shù)額信息也隨之刪除了。10/26/202290

數(shù)據(jù)冗余:職工很多,工資級別有限,每一級別的工資數(shù)額反復(fù)存儲多次。更新異常:如果將5級工資的工資數(shù)額調(diào)為620,則需要找到每個具有5級工資的職工,逐一修改。10/26/202291解決之道:分解!10/26/202292有關(guān)學(xué)生的關(guān)系模式S(學(xué)號,姓名,系號,主任,課程編號,成績)它有哪些數(shù)據(jù)冗余?10/26/202293★規(guī)范化理論問題的提出

針對一個具體問題,如何構(gòu)造一個合適的數(shù)據(jù)模式。即應(yīng)該構(gòu)造幾個關(guān)系模式(表),每個關(guān)系有那些屬性組成?10/26/202294定義:設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記為X→Y。記號x→y稱x函數(shù)確定y,或y函數(shù)依賴于x。稱X為決定因素。例如:學(xué)號姓名,(學(xué)號,課程)成績10/26/202295注意:函數(shù)依賴是語義范疇的概念,我們只能根據(jù)語義來確定函數(shù)依賴。例如在沒有同名的情況下,姓名→年齡是成立的,而在有同名的情況下,這個函數(shù)依賴就不成立了。平凡函數(shù)依賴:如果XY,但Y不是X的子集,則稱其為非平凡的函數(shù)依賴,否則稱為平凡的函數(shù)依賴。

如(學(xué)號,姓名)姓名是平凡的函數(shù)依賴10/26/202296函數(shù)依賴可分為三類:完全函數(shù)依賴,部分函數(shù)依賴和傳遞函數(shù)依賴。定義:在R(U)中有X、YU,如果X→Y,并且對于X的任何一個真子集X'?,都有Y不函數(shù)依賴于X',則稱Y對X是完全函數(shù)依賴的。定義:在R(U)中,如果X→Y,并且對于X的某個真子集X',有X'→Y,則稱Y對X部分函數(shù)依賴。定義:在R(U)中,如果X→Y(Y不包含于X,X不依賴于Y),且Y→Z,則稱Z對X傳遞函數(shù)依賴。10/26/202297例A:某單位有一資料室,它管理的數(shù)據(jù)有讀者信息、圖書信息、借閱信息。讀者信息:借書證號,讀者姓名,性別,部門,學(xué)歷,部門,個人,電子信箱等;圖書信息:圖書編號,分類號,書名,作者,出版社,單價等;借閱信息:借書證號,圖書編號,書名,借出日期,應(yīng)還日期等。10/26/202298函數(shù)依賴關(guān)系(讀者信息):借書證號→讀者姓名借書證號→性別借書證號→部門借書證號→學(xué)歷部門→部門借書證號→個人借書證號→電子信箱10/26/202299函數(shù)依賴關(guān)系(圖書信息):

圖書編號→分類號圖書編號→書名圖書編號→作者圖書編號→出版社圖書編號→單價函數(shù)依賴關(guān)系(借閱信息):

圖書編號→書名借書證號、圖書編號,借出日期→應(yīng)還日期10/26/2022100多值依賴函數(shù)依賴關(guān)系是一種關(guān)系模式內(nèi)屬性間較為明顯的依賴關(guān)系,但是隨著人們對關(guān)系模式的了解越來越深刻,發(fā)現(xiàn)尚有另外的一些依賴關(guān)系存在,多值依賴就是其中的一種。例如,有一個課程關(guān)系COURSE(如下表所示)。課程名CNAME教師名TEACH選用參考書BOOK數(shù)據(jù)庫原理李勇張明王陽數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)結(jié)構(gòu)任學(xué)琴李瑞張文其數(shù)據(jù)結(jié)構(gòu)習(xí)題集算法分析數(shù)據(jù)結(jié)構(gòu)上機指導(dǎo)10/26/2022101CNAMETEACHBOOK數(shù)據(jù)庫原理李勇數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫原理李勇數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫原理張明數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫原理張明數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫原理王陽數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫原理王陽數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)結(jié)構(gòu)任學(xué)琴數(shù)據(jù)結(jié)構(gòu)習(xí)題集數(shù)據(jù)結(jié)構(gòu)任學(xué)琴算法分析數(shù)據(jù)結(jié)構(gòu)任學(xué)琴數(shù)據(jù)結(jié)構(gòu)上機指導(dǎo)數(shù)據(jù)結(jié)構(gòu)李瑞數(shù)據(jù)結(jié)構(gòu)習(xí)題集數(shù)據(jù)結(jié)構(gòu)李瑞算法分析數(shù)據(jù)結(jié)構(gòu)李瑞數(shù)據(jù)結(jié)構(gòu)上機指導(dǎo)數(shù)據(jù)結(jié)構(gòu)張文其數(shù)據(jù)結(jié)構(gòu)習(xí)題集數(shù)據(jù)結(jié)構(gòu)張文其算法分析數(shù)據(jù)結(jié)構(gòu)張文其數(shù)據(jù)結(jié)構(gòu)上機指導(dǎo)從這個關(guān)系中可以看出兩點:(1)該關(guān)系的數(shù)據(jù)冗余很大。(2)該關(guān)系的屬性間有一種有別于函數(shù)依賴的依賴關(guān)系存在。10/26/2022102范式理論1NF:任一屬性不能同時具有多個值(關(guān)系中每一分量不可再分。即不能以集合、序列等作為屬性值)。2NF:屬性必須完全依賴唯一標識符。3NF:屬性間不存在傳遞依賴。BCNF:每一個決定因素都包含碼。10/26/2022103例B:R(學(xué)號,姓名,課程編號,課程名稱,學(xué)分,成績)唯一標識符(Key):(學(xué)號,課程編號)不符合2NF依賴關(guān)系:

學(xué)號→姓名,課程編號→課程名稱,課程編號→學(xué)分,(學(xué)號,課程編號)→成績10/26/2022104例C:S(學(xué)號,姓名,性別,學(xué)院,院長)。

唯一標識符(Key):

學(xué)號不符合3NF依賴關(guān)系:

學(xué)號→姓名,學(xué)號→性別,學(xué)號→學(xué)院,學(xué)院→院長10/26/2022105問題的解決辦法:拆分關(guān)系(表)10/26/2022106關(guān)于例BR(學(xué)號,姓名,課程編號,課程名稱,學(xué)分,成績)R1(學(xué)號,姓名)R2(課程編號,課程名稱,學(xué)分)R3(學(xué)號,課程編號,成績)學(xué)號→姓名,課程編號→課程名稱,課程編號→學(xué)分,(學(xué)號,課程編號)→成績10/26/2022107關(guān)于例CS(學(xué)號,姓名,性別,學(xué)院,院長)S1(學(xué)號,姓名,性別,學(xué)院)S2(學(xué)院,院長)

學(xué)號→姓名,學(xué)號→性別,學(xué)號→學(xué)院,學(xué)院→院長10/26/2022108例D:某部隊擬建立干部檔案,數(shù)據(jù)項有:編號,姓名,現(xiàn)軍銜,現(xiàn)任職務(wù),入伍日期,最高學(xué)歷,低級軍銜及獲得日期,曾擔(dān)任職務(wù)及任命日期,所取得各學(xué)歷及取得日期。10/26/2022109函數(shù)依賴關(guān)系:編號→姓名,編號→現(xiàn)軍銜,編號→現(xiàn)任職務(wù),編號→入伍日期,編號→最高學(xué)歷(編號,低級軍銜)→獲得日期(編號,曾擔(dān)任職務(wù))→任命日期(編號,各學(xué)歷)→取得日期10/26/2022110表1(編號,姓名,現(xiàn)軍銜,現(xiàn)任職務(wù),入伍日期,最高學(xué)歷)表2(編號,低級軍銜,獲得日期)表3(編號,曾擔(dān)任職務(wù),任命日期)表4(編號,學(xué)歷,取得日期)。10/26/2022111規(guī)范化步驟→2NF→3NF

→BCNF→4NF規(guī)范化的目的就是構(gòu)造合適的關(guān)系模式。10/26/2022112范式之間的關(guān)系

定理:關(guān)系模式R若滿足3NF,則必定滿足2NF。反證:若R3NF,但R2NF,則按2NF定義,一定有非主屬性部分依賴于碼;設(shè)X為R的碼,則存在X的真子集S,以及非主屬性Z(其中S不包含于Z),使得S

Z成立;于是在R中存在碼X,屬性組S,以及非主屬性Z,使得XS,SZ成立,進而有SX成立;這與R3NF矛盾,所以R2NF。10/26/2022113定理:關(guān)系模式R若滿足BCNF,則必定滿足3NF。

證明略,請大家看參考書。10/26/2022114模式分解中的問題實例

表(職工,級別,工資)可以有兩種分解途徑,

分解一:(職工,工資),(工資,級別)姓名級別工資趙4500錢5600孫6700李7600姓名工資趙500錢600孫700李600級別工資4500560067007600丟失函數(shù)依賴

分解二:(職工,級別),(工資,級別)不同行業(yè)機構(gòu)的不同工資級別會有相同工資數(shù)額。按分解一,有可能導(dǎo)致同一職工對應(yīng)不同的工資級別,從而丟失了有關(guān)職工工資級別的信息(丟失了函數(shù)依賴:職工級別)。10/26/2022115R(A,B,C)ABC112221AB1122BC1221ABC112221∏AB(R)∏BC(R)∏AB(R)∏BC(R)R(A,B,C)ABC111212AB1121BC1112ABC111112211212∏AB(R)∏BC(R)∏AB(R)∏BC(R)有損分解無損分解10/26/2022116

將R分解為R1和R2的分解是無損連接分解的條件是,R1∩R2→R1,或R1∩R2→R2。如果有R上的函數(shù)依賴X→Y成立,且X∩Y是空集,則分解R–Y和XY是無損連接分解。10/26/2022117

判定一個分解是否為依賴保持分解的算法比較復(fù)雜。請看參考文獻。

10/26/2022118

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論