第四課--規(guī)范化和反規(guī)范化數(shù)據(jù)_第1頁(yè)
第四課--規(guī)范化和反規(guī)范化數(shù)據(jù)_第2頁(yè)
第四課--規(guī)范化和反規(guī)范化數(shù)據(jù)_第3頁(yè)
第四課--規(guī)范化和反規(guī)范化數(shù)據(jù)_第4頁(yè)
第四課--規(guī)范化和反規(guī)范化數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Copyright 2007 創(chuàng)智新程 規(guī)范化和反規(guī)范化數(shù)據(jù)規(guī)范化和反規(guī)范化數(shù)據(jù)Copyright2007-2009 創(chuàng)智新程Copyright 2007 創(chuàng)智新程本課教學(xué)內(nèi)容本課教學(xué)內(nèi)容y規(guī)范化規(guī)范化0范式第一范式(1NF) 第二范式(2NF)第三范式(3NF)Boyce-Codd范式 (BCNF)y非規(guī)范化非規(guī)范化Copyright 2007 創(chuàng)智新程規(guī)范化規(guī)范化y規(guī)范化的目的就是實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)化,那么規(guī)范化的目的就是實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的優(yōu)化,那么我們首先需要知道一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)所遵循的標(biāo)準(zhǔn)我們首先需要知道一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)所遵循的標(biāo)準(zhǔn)0每個(gè)表格應(yīng)有一個(gè)標(biāo)識(shí)符.0每個(gè)表格應(yīng)當(dāng)存儲(chǔ)

2、單個(gè)實(shí)體類型的數(shù)據(jù).0接受NULL的列應(yīng)當(dāng)避免.0值或列的重復(fù)應(yīng)當(dāng)避免.Copyright 2007 創(chuàng)智新程規(guī)范化規(guī)范化y規(guī)范化就是用形式更為簡(jiǎn)潔、結(jié)構(gòu)更加規(guī)范的關(guān)系模規(guī)范化就是用形式更為簡(jiǎn)潔、結(jié)構(gòu)更加規(guī)范的關(guān)系模式取代原有關(guān)系模式的過(guò)程。式取代原有關(guān)系模式的過(guò)程。 Copyright 2007 創(chuàng)智新程任務(wù)任務(wù)y首先我們先考慮首先我們先考慮salarysalary表的結(jié)構(gòu):表的結(jié)構(gòu): (employeeID/employeeID/員工編號(hào),員工編號(hào),Name/Name/姓名,姓名,class/class/工資級(jí)別,工資級(jí)別,salaryAmount/salaryAmount/工資)工資)

3、salary employeeID Name Class salaryAmountCopyright 2007 創(chuàng)智新程任務(wù)任務(wù)ySalarySalary表的數(shù)據(jù)樣本表的數(shù)據(jù)樣本 employeeIDnameclasssalaryAmount001Maria10650002Elizabeth10650003Laurence7680004Carlos8665005Simon11630006Guillermo11630Copyright 2007 創(chuàng)智新程數(shù)據(jù)冗余數(shù)據(jù)冗余 y數(shù)據(jù)在數(shù)據(jù)庫(kù)中的重復(fù)存放稱為數(shù)據(jù)冗余。數(shù)據(jù)在數(shù)據(jù)庫(kù)中的重復(fù)存放稱為數(shù)據(jù)冗余。 y冗余意味著數(shù)據(jù)的重復(fù),同時(shí)增加了更新、加入、

4、和冗余意味著數(shù)據(jù)的重復(fù),同時(shí)增加了更新、加入、和刪除數(shù)據(jù)的時(shí)間,也增加了磁盤空間的使用。刪除數(shù)據(jù)的時(shí)間,也增加了磁盤空間的使用。 Copyright 2007 創(chuàng)智新程冗余的弊端冗余的弊端 y更新不規(guī)則更新不規(guī)則插入,修改,和刪除數(shù)據(jù)可能導(dǎo)致數(shù)插入,修改,和刪除數(shù)據(jù)可能導(dǎo)致數(shù)據(jù)的不一致?lián)牟灰恢聐不一致性不一致性當(dāng)事實(shí)北重復(fù)時(shí),錯(cuò)誤很可能會(huì)發(fā)生。當(dāng)事實(shí)北重復(fù)時(shí),錯(cuò)誤很可能會(huì)發(fā)生。y不必要地使用額外磁盤空間。不必要地使用額外磁盤空間。 Copyright 2007 創(chuàng)智新程范式的定義范式的定義 y一個(gè)表結(jié)構(gòu)(屬性間的關(guān)系)必然是滿足某種規(guī)則,一個(gè)表結(jié)構(gòu)(屬性間的關(guān)系)必然是滿足某種規(guī)則,就像我們

5、表達(dá)信息的方式必然是一種自然語(yǔ)言一樣。就像我們表達(dá)信息的方式必然是一種自然語(yǔ)言一樣。所以表結(jié)構(gòu)總是以某種范式存在。所以表結(jié)構(gòu)總是以某種范式存在。 Copyright 2007 創(chuàng)智新程范式范式y(tǒng)最重要的和最廣泛被使用的范式有:最重要的和最廣泛被使用的范式有: 0第一范式(1NF)0第二范式(2NF)0第三范式(3NF)0Boyce-Code范式(BCNF)Copyright 2007 創(chuàng)智新程范式范式y(tǒng)第一,第二和第三范式由第一,第二和第三范式由Dr.E.F.Codd.Dr.E.F.Codd.最先定義最先定義。之后,。之后,BoyceBoyce和和CoddCodd引進(jìn)了另外的范式稱為引進(jìn)了另外

6、的范式稱為Boyce-CoddBoyce-Codd范式。范式。Copyright 2007 創(chuàng)智新程第一范式第一范式 (1NF1NF) y一個(gè)表結(jié)構(gòu)被認(rèn)為屬于第一范式一個(gè)表結(jié)構(gòu)被認(rèn)為屬于第一范式1NF1NF,當(dāng)表中每個(gè)單,當(dāng)表中每個(gè)單元恰好包含一個(gè)值時(shí)。元恰好包含一個(gè)值時(shí)。 Copyright 2007 創(chuàng)智新程任務(wù)任務(wù)yeducationeducation表的數(shù)據(jù)樣本表的數(shù)據(jù)樣本 employeeIDnamediplomagraduateTime0001SimonCollegemaster 1963 19820002Carloscollege 1989Copyright 2007 創(chuàng)智新程任

7、務(wù)任務(wù)y表格中的數(shù)據(jù)不是規(guī)范化因?yàn)楸砀裰械臄?shù)據(jù)不是規(guī)范化因?yàn)閐iplomadiploma和和graducateTimegraducateTime中單元有一個(gè)以上的值。通過(guò)運(yùn)用中單元有一個(gè)以上的值。通過(guò)運(yùn)用1NF1NF定義到定義到EducationEducation表,你可以得到以下表格。表,你可以得到以下表格。 EmployeeNameDiplomagraduateTime0001SimonCollege 19630001SimonMaster 19820002Carloscollege 1989Copyright 2007 創(chuàng)智新程功能依賴性功能依賴性 y已知一個(gè)表結(jié)構(gòu)已知一個(gè)表結(jié)構(gòu)R R,

8、屬性,屬性A A是功能依賴于屬性是功能依賴于屬性B B,如果,如果每一個(gè)在每一個(gè)在R R中的中的A A值總有一個(gè)值總有一個(gè)B B值與之精確地關(guān)聯(lián)。值與之精確地關(guān)聯(lián)。y換句話說(shuō),屬性換句話說(shuō),屬性A A是功能依賴于是功能依賴于B B,當(dāng)且僅當(dāng)對(duì)每一個(gè),當(dāng)且僅當(dāng)對(duì)每一個(gè)B B,恰有一個(gè),恰有一個(gè)A A的值與之相對(duì)應(yīng)。屬性的值與之相對(duì)應(yīng)。屬性B B被稱之為決定被稱之為決定因子。因子。 Copyright 2007 創(chuàng)智新程第二范式第二范式 (2NF2NF) y一個(gè)表格被稱為一個(gè)表格被稱為2NF2NF,當(dāng)它是,當(dāng)它是1NF1NF且該行中的每個(gè)屬性且該行中的每個(gè)屬性是功能依賴于整個(gè)鍵,而不只是部分的鍵。

9、是功能依賴于整個(gè)鍵,而不只是部分的鍵。 Copyright 2007 創(chuàng)智新程任務(wù)任務(wù)yemployProemployPro表的數(shù)據(jù)樣本表的數(shù)據(jù)樣本 employeeIDnamedepartmanagerprojectIDgrade0002CarlosFinanceTOM YSN0210350005SimonPersonnelPaoloSN0211030007AlexanderTechRolandSN0211020002CarlosFinanceTOM YSN0211040002CarlosFinanceTOM YSN0211650088SergioTechRolandSN020214Copy

10、right 2007 創(chuàng)智新程任務(wù)任務(wù)y下面是轉(zhuǎn)換為下面是轉(zhuǎn)換為2NF2NF的表結(jié)構(gòu)的表結(jié)構(gòu) 表employeeDepart employeeIDDepartManager0002FinanceTom Y0005PersonnelPaolo0007TechRoland0088TechRolandCopyright 2007 創(chuàng)智新程任務(wù)任務(wù)y表表employeeProemployeePro employeeIDNameProject grade0002CarlosSN02103 50005SimonSN02110 30007AlexanderSN02110 20002CarlosSN02110

11、 40002CarlosSN02116 50088SergioSN02021 4Copyright 2007 創(chuàng)智新程轉(zhuǎn)換表格到轉(zhuǎn)換表格到2NF2NF的方法:的方法:y找出并抹去功能依賴于鍵的一部分而不是整個(gè)鍵的屬找出并抹去功能依賴于鍵的一部分而不是整個(gè)鍵的屬性。將它們放到不同的表中性。將它們放到不同的表中y組合剩余的屬性組合剩余的屬性Copyright 2007 創(chuàng)智新程第三范式(第三范式(3NF3NF) y一個(gè)關(guān)系被認(rèn)為是一個(gè)關(guān)系被認(rèn)為是3NF3NF,僅當(dāng)它是,僅當(dāng)它是2NF2NF且每個(gè)非鍵屬性且每個(gè)非鍵屬性只功能依賴于主鍵。只功能依賴于主鍵。 Copyright 2007 創(chuàng)智新程任務(wù)任

12、務(wù)y分析以下分析以下employeeDepartemployeeDepart表表 employeeIDDepartmanager0002FinanceTOM Y0005PersonnelPaolo0007TechRoland0088TechRoland0016PersonnelPaolo0062SalesTingCopyright 2007 創(chuàng)智新程任務(wù)任務(wù)y新的新的employeeDepartemployeeDepart表表 employeeIDDepart0002Finance0005Personnel0007Tech0088Tech0016Personnel0062SalesCopyri

13、ght 2007 創(chuàng)智新程任務(wù)任務(wù)y新的新的departmentdepartment表表 DepartmanagerFinanceTOM.YPersonnelPaoloTechRolandSalesTingCopyright 2007 創(chuàng)智新程轉(zhuǎn)換表格到轉(zhuǎn)換表格到3NF3NF的方法的方法 y找到并抹去功能依賴于不是主鍵屬性的非關(guān)鍵屬性。找到并抹去功能依賴于不是主鍵屬性的非關(guān)鍵屬性。把它們放入不同表格。把它們放入不同表格。y組合剩余的屬性。組合剩余的屬性。 Copyright 2007 創(chuàng)智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF) ychemicalUseche

14、micalUse表表 productIDSignprojectIDamountA026CCH-4SN02103 2A005DCR-1SN02110 1A026CCH-4SN02121 1A026CCH-4SN02110 1A031CHR-2SN02116 3A088KSD-3SN02021 5Copyright 2007 創(chuàng)智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF)y我們對(duì)上述表進(jìn)行改造得到以下表格我們對(duì)上述表進(jìn)行改造得到以下表格 新的product_table表 productIDsignA026CCH-4A005DCR-1A026CCH-4A026CCH-

15、4A031CHR-2A088KSD-3Copyright 2007 創(chuàng)智新程Boyce-CodeBoyce-Code范式(范式(BCNFBCNF)y新的新的project_tableproject_table表表 productIDprojectIDamountA026SN02103 2A005SN02110 1A026SN02121 1A026SN02110 1A031SN02116 3A088SN02021 5Copyright 2007 創(chuàng)智新程轉(zhuǎn)換表格到轉(zhuǎn)換表格到BCNFBCNF的方法的方法 y發(fā)現(xiàn)和抹去覆蓋的候選鍵。把部分的候選鍵和功能依發(fā)現(xiàn)和抹去覆蓋的候選鍵。把部分的候選鍵和功能依

16、賴的屬性放入新的表中。賴的屬性放入新的表中。y組合剩余的屬性成為一個(gè)表格。組合剩余的屬性成為一個(gè)表格。Copyright 2007 創(chuàng)智新程非規(guī)范化非規(guī)范化 y前面對(duì)規(guī)范化的研究目的是為了設(shè)計(jì)出簡(jiǎn)潔,規(guī)范的前面對(duì)規(guī)范化的研究目的是為了設(shè)計(jì)出簡(jiǎn)潔,規(guī)范的表結(jié)構(gòu)。表結(jié)構(gòu)。 y但是在很多時(shí)候我們?yōu)榱说玫揭粋€(gè)簡(jiǎn)單的表結(jié)構(gòu)卻要但是在很多時(shí)候我們?yōu)榱说玫揭粋€(gè)簡(jiǎn)單的表結(jié)構(gòu)卻要連接查詢很多個(gè)表,這造成了數(shù)據(jù)庫(kù)的大量邏輯運(yùn)算連接查詢很多個(gè)表,這造成了數(shù)據(jù)庫(kù)的大量邏輯運(yùn)算,降低了查詢效率。,降低了查詢效率。 y所以在一些情況下我們需要在特定的表結(jié)構(gòu)中引入額所以在一些情況下我們需要在特定的表結(jié)構(gòu)中引入額外的屬性,允許一定的冗余度才是明智的。外的屬性,允許一定的冗余度才是明智的。 Copyright 2007 創(chuàng)智新程非規(guī)范化的定義非規(guī)范化的定義 y在一個(gè)表格中有意地引入冗余以改進(jìn)性能被稱為反規(guī)在一個(gè)表格中有意地引入冗余以改進(jìn)性能被稱

溫馨提示

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

評(píng)論

0/150

提交評(píng)論