第二章 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計概述課件_第1頁
第二章 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計概述課件_第2頁
第二章 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計概述課件_第3頁
第二章 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計概述課件_第4頁
第二章 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計概述課件_第5頁
已閱讀5頁,還剩115頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章

數(shù)據(jù)庫應(yīng)用系統(tǒng)

設(shè)計概述1第二章

數(shù)據(jù)庫應(yīng)用系統(tǒng)

設(shè)計概述1知識點:

數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

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

數(shù)據(jù)庫規(guī)范化設(shè)計理論

11/15/20222知識點:數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

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

數(shù)據(jù)庫2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

在數(shù)據(jù)庫管理系統(tǒng)上開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)是一個復雜的過程,必須在軟件開發(fā)理論和方法的指導下進行,否則很難開發(fā)出高效適用的應(yīng)用系統(tǒng)。11/15/202232.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)在數(shù)據(jù)庫管理2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)方法很多,得到廣泛運用的有以下三種:結(jié)構(gòu)化生命周期法快速原型法面向?qū)ο蠓椒?1/15/202242.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的基本思想是把系統(tǒng)開發(fā)看作是工程項目,需要經(jīng)過以下5個階段:系統(tǒng)規(guī)劃系統(tǒng)分析(需求分析)系統(tǒng)設(shè)計系統(tǒng)實施(編程)系統(tǒng)運行(測試)系統(tǒng)維護11/15/202252.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟一、系統(tǒng)規(guī)劃階段在系統(tǒng)正式開發(fā)之前,必須進行系統(tǒng)調(diào)查和可行性分析。本階段的主要任務(wù)是根據(jù)用戶的系統(tǒng)開發(fā)請求,初步調(diào)查,明確問題,進行可行性分析研究。11/15/202262.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟二、系統(tǒng)分析階段系統(tǒng)分析階段可以說是系統(tǒng)開發(fā)中最重要的一步,主要任務(wù)是:需求分析信息采集編寫需求說明書11/15/202272.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟三、系統(tǒng)設(shè)計階段如果系統(tǒng)分析階段的任務(wù)是解決“干什么”的問題,那么系統(tǒng)設(shè)計階段的任務(wù)是確定“怎么干”。系統(tǒng)設(shè)計工作由總體設(shè)計和詳細設(shè)計兩部分組成。11/15/202282.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟三、系統(tǒng)設(shè)計階段總體設(shè)計完成概念模型的設(shè)計詳細設(shè)計完成數(shù)據(jù)庫設(shè)計和應(yīng)用程序的設(shè)計11/15/202292.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟四、系統(tǒng)實施階段第一步:應(yīng)選擇合適的軟件開發(fā)工具;第二步:使用所選擇的開發(fā)工具,建立數(shù)據(jù)庫,輸入原始數(shù)據(jù),編寫和調(diào)試各個模塊的應(yīng)用程序代碼;第三步:完成各個子系統(tǒng)和模塊之間的聯(lián)合調(diào)試和測試;11/15/2022102.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟五、系統(tǒng)運行階段將系統(tǒng)交給用戶正式投入之前,便進入系統(tǒng)的運行測試階段。在試運行過程中,可能會發(fā)現(xiàn)很多問題,要廣泛聽取用戶的意見,并根據(jù)運行結(jié)果進行評估,修改系統(tǒng)的錯誤、改進系統(tǒng)的性能。11/15/2022112.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟投入運行:系統(tǒng)維護階段將系統(tǒng)交給用戶正式投入之后,可能會發(fā)現(xiàn)很多新的問題,或用戶提出新的要求,開發(fā)者應(yīng)不斷對系統(tǒng)進行修改、維護或調(diào)整,直至系統(tǒng)生命周期的結(jié)束。11/15/2022122.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

快速原型法的基本思想就是依據(jù)原型進行快速開發(fā),對存在的問題反復修正,直到用戶滿意為止。分為四步:系統(tǒng)基本需求的確定對原型功能的選擇原型的構(gòu)造與試用原型的修改和完善11/15/2022132.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)快速原型法的基本思2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒ㄊ前衙嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計與面向?qū)ο蟪绦蛟O(shè)計結(jié)合在一起,形成面向?qū)ο蠓椒?。分為以下五步:需求分析需求模型化概要設(shè)計詳細設(shè)計編程實施11/15/2022142.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒ㄊ前衙嫦?.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒?1/15/2022152.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒?1/12.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒?1/15/2022162.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒?1/12.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

三種開發(fā)方法的比較:當應(yīng)用方面的需求可明確提出并在一段時間內(nèi)保持穩(wěn)定時,可以采用生命周期法進行建設(shè)。當解決一些規(guī)模不大但不確定因素較多的管理決策問題時,采用快速原型法。當用戶需求經(jīng)常發(fā)生變化,系統(tǒng)必須有很強的應(yīng)變能力時,采用面向?qū)ο蠓椒ā?1/15/2022172.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)三種開發(fā)方法的比較:11/2.2數(shù)據(jù)庫的設(shè)計

一個設(shè)計良好的數(shù)據(jù)庫,在很大程度上決定了系統(tǒng)的成功與否。一般分為四步:概念模型設(shè)計邏輯數(shù)據(jù)庫設(shè)計規(guī)范化理論的應(yīng)用物理數(shù)據(jù)庫的設(shè)計11/15/2022182.2數(shù)據(jù)庫的設(shè)計一個設(shè)計良好的數(shù)據(jù)2.2數(shù)據(jù)庫的設(shè)計

1、概念模型設(shè)計概念模型設(shè)計的描述最常用的工具是E-R圖,具體步驟如下:(1)確定實體;(2)確定實體的屬性;(3)確定實體的主鍵;(4)確定實體間的聯(lián)系類型;(5)畫出E-R圖;11/15/2022192.2數(shù)據(jù)庫的設(shè)計1、概念模型設(shè)計12.2數(shù)據(jù)庫的設(shè)計

2、邏輯數(shù)據(jù)庫設(shè)計邏輯數(shù)據(jù)庫設(shè)計是將概念模型轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。如果是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),就應(yīng)將概念模型轉(zhuǎn)換為關(guān)系模型,即將E-R圖中的實體和聯(lián)系轉(zhuǎn)換為關(guān)系模式。11/15/2022202.2數(shù)據(jù)庫的設(shè)計2、邏輯數(shù)據(jù)庫設(shè)計2.2數(shù)據(jù)庫的設(shè)計

2、邏輯數(shù)據(jù)庫設(shè)計學院(學院代碼、學院名稱、院長姓名、學院地址、學院電話、學院簡介)教師(教師編號、系部編號、姓名、性別、學歷、職稱、辦公電話、手機、E-mail、照片)班級(班級編號、班級名稱、班長、聯(lián)系電話、獎勵處罰、系部編號)學生(學號、姓名、性別、出生年月、籍貫、個人簡歷、照片、獎勵處罰、班級編號)11/15/2022212.2數(shù)據(jù)庫的設(shè)計2、邏輯數(shù)據(jù)庫2.2數(shù)據(jù)庫的設(shè)計

3、規(guī)范化理論的應(yīng)用在邏輯數(shù)據(jù)庫設(shè)計中,形成了一組關(guān)系模式。如果關(guān)系模式?jīng)]有設(shè)計好,就會出現(xiàn)數(shù)據(jù)冗余、數(shù)據(jù)更新異常、數(shù)據(jù)刪除異常、數(shù)據(jù)插入異常等問題。規(guī)范化理論的目的就是設(shè)計好的關(guān)系模式。4、物理數(shù)據(jù)庫設(shè)計物理數(shù)據(jù)庫設(shè)計是設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)和物理實現(xiàn)方法。11/15/2022222.2數(shù)據(jù)庫的設(shè)計3、規(guī)范化理論的2.3規(guī)范化理論的基本概念

1.函數(shù)依賴函數(shù)依賴是屬性之間的一種聯(lián)系。如果一個關(guān)系模式設(shè)計的不好,說明在它的某些屬性之間存在“不良”的函數(shù)依賴。設(shè)在關(guān)系R中,X、Y為R的兩個屬性子集,如果每個X值只有一個Y值與之對應(yīng),則稱屬性Y函數(shù)依賴于屬性X;或稱屬性X惟一確定屬性Y,記作X→Y。如果X→Y,同時Y不包含于X,則稱X→Y是非平凡的函數(shù)依賴。11/15/2022232.3規(guī)范化理論的基本概念1.函數(shù)2.3規(guī)范化理論的基本概念

2.完全函數(shù)依賴設(shè)在關(guān)系R中,X、Y為R的兩個屬性子集,若X→Y,且對于X的任何一個真子集X’,都有X’→Y,則稱Y完全函數(shù)依賴于X。若X’Y,則稱Y部分函數(shù)依賴于X。11/15/2022242.3規(guī)范化理論的基本概念2.完全函數(shù)依賴11/2.3規(guī)范化理論的基本概念

3.傳遞函數(shù)依賴設(shè)在關(guān)系R中,X、Y、Z為R的三個屬性子集,若X→Y,Y→Z,且X不依賴于Y,則稱Z傳遞函數(shù)依賴于X。

11/15/2022252.3規(guī)范化理論的基本概念3.傳遞函數(shù)依賴11/2.4規(guī)范化設(shè)計

規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中不合適的部分,解決數(shù)據(jù)插入、更新、刪除時發(fā)生異?,F(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系模式要滿足規(guī)范的模式,即“范式”(NormalForm)。11/15/2022262.4規(guī)范化設(shè)計規(guī)范化的基本思想是消除關(guān)系模式2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?例如,要求設(shè)計教學管理數(shù)據(jù)庫,其對象“學生”的關(guān)系模式如下:學生(學號,姓名,年齡,系別,課程號,成績)11/15/2022272.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?根據(jù)實際情況,這些數(shù)據(jù)有如下語義規(guī)定:1.一個系有若干個學生,但一個學生只屬于一個系;2.一個系只有一名系主任,但一個系主任可以同時兼幾個系的系主任;3.一個學生可以選修多門功課,每門課程可有若干學生選修;4.每個學生學習課程有一個成績。11/15/2022282.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

SNOSNAGEDEPTMNCNOSCORES1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C285S2錢爾18信息王平C557S2錢爾18信息王平C680S2錢爾18信息王平C7

70S2錢爾18信息王平C470S3孫珊20信息王平C10S3孫珊20信息王平C270S3孫珊20信息王平C485S4李思21自動化劉偉C19311/15/2022292.4規(guī)范化設(shè)計SNOSNAGEDEPTMNCNO2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?分析以上關(guān)系中的數(shù)據(jù),可以看出:(SNO,CNO)屬性的組合能唯一標識一個元組,所以(SNO,CNO)是該關(guān)系模式的主鍵。但在進行數(shù)據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題。11/15/2022302.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?可能出現(xiàn)的問題:1.數(shù)據(jù)冗余。每個系名和系主任的名字存儲的次數(shù)等于該系的學生人數(shù)乘以每個學生選修的課程門數(shù),同時學生的姓名、年齡也都要重復存儲多次,數(shù)據(jù)的冗余度很大,浪費了存儲空間。

11/15/2022312.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:2.插入異常。如果某個新系沒有招生,尚無學生時,則系名和系主任的信息無法插入到數(shù)據(jù)庫中。因為在這個關(guān)系模式中,(SNO,CNO)是主關(guān)系鍵。根據(jù)關(guān)系的實體完整性約束,主關(guān)系鍵的值不能為空,而這時沒有學生,SNO和CNO均無值,因此不能進行插入操作。另外,當某個學生尚未選課,即CNO未知,實體完整性約束還規(guī)定,主關(guān)系鍵的值不能部分為空,同樣不能進行插入操作。

11/15/2022322.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:3.刪除異常。某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記錄則系名、系主任也隨之刪除,而這個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的信息。另外,如果某個學生不再選修C1課程,本應(yīng)該只刪去C1,但C1是主關(guān)系鍵的一部分,為保證實體完整性,必須將整個元組一起刪掉,這樣,有關(guān)該學生的其它信息也隨之丟失。

11/15/2022332.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:

4.更新異常。如果學生改名,則該學生的所有記錄都要逐一修改SN;又如某系更換系主任,則屬于該系的學生記錄都要修改MN的內(nèi)容,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完整性。。

11/15/2022342.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

由于存在以上問題,SCD是一個不好的關(guān)系模式。產(chǎn)生上述問題的原因,直觀地說,是因為關(guān)系中“包羅萬象”,內(nèi)容太雜了。那么,怎樣才能得到一個好的關(guān)系模式呢?把關(guān)系模式SCD分解為下面三個結(jié)構(gòu)簡單的關(guān)系模式,如圖所示。學生S(SNO,SN,AGE,DEPT)選課SC(SNO,CNO,SCORE)系D(DEPT,MN)11/15/2022352.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

SNOSNAGEDEPT

SNOCNOSCORES1趙亦17計算機

S1C190S2錢爾18信息

S1C285S3孫珊20信息

S2C557S4李思21自動化

S2C680

S2C7

78D

S2C570DEPTMN

S3C10計算機劉偉

S3C270信息王平

S3C485自動化劉偉

S4C193分解后的關(guān)系模式

11/15/2022362.4規(guī)范化設(shè)計SNOSNAGEDEPT

SNOC2.4規(guī)范化設(shè)計

一個好的關(guān)系模式應(yīng)該具備以下四個條件:1.盡可能少的數(shù)據(jù)冗余。2.沒有插入異常。3.沒有刪除異常。4.沒有更新異常。

11/15/2022372.4規(guī)范化設(shè)計11/11/2022372.4規(guī)范化設(shè)計

如何按照一定的規(guī)范設(shè)計關(guān)系模式,將結(jié)構(gòu)復雜的關(guān)系分解成結(jié)構(gòu)簡單的關(guān)系,從而把不好的關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫模式,這就是關(guān)系的規(guī)范化。規(guī)范化又可以根據(jù)不同的要求而分成若干級別。11/15/2022382.4規(guī)范化設(shè)計如何按照一定的規(guī)范設(shè)計關(guān)系模式2.4規(guī)范化設(shè)計

把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標準稱為范式(NormalForm)。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,在第一范式中進一步滿足一些要求為第二范式,以此類推就產(chǎn)生了第三范式等概念。每種范式都規(guī)定了一些限制約束條件。2.4.1第一范式11/15/2022392.4規(guī)范化設(shè)計把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不2.4規(guī)范化設(shè)計第一范式(FirstNormalForm)是最基本的規(guī)范形式,即關(guān)系中每個屬性都是不可再分的簡單項。每個規(guī)范化的關(guān)系都屬于1NF,這也是它之所以稱為“第一”的原因。

定義如果關(guān)系模式R,其所有的屬性均為簡單屬性,即每個屬性都是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R1NF。2.4規(guī)范化設(shè)計2.4.1第一范式11/15/2022402.4規(guī)范化設(shè)計第一范式(FirstNormalForm2.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計編號姓名電話家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212編號姓名家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212只要將所有的屬性表示為不可分的數(shù)據(jù)項,轉(zhuǎn)化后的關(guān)系即符合第一范式。

2.4.1第一范式11/15/2022412.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計編號姓名電話家庭電話辦公電話2.4規(guī)范化設(shè)計然而,一個關(guān)系模式僅僅屬于第一范式是不適用的。關(guān)系模式SCD屬于第一范式,但其具有大量的數(shù)據(jù)冗余,具有插入異常、刪除異常、更新異常等弊端。2.4規(guī)范化設(shè)計2.4.1第一范式11/15/2022422.4規(guī)范化設(shè)計然而,一個關(guān)系模式僅僅屬于第一范式是不適用的2.4規(guī)范化設(shè)計定義如果關(guān)系模式R1NF,且每個非主屬性都完全函數(shù)依賴于任意一個侯選關(guān)鍵字,則稱R屬于第二范式,簡稱2NF,記作R2NF。2.4規(guī)范化設(shè)計2.4.2第二范式11/15/2022432.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計2.4.2第二范式112.4規(guī)范化設(shè)計2.4.2第二范式帶來問題的原因是:非主屬性“學分”僅僅依賴于“課程號”,也就是說只是部分依賴于主關(guān)鍵字(學號,課程號),而不是完全依賴。學號課程號成績課程號課程名學分01002C176C1高等數(shù)學401002C288C2計算機文化基礎(chǔ)502002C190C3英語402002C286C4大學物理402002C393C5大學美育305007C396C6計算機繪圖3學號課程號成績學分01002C176401002C288502002C190402002C286502002C393405007C396411/15/2022442.4規(guī)范化設(shè)計2.4.2第二范式帶來問題的原因是:非2.4規(guī)范化設(shè)計2NF的關(guān)系模式解決了1NF中存在的一些問題,2NF規(guī)范化的程度比1NF前進了一步,但2NF的關(guān)系模式在進行數(shù)據(jù)操作時,仍然存在著一些問題。2.4規(guī)范化設(shè)計2.4.2第二范式11/15/2022452.4規(guī)范化設(shè)計2NF的關(guān)系模式解決了1NF中存在的一些2.4規(guī)范化設(shè)計定義如果關(guān)系模式R2NF,且每個非主屬性都不傳遞依賴于R的任何候選關(guān)鍵字,則稱R屬于第三范式,簡稱3NF,記作R3NF。如果R3NF,則R也是2NF。如果R2NF,則R不一定是3NF。2.4規(guī)范化設(shè)計2.4.3第三范式11/15/2022462.4規(guī)范化設(shè)計定義如果關(guān)系模式R2NF,且每個非主屬2.4規(guī)范化設(shè)計2.4.3第三范式學號姓名院系編號院系名稱院系地址01004張輝春01計算機學院科教樓三層02001陳玉茜01計算機學院科教樓三層02002張一燕03會計學院科教樓十一層在該表中,關(guān)鍵字是學號,由于是單個關(guān)鍵字,沒有部分依賴的問題,這個關(guān)系肯定屬于第二范式。帶來問題的原因是:關(guān)系中存在傳遞依賴?!霸合得Q”、“院系地址”兩個屬性依賴于“院系編號”,而“院系編號”又依賴于“學號”,因此,“院系名稱”、“院系地址”兩個屬性通過“院系編號”依賴于“學號”,這種現(xiàn)象稱為傳遞依賴。11/15/2022472.4規(guī)范化設(shè)計2.4.3第三范式學號姓名院系編號院系2.4規(guī)范化設(shè)計2.4.4BC范式定義如果關(guān)系模式的所有屬性(包括主屬性和非主屬性)都不傳遞依賴于R的任何侯選關(guān)鍵字,則稱R屬于BCNF,記作RBCNF。如果R3NF,則R也是2NF。如果R2NF,則R不一定是3NF。11/15/2022482.4規(guī)范化設(shè)計2.4.4BC范式定義如果關(guān)系模式2.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,就可稱作規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。這樣的關(guān)系模式是合法的。但人們發(fā)現(xiàn)有些關(guān)系模式存在插入、刪除、修改異常、數(shù)據(jù)冗余等弊病。規(guī)范化的目的就是使結(jié)構(gòu)合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。

11/15/2022492.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)一個2.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)規(guī)范化的基本原則就是遵從概念單一化“一事一地”的原則,即一個關(guān)系只描述一個實體或者實體間的聯(lián)系。若多于一個實體,就把它“分離”出來。因此,所謂規(guī)范化,實質(zhì)上是概念的單一化,即一個關(guān)系表示一個實體。11/15/2022502.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)規(guī)范化2.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)注意在數(shù)據(jù)庫設(shè)計過程中,一般說來,1NF很容易遵守,完全遵守3NF的人很少。從關(guān)系模型的角度來看,滿足3NF最符合標準,這樣的設(shè)計容易維護。而BCNF的范式出現(xiàn)機會較少,而且會破壞完整性,可以在設(shè)計時不考慮它。規(guī)范化的優(yōu)點是減少了數(shù)據(jù)冗余,節(jié)約了存儲空間,同時加快了增、刪、改的速度,但在數(shù)據(jù)查詢方面,需要進行關(guān)系模式之間的連接操作,因而影響查詢的速度。因此,并不一定要求全部模式都達到BCNF,有時故意保留部分冗余可能更方便數(shù)據(jù)查詢。11/15/2022512.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)注意112.5“教學管理系統(tǒng)”的開發(fā)2.5.1系統(tǒng)規(guī)劃階段1.提出開發(fā)請求某大學是一所多科性大學,學校設(shè)有經(jīng)濟學院、化學與環(huán)境工程學院、機械自動化學院、信息工程學院、計算機學院、商學院、會計學院等11個學院。學校現(xiàn)有教職工近1400人,學生18000多人。隨著信息量的增加,教學管理工作越來越繁雜,手工管理的弊端日益顯露。為了提高教學管理的質(zhì)量和工作效率,為了及時提供信息,實現(xiàn)教學管理的信息化,學校委托某軟件開發(fā)公司開發(fā)“教學管理系統(tǒng)”。11/15/2022522.5“教學管理系統(tǒng)”的開發(fā)2.5.1系統(tǒng)規(guī)劃階段1.提2.5“教學管理系統(tǒng)”的開發(fā)2.5.1系統(tǒng)規(guī)劃階段2.可行性分析研究可行性分析包括兩部分內(nèi)容:分析建立新的管理信息系統(tǒng)的必要性和可能性??赡苄灾饕ń?jīng)濟可行性、技術(shù)可行性和社會可行性。11/15/2022532.5“教學管理系統(tǒng)”的開發(fā)2.5.1系統(tǒng)規(guī)劃階段2.可2.5“教學管理系統(tǒng)”的開發(fā)2.5.2系統(tǒng)分析階段1.學校機構(gòu)組織2.教學管理工作流程3.教學管理數(shù)據(jù)流程圖院系教師登錄班級檔案登錄課程檔案登錄學生成績登錄學生檔案登錄教師檔案接受教學任務(wù)教師授課情況表登錄工作量學生選課表教師基本情況表學生基本情況表班級基本情況表全校課程表學生學生選課各類查詢相關(guān)人員11/15/2022542.5“教學管理系統(tǒng)”的開發(fā)2.5.2系統(tǒng)分析階段1.學2.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段功能模塊設(shè)計教師模塊學生模塊班級模塊院系模塊課程模塊教學管理系統(tǒng)學生基本信息管理學生選課信息管理成績登記統(tǒng)計查詢教師基本信息管理教師授課信息管理工作量統(tǒng)計查詢班級基本信息管理班級信息查詢課程信息管理課程信息查詢教學計劃管理教學任務(wù)管理各類查詢統(tǒng)計報表打印11/15/2022552.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段教師模2.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)據(jù)庫設(shè)計⑴確定實體⑵確定實體的屬性學院代碼學院簡介學院地址學院名稱院長姓名學院電話學院教師手機照片E-mail辦公電話性別姓名學歷職稱系部編號教師編號11/15/2022562.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)2.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)據(jù)庫設(shè)計

⑶確定實體間的聯(lián)系類型

1n系部聘任教師1n學院設(shè)置系部mn教師講授課程1n系部有班級1n班級有學生mn學生選修課程局部E-R圖11/15/2022572.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)2.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)據(jù)庫設(shè)計⑶確定實體間的聯(lián)系類型

mnn11n系部學院設(shè)置nm1n1課程聘任教師講授選修n班級有有學生整體E-R圖11/15/2022582.5“教學管理系統(tǒng)”的開發(fā)2.5.3系統(tǒng)設(shè)計階段2.數(shù)本章小結(jié)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)方法有:結(jié)構(gòu)化生命周期法、快速原型法、面向?qū)ο蠓椒?。結(jié)構(gòu)化生命周期法的開發(fā)過程分為:系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施、系統(tǒng)運行和系統(tǒng)維護。11/15/202259本章小結(jié)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)方法有:結(jié)構(gòu)化生命周期法、快本章小結(jié)數(shù)據(jù)庫的設(shè)計一般分為概念模型設(shè)計、邏輯數(shù)據(jù)庫設(shè)計、規(guī)范化理論的應(yīng)用、物理數(shù)據(jù)庫設(shè)計。數(shù)據(jù)庫設(shè)計是整個數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的關(guān)鍵。規(guī)范化理論的應(yīng)用,對設(shè)計一個良好的數(shù)據(jù)庫是十分必要的。并不是規(guī)范化程度越高,關(guān)系模式就越好。11/15/202260本章小結(jié)11/11/202260第二章

數(shù)據(jù)庫應(yīng)用系統(tǒng)

設(shè)計概述61第二章

數(shù)據(jù)庫應(yīng)用系統(tǒng)

設(shè)計概述1知識點:

數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

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

數(shù)據(jù)庫規(guī)范化設(shè)計理論

11/15/202262知識點:數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

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

數(shù)據(jù)庫2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

在數(shù)據(jù)庫管理系統(tǒng)上開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)是一個復雜的過程,必須在軟件開發(fā)理論和方法的指導下進行,否則很難開發(fā)出高效適用的應(yīng)用系統(tǒng)。11/15/2022632.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)在數(shù)據(jù)庫管理2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)方法很多,得到廣泛運用的有以下三種:結(jié)構(gòu)化生命周期法快速原型法面向?qū)ο蠓椒?1/15/2022642.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的基本思想是把系統(tǒng)開發(fā)看作是工程項目,需要經(jīng)過以下5個階段:系統(tǒng)規(guī)劃系統(tǒng)分析(需求分析)系統(tǒng)設(shè)計系統(tǒng)實施(編程)系統(tǒng)運行(測試)系統(tǒng)維護11/15/2022652.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟一、系統(tǒng)規(guī)劃階段在系統(tǒng)正式開發(fā)之前,必須進行系統(tǒng)調(diào)查和可行性分析。本階段的主要任務(wù)是根據(jù)用戶的系統(tǒng)開發(fā)請求,初步調(diào)查,明確問題,進行可行性分析研究。11/15/2022662.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟二、系統(tǒng)分析階段系統(tǒng)分析階段可以說是系統(tǒng)開發(fā)中最重要的一步,主要任務(wù)是:需求分析信息采集編寫需求說明書11/15/2022672.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟三、系統(tǒng)設(shè)計階段如果系統(tǒng)分析階段的任務(wù)是解決“干什么”的問題,那么系統(tǒng)設(shè)計階段的任務(wù)是確定“怎么干”。系統(tǒng)設(shè)計工作由總體設(shè)計和詳細設(shè)計兩部分組成。11/15/2022682.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟三、系統(tǒng)設(shè)計階段總體設(shè)計完成概念模型的設(shè)計詳細設(shè)計完成數(shù)據(jù)庫設(shè)計和應(yīng)用程序的設(shè)計11/15/2022692.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟四、系統(tǒng)實施階段第一步:應(yīng)選擇合適的軟件開發(fā)工具;第二步:使用所選擇的開發(fā)工具,建立數(shù)據(jù)庫,輸入原始數(shù)據(jù),編寫和調(diào)試各個模塊的應(yīng)用程序代碼;第三步:完成各個子系統(tǒng)和模塊之間的聯(lián)合調(diào)試和測試;11/15/2022702.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟五、系統(tǒng)運行階段將系統(tǒng)交給用戶正式投入之前,便進入系統(tǒng)的運行測試階段。在試運行過程中,可能會發(fā)現(xiàn)很多問題,要廣泛聽取用戶的意見,并根據(jù)運行結(jié)果進行評估,修改系統(tǒng)的錯誤、改進系統(tǒng)的性能。11/15/2022712.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

結(jié)構(gòu)化生命周期法的開發(fā)步驟投入運行:系統(tǒng)維護階段將系統(tǒng)交給用戶正式投入之后,可能會發(fā)現(xiàn)很多新的問題,或用戶提出新的要求,開發(fā)者應(yīng)不斷對系統(tǒng)進行修改、維護或調(diào)整,直至系統(tǒng)生命周期的結(jié)束。11/15/2022722.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)結(jié)構(gòu)化生命周期法的開發(fā)步驟2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

快速原型法的基本思想就是依據(jù)原型進行快速開發(fā),對存在的問題反復修正,直到用戶滿意為止。分為四步:系統(tǒng)基本需求的確定對原型功能的選擇原型的構(gòu)造與試用原型的修改和完善11/15/2022732.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)快速原型法的基本思2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒ㄊ前衙嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計與面向?qū)ο蟪绦蛟O(shè)計結(jié)合在一起,形成面向?qū)ο蠓椒?。分為以下五步:需求分析需求模型化概要設(shè)計詳細設(shè)計編程實施11/15/2022742.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒ㄊ前衙嫦?.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒?1/15/2022752.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒?1/12.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

面向?qū)ο蠓椒?1/15/2022762.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)面向?qū)ο蠓椒?1/12.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)

三種開發(fā)方法的比較:當應(yīng)用方面的需求可明確提出并在一段時間內(nèi)保持穩(wěn)定時,可以采用生命周期法進行建設(shè)。當解決一些規(guī)模不大但不確定因素較多的管理決策問題時,采用快速原型法。當用戶需求經(jīng)常發(fā)生變化,系統(tǒng)必須有很強的應(yīng)變能力時,采用面向?qū)ο蠓椒ā?1/15/2022772.1數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)三種開發(fā)方法的比較:11/2.2數(shù)據(jù)庫的設(shè)計

一個設(shè)計良好的數(shù)據(jù)庫,在很大程度上決定了系統(tǒng)的成功與否。一般分為四步:概念模型設(shè)計邏輯數(shù)據(jù)庫設(shè)計規(guī)范化理論的應(yīng)用物理數(shù)據(jù)庫的設(shè)計11/15/2022782.2數(shù)據(jù)庫的設(shè)計一個設(shè)計良好的數(shù)據(jù)2.2數(shù)據(jù)庫的設(shè)計

1、概念模型設(shè)計概念模型設(shè)計的描述最常用的工具是E-R圖,具體步驟如下:(1)確定實體;(2)確定實體的屬性;(3)確定實體的主鍵;(4)確定實體間的聯(lián)系類型;(5)畫出E-R圖;11/15/2022792.2數(shù)據(jù)庫的設(shè)計1、概念模型設(shè)計12.2數(shù)據(jù)庫的設(shè)計

2、邏輯數(shù)據(jù)庫設(shè)計邏輯數(shù)據(jù)庫設(shè)計是將概念模型轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。如果是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),就應(yīng)將概念模型轉(zhuǎn)換為關(guān)系模型,即將E-R圖中的實體和聯(lián)系轉(zhuǎn)換為關(guān)系模式。11/15/2022802.2數(shù)據(jù)庫的設(shè)計2、邏輯數(shù)據(jù)庫設(shè)計2.2數(shù)據(jù)庫的設(shè)計

2、邏輯數(shù)據(jù)庫設(shè)計學院(學院代碼、學院名稱、院長姓名、學院地址、學院電話、學院簡介)教師(教師編號、系部編號、姓名、性別、學歷、職稱、辦公電話、手機、E-mail、照片)班級(班級編號、班級名稱、班長、聯(lián)系電話、獎勵處罰、系部編號)學生(學號、姓名、性別、出生年月、籍貫、個人簡歷、照片、獎勵處罰、班級編號)11/15/2022812.2數(shù)據(jù)庫的設(shè)計2、邏輯數(shù)據(jù)庫2.2數(shù)據(jù)庫的設(shè)計

3、規(guī)范化理論的應(yīng)用在邏輯數(shù)據(jù)庫設(shè)計中,形成了一組關(guān)系模式。如果關(guān)系模式?jīng)]有設(shè)計好,就會出現(xiàn)數(shù)據(jù)冗余、數(shù)據(jù)更新異常、數(shù)據(jù)刪除異常、數(shù)據(jù)插入異常等問題。規(guī)范化理論的目的就是設(shè)計好的關(guān)系模式。4、物理數(shù)據(jù)庫設(shè)計物理數(shù)據(jù)庫設(shè)計是設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)和物理實現(xiàn)方法。11/15/2022822.2數(shù)據(jù)庫的設(shè)計3、規(guī)范化理論的2.3規(guī)范化理論的基本概念

1.函數(shù)依賴函數(shù)依賴是屬性之間的一種聯(lián)系。如果一個關(guān)系模式設(shè)計的不好,說明在它的某些屬性之間存在“不良”的函數(shù)依賴。設(shè)在關(guān)系R中,X、Y為R的兩個屬性子集,如果每個X值只有一個Y值與之對應(yīng),則稱屬性Y函數(shù)依賴于屬性X;或稱屬性X惟一確定屬性Y,記作X→Y。如果X→Y,同時Y不包含于X,則稱X→Y是非平凡的函數(shù)依賴。11/15/2022832.3規(guī)范化理論的基本概念1.函數(shù)2.3規(guī)范化理論的基本概念

2.完全函數(shù)依賴設(shè)在關(guān)系R中,X、Y為R的兩個屬性子集,若X→Y,且對于X的任何一個真子集X’,都有X’→Y,則稱Y完全函數(shù)依賴于X。若X’Y,則稱Y部分函數(shù)依賴于X。11/15/2022842.3規(guī)范化理論的基本概念2.完全函數(shù)依賴11/2.3規(guī)范化理論的基本概念

3.傳遞函數(shù)依賴設(shè)在關(guān)系R中,X、Y、Z為R的三個屬性子集,若X→Y,Y→Z,且X不依賴于Y,則稱Z傳遞函數(shù)依賴于X。

11/15/2022852.3規(guī)范化理論的基本概念3.傳遞函數(shù)依賴11/2.4規(guī)范化設(shè)計

規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中不合適的部分,解決數(shù)據(jù)插入、更新、刪除時發(fā)生異?,F(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫設(shè)計出來的關(guān)系模式要滿足規(guī)范的模式,即“范式”(NormalForm)。11/15/2022862.4規(guī)范化設(shè)計規(guī)范化的基本思想是消除關(guān)系模式2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?例如,要求設(shè)計教學管理數(shù)據(jù)庫,其對象“學生”的關(guān)系模式如下:學生(學號,姓名,年齡,系別,課程號,成績)11/15/2022872.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?根據(jù)實際情況,這些數(shù)據(jù)有如下語義規(guī)定:1.一個系有若干個學生,但一個學生只屬于一個系;2.一個系只有一名系主任,但一個系主任可以同時兼幾個系的系主任;3.一個學生可以選修多門功課,每門課程可有若干學生選修;4.每個學生學習課程有一個成績。11/15/2022882.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

SNOSNAGEDEPTMNCNOSCORES1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C285S2錢爾18信息王平C557S2錢爾18信息王平C680S2錢爾18信息王平C7

70S2錢爾18信息王平C470S3孫珊20信息王平C10S3孫珊20信息王平C270S3孫珊20信息王平C485S4李思21自動化劉偉C19311/15/2022892.4規(guī)范化設(shè)計SNOSNAGEDEPTMNCNO2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?分析以上關(guān)系中的數(shù)據(jù),可以看出:(SNO,CNO)屬性的組合能唯一標識一個元組,所以(SNO,CNO)是該關(guān)系模式的主鍵。但在進行數(shù)據(jù)庫的操作時,會出現(xiàn)以下幾方面的問題。11/15/2022902.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?可能出現(xiàn)的問題:1.數(shù)據(jù)冗余。每個系名和系主任的名字存儲的次數(shù)等于該系的學生人數(shù)乘以每個學生選修的課程門數(shù),同時學生的姓名、年齡也都要重復存儲多次,數(shù)據(jù)的冗余度很大,浪費了存儲空間。

11/15/2022912.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:2.插入異常。如果某個新系沒有招生,尚無學生時,則系名和系主任的信息無法插入到數(shù)據(jù)庫中。因為在這個關(guān)系模式中,(SNO,CNO)是主關(guān)系鍵。根據(jù)關(guān)系的實體完整性約束,主關(guān)系鍵的值不能為空,而這時沒有學生,SNO和CNO均無值,因此不能進行插入操作。另外,當某個學生尚未選課,即CNO未知,實體完整性約束還規(guī)定,主關(guān)系鍵的值不能部分為空,同樣不能進行插入操作。

11/15/2022922.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:3.刪除異常。某系學生全部畢業(yè)而沒有招生時,刪除全部學生的記錄則系名、系主任也隨之刪除,而這個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的信息。另外,如果某個學生不再選修C1課程,本應(yīng)該只刪去C1,但C1是主關(guān)系鍵的一部分,為保證實體完整性,必須將整個元組一起刪掉,這樣,有關(guān)該學生的其它信息也隨之丟失。

11/15/2022932.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

可能出現(xiàn)的問題:

4.更新異常。如果學生改名,則該學生的所有記錄都要逐一修改SN;又如某系更換系主任,則屬于該系的學生記錄都要修改MN的內(nèi)容,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完整性。。

11/15/2022942.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的規(guī)范化理論?

由于存在以上問題,SCD是一個不好的關(guān)系模式。產(chǎn)生上述問題的原因,直觀地說,是因為關(guān)系中“包羅萬象”,內(nèi)容太雜了。那么,怎樣才能得到一個好的關(guān)系模式呢?把關(guān)系模式SCD分解為下面三個結(jié)構(gòu)簡單的關(guān)系模式,如圖所示。學生S(SNO,SN,AGE,DEPT)選課SC(SNO,CNO,SCORE)系D(DEPT,MN)11/15/2022952.4規(guī)范化設(shè)計數(shù)據(jù)庫的邏輯設(shè)計為什么要遵循一定的2.4規(guī)范化設(shè)計

SNOSNAGEDEPT

SNOCNOSCORES1趙亦17計算機

S1C190S2錢爾18信息

S1C285S3孫珊20信息

S2C557S4李思21自動化

S2C680

S2C7

78D

S2C570DEPTMN

S3C10計算機劉偉

S3C270信息王平

S3C485自動化劉偉

S4C193分解后的關(guān)系模式

11/15/2022962.4規(guī)范化設(shè)計SNOSNAGEDEPT

SNOC2.4規(guī)范化設(shè)計

一個好的關(guān)系模式應(yīng)該具備以下四個條件:1.盡可能少的數(shù)據(jù)冗余。2.沒有插入異常。3.沒有刪除異常。4.沒有更新異常。

11/15/2022972.4規(guī)范化設(shè)計11/11/2022372.4規(guī)范化設(shè)計

如何按照一定的規(guī)范設(shè)計關(guān)系模式,將結(jié)構(gòu)復雜的關(guān)系分解成結(jié)構(gòu)簡單的關(guān)系,從而把不好的關(guān)系數(shù)據(jù)庫模式轉(zhuǎn)變?yōu)楹玫年P(guān)系數(shù)據(jù)庫模式,這就是關(guān)系的規(guī)范化。規(guī)范化又可以根據(jù)不同的要求而分成若干級別。11/15/2022982.4規(guī)范化設(shè)計如何按照一定的規(guī)范設(shè)計關(guān)系模式2.4規(guī)范化設(shè)計

把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標準稱為范式(NormalForm)。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,在第一范式中進一步滿足一些要求為第二范式,以此類推就產(chǎn)生了第三范式等概念。每種范式都規(guī)定了一些限制約束條件。2.4.1第一范式11/15/2022992.4規(guī)范化設(shè)計把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不2.4規(guī)范化設(shè)計第一范式(FirstNormalForm)是最基本的規(guī)范形式,即關(guān)系中每個屬性都是不可再分的簡單項。每個規(guī)范化的關(guān)系都屬于1NF,這也是它之所以稱為“第一”的原因。

定義如果關(guān)系模式R,其所有的屬性均為簡單屬性,即每個屬性都是不可再分的,則稱R屬于第一范式,簡稱1NF,記作R1NF。2.4規(guī)范化設(shè)計2.4.1第一范式11/15/20221002.4規(guī)范化設(shè)計第一范式(FirstNormalForm2.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計編號姓名電話家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212編號姓名家庭電話辦公電話01004張輝春667788998733421102001陳玉茜672123458656633302002張一燕6789123482334212只要將所有的屬性表示為不可分的數(shù)據(jù)項,轉(zhuǎn)化后的關(guān)系即符合第一范式。

2.4.1第一范式11/15/20221012.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計編號姓名電話家庭電話辦公電話2.4規(guī)范化設(shè)計然而,一個關(guān)系模式僅僅屬于第一范式是不適用的。關(guān)系模式SCD屬于第一范式,但其具有大量的數(shù)據(jù)冗余,具有插入異常、刪除異常、更新異常等弊端。2.4規(guī)范化設(shè)計2.4.1第一范式11/15/20221022.4規(guī)范化設(shè)計然而,一個關(guān)系模式僅僅屬于第一范式是不適用的2.4規(guī)范化設(shè)計定義如果關(guān)系模式R1NF,且每個非主屬性都完全函數(shù)依賴于任意一個侯選關(guān)鍵字,則稱R屬于第二范式,簡稱2NF,記作R2NF。2.4規(guī)范化設(shè)計2.4.2第二范式11/15/20221032.4規(guī)范化設(shè)計2.4規(guī)范化設(shè)計2.4.2第二范式112.4規(guī)范化設(shè)計2.4.2第二范式帶來問題的原因是:非主屬性“學分”僅僅依賴于“課程號”,也就是說只是部分依賴于主關(guān)鍵字(學號,課程號),而不是完全依賴。學號課程號成績課程號課程名學分01002C176C1高等數(shù)學401002C288C2計算機文化基礎(chǔ)502002C190C3英語402002C286C4大學物理402002C393C5大學美育305007C396C6計算機繪圖3學號課程號成績學分01002C176401002C288502002C190402002C286502002C393405007C396411/15/20221042.4規(guī)范化設(shè)計2.4.2第二范式帶來問題的原因是:非2.4規(guī)范化設(shè)計2NF的關(guān)系模式解決了1NF中存在的一些問題,2NF規(guī)范化的程度比1NF前進了一步,但2NF的關(guān)系模式在進行數(shù)據(jù)操作時,仍然存在著一些問題。2.4規(guī)范化設(shè)計2.4.2第二范式11/15/20221052.4規(guī)范化設(shè)計2NF的關(guān)系模式解決了1NF中存在的一些2.4規(guī)范化設(shè)計定義如果關(guān)系模式R2NF,且每個非主屬性都不傳遞依賴于R的任何候選關(guān)鍵字,則稱R屬于第三范式,簡稱3NF,記作R3NF。如果R3NF,則R也是2NF。如果R2NF,則R不一定是3NF。2.4規(guī)范化設(shè)計2.4.3第三范式11/15/20221062.4規(guī)范化設(shè)計定義如果關(guān)系模式R2NF,且每個非主屬2.4規(guī)范化設(shè)計2.4.3第三范式學號姓名院系編號院系名稱院系地址01004張輝春01計算機學院科教樓三層02001陳玉茜01計算機學院科教樓三層02002張一燕03會計學院科教樓十一層在該表中,關(guān)鍵字是學號,由于是單個關(guān)鍵字,沒有部分依賴的問題,這個關(guān)系肯定屬于第二范式。帶來問題的原因是:關(guān)系中存在傳遞依賴?!霸合得Q”、“院系地址”兩個屬性依賴于“院系編號”,而“院系編號”又依賴于“學號”,因此,“院系名稱”、“院系地址”兩個屬性通過“院系編號”依賴于“學號”,這種現(xiàn)象稱為傳遞依賴。11/15/20221072.4規(guī)范化設(shè)計2.4.3第三范式學號姓名院系編號院系2.4規(guī)范化設(shè)計2.4.4BC范式定義如果關(guān)系模式的所有屬性(包括主屬性和非主屬性)都不傳遞依賴于R的任何侯選關(guān)鍵字,則稱R屬于BCNF,記作RBCNF。如果R3NF,則R也是2NF。如果R2NF,則R不一定是3NF。11/15/20221082.4規(guī)范化設(shè)計2.4.4BC范式定義如果關(guān)系模式2.4規(guī)范化設(shè)計2.4.5數(shù)據(jù)庫規(guī)范化設(shè)計小結(jié)一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,就可稱作規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化。這樣的關(guān)系模式是合法的。但人們發(fā)現(xiàn)有些關(guān)系模式存在插入、刪除、修改異常、數(shù)據(jù)冗余等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論