




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、An Introduction to Database Systems關(guān)系數(shù)據(jù)理論1數(shù)據(jù)庫(kù)系統(tǒng)概論 An Introduction to Database SystemAn Introduction to Database Systems關(guān)系數(shù)據(jù)理論2第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論An Introduction to Database Systems3關(guān)系數(shù)據(jù)理論3第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論6.1 問(wèn)題的提出問(wèn)題的提出6.2 規(guī)范化規(guī)范化6.3 小結(jié)小結(jié)An Introduction to Database Systems4關(guān)系數(shù)據(jù)理論46.1 問(wèn)題的提出問(wèn)題的提出關(guān)系數(shù)據(jù)
2、庫(kù)邏輯設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)針對(duì)具體問(wèn)題,如何構(gòu)造一個(gè)適合于針對(duì)具體問(wèn)題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式,即應(yīng)該構(gòu)造幾個(gè)關(guān)系它的數(shù)據(jù)模式,即應(yīng)該構(gòu)造幾個(gè)關(guān)系模式,每個(gè)關(guān)系由哪些屬性組成等。模式,每個(gè)關(guān)系由哪些屬性組成等。數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論。庫(kù)的規(guī)范化理論。An Introduction to Database Systems5關(guān)系數(shù)據(jù)理論5一、概念回顧一、概念回顧二、關(guān)系模式的形式化定義二、關(guān)系模式的形式化定義三、什么是數(shù)據(jù)依賴三、什么是數(shù)據(jù)依賴四、數(shù)據(jù)依賴對(duì)關(guān)系模式影響四、數(shù)據(jù)依賴對(duì)關(guān)系模式影響6.1 問(wèn)題的提出問(wèn)題的提出An Introd
3、uction to Database Systems6關(guān)系數(shù)據(jù)理論6一、概念回顧一、概念回顧 關(guān)系:描述實(shí)體、屬性、實(shí)體間的聯(lián)系。關(guān)系:描述實(shí)體、屬性、實(shí)體間的聯(lián)系。v從形式上看,它是一張二維表,是所涉及屬性的笛卡從形式上看,它是一張二維表,是所涉及屬性的笛卡爾積的一個(gè)子集。爾積的一個(gè)子集。 關(guān)系模式:用來(lái)定義(描述)關(guān)系。關(guān)系模式:用來(lái)定義(描述)關(guān)系。 關(guān)系數(shù)據(jù)庫(kù):基于關(guān)系模型的數(shù)據(jù)庫(kù),利用關(guān)系來(lái)描述關(guān)系數(shù)據(jù)庫(kù):基于關(guān)系模型的數(shù)據(jù)庫(kù),利用關(guān)系來(lái)描述現(xiàn)實(shí)世界?,F(xiàn)實(shí)世界。v從形式上看,它由一組關(guān)系組成。從形式上看,它由一組關(guān)系組成。 關(guān)系數(shù)據(jù)庫(kù)的模式:定義這組關(guān)系的關(guān)系模式的全體。關(guān)系數(shù)據(jù)庫(kù)的
4、模式:定義這組關(guān)系的關(guān)系模式的全體。An Introduction to Database Systems7關(guān)系數(shù)據(jù)理論7二、關(guān)系模式的形式化定義二、關(guān)系模式的形式化定義在本章中,把關(guān)系模式看成是一個(gè)三元組:在本章中,把關(guān)系模式看成是一個(gè)三元組: R(U, F)R: 關(guān)系名關(guān)系名U: 組成該關(guān)系的屬性名集合組成該關(guān)系的屬性名集合F: 屬性間數(shù)據(jù)的依賴關(guān)系集合屬性間數(shù)據(jù)的依賴關(guān)系集合當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系上的一個(gè)關(guān)系r 滿足滿足F時(shí),時(shí),r稱為稱為關(guān)系模式關(guān)系模式 R(U, F)的一個(gè)關(guān)系的一個(gè)關(guān)系A(chǔ)n Introduction to Database Systems8關(guān)系數(shù)據(jù)理論8三、
5、什么是數(shù)據(jù)依賴三、什么是數(shù)據(jù)依賴 完整性約束的表現(xiàn)形式完整性約束的表現(xiàn)形式限定屬性取值范圍:例如學(xué)生成績(jī)必須在限定屬性取值范圍:例如學(xué)生成績(jī)必須在0-100之間。之間。數(shù)據(jù)依賴是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約數(shù)據(jù)依賴是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系。定義屬性值間的相互關(guān)連(主要體現(xiàn)束關(guān)系。定義屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否),它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)于值的相等與否),它是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵。鍵。An Introduction to Database Systems9關(guān)系數(shù)據(jù)理論9四、四、數(shù)據(jù)依賴對(duì)關(guān)系模式的影響數(shù)據(jù)依賴對(duì)關(guān)系模式的影響例:描述學(xué)校的數(shù)據(jù)庫(kù):例:描述學(xué)校的數(shù)據(jù)庫(kù)
6、: 學(xué)生的學(xué)號(hào)(學(xué)生的學(xué)號(hào)(Sno)、)、所在系(所在系(Sdept) 系主任姓名(系主任姓名(Mname)、)、課程號(hào)(課程號(hào)(Cno) 成績(jī)(成績(jī)(Grade)單一的關(guān)系模式單一的關(guān)系模式 : Student U Sno, Sdept, Mname, Cno, GradeAn Introduction to Database Systems10關(guān)系數(shù)據(jù)理論10數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義:學(xué)校數(shù)據(jù)庫(kù)的語(yǔ)義: 一個(gè)系有若干學(xué)生,一個(gè)系有若干學(xué)生, 一個(gè)學(xué)生只屬于一個(gè)系;一個(gè)學(xué)生只屬于一個(gè)系; 一個(gè)系只有一名主任;一個(gè)系只有一名主任; 一個(gè)學(xué)生可
7、以選修多門課程,一個(gè)學(xué)生可以選修多門課程, 每門課程有若干每門課程有若干學(xué)生選修;學(xué)生選修; 每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績(jī)。每個(gè)學(xué)生所學(xué)的每門課程都有一個(gè)成績(jī)。 于是得到屬性組于是得到屬性組U上的一組函數(shù)依賴上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno, Cno) Grade An Introduction to Database Systems11關(guān)系數(shù)據(jù)理論11數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))于是得到屬性組于是得到屬性組U上的一組函數(shù)依賴上的一組函數(shù)依賴F: F Sno Sdept, Sdept Mname, (Sno
8、, Cno) Grade SnoCnoSdeptMnameGrade主碼為(sno,cno)An Introduction to Database Systems12關(guān)系數(shù)據(jù)理論12數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))80C5M3MAS380C4M2ISS270C3M1CSS190C2M1CSS180C1M1CSS1Grade CnoMnameSdeptSno圖圖 關(guān)系模式關(guān)系模式Student的實(shí)例的實(shí)例 An Introduction to Database Systems13關(guān)系數(shù)據(jù)理論13關(guān)系模式關(guān)系模式Student中存在的問(wèn)題中存在的問(wèn)題 數(shù)據(jù)冗余太大:浪費(fèi)
9、大量的存儲(chǔ)空間數(shù)據(jù)冗余太大:浪費(fèi)大量的存儲(chǔ)空間 例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)例:每一個(gè)系主任的姓名重復(fù)出現(xiàn) 更新異常(修改復(fù)雜)更新異常(修改復(fù)雜)例:某系更換系主任后,系統(tǒng)必須修改例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組與該系學(xué)生有關(guān)的每一個(gè)元組An Introduction to Database Systems14關(guān)系數(shù)據(jù)理論14關(guān)系模式關(guān)系模式Student中存在的問(wèn)題中存在的問(wèn)題 插入異常:該插的數(shù)據(jù)插不進(jìn)去插入異常:該插的數(shù)據(jù)插不進(jìn)去 例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,主關(guān)鍵字例,如果一個(gè)系剛成立,尚無(wú)學(xué)生,主關(guān)鍵字為空,我們就無(wú)法把這個(gè)系及其系主任的信息為空,
10、我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。存入數(shù)據(jù)庫(kù)。 刪除異常:不該刪除的數(shù)據(jù)不得不刪刪除異常:不該刪除的數(shù)據(jù)不得不刪例,如果某個(gè)系的學(xué)生全部畢業(yè)了,例,如果某個(gè)系的學(xué)生全部畢業(yè)了, 我們?cè)谖覀冊(cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。任的信息也丟掉了。An Introduction to Database Systems15關(guān)系數(shù)據(jù)理論15數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))80C5M3MAS380C4M2ISS270C3M1CSS190C2M1CSS180C1M1CSS1Grade CnoMnameSd
11、eptSno圖圖 關(guān)系模式關(guān)系模式Student的實(shí)例的實(shí)例 An Introduction to Database Systems16關(guān)系數(shù)據(jù)理論16數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))結(jié)論:結(jié)論:Student關(guān)系模式不是一個(gè)好的模式。關(guān)系模式不是一個(gè)好的模式?!昂煤谩钡哪J剑翰粫?huì)發(fā)生插入異常、刪除異的模式:不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由于模式中存在的某些數(shù)據(jù)依賴引起的原因:由于模式中存在的某些數(shù)據(jù)依賴引起的解決方法:通過(guò)分解關(guān)系模式來(lái)消除其中不合解決方法:通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依
12、賴。適的數(shù)據(jù)依賴。An Introduction to Database Systems17關(guān)系數(shù)據(jù)理論17關(guān)系模式關(guān)系模式Student分解成三個(gè)關(guān)系模式:分解成三個(gè)關(guān)系模式: S(Sno, Sdept, Sno Sdept) SG(Sno, Cno, Grade, (Sno, Cno) Grade) DEPT(Sdept, Mname, Sdept Mname)這三個(gè)模式都不會(huì)發(fā)生插入異常、刪除異常的毛病,這三個(gè)模式都不會(huì)發(fā)生插入異常、刪除異常的毛病,數(shù)據(jù)的冗余也得到了控制。數(shù)據(jù)的冗余也得到了控制。 數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù))An Introduction
13、 to Database Systems18關(guān)系數(shù)據(jù)理論186.2 規(guī)范化規(guī)范化規(guī)范化理論正是用來(lái)改造關(guān)系模式,規(guī)范化理論正是用來(lái)改造關(guān)系模式,通過(guò)分解關(guān)系模式來(lái)消除其中不合適通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問(wèn)題。異常、更新異常和數(shù)據(jù)冗余問(wèn)題。An Introduction to Database Systems19關(guān)系數(shù)據(jù)理論196.2.1 函數(shù)依賴函數(shù)依賴一、函數(shù)依賴一、函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴四
14、、傳遞函數(shù)依賴四、傳遞函數(shù)依賴An Introduction to Database Systems20關(guān)系數(shù)據(jù)理論20一、函數(shù)依賴一、函數(shù)依賴回顧:函數(shù)回顧:函數(shù)熟悉的概念。熟悉的概念。Y=f(x):x和和Y之間數(shù)量上的對(duì)應(yīng)關(guān)系。給定之間數(shù)量上的對(duì)應(yīng)關(guān)系。給定x值,值,Y值與之對(duì)應(yīng)。稱值與之對(duì)應(yīng)。稱x函數(shù)決定函數(shù)決定Y,或或Y函數(shù)函數(shù)依賴于依賴于x。在關(guān)系數(shù)據(jù)庫(kù)中討論函數(shù)或函數(shù)依賴注重的是在關(guān)系數(shù)據(jù)庫(kù)中討論函數(shù)或函數(shù)依賴注重的是語(yǔ)義上的關(guān)系。語(yǔ)義上的關(guān)系。 如:省如:省=f(城市城市) An Introduction to Database Systems21關(guān)系數(shù)據(jù)理論21一、函數(shù)依賴一、
15、函數(shù)依賴定義定義6.1 設(shè)設(shè)R(U)是一個(gè)屬性集是一個(gè)屬性集U上的關(guān)系上的關(guān)系模式,模式,X和和Y是是U的子集。若對(duì)于的子集。若對(duì)于R(U)的任的任意一個(gè)可能的關(guān)系意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)中不可能存在兩個(gè)元組在元組在X上的屬性值相等,上的屬性值相等, 而在而在Y上的屬上的屬性值不等,性值不等, 則稱則稱 “X函數(shù)確定函數(shù)確定Y” 或或 “Y函數(shù)依賴于函數(shù)依賴于X”,記作記作XY。 An Introduction to Database Systems22關(guān)系數(shù)據(jù)理論22說(shuō)明:說(shuō)明: 1. 函數(shù)依賴是指函數(shù)依賴是指R的所有關(guān)系實(shí)例均要滿足的約束條件。的所有關(guān)系實(shí)例均要滿足的約束條件
16、。2. 函數(shù)依賴是語(yǔ)義范疇的概念。只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確函數(shù)依賴是語(yǔ)義范疇的概念。只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定函數(shù)依賴。定函數(shù)依賴。 例如例如“姓名姓名年齡年齡”這個(gè)函數(shù)依賴只有在不允許有同名這個(gè)函數(shù)依賴只有在不允許有同名人的條件下成立人的條件下成立3. 數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。例如規(guī)定數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定。例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴不允許同名人出現(xiàn),函數(shù)依賴“姓名姓名年齡年齡”成立。所成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在,存在, 則拒絕裝入該元組。則拒絕裝入該元組。An Introd
17、uction to Database Systems23關(guān)系數(shù)據(jù)理論23函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))例例1: Student(Sno, Sname, Ssex, Sage, Sdept) 假設(shè)不允許重名,則有假設(shè)不允許重名,則有:Sno Ssex,Sno Sage , Sno Sdept, Sno Sname, Sname Ssex,Sname Sage Sname Sdept若若XY,并且并且YX, 則記為則記為XY。An Introduction to Database Systems24關(guān)系數(shù)據(jù)理論24函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))例例2:有一個(gè)關(guān)于學(xué)生選課、教師任課的關(guān)系模式:有一個(gè)關(guān)于
18、學(xué)生選課、教師任課的關(guān)系模式:R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)屬性分別表示學(xué)生學(xué)號(hào)、姓名、選修課程的課程號(hào)、成績(jī)、課屬性分別表示學(xué)生學(xué)號(hào)、姓名、選修課程的課程號(hào)、成績(jī)、課程名、任課教師姓名和教師年齡。程名、任課教師姓名和教師年齡。如果規(guī)定,每個(gè)學(xué)號(hào)只能有一個(gè)學(xué)生姓名,每個(gè)課程號(hào)只能決如果規(guī)定,每個(gè)學(xué)號(hào)只能有一個(gè)學(xué)生姓名,每個(gè)課程號(hào)只能決定一門課程,那么可寫成下列定一門課程,那么可寫成下列FD形式:形式:S#SNAME C#CNAME每個(gè)學(xué)生每學(xué)一門課程,有一個(gè)成績(jī),那么可寫出下列每個(gè)學(xué)生每學(xué)一門課程,有一個(gè)成績(jī),那么可寫出下列FD:(S#,C#)GRA
19、DE還可以寫出其他一些還可以寫出其他一些FD: C#(CNAME,TNAME,TAGE) TNAMETAGEAn Introduction to Database Systems25關(guān)系數(shù)據(jù)理論25二、平凡函數(shù)依賴與非平凡函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴在關(guān)系模式在關(guān)系模式R(U)中,對(duì)于中,對(duì)于U的子集的子集X和和Y,如果如果XY,但但Y X,則稱則稱XY是非平凡的函數(shù)依賴。是非平凡的函數(shù)依賴。若若XY,但但Y X, 則稱則稱XY是平凡的函數(shù)依賴是平凡的函數(shù)依賴?yán)涸陉P(guān)系例:在關(guān)系SC(Sno, Cno, Grade)中,中, 非平凡函數(shù)依賴:非平凡函數(shù)依賴: (Sno, Cno)
20、Grade 平凡函數(shù)依賴:平凡函數(shù)依賴: (Sno, Cno) Sno (Sno, Cno) Cno我們總是討論非平凡函數(shù)依賴。我們總是討論非平凡函數(shù)依賴。An Introduction to Database Systems26關(guān)系數(shù)據(jù)理論26三、完全函數(shù)依賴與部分函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴定義定義6.2 在關(guān)系模式在關(guān)系模式R(U)中,如果中,如果XY,并且并且對(duì)于對(duì)于X的任何一個(gè)真子集的任何一個(gè)真子集X,都有都有XY, 則則稱稱Y完全函數(shù)依賴于完全函數(shù)依賴于X,記作記作XY。 若若XY,但但Y不完全函數(shù)依賴于不完全函數(shù)依賴于X,則稱則稱Y部部分函數(shù)依賴于分函數(shù)依賴于X,記作記
21、作XY。 FPAn Introduction to Database Systems27關(guān)系數(shù)據(jù)理論27完全函數(shù)依賴與部分函數(shù)依賴(續(xù))完全函數(shù)依賴與部分函數(shù)依賴(續(xù))例例: 在關(guān)系在關(guān)系SC(Sno, Cno, Grade)中,中, 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) F Grade在關(guān)系在關(guān)系R(Sno, Cno, Sdept)中,中,( Sno, Cno)SdeptpAn Introduction to Database Systems28關(guān)系數(shù)據(jù)理論28四、傳遞函數(shù)依賴四、傳遞函數(shù)依賴定義定義6.3 在關(guān)系模式在關(guān)系模式R(U)中,如
22、果中,如果XY,YZ,且且Y X,YX,則稱則稱Z傳遞函數(shù)依賴于傳遞函數(shù)依賴于X。注注: 如果如果YX, 即即XY,則則Z直接依賴于直接依賴于X。例例: 在關(guān)系在關(guān)系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname, Sdept Sno,Sdept Sno 則,則,Mname傳遞函數(shù)依賴于傳遞函數(shù)依賴于Sno。 記作記作Sno Mname傳遞傳遞An Introduction to Database Systems29關(guān)系數(shù)據(jù)理論29例:例: 學(xué)生關(guān)系模式中:學(xué)生關(guān)系模式中:非平凡函數(shù)依賴非平凡函數(shù)依賴 學(xué)號(hào)學(xué)號(hào)姓名姓名 學(xué)號(hào)學(xué)號(hào)系系 系系
23、系主任系主任 (學(xué)號(hào),課程)(學(xué)號(hào),課程)成績(jī)成績(jī) 教室(課程,班級(jí),時(shí)間,教室)教室(課程,班級(jí),時(shí)間,教室)完全函數(shù)依賴完全函數(shù)依賴 (課程,班級(jí),時(shí)間)(課程,班級(jí),時(shí)間)教室教室 教師(姓名,職務(wù),職務(wù)工資)教師(姓名,職務(wù),職務(wù)工資)傳遞函數(shù)依賴傳遞函數(shù)依賴 姓名姓名職務(wù)職務(wù) 職務(wù)職務(wù)職務(wù)工資職務(wù)工資 (+2+2個(gè)條件)個(gè)條件) 則姓名則姓名 職務(wù)工資職務(wù)工資舉例舉例F傳遞傳遞An Introduction to Database Systems30關(guān)系數(shù)據(jù)理論306.2.2 碼碼現(xiàn)實(shí)世界的每一實(shí)體集合,都有一關(guān)鍵字(碼),現(xiàn)實(shí)世界的每一實(shí)體集合,都有一關(guān)鍵字(碼),即唯一確定各個(gè)實(shí)
24、體的一組屬性。即唯一確定各個(gè)實(shí)體的一組屬性。定義定義6.4 設(shè)設(shè)K為關(guān)系模式為關(guān)系模式R中的屬性或?qū)傩灾械膶傩曰驅(qū)傩越M合。若組合。若K F U,則則K稱為稱為R的一個(gè)侯選碼的一個(gè)侯選碼。若關(guān)若關(guān)系模式系模式R有多個(gè)候選碼,則選定其中的一個(gè)做為有多個(gè)候選碼,則選定其中的一個(gè)做為主碼主碼。主屬性與非主屬性主屬性與非主屬性全碼(全碼(ALL KEY):):整個(gè)屬性組是碼。整個(gè)屬性組是碼。An Introduction to Database Systems31關(guān)系數(shù)據(jù)理論31例例: 在關(guān)系在關(guān)系S(Sno, Sdept, Sage)中,中,Sno是碼是碼在關(guān)系在關(guān)系SC(Sno, Cno, Grad
25、e)中,中, (Sno, Cno)是碼。是碼。在關(guān)系在關(guān)系R(演奏者,作品,聽眾演奏者,作品,聽眾)中,假設(shè)一個(gè)演中,假設(shè)一個(gè)演奏者可以演奏多個(gè)作品,某一作品可被多個(gè)演奏奏者可以演奏多個(gè)作品,某一作品可被多個(gè)演奏者演奏。聽眾也可以欣賞不同演奏者的不同作品,者演奏。聽眾也可以欣賞不同演奏者的不同作品,這個(gè)關(guān)系模式的碼為這個(gè)關(guān)系模式的碼為(演奏者,作品,聽眾演奏者,作品,聽眾)6.2.2 碼碼An Introduction to Database Systems32關(guān)系數(shù)據(jù)理論32外部碼外部碼定義定義6.5 關(guān)系模式關(guān)系模式R中屬性或?qū)傩越M中屬性或?qū)傩越MX并非并非R的碼,但的碼,但X 是另一個(gè)關(guān)系
26、模式的碼,則是另一個(gè)關(guān)系模式的碼,則稱稱X 是是R 的外部碼(的外部碼(Foreign key)也稱也稱外碼。外碼。主碼又和外部碼一起提供了表示關(guān)系間主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。聯(lián)系的手段。An Introduction to Database Systems33關(guān)系數(shù)據(jù)理論33外部碼外部碼 如在如在SC(SNO,CNO,G)中,中,SNO不是不是碼,但碼,但SNO是關(guān)系模式是關(guān)系模式S(SNO,SDEPT,SAGE)的碼,則的碼,則SNO是是關(guān)系模式關(guān)系模式SC的外部碼。的外部碼。An Introduction to Database Systems34關(guān)系數(shù)據(jù)理論346.
27、2.3 范式范式關(guān)系模式的好與壞,用什么標(biāo)準(zhǔn)衡量?這關(guān)系模式的好與壞,用什么標(biāo)準(zhǔn)衡量?這個(gè)標(biāo)準(zhǔn)就是模式的范式(個(gè)標(biāo)準(zhǔn)就是模式的范式(Normal Forms,簡(jiǎn)記為簡(jiǎn)記為NF)。)。范式是符合某一種級(jí)別的關(guān)系模式的集合。范式是符合某一種級(jí)別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的要求。關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的要求。滿足不同程度要求的為不同范式。滿足不同程度要求的為不同范式。An Introduction to Database Systems35關(guān)系數(shù)據(jù)理論35范式的種類:范式的種類:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(
28、BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)6.2.3 范式范式An Introduction to Database Systems36關(guān)系數(shù)據(jù)理論366.2.3 范式范式各種范式之間存在聯(lián)系:各種范式之間存在聯(lián)系:某一關(guān)系模式某一關(guān)系模式R為第為第n范式,可簡(jiǎn)記為范式,可簡(jiǎn)記為RnNF。一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過(guò)程就叫規(guī)范化系模式的集合,這種過(guò)程就叫規(guī)范化。NF5NF4BCNFNF3NF2NF1An Introduction to Databa
29、se Systems37關(guān)系數(shù)據(jù)理論376.2.3 范式范式An Introduction to Database Systems38關(guān)系數(shù)據(jù)理論386.2.4 2NF1NF的定義的定義 如果一個(gè)關(guān)系模式如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則本數(shù)據(jù)項(xiàng),則R1NF。第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿足第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫(kù)模式不能稱為關(guān)系數(shù)據(jù)庫(kù)。第一范式的數(shù)據(jù)庫(kù)模式不能稱為關(guān)系數(shù)據(jù)庫(kù)。但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式。的關(guān)系模式。系名稱系名稱高級(jí)職稱人數(shù)
30、高級(jí)職稱人數(shù)教授教授副教授副教授An Introduction to Database Systems39關(guān)系數(shù)據(jù)理論392NF例例: 關(guān)系模式關(guān)系模式SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方。個(gè)地方。這里碼為這里碼為(Sno, Cno)。函數(shù)依賴包括:函數(shù)依賴包括: (Sno, Cno) f Grade Sno Sdept, (Sno, Cno) P Sdept Sno Sloc, (Sno, Cno) P Sloc Sdept SlocAn Introduction to Da
31、tabase Systems40關(guān)系數(shù)據(jù)理論40 2NF SLC的碼為的碼為(Sno, Cno) SLC滿足第一范式。滿足第一范式。 非主屬性非主屬性Sdept和和Sloc部分函數(shù)依賴于碼部分函數(shù)依賴于碼(Sno, Cno)SnoCnoGradeSdeptSlocSLC虛線表示部分虛線表示部分函數(shù)依賴函數(shù)依賴An Introduction to Database Systems41關(guān)系數(shù)據(jù)理論41SLC不是一個(gè)好的關(guān)系模式不是一個(gè)好的關(guān)系模式關(guān)系模式關(guān)系模式SLC(Sno, Sdept, Sloc, Cno, Grade)(1) 插入異常插入異常假設(shè)假設(shè)Sno95102,SdeptIS,Slo
32、cN的學(xué)生還未選課,因課的學(xué)生還未選課,因課程號(hào)是主屬性,因此該學(xué)生的信息無(wú)法插入程號(hào)是主屬性,因此該學(xué)生的信息無(wú)法插入SLC。(2) 刪除異常刪除異常 假定某個(gè)學(xué)生本來(lái)只選修了假定某個(gè)學(xué)生本來(lái)只選修了3號(hào)課程這一門課?,F(xiàn)在因身體不適,號(hào)課程這一門課?,F(xiàn)在因身體不適,他連他連3號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該號(hào)課程也不選修了。因課程號(hào)是主屬性,此操作將導(dǎo)致該學(xué)生信息的整個(gè)元組都要?jiǎng)h除。學(xué)生信息的整個(gè)元組都要?jiǎng)h除。 An Introduction to Database Systems42關(guān)系數(shù)據(jù)理論42SLC不是一個(gè)好的關(guān)系模式不是一個(gè)好的關(guān)系模式(3) 數(shù)據(jù)冗余度大數(shù)據(jù)冗余
33、度大 如果一個(gè)學(xué)生選修了如果一個(gè)學(xué)生選修了10門課程,那么他的門課程,那么他的Sdept和和Sloc值就要重復(fù)存儲(chǔ)了值就要重復(fù)存儲(chǔ)了10次。次。(4) 修改復(fù)雜修改復(fù)雜 例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的例如學(xué)生轉(zhuǎn)系,在修改此學(xué)生元組的Sdept值的同值的同時(shí),還可能需要修改住處(時(shí),還可能需要修改住處(Sloc)。)。如果這個(gè)學(xué)生如果這個(gè)學(xué)生選修了選修了K門課,則必須無(wú)遺漏地修改門課,則必須無(wú)遺漏地修改K個(gè)元組中全個(gè)元組中全部部Sdept、Sloc信息。信息。An Introduction to Database Systems43關(guān)系數(shù)據(jù)理論43 2NF原因:原因: Sdept、 Sloc部
34、分函數(shù)依賴于碼。部分函數(shù)依賴于碼。解決方法:解決方法: SLC分解為兩個(gè)關(guān)系模式,以消除這些分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴:部分函數(shù)依賴: SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc)An Introduction to Database Systems44關(guān)系數(shù)據(jù)理論442NF函數(shù)依賴圖函數(shù)依賴圖:SnoCnoGradeSCSLSnoSdeptSlocAn Introduction to Database Systems45關(guān)系數(shù)據(jù)理論45 2NF2NF的定義的定義定義定義6.6 若關(guān)系模式若關(guān)系模式R1NF,并且每一個(gè)非主并且每一個(gè)非主屬性都
35、完全函數(shù)依賴于屬性都完全函數(shù)依賴于R的碼,則的碼,則R2NF。例:例: SLC(Sno, Sdept, Sloc, Cno, Grade) 1NF SLC(Sno, Sdept, Sloc, Cno, Grade) 2NF SC(Sno, Cno, Grade) 2NF SL(Sno, Sdept, Sloc) 2NFAn Introduction to Database Systems46關(guān)系數(shù)據(jù)理論46 第二范式(續(xù))第二范式(續(xù))將一個(gè)將一個(gè)1NF的關(guān)系分解為多個(gè)的關(guān)系分解為多個(gè)2NF的關(guān)系,可的關(guān)系,可以在一定程度上減輕原以在一定程度上減輕原1NF關(guān)系中存在的插入關(guān)系中存在的插入異常、
36、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。問(wèn)題。將一個(gè)將一個(gè)1NF關(guān)系分解為多個(gè)關(guān)系分解為多個(gè)2NF的關(guān)系,并不的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。冗余。任何一個(gè)二目關(guān)系都是屬于任何一個(gè)二目關(guān)系都是屬于2NF的。的。An Introduction to Database Systems47關(guān)系數(shù)據(jù)理論47 6.2.5 3NF例:例:2NF關(guān)系模式關(guān)系模式SL(Sno, Sdept, Sloc)仍然存在數(shù)據(jù)冗余(仍然存在數(shù)據(jù)冗余( Sdept、Sloc會(huì)重復(fù)存儲(chǔ)多會(huì)重復(fù)存儲(chǔ)多次,造成修改復(fù)雜)等問(wèn)
37、題。次,造成修改復(fù)雜)等問(wèn)題。分析:函數(shù)依賴:分析:函數(shù)依賴: SnoSdept SdeptSloc SnoSlocSloc傳遞函數(shù)依賴于傳遞函數(shù)依賴于Sno,即即SL中存在非主屬性中存在非主屬性對(duì)碼的傳遞函數(shù)依賴。對(duì)碼的傳遞函數(shù)依賴。An Introduction to Database Systems48關(guān)系數(shù)據(jù)理論483NF函數(shù)依賴圖函數(shù)依賴圖:SLSnoSdeptSlocAn Introduction to Database Systems49關(guān)系數(shù)據(jù)理論49 3NF解決方法解決方法 采用投影分解法,把采用投影分解法,把SL分解為兩個(gè)關(guān)系模式,分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴:以
38、消除傳遞函數(shù)依賴: SD(Sno, Sdept) DL(Sdept, Sloc)SD的碼為的碼為Sno, DL的碼為的碼為Sdept。An Introduction to Database Systems50關(guān)系數(shù)據(jù)理論50 3NFSD的碼為的碼為Sno, DL的碼為的碼為Sdept。SnoSdeptSDSdeptSlocDLAn Introduction to Database Systems51關(guān)系數(shù)據(jù)理論51 3NF3NF的定義的定義定義定義6.8 關(guān)系模式關(guān)系模式R 中若不存在這樣的碼中若不存在這樣的碼X、屬性組屬性組Y及非主屬性及非主屬性Z(Z Y), 使得使得XY,(Y X),YZ
39、,成立,則稱成立,則稱R 3NF。若若R3NF,則則R的每一個(gè)非主屬性既不部分函數(shù)依的每一個(gè)非主屬性既不部分函數(shù)依賴于候選碼也不傳遞函數(shù)依賴于候選碼。賴于候選碼也不傳遞函數(shù)依賴于候選碼。例,例, SL(Sno, Sdept, Sloc) 2NF SL(Sno, Sdept, Sloc) 3NF SD(Sno, Sdept) 3NF DL(Sdept, Sloc) 3NFAn Introduction to Database Systems52關(guān)系數(shù)據(jù)理論52 3NF如果如果R3NF,則則R也是也是2NF。采用投影分解法將一個(gè)采用投影分解法將一個(gè)2NF的關(guān)系分解為多個(gè)的關(guān)系分解為多個(gè)3NF的關(guān)系
40、,的關(guān)系,可以在一定程度上解決原可以在一定程度上解決原2NF關(guān)系中存在的插入異常、刪關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問(wèn)題。將一個(gè)將一個(gè)2NF關(guān)系分解為多個(gè)關(guān)系分解為多個(gè)3NF的關(guān)系后,并不能完全消除的關(guān)系后,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。任何一個(gè)二目關(guān)系都是屬于任何一個(gè)二目關(guān)系都是屬于3NF的。的。如果一個(gè)關(guān)系中不包括非主屬性,則此關(guān)系屬于如果一個(gè)關(guān)系中不包括非主屬性,則此關(guān)系屬于3NF。An Introduction to Database Systems53關(guān)系數(shù)據(jù)理論53
41、 6.2.6 BC范式(范式(BCNF)定義定義6.9 設(shè)關(guān)系模式設(shè)關(guān)系模式R1NF,如果對(duì)于如果對(duì)于R的每個(gè)函數(shù)依賴的每個(gè)函數(shù)依賴XY,若若Y不屬于不屬于X,則則X必含必含有候選碼,那么有候選碼,那么RBCNF。若若RBCNF,每一個(gè)決定屬性集(因素)都包含每一個(gè)決定屬性集(因素)都包含(候選)碼(候選)碼R中的所有屬性(主,非主屬性)都完全函數(shù)依賴中的所有屬性(主,非主屬性)都完全函數(shù)依賴于碼,并且不存在任何屬性對(duì)碼的傳遞函數(shù)依賴于碼,并且不存在任何屬性對(duì)碼的傳遞函數(shù)依賴若若R3NF 則則 R不一定不一定BCNF任何一個(gè)二目關(guān)系都是屬于任何一個(gè)二目關(guān)系都是屬于BCNF的的。An Intro
42、duction to Database Systems54關(guān)系數(shù)據(jù)理論54BCNF(續(xù))(續(xù))例例5 關(guān)系模式關(guān)系模式C(Cno,Cname,Pcno)nC3NFnCBCNF例例6 關(guān)系模式關(guān)系模式S(Sno,Sname,Sdept,Sage)n假定假定S有兩個(gè)碼有兩個(gè)碼Sno,SnamenS3NFnS BCNFAn Introduction to Database Systems55關(guān)系數(shù)據(jù)理論55BCNF(續(xù))(續(xù))例例7關(guān)系模式關(guān)系模式SJP(S,J,P)n函數(shù)依賴:(函數(shù)依賴:(S,J)P;(;(J,P)Sn(S,J)與()與(J,P)都可以作為候選碼)都可以作為候選碼,屬屬性相交性相
43、交nSJP3NFnSJPBCNFAn Introduction to Database Systems56關(guān)系數(shù)據(jù)理論56 BCNF例例8在關(guān)系模式在關(guān)系模式STJ(S,T,J)中,中,S表示學(xué)生,表示學(xué)生,T表示教師,表示教師,J表示課程。表示課程。每一教師只教一門課。每門課由若干教師教,每一教師只教一門課。每門課由若干教師教,某一學(xué)生選定某門課,就確定了一個(gè)固定的教某一學(xué)生選定某門課,就確定了一個(gè)固定的教師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選師。某個(gè)學(xué)生選修某個(gè)教師的課就確定了所選課的名稱課的名稱 : (S,J)T,(S,T)J,TJAn Introduction to Database
44、 Systems57關(guān)系數(shù)據(jù)理論57 6.2.6 BCNF SJTSTJSTJAn Introduction to Database Systems58關(guān)系數(shù)據(jù)理論58BCNF(S,J)和和(S,T)都可以作為候選碼都可以作為候選碼 S、T、J都是主屬性都是主屬性STJ3NFTJ,T是決定屬性集,是決定屬性集,T不是候選碼不是候選碼STJBCNFAn Introduction to Database Systems59關(guān)系數(shù)據(jù)理論59BCNF解決方法:將解決方法:將STJ分解為二個(gè)關(guān)系模式:分解為二個(gè)關(guān)系模式: SJ(S,J) BCNF, TJ(T,J) BCNF不存在任何屬性對(duì)碼的部分函數(shù)依
45、賴和傳不存在任何屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴遞函數(shù)依賴SJSJTJTJAn Introduction to Database Systems60關(guān)系數(shù)據(jù)理論603NF與與BCNF的關(guān)系的關(guān)系如果關(guān)系模式如果關(guān)系模式RBCNF,必定有必定有R3NF如果如果R3NF,則則R未必屬于未必屬于BCNF。如果如果R3NF,且且R只有一個(gè)候選碼,則只有一個(gè)候選碼,則R必屬于必屬于BCNF。An Introduction to Database Systems61關(guān)系數(shù)據(jù)理論61BCNF一個(gè)模式中的關(guān)系模式如果都屬于一個(gè)模式中的關(guān)系模式如果都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它己那么在函數(shù)依賴范疇
46、內(nèi),它己實(shí)現(xiàn)了徹底的分離,已消除了插入和刪實(shí)現(xiàn)了徹底的分離,已消除了插入和刪除的異常。除的異常。3NF的的“不徹底不徹底”性表現(xiàn)在性表現(xiàn)在可能存在主屬性對(duì)碼的部分依賴和傳遞可能存在主屬性對(duì)碼的部分依賴和傳遞依賴。依賴。An Introduction to Database Systems62關(guān)系數(shù)據(jù)理論62在關(guān)系數(shù)據(jù)庫(kù)中,對(duì)關(guān)系模式的基本在關(guān)系數(shù)據(jù)庫(kù)中,對(duì)關(guān)系模式的基本要求是滿足第一范式。這樣的關(guān)系模要求是滿足第一范式。這樣的關(guān)系模式就是合法的、允許的。式就是合法的、允許的。但是,人們發(fā)現(xiàn)有些關(guān)系模式存在插但是,人們發(fā)現(xiàn)有些關(guān)系模式存在插入、刪除異常、修改復(fù)雜,數(shù)據(jù)冗余入、刪除異常、修改復(fù)雜,
47、數(shù)據(jù)冗余等毛病。人們尋求解決這些問(wèn)題的方等毛病。人們尋求解決這些問(wèn)題的方法,這就是規(guī)范化的目的。法,這就是規(guī)范化的目的。6.2.7 規(guī)范化規(guī)范化An Introduction to Database Systems63關(guān)系數(shù)據(jù)理論63規(guī)范化的基本思想規(guī)范化的基本思想消除不合適的數(shù)據(jù)依賴消除不合適的數(shù)據(jù)依賴使各關(guān)系模式達(dá)到某種程度的使各關(guān)系模式達(dá)到某種程度的“分離分離”讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體讓一個(gè)關(guān)系描述一個(gè)概念、一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。若多于一個(gè)或者實(shí)體間的一種聯(lián)系。若多于一個(gè)概念就把它概念就把它“分離分離”出去出去所謂規(guī)范化實(shí)質(zhì)上是概念的單一化所謂規(guī)范化實(shí)質(zhì)上是概念的單一化A
48、n Introduction to Database Systems64關(guān)系數(shù)據(jù)理論64規(guī)范化的過(guò)程規(guī)范化的過(guò)程關(guān)系模式的規(guī)范化過(guò)程是通過(guò)對(duì)關(guān)系模關(guān)系模式的規(guī)范化過(guò)程是通過(guò)對(duì)關(guān)系模式的分解來(lái)實(shí)現(xiàn)的。把低一級(jí)的關(guān)系模式的分解來(lái)實(shí)現(xiàn)的。把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式。式分解為若干個(gè)高一級(jí)的關(guān)系模式。An Introduction to Database Systems65關(guān)系數(shù)據(jù)理論65各種范式及規(guī)范化過(guò)程各種范式及規(guī)范化過(guò)程 1NF 消除非主屬性對(duì)碼的部分函數(shù)依賴消除非主屬性對(duì)碼的部分函數(shù)依賴消除決定屬性消除決定屬性 2NF集非碼的非平集非碼的非平 消除非主屬性對(duì)碼的傳遞函數(shù)依賴
49、消除非主屬性對(duì)碼的傳遞函數(shù)依賴凡函數(shù)依賴凡函數(shù)依賴 3NF 消除主屬性對(duì)碼的部分和傳遞函數(shù)依消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴賴 BCNF 消除非平凡且非函數(shù)依賴的多值依賴消除非平凡且非函數(shù)依賴的多值依賴 4NF規(guī)范化的過(guò)程規(guī)范化的過(guò)程An Introduction to Database Systems66關(guān)系數(shù)據(jù)理論66規(guī)范化(續(xù))規(guī)范化(續(xù))不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好不能說(shuō)規(guī)范化程度越高的關(guān)系模式就越好在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的在設(shè)計(jì)數(shù)據(jù)庫(kù)模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反
50、映現(xiàn)實(shí)世界的模式一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式上面的規(guī)范化步驟可以在其中任何一步終止上面的規(guī)范化步驟可以在其中任何一步終止An Introduction to Database Systems67關(guān)系數(shù)據(jù)理論676.2.8 候選碼的求解理論候選碼的求解理論對(duì)于給定的關(guān)系模式對(duì)于給定的關(guān)系模式R(U,F(xiàn)),若),若X(XU)是僅出現(xiàn)在是僅出現(xiàn)在F的函數(shù)依賴左邊的屬性,則的函數(shù)依賴左邊的屬性,則X 必必包含在包含在R的任一候選碼中。的任一候選碼中。對(duì)于給定的關(guān)系模式對(duì)于給定的關(guān)系模式R(U,F(xiàn)),若),若X(XU)是僅出現(xiàn)在是僅出現(xiàn)在F的函數(shù)依賴右邊的屬性,則的函數(shù)依賴右邊的屬性,則X不在不在
51、R的任何候選碼中。的任何候選碼中。對(duì)于給定的關(guān)系模式對(duì)于給定的關(guān)系模式R(U,F(xiàn)),若),若X(XU)是在是在F的函數(shù)依賴左右兩邊均未出現(xiàn)的屬性,的函數(shù)依賴左右兩邊均未出現(xiàn)的屬性,則則X必包含在必包含在R的任一候選碼中。的任一候選碼中。An Introduction to Database Systems68關(guān)系數(shù)據(jù)理論68小結(jié)小結(jié)規(guī)范化理論為數(shù)據(jù)庫(kù)設(shè)計(jì)提供了理論的規(guī)范化理論為數(shù)據(jù)庫(kù)設(shè)計(jì)提供了理論的指南和工具指南和工具并不是規(guī)范化程度越高,模式就越好并不是規(guī)范化程度越高,模式就越好必須結(jié)合應(yīng)用環(huán)境和現(xiàn)實(shí)世界的具體必須結(jié)合應(yīng)用環(huán)境和現(xiàn)實(shí)世界的具體情況合理地選擇數(shù)據(jù)庫(kù)模式情況合理地選擇數(shù)據(jù)庫(kù)模式A
52、n Introduction to Database Systems69關(guān)系數(shù)據(jù)理論69例題例題例例1:在函數(shù)依賴范疇內(nèi),對(duì)以下各關(guān)系模式,指:在函數(shù)依賴范疇內(nèi),對(duì)以下各關(guān)系模式,指出全部候選碼,主屬性,非主屬性,并指明最高出全部候選碼,主屬性,非主屬性,并指明最高屬于哪個(gè)范式,為什么?屬于哪個(gè)范式,為什么?(1)R(A,B,C,D) F=AB,AC,AD,(B,C)A主屬性為主屬性為A,B,C;非主非主屬性為屬性為D解:解:AU A為為R的候選碼的候選碼 (B,C)A,AD (B,C)D (B,C)U (B,C)為為R的候選碼的候選碼FFAn Introduction to Database
53、 Systems70關(guān)系數(shù)據(jù)理論70例題例題AD, (B,C)A, AB, AC又又A、(B,C)均為均為R的碼的碼R中每個(gè)決定因素都包含碼中每個(gè)決定因素都包含碼RBCNFAn Introduction to Database Systems71關(guān)系數(shù)據(jù)理論71例題例題(2)R(E,P,G,H) F=(P,G)H,GE解:解:(P,G)G,GE(P,G)E (P,G)U(P,G)為為R的候選碼的候選碼主屬性為主屬性為P,G;非主屬性為非主屬性為E,H(P,G)E, GE (P,G)ER不屬于不屬于2NFR最高屬于最高屬于1NF.FPAn Introduction to Database Sys
54、tems72關(guān)系數(shù)據(jù)理論72作業(yè)作業(yè)(3)R(A,B,C) F=BC, BA, (A,C)BAn Introduction to Database Systems73關(guān)系數(shù)據(jù)理論73例題例題例例 2 : 設(shè) 有 關(guān) 系 模 式: 設(shè) 有 關(guān) 系 模 式 R ( U , F ) , 其 中 :, 其 中 :U=A,B,C,D,E,P,F=AB,CP,EA,CED,已知已知R只有一個(gè)候選碼,求出只有一個(gè)候選碼,求出R的候選碼。的候選碼。CE例例3:設(shè)有關(guān)系模式:設(shè)有關(guān)系模式R(C,T,S,N,G),其上的函數(shù)依,其上的函數(shù)依賴集:賴集:F=CT,CSG,SN,已知,已知R只有一個(gè)只有一個(gè)候選碼,求出候選碼,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 19970:2025 EN Refrigerated hydrocarbon and non-petroleum based liquefied gaseous fuels - Metering of gas as fuel on LNG carriers during cargo transfer operations
- 專家門診診查費(fèi)管理辦法
- 銀行對(duì)外合作管理辦法
- 漁船通導(dǎo)設(shè)備管理辦法
- 集團(tuán)業(yè)務(wù)網(wǎng)絡(luò)管理辦法
- 銀行駐留資金管理辦法
- 深圳幼兒園財(cái)會(huì)管理辦法
- 知愛防艾健康同行
- 涼鞋制作流程
- 喘病病人的健康指導(dǎo)
- 農(nóng)商銀行貸款合同電子版
- 翼狀胬肉術(shù)后護(hù)理
- 關(guān)于麻將館的創(chuàng)業(yè)計(jì)劃書
- 《目視化管理》課件
- ERP車間管理模塊操作培訓(xùn)手冊(cè)
- 機(jī)械制造項(xiàng)目檢測(cè)試驗(yàn)計(jì)劃
- 2025-2030年中國(guó)產(chǎn)業(yè)園區(qū)物業(yè)管理行業(yè)開拓第二增長(zhǎng)曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025神華新街能源限責(zé)任公司系統(tǒng)內(nèi)招聘23人(第二批)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東省濟(jì)南市屬事業(yè)單位招考高頻重點(diǎn)提升(共500題)附帶答案詳解
- 西門塔爾牛飼養(yǎng)技術(shù)規(guī)程
- 文獻(xiàn)語(yǔ)言學(xué)論集-札記
評(píng)論
0/150
提交評(píng)論