數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用_第1頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用_第2頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用_第3頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用_第4頁
數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用數(shù)據(jù)庫系統(tǒng)原理及應(yīng)用關(guān)系規(guī)范化理論關(guān)系規(guī)范化理論SQL SERVER 2005數(shù)據(jù)庫與技術(shù)數(shù)據(jù)庫設(shè)計(jì)的三個主要步驟數(shù)據(jù)庫設(shè)計(jì)的三個主要步驟概念設(shè)計(jì)概念設(shè)計(jì) 邏輯設(shè)計(jì)邏輯設(shè)計(jì) 物理設(shè)計(jì)物理設(shè)計(jì)現(xiàn)現(xiàn)實(shí)實(shí)世世界界層次層次網(wǎng)狀網(wǎng)狀關(guān)系關(guān)系概念模型概念模型數(shù)據(jù)模型數(shù)據(jù)模型物理物理模型模型文件、文件、索引等索引等關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫規(guī)范化理論規(guī)范化理論是關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的理論基礎(chǔ)是關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的理論基礎(chǔ)解決的中心問題:如何構(gòu)造一個好的數(shù)據(jù)模式解決的中心問題:如何構(gòu)造一個好的數(shù)據(jù)模式SQL SERVER 2005數(shù)據(jù)庫與技術(shù)前導(dǎo)問題:前導(dǎo)問題:1 1、為什么進(jìn)行關(guān)系規(guī)范化?、為什

2、么進(jìn)行關(guān)系規(guī)范化?2 2、什么是關(guān)系規(guī)范化?什么是關(guān)系規(guī)范化?核心問題:核心問題:怎樣進(jìn)行關(guān)系規(guī)范化?怎樣進(jìn)行關(guān)系規(guī)范化?關(guān)系規(guī)范化關(guān)系規(guī)范化 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)問題一:問題一:1 1、為什么進(jìn)行關(guān)系規(guī)范化?、為什么進(jìn)行關(guān)系規(guī)范化?SQL SERVER 2005數(shù)據(jù)庫與技術(shù)例如,要求設(shè)計(jì)教學(xué)管理數(shù)據(jù)庫,其關(guān)系模式例如,要求設(shè)計(jì)教學(xué)管理數(shù)據(jù)庫,其關(guān)系模式SCD如下:如下:nSCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中,其中,SNO表示學(xué)生學(xué)號,表示學(xué)生學(xué)號,SN表示學(xué)生姓名,表示學(xué)生姓名,AGE表表示學(xué)生年齡,示學(xué)生年齡,DEPT表示學(xué)生所在的系

3、別,表示學(xué)生所在的系別,MN表示系表示系主任姓名,主任姓名,CNO表示課程號,表示課程號,SCORE表示成績。表示成績。 在此關(guān)系模式中填入一部分具體的數(shù)據(jù),則可得到在此關(guān)系模式中填入一部分具體的數(shù)據(jù),則可得到SCD關(guān)系模式的實(shí)例,即一個教學(xué)管理數(shù)據(jù)庫。關(guān)系模式的實(shí)例,即一個教學(xué)管理數(shù)據(jù)庫。實(shí)例:教學(xué)管理數(shù)據(jù)庫實(shí)例:教學(xué)管理數(shù)據(jù)庫SQL SERVER 2005數(shù)據(jù)庫與技術(shù)SNOSNAGEDEPTMNCNOSCORES1趙亦趙亦17計(jì)算機(jī)計(jì)算機(jī)劉偉劉偉C190S1趙亦趙亦17計(jì)算機(jī)計(jì)算機(jī)劉偉劉偉C285S2錢爾錢爾18信息信息王平王平C557S2錢爾錢爾18信息信息王平王平C680S2錢爾錢爾1

4、8信息信息王平王平C7 70S2錢爾錢爾18信息信息王平王平C570S3孫珊孫珊20信息信息王平王平C10S3孫珊孫珊20信息信息王平王平C270S3孫珊孫珊20信息信息王平王平C485S4李思李思男男自動化自動化劉偉劉偉C193一個教學(xué)管理數(shù)據(jù)庫實(shí)例一個教學(xué)管理數(shù)據(jù)庫實(shí)例SQL SERVER 2005數(shù)據(jù)庫與技術(shù)1.數(shù)據(jù)冗余數(shù)據(jù)冗余浪費(fèi)大量的存儲空間浪費(fèi)大量的存儲空間 每個系名和系主任的名字存儲的次數(shù)等于每個系名和系主任的名字存儲的次數(shù)等于該系的學(xué)生人數(shù)乘以每個學(xué)生選修的課程門數(shù),該系的學(xué)生人數(shù)乘以每個學(xué)生選修的課程門數(shù),同時學(xué)生的姓名、年齡也都要重復(fù)存儲多次,同時學(xué)生的姓名、年齡也都要重復(fù)

5、存儲多次,數(shù)據(jù)的冗余度很大,浪費(fèi)了存儲空間。數(shù)據(jù)的冗余度很大,浪費(fèi)了存儲空間。存在問題存在問題SQL SERVER 2005數(shù)據(jù)庫與技術(shù)2.插入異常插入異常該有的數(shù)據(jù)無法插入該有的數(shù)據(jù)無法插入 如果某個新系沒有招生,尚無學(xué)生時,則如果某個新系沒有招生,尚無學(xué)生時,則系名和系主任的信息無法插入到數(shù)據(jù)庫中。因系名和系主任的信息無法插入到數(shù)據(jù)庫中。因?yàn)樵谶@個關(guān)系模式中,為在這個關(guān)系模式中,(SNO,CNO)是主碼。是主碼。根據(jù)關(guān)系的實(shí)體完整性約束,主碼的值不能為根據(jù)關(guān)系的實(shí)體完整性約束,主碼的值不能為空,而這時沒有學(xué)生,空,而這時沒有學(xué)生,SNO和和CNO均無值,均無值,因此不能進(jìn)行插入操作。因此不

6、能進(jìn)行插入操作。存在問題存在問題SQL SERVER 2005數(shù)據(jù)庫與技術(shù)3. 刪除異常刪除異常不應(yīng)該刪除的數(shù)據(jù)被刪除了不應(yīng)該刪除的數(shù)據(jù)被刪除了 某系學(xué)生全部畢業(yè)而沒有招生時,刪除全部某系學(xué)生全部畢業(yè)而沒有招生時,刪除全部學(xué)生的記錄則系名、系主任也隨之刪除,而這學(xué)生的記錄則系名、系主任也隨之刪除,而這個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的個系依然存在,在數(shù)據(jù)庫中卻無法找到該系的信息。信息。存在問題(續(xù))存在問題(續(xù))SQL SERVER 2005數(shù)據(jù)庫與技術(shù)4. 更新異常更新異常更新數(shù)據(jù)時,維護(hù)完整性的代更新數(shù)據(jù)時,維護(hù)完整性的代價太大價太大 如某系更換系主任,則屬于該系的學(xué)生記錄如某系更換

7、系主任,則屬于該系的學(xué)生記錄都要修改都要修改MN的內(nèi)容,稍有不慎,就有可能漏的內(nèi)容,稍有不慎,就有可能漏改某些記錄,這就會造成數(shù)據(jù)的不一致性,破改某些記錄,這就會造成數(shù)據(jù)的不一致性,破壞了數(shù)據(jù)的完整性。壞了數(shù)據(jù)的完整性。存在問題(續(xù))存在問題(續(xù))SQL SERVER 2005數(shù)據(jù)庫與技術(shù)由于存在以上問題,我們說,由于存在以上問題,我們說,SCD是一個是一個不好的不好的關(guān)系關(guān)系模式。產(chǎn)生上述問題的原因,直觀地說,是因模式。產(chǎn)生上述問題的原因,直觀地說,是因?yàn)殛P(guān)系中為關(guān)系中“包羅萬象包羅萬象”,內(nèi)容太雜了。,內(nèi)容太雜了。那么,怎樣才能得到一個好的關(guān)系模式呢?那么,怎樣才能得到一個好的關(guān)系模式呢?

8、作業(yè)作業(yè)1:將關(guān)系模式:將關(guān)系模式SCD規(guī)范成好的關(guān)系模式。規(guī)范成好的關(guān)系模式。存在問題(續(xù))存在問題(續(xù))SQL SERVER 2005數(shù)據(jù)庫與技術(shù)問題問題二二:1 1、什么是關(guān)系規(guī)范化?什么是關(guān)系規(guī)范化?SQL SERVER 2005數(shù)據(jù)庫與技術(shù)規(guī)范化問題的提出規(guī)范化問題的提出關(guān)系數(shù)據(jù)庫的關(guān)系數(shù)據(jù)庫的規(guī)范化理論規(guī)范化理論主要包括三個方面的內(nèi)容:主要包括三個方面的內(nèi)容:n范式(范式(Normal Form)n函數(shù)依賴函數(shù)依賴n模式分解模式分解其中,其中,函數(shù)依賴函數(shù)依賴起著核心的作用,是模式分解和模式設(shè)起著核心的作用,是模式分解和模式設(shè)計(jì)的基礎(chǔ),計(jì)的基礎(chǔ),范式范式是模式分解的標(biāo)準(zhǔn)。是模式分解

9、的標(biāo)準(zhǔn)。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)范式(范式(Normal formNormal form) 范式范式:建立關(guān)系時需要滿足的約束條件劃分成若:建立關(guān)系時需要滿足的約束條件劃分成若干標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)稱為范式,簡寫為干標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)稱為范式,簡寫為NFNF。范式的級。范式的級別越高,發(fā)生操作異常的可能性越小,數(shù)據(jù)冗余越別越高,發(fā)生操作異常的可能性越小,數(shù)據(jù)冗余越小,但由于關(guān)聯(lián)多,讀取數(shù)據(jù)時花費(fèi)時間也會相應(yīng)小,但由于關(guān)聯(lián)多,讀取數(shù)據(jù)時花費(fèi)時間也會相應(yīng)增加。增加。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)范式范式 規(guī)范化的規(guī)范化的基本思想基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)是消除關(guān)

10、系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除時發(fā)生異據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除時發(fā)生異?,F(xiàn)象。常現(xiàn)象。這就要求關(guān)系數(shù)據(jù)庫設(shè)計(jì)出來的關(guān)系模式要滿足一定的條這就要求關(guān)系數(shù)據(jù)庫設(shè)計(jì)出來的關(guān)系模式要滿足一定的條件。件。我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要我們把關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同程度的規(guī)范化要求設(shè)立的不同標(biāo)準(zhǔn)稱為求設(shè)立的不同標(biāo)準(zhǔn)稱為范式(范式(Normal Form)。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。由于規(guī)范化的程度不同,就產(chǎn)生了不同的范式。滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,滿足最基本規(guī)范化要求的關(guān)系模式叫第一范式,在第

11、一范式中進(jìn)一步滿足一些要求為第二范式,在第一范式中進(jìn)一步滿足一些要求為第二范式,以此類推就產(chǎn)生了第三范式等概念。以此類推就產(chǎn)生了第三范式等概念。每種范式都規(guī)定了一些限制約束條件。每種范式都規(guī)定了一些限制約束條件。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)各種范式之間的關(guān)系各種范式之間的關(guān)系SQL SERVER 2005數(shù)據(jù)庫與技術(shù)函數(shù)依賴函數(shù)依賴 函數(shù)依賴(函數(shù)依賴(Functional Dependency)是關(guān)系模式中屬性之間的一種邏輯依賴關(guān)系。是關(guān)系模式中屬性之間的一種邏輯依賴關(guān)系。 例如在關(guān)系模式例如在關(guān)系模式SCD中,中,SNO與與SN、AGE、DEPT之間都有一種依賴關(guān)系。之間都

12、有一種依賴關(guān)系。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)SNOSNAGEDEPTMNCNOSCORES1趙亦趙亦17計(jì)算機(jī)計(jì)算機(jī)劉偉劉偉C190S1趙亦趙亦17計(jì)算機(jī)計(jì)算機(jī)劉偉劉偉C285S2錢爾錢爾18信息信息王平王平C557S2錢爾錢爾18信息信息王平王平C680S2錢爾錢爾18信息信息王平王平C7 70S2錢爾錢爾18信息信息王平王平C570S3孫珊孫珊20信息信息王平王平C10S3孫珊孫珊20信息信息王平王平C270S3孫珊孫珊20信息信息王平王平C485S4李思李思男男自動化自動化劉偉劉偉C193一個教學(xué)管理數(shù)據(jù)庫實(shí)例一個教學(xué)管理數(shù)據(jù)庫實(shí)例n由于一個由于一個SNO只對應(yīng)一個學(xué)生,

13、而一個學(xué)生只能屬只對應(yīng)一個學(xué)生,而一個學(xué)生只能屬于一個系,所以當(dāng)于一個系,所以當(dāng)SNO的值確定之后,的值確定之后,SN,AGE,DEPT的值也隨之被唯一的確定了。的值也隨之被唯一的確定了。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)核心問題:核心問題:1 1、怎樣進(jìn)行關(guān)系規(guī)范化?怎樣進(jìn)行關(guān)系規(guī)范化?SQL SERVER 2005數(shù)據(jù)庫與技術(shù)范式化的基本步驟范式化的基本步驟 1NF關(guān)系關(guān)系 消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的部分函數(shù)依賴 2NF關(guān)系關(guān)系 消除非主屬性對碼的傳遞函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴 3NF關(guān)系關(guān)系 消除主屬性對非主屬性的函數(shù)依賴消除主屬性對非主屬性的函

14、數(shù)依賴 和對碼的部分、傳遞函數(shù)依賴和對碼的部分、傳遞函數(shù)依賴 BCNF關(guān)系關(guān)系 消除消除非平凡且非函數(shù)依賴的多值依非平凡且非函數(shù)依賴的多值依賴賴 4NF關(guān)系關(guān)系 消除非候選碼所蘊(yùn)涵的連接依賴消除非候選碼所蘊(yùn)涵的連接依賴 5NF關(guān)系關(guān)系并非規(guī)范并非規(guī)范化程度越高化程度越高的關(guān)系模式的關(guān)系模式就越好就越好SQL SERVER 2005數(shù)據(jù)庫與技術(shù)學(xué)生、課程及學(xué)生與課程聯(lián)系學(xué)生、課程及學(xué)生與課程聯(lián)系 的實(shí)體聯(lián)系圖(的實(shí)體聯(lián)系圖(E-RE-R圖圖) 學(xué)學(xué) 生生 課課 程程學(xué)生學(xué)生-課程課程學(xué)號學(xué)號姓名姓名班級班級選課密碼選課密碼選課人數(shù)選課人數(shù)課程編號課程編號上課時間上課時間課程名稱課程名稱課程類別課

15、程類別系部名稱系部名稱系部編號系部編號教師教師學(xué)分學(xué)分限選人數(shù)限選人數(shù)學(xué)學(xué) 號號姓名姓名課程名稱課程名稱志愿號志愿號選課狀態(tài)選課狀態(tài)成績成績SQL SERVER 2005數(shù)據(jù)庫與技術(shù)SQL SERVER 2005數(shù)據(jù)庫與技術(shù) 范式范式 一個關(guān)系的每一個屬性都是不可再分一個關(guān)系的每一個屬性都是不可再分的基本數(shù)據(jù)項(xiàng),則該關(guān)系是的基本數(shù)據(jù)項(xiàng),則該關(guān)系是范式。范式。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)課程課程編號編號課程課程名稱名稱課程課程類別類別學(xué)分學(xué)分教師教師系部系部編號編號系部名稱系部名稱上課上課時間時間限選限選人數(shù)人數(shù)001001SQLSQL信息信息技術(shù)技術(shù)3 3徐仁豐徐仁豐0101計(jì)

16、算機(jī)計(jì)算機(jī)周二周二2020002002JAVAJAVA信息信息技術(shù)技術(shù)2 2程偉斌程偉斌0101計(jì)算機(jī)計(jì)算機(jī)周二周二4040011011建筑建筑人文人文2 2林泉林泉0202建筑建筑周二周二2020012012智能智能建筑建筑工程工程技術(shù)技術(shù)2 2王娜王娜0202建筑建筑周二周二2020 表表1 課程表課程表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)學(xué)號學(xué)號姓名姓名班級班級選課密碼選課密碼0000000100000001林斌林斌0000電子商務(wù)電子商務(wù)1234461234460000000200000002 彭少帆彭少帆0000電子商務(wù)電子商務(wù)5656534565653400000001100

17、0000011朱川朱川0000多媒體多媒體56461315646131表表2 學(xué)生表學(xué)生表表表3 學(xué)生選課表學(xué)生選課表學(xué)號學(xué)號姓名姓名課程名稱課程名稱選課狀態(tài)選課狀態(tài)志愿號志愿號成績成績0000000100000001林斌林斌SQLSQL報名報名1 185850000000200000002 彭少帆彭少帆ASPASP報名報名3 3 90 90 SQL SERVER 2005數(shù)據(jù)庫與技術(shù) 表表1 1、表、表2 2和表和表3 3滿足滿足范式的條件,所以它們是范式的條件,所以它們是范式。范式。 范式是關(guān)系模型必須達(dá)到的最低要求,不滿足該條范式是關(guān)系模型必須達(dá)到的最低要求,不滿足該條件的關(guān)系模型稱為非

18、規(guī)范化關(guān)系,即非件的關(guān)系模型稱為非規(guī)范化關(guān)系,即非I I范式。范式。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)范式范式 范式首先是范式首先是范式,關(guān)系中的每一范式,關(guān)系中的每一個非主屬性完全個非主屬性完全函數(shù)依賴函數(shù)依賴于主關(guān)鍵字,則于主關(guān)鍵字,則該關(guān)系是該關(guān)系是范式。范式。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)課程課程編號編號課程課程名稱名稱課程課程類別類別學(xué)分學(xué)分教師教師系部系部編號編號系部系部名稱名稱上課上課時間時間限選限選人數(shù)人數(shù)001001SQLSQL信息信息技術(shù)技術(shù)3 3徐仁徐仁豐豐0101計(jì)算計(jì)算機(jī)機(jī)周二周二2020002002JAVAJAVA信息信息技術(shù)技術(shù)2 2程偉程偉

19、斌斌0101計(jì)算計(jì)算機(jī)機(jī)周二周二4040011011建筑建筑人文人文2 2林泉林泉0202建筑建筑周二周二2020012012智能智能建筑建筑工程工程技術(shù)技術(shù)2 2王娜王娜0202建筑建筑周二周二2020 表表1 課程表課程表注:表中黃色背景顯示的是主關(guān)鍵字注:表中黃色背景顯示的是主關(guān)鍵字SQL SERVER 2005數(shù)據(jù)庫與技術(shù)學(xué)號學(xué)號姓名姓名班級班級選課密碼選課密碼0000000100000001林斌林斌0000電子商務(wù)電子商務(wù)1234461234460000000200000002 彭少帆彭少帆0000電子商務(wù)電子商務(wù)56565345656534000000011000000011朱川朱

20、川0000多媒體多媒體56461315646131表表2 學(xué)生表學(xué)生表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表3 學(xué)生選課表學(xué)生選課表學(xué)號學(xué)號姓名姓名課程名稱課程名稱選課狀選課狀態(tài)態(tài)志愿號志愿號成績成績0000000100000001林斌林斌SQLSQL報名報名1 185850000000200000002 彭少帆彭少帆ASPASP報名報名3 3 90 90 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)將非將非范式規(guī)范為范式規(guī)范為范式的方法是:范式的方法是: 將部分函數(shù)依賴關(guān)系中的主屬性將部分函數(shù)依賴關(guān)系中的主屬性(決定方?jīng)Q定方)和非和非主屬性從關(guān)系中提取出來,單獨(dú)構(gòu)成一個關(guān)系模式,主屬性

21、從關(guān)系中提取出來,單獨(dú)構(gòu)成一個關(guān)系模式,將關(guān)系模式中余下的屬性,加上主關(guān)鍵字,構(gòu)成另將關(guān)系模式中余下的屬性,加上主關(guān)鍵字,構(gòu)成另一個關(guān)系一個關(guān)系 。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表4 學(xué)生選課表學(xué)生選課表學(xué)號學(xué)號課程名稱課程名稱選課狀態(tài)選課狀態(tài)志愿號志愿號成績成績0000000100000001SQLSQL報名報名1 185850000000200000002ASPASP報名報名3 3 90 90 學(xué)號學(xué)號姓名姓名課程名稱課程名稱選課狀選課狀態(tài)態(tài)志愿號志愿號成績成績0000000100000001林斌林斌SQLSQL報名報名1 185850000000200000002 彭少帆

22、彭少帆ASPASP報名報名3 3 90 90 表表3 學(xué)生選課表學(xué)生選課表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)2NF的缺點(diǎn)的缺點(diǎn)2NF2NF的關(guān)系模式解決了的關(guān)系模式解決了1NF1NF中存在的一些問題,中存在的一些問題,2NF2NF規(guī)規(guī)范化的程度比范化的程度比1NF1NF前進(jìn)了一步,但前進(jìn)了一步,但2NF2NF的關(guān)系模式在進(jìn)的關(guān)系模式在進(jìn)行數(shù)據(jù)操作時,仍然存在著一些問題:行數(shù)據(jù)操作時,仍然存在著一些問題:n1 1數(shù)據(jù)冗余。數(shù)據(jù)冗余。n2 2插入異常。插入異常。n3 3刪除異常。刪除異常。n4 4更新異常。更新異常。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表1 課程表課程表表表2 學(xué)生

23、表學(xué)生表表表4 選課表選課表SQL SERVER 2005數(shù)據(jù)庫與技術(shù) 范式范式 范式首先是范式首先是范式,且關(guān)系中的任何一個非主屬性范式,且關(guān)系中的任何一個非主屬性都不都不函數(shù)傳遞依賴函數(shù)傳遞依賴于任何主關(guān)鍵字,則關(guān)系是于任何主關(guān)鍵字,則關(guān)系是 范式。范式。 首先需要找出關(guān)系中的所有主關(guān)鍵字,然后確定任首先需要找出關(guān)系中的所有主關(guān)鍵字,然后確定任何一個非主屬性和任何主關(guān)鍵字之間是否存在函數(shù)傳何一個非主屬性和任何主關(guān)鍵字之間是否存在函數(shù)傳遞依賴關(guān)系,如果有則刪除函數(shù)傳遞依賴關(guān)系。遞依賴關(guān)系,如果有則刪除函數(shù)傳遞依賴關(guān)系。SQL SERVER 2005數(shù)據(jù)庫與技術(shù)課程課程編號編號課程課程名稱名稱

24、課程課程類別類別學(xué)分學(xué)分教師教師系部系部編號編號系部系部名稱名稱上課上課時間時間限選限選人數(shù)人數(shù)001001SQLSQL信息信息技術(shù)技術(shù)3 3徐仁豐徐仁豐0101計(jì)算計(jì)算機(jī)機(jī)周二周二2020002002JAVAJAVA信息信息技術(shù)技術(shù)2 2程偉斌程偉斌0101計(jì)算計(jì)算機(jī)機(jī)周二周二4040011011建筑建筑人文人文2 2林泉林泉0202建筑建筑周二周二2020012012智能智能建筑建筑工程工程技術(shù)技術(shù)2 2王娜王娜0202建筑建筑周二周二2020 表表1 課程表課程表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)課程課程編號編號課程課程名稱名稱課程課程類別類別學(xué)分學(xué)分教師教師系部系部編號編號上課

25、上課時間時間限選人限選人數(shù)數(shù)001001SQLSQL信息信息技術(shù)技術(shù)3 3徐仁豐徐仁豐0101周二周二2020002002JAVAJAVA信息信息技術(shù)技術(shù)2 2程偉斌程偉斌0101周二周二4040011011建筑建筑人文人文2 2林泉林泉0202周二周二2020系部編號系部編號系部名稱系部名稱0101計(jì)算機(jī)計(jì)算機(jī)0202建筑建筑0303旅游旅游 表表5 課程表課程表 表表6 系部表系部表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表1 課程表課程表表表2 學(xué)生表學(xué)生表表表4 選課表選課表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)屬于屬于3NF的關(guān)系模式一定是好模式?的關(guān)系模式一定是好模式?SQ

26、L SERVER 2005數(shù)據(jù)庫與技術(shù)學(xué)號學(xué)號姓名姓名班級班級選課密碼選課密碼0000000100000001林斌林斌0000電子商務(wù)電子商務(wù)1234461234460000000200000002 彭少帆彭少帆0000電子商務(wù)電子商務(wù)565653456565340000001100000011朱川朱川0000多媒體多媒體56461315646131表表2 學(xué)生表學(xué)生表表表7 班級表班級表班級編號班級編號班級名稱班級名稱系部編號系部編號2000000012000000010000電子商務(wù)電子商務(wù)01012000000022000000020000多媒體多媒體0101學(xué)號學(xué)號姓名姓名班級編號班級

27、編號選課密碼選課密碼0000000100000001林斌林斌20000001200000011234461234460000000200000002 彭少帆彭少帆2000000120000001565653456565340000001100000011朱川朱川200000022000000256461315646131表表8 學(xué)生表學(xué)生表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表4 學(xué)生選課表學(xué)生選課表學(xué)號學(xué)號課程名稱課程名稱選課狀態(tài)選課狀態(tài)志愿號志愿號成績成績0000000100000001SQLSQL報名報名1 10000000200000002ASPASP報名報名3 3學(xué)號學(xué)號課程

28、編號課程編號選課狀態(tài)選課狀態(tài)志愿號志愿號成績成績0000000100000001001001報名報名1 10000000200000002008008報名報名3 3表表9 學(xué)生選課表學(xué)生選課表SQL SERVER 2005數(shù)據(jù)庫與技術(shù) 表表1 課程表課程表表表5 課程表課程表表表6 系部表系部表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表2 學(xué)生表學(xué)生表表表7班級表班級表表表8 選課表選課表表表2 學(xué)生表學(xué)生表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)表表3 選課表選課表表表4 選課表選課表表表9選課表選課表SQL SERVER 2005數(shù)據(jù)庫與技術(shù)關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化 小結(jié)小結(jié)

29、 規(guī)范化規(guī)范化 一個低一級范式的關(guān)系模式,通過模式分解轉(zhuǎn)一個低一級范式的關(guān)系模式,通過模式分解轉(zhuǎn)換為若干個高一級范式的關(guān)系模式集合的過程。換為若干個高一級范式的關(guān)系模式集合的過程。規(guī)范化目的規(guī)范化目的 消除關(guān)系上的數(shù)據(jù)冗余、操作異常的現(xiàn)象。消除關(guān)系上的數(shù)據(jù)冗余、操作異常的現(xiàn)象。規(guī)范化基本思想規(guī)范化基本思想 逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的分解。各關(guān)系模式達(dá)到某種程度的分解。規(guī)范化實(shí)質(zhì)規(guī)范化實(shí)質(zhì) 概念的單一化概念的單一化SQL SERVER 2005數(shù)據(jù)庫與技術(shù)數(shù)據(jù)完整性數(shù)據(jù)完整性 數(shù)據(jù)的完整性就是數(shù)據(jù)的正確性和一致性,

30、它反映了現(xiàn)實(shí)數(shù)據(jù)的完整性就是數(shù)據(jù)的正確性和一致性,它反映了現(xiàn)實(shí)世界中實(shí)體的本來面貌。世界中實(shí)體的本來面貌。 數(shù)據(jù)的完整性分為數(shù)據(jù)的完整性分為列的完整性列的完整性、表的完整性表的完整性和和參照完整性。參照完整性。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)1.列完整性 列的完整性也稱域完整性或用戶定義完整性。列的完整性也稱域完整性或用戶定義完整性。 列完整性是指表中任意列的數(shù)據(jù)類型必須符合用戶的定義,列完整性是指表中任意列的數(shù)據(jù)類型必須符合用戶的定義,或者數(shù)據(jù)必須在規(guī)定的有效范圍之內(nèi)。或者數(shù)據(jù)必須在規(guī)定的有效范圍之內(nèi)。 表表6 系部表系部表系部編號系部編號系部名稱系部名稱0101計(jì)算機(jī)計(jì)算機(jī)02

31、02建筑建筑0303旅游旅游SQL SERVER 2005數(shù)據(jù)庫與技術(shù)2 .表完整性 表完整性也可稱實(shí)體完整性。表完整性也可稱實(shí)體完整性。 所謂實(shí)體完整性,是指表中必須有一個主關(guān)鍵字,且主所謂實(shí)體完整性,是指表中必須有一個主關(guān)鍵字,且主鍵值不能為空。鍵值不能為空。 表表6 系部表系部表系部編號系部編號系部名稱系部名稱0101計(jì)算機(jī)計(jì)算機(jī)0202建筑建筑0303旅游旅游SQL SERVER 2005數(shù)據(jù)庫與技術(shù)3 .參照完整性 參照完整性也稱為引用完整性,它指對外鍵值參照完整性也稱為引用完整性,它指對外鍵值進(jìn)行插入或修改時一定要參照主鍵的值是否存在。進(jìn)行插入或修改時一定要參照主鍵的值是否存在。對

32、主鍵進(jìn)行修改或刪除時,也必須要參照外鍵的對主鍵進(jìn)行修改或刪除時,也必須要參照外鍵的值是否存在。值是否存在。 SQL SERVER 2005數(shù)據(jù)庫與技術(shù)4 .保證參照完整性規(guī)則 (1 1)對外鍵所在的表執(zhí)行插入操作時,要保證外鍵的值一定)對外鍵所在的表執(zhí)行插入操作時,要保證外鍵的值一定要在主表中存在。要在主表中存在。 班級編號班級編號班級名稱班級名稱系部編號系部編號2000000012000000010000電子商務(wù)電子商務(wù)01012000000022000000020000多媒體多媒體0101表表7 班級表班級表學(xué)號學(xué)號姓名姓名班級編號班級編號選課密碼選課密碼0000000100000001林斌林斌20000001200000011234461234460000000200000002 彭少帆彭少帆2000000120000001565653456565340000001100000011朱川朱川200000022000000256461315646131表表8 學(xué)生表學(xué)生表SQL SERVER 2005數(shù)據(jù)庫與技術(shù) (2 2)修改從表的外關(guān)鍵字時,要保證修改后的外鍵值在主)修改從表的外關(guān)鍵字時,要保證修改后的外鍵值在主表中已存在,就是說要參照主表的主關(guān)鍵字的值。表中已存在,就是說要參照主表的主關(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論