




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理與應(yīng)用教程-MySQL8.0第2章關(guān)系數(shù)據(jù)庫(kù)第2章關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)就是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)。關(guān)系數(shù)據(jù)模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示。在用戶(hù)看來(lái),關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)就是一張二維表。2.1.1關(guān)系的定義和性質(zhì)關(guān)系就是一張二維表,但并不是任何二維表都叫關(guān)系,我們不能把日常生活中所用的任何表格都當(dāng)成一個(gè)關(guān)系直接存放到數(shù)據(jù)庫(kù)里。那么什么樣的二維表才叫關(guān)系呢?
1、關(guān)系的數(shù)學(xué)定義笛卡兒積:設(shè)D1,D2,…,Dn為任意域,定義D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}
域:一組具有相同數(shù)據(jù)類(lèi)型的值的集合。例如:有兩個(gè)域,D1=動(dòng)物集合={貓,狗,豬},D2=食物集合={魚(yú),骨頭,白菜},D1×D2={(貓,魚(yú))(狗,魚(yú))(豬,魚(yú))(貓,骨頭)(狗,骨頭)(豬,骨頭)(貓,白菜)(狗,白菜)(豬,白菜)}2.1.1關(guān)系的定義和性質(zhì)動(dòng)物食物貓魚(yú)狗魚(yú)豬魚(yú)貓骨頭狗骨頭豬骨頭貓白菜狗白菜豬白菜D1×D2=動(dòng)物食物表笛卡兒積推出關(guān)系表的定義關(guān)系:D1×D2×…×Dn中有關(guān)系的行形成的子集叫做D1×D2×…×Dn上的一個(gè)關(guān)系(Relation),用R(D1,D2,…,Dn)表示。(R表示關(guān)系名,n表示關(guān)系的目、度或元)動(dòng)物食物表的子集——?jiǎng)游锸澄镪P(guān)系表動(dòng)物食物貓魚(yú)狗骨頭豬白菜2.1.1關(guān)系的定義和性質(zhì)2.關(guān)系的性質(zhì):關(guān)系數(shù)據(jù)庫(kù)要求關(guān)系必須是具有以下性質(zhì):(1)在同一個(gè)關(guān)系中,同一個(gè)列的數(shù)據(jù)必須是同一種數(shù)據(jù)類(lèi)型。(2)在同一個(gè)關(guān)系中,不同的列的數(shù)據(jù)可以同一種數(shù)據(jù)類(lèi)型,但各屬性名必須是互不相同。(3)在同一個(gè)關(guān)系中,任意兩個(gè)元組都不能完全相同。(4)在同一個(gè)關(guān)系中,列的次序無(wú)關(guān)緊要。(5)在同一個(gè)關(guān)系中,元組的位置無(wú)關(guān)緊要,即排行不分先后(6)關(guān)系中的每個(gè)屬性必須是單值,即不可再分,這就要求關(guān)系的結(jié)構(gòu)不能嵌套。這是關(guān)系應(yīng)滿(mǎn)足的最基本的條件。
2.1.1關(guān)系的定義和性質(zhì)例如,有這樣一個(gè)學(xué)生表如下:復(fù)合表示例學(xué)號(hào)姓名性別系編號(hào)成績(jī)程序設(shè)計(jì)英語(yǔ)高數(shù)2022001張三男017787862022002李四女026989762022003劉明男037984822022004王曉女036690762.1.1關(guān)系的定義和性質(zhì)2.1.1關(guān)系的定義和性質(zhì)上述復(fù)合表格就不是關(guān)系,應(yīng)對(duì)其進(jìn)行結(jié)構(gòu)上的修改,才能成為數(shù)據(jù)庫(kù)中的關(guān)系。(1)可以轉(zhuǎn)化成一個(gè)關(guān)系,即學(xué)生成績(jī)關(guān)系(學(xué)號(hào),姓名,性別,系編號(hào),程序設(shè)計(jì),英語(yǔ),高數(shù));(2)也可以轉(zhuǎn)化成兩個(gè)關(guān)系,即學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,系編號(hào))和成績(jī)關(guān)系(學(xué)號(hào),程序設(shè)計(jì),英語(yǔ),高數(shù))。2.1.2關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模式是型,關(guān)系是值;關(guān)系模式是對(duì)關(guān)系的描述。因此關(guān)系模式必須指出這個(gè)元組集合的結(jié)構(gòu),即它由哪些屬性構(gòu)成,這些屬性來(lái)自哪些域。關(guān)系模式形式化表示:R(U,D,dom,F(xiàn))其中:R是關(guān)系名;U是組成該關(guān)系的屬性名集合;D是屬性所來(lái)自的域;dom是屬性向域的映象集合;F是屬性之間的數(shù)據(jù)依賴(lài)關(guān)系的集合。學(xué)號(hào)姓名性別年齡所在系2021000101王蕭男17計(jì)算機(jī)系2021000207李云虎男18物理系0202110302郭敏女18數(shù)學(xué)系2022010408高紅女20數(shù)學(xué)系2022020309王睿男19美術(shù)系2022020506路旭青女21美術(shù)系學(xué)生情況表(關(guān)系)
學(xué)生情況表的關(guān)系模式可以描述為:學(xué)生情況表(學(xué)號(hào),姓名,性別,年齡,所在系)關(guān)系模式通??梢院?jiǎn)記為:
R(U)或R(A1,A2,…,An)。
其中:R是關(guān)系名,A1,A2,…,An為屬性名;域名及屬性向域的映象,常常直接說(shuō)明為屬性的類(lèi)型和長(zhǎng)度。2.1.2關(guān)系數(shù)據(jù)庫(kù)關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫(kù)中的數(shù)據(jù)。實(shí)際應(yīng)用中,常常把關(guān)系模式和關(guān)系統(tǒng)稱(chēng)為關(guān)系。2.關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)就是采用關(guān)系模型的數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)的型即為其關(guān)系模式的集合,關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合。
2.1.2關(guān)系數(shù)據(jù)庫(kù)2.2關(guān)系的完整性數(shù)據(jù)完整性是指關(guān)系模型中數(shù)據(jù)的正確性與一致性。關(guān)系模型允許定義三類(lèi)完整性約束*:實(shí)體完整性、參照完整性和用戶(hù)自定義的完整性約束。1、實(shí)體完整性規(guī)則*實(shí)體完整性規(guī)則要求關(guān)系中主碼的屬性具有唯一性且不能取空值*。例如學(xué)生表中的學(xué)號(hào)屬性既具有唯一性又不能為空。選修關(guān)系的主碼為學(xué)號(hào)和課程號(hào)既具有唯一性又不允許為空。2.2關(guān)系的完整性2、參照完整性規(guī)則*設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,如果F與基本關(guān)系S的主碼K相對(duì)應(yīng),則稱(chēng)F是基本關(guān)系R的外碼(Foreignkey),并稱(chēng)基本關(guān)系R為參照關(guān)系,基本關(guān)系S為被參照關(guān)系或目標(biāo)關(guān)系。如,班級(jí)關(guān)系(班級(jí),班主任)中班級(jí)為主碼。學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,班級(jí))中班級(jí)為外碼。參照完整性是用來(lái)定義外碼與主碼之間引用規(guī)則的。2.2關(guān)系的完整性參照完整性規(guī)則**:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼K相對(duì)應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值*。2.2關(guān)系的完整性【例】學(xué)生實(shí)體和專(zhuān)業(yè)實(shí)體可以用下面的關(guān)系表示,其中主碼用下劃線標(biāo)識(shí)。學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別號(hào))系別(系別號(hào),系名)“系別號(hào)”屬性是學(xué)生關(guān)系的外碼,是系別關(guān)系的主碼。系別關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系。所以,學(xué)生關(guān)系中的每個(gè)元組的“系別號(hào)”屬性只能取下面兩類(lèi)值:空值或系別關(guān)系中已經(jīng)存在的值。學(xué)生表:學(xué)號(hào)姓名性別年齡2003002張三男202003025李四女212005023劉明男182004033王曉女19課程號(hào)課程名學(xué)分A002數(shù)據(jù)庫(kù)4B025英語(yǔ)5A005網(wǎng)絡(luò)3B028VB3課程表:學(xué)號(hào)課程號(hào)成績(jī)2003002A002782003002B025882003002A005932003025A002902003025B025782003025A005772003025B028882004033A002872004033B025832005023A005792005023B028922005023B02589選修表:2.2關(guān)系的完整性分析參照完整性:2.2關(guān)系的完整性3、用戶(hù)定義的完整性規(guī)則用戶(hù)定義的完整性規(guī)則由用戶(hù)根據(jù)實(shí)際情況對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的內(nèi)容進(jìn)行的規(guī)定,也稱(chēng)為域完整性規(guī)則*。通過(guò)這些規(guī)則限制數(shù)據(jù)庫(kù)只接受符合完整性約束條件的數(shù)據(jù)值,不接受違反約束條件的數(shù)據(jù),從而保證數(shù)據(jù)庫(kù)的中數(shù)據(jù)的有效性和可靠性。例如,學(xué)生表中的性別數(shù)據(jù)只能是男和女,選課表中的成績(jī)數(shù)據(jù)為0到100之間,等等。3.3關(guān)系運(yùn)算關(guān)系代數(shù)是以關(guān)系為運(yùn)算對(duì)象的一組高級(jí)運(yùn)算的集合;關(guān)系代數(shù)是一種抽象的查詢(xún)語(yǔ)言,是關(guān)系數(shù)據(jù)操縱語(yǔ)言的一種傳統(tǒng)表達(dá)方式。(數(shù)學(xué)方式的查詢(xún)過(guò)程)
注意:關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系。2.3關(guān)系運(yùn)算關(guān)系代數(shù)中的操作可以分為兩類(lèi):
傳統(tǒng)的集合操作:并、差、交、笛卡兒積。專(zhuān)門(mén)的關(guān)系操作*:投影、選擇、連接、除法等。在兩類(lèi)集合運(yùn)算中,除運(yùn)算本身的運(yùn)算符外(如并運(yùn)算為∪),還將用到兩類(lèi)輔助操作符:
(1)比較運(yùn)算符:>、≥、<、≤、=、≠。
(2)邏輯運(yùn)算符:∨(或)、∧(與)、┐(非)。2.3.1傳統(tǒng)的集合運(yùn)算1、笛卡兒積*設(shè)關(guān)系R和S的元數(shù)(屬性個(gè)數(shù))分別為r和s,定義R和S的笛卡兒積是一個(gè)(r+s)元的元組集合,每個(gè)元組的前r個(gè)分量(屬性值)來(lái)自R的一個(gè)元組,后s個(gè)分量來(lái)自S的一個(gè)元組,記為R×S。若R有m個(gè)元組,S有n個(gè)元組,則R×S有m×n個(gè)元組。2.3.1傳統(tǒng)的集合運(yùn)算已知關(guān)系R和關(guān)系S,如下圖:ABCa1b2c1a2b1c3a3b3c2
關(guān)系REFDe1f2d2e2f3d1e3f1d3關(guān)系S
2.3.1傳統(tǒng)的集合運(yùn)算R×SABCEFDa1b2c1e1f2d2a1b2c1e2F3d1a1b2c2e3f1d3a2b1c3e1f2d2a2b1c3e2F3d1a2b1c3e3f1d3a3b3c2e1f2d2a3b3c2e2F3d1a3b3c2e3f1d32.3.1傳統(tǒng)的集合運(yùn)算2、并(Union)
設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下:
R∪S={t|t∈R∨t∈S},其含義為:任取元組t,當(dāng)且僅當(dāng)t屬于R或t屬于S時(shí),t屬于R∪S。R∪S是一個(gè)n元關(guān)系。2.3.1傳統(tǒng)的集合運(yùn)算我們可以把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的并為?abc123789101112R∪SR
Sabc123456789abc123456789101112注意:并運(yùn)算會(huì)取消某些元組(避免重復(fù)行)。2.3.1傳統(tǒng)的集合運(yùn)算3、差(Difference)
關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R-S。形式定義如下:
R-S={t|t∈R∧t∈S}其含義為:當(dāng)且僅當(dāng)t屬于R并且不屬于S時(shí),t屬于R-S。R-S也是一個(gè)n元關(guān)系。\2.3.1傳統(tǒng)的集合運(yùn)算同樣把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的差為?
R-Sabc456abc123789101112R
Sabc1234567892.3.1傳統(tǒng)的集合運(yùn)算4、交(Intersection)關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的交是由屬于R且屬于S是元組構(gòu)成的集合,記為R∩S。形式定義如下:
R∩S={t|t∈R∧t∈S}其含義為:任取元組t,當(dāng)且僅當(dāng)t既屬于R又屬于S時(shí),t屬于R∩S。R∩S也是一個(gè)n元關(guān)系。2.3.1傳統(tǒng)的集合運(yùn)算還是把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的交為?
R∩Sabc123789abc123789101112R
Sabc1234567892.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算專(zhuān)門(mén)的關(guān)系運(yùn)算包括選擇、投影、連接、除等。1、選擇(Selection)選擇運(yùn)算是在關(guān)系R中選擇滿(mǎn)足給定條件的諸元組,記作σF(R)={t|t∈R^F(t)='真'}2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù),包括學(xué)生關(guān)系student、課程關(guān)系course和成績(jī)表score。
學(xué)生情況表(student)學(xué)號(hào)(no)姓名(name)性別(sex)年齡(age)所在系(dep)2022001張超男18物理系2022002李嵐女17信息系2022003王芳女19數(shù)學(xué)系2022004劉娟女18信息系2022005趙強(qiáng)男19物理系2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算
課程表(course)課程號(hào)(cno)課程名(cname)學(xué)分(credit)1數(shù)據(jù)庫(kù)42高等數(shù)學(xué)33信息系統(tǒng)24操作系統(tǒng)35數(shù)據(jù)結(jié)構(gòu)56C程序設(shè)計(jì)32.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算
成績(jī)表(score)學(xué)號(hào)(no)課程號(hào)(cno)成績(jī)(grade)20220012782022001388202200158120220021902022002468202200347020220035572022003189202200529320220055792.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算例:查詢(xún)數(shù)學(xué)系學(xué)生的信息。σdep=‘?dāng)?shù)學(xué)系’
(student)或σ5=‘?dāng)?shù)學(xué)系’
(student)查詢(xún)數(shù)學(xué)系學(xué)生的信息,結(jié)果:學(xué)號(hào)(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學(xué)系2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算例:查詢(xún)年齡大于17的女同學(xué)的信息。σ
age>17∧sex=’女’
(student)
或
σ4>17∧3=’女’(student)
查詢(xún)結(jié)果表學(xué)號(hào)(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學(xué)系2022004劉娟女18信息系2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算2、投影(Projection)
關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作πA(R)={t[A]|t∈R}其中,A為R中的屬性列。投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因?yàn)槿∠四承傩粤泻?,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算例:查詢(xún)學(xué)生的學(xué)號(hào)和姓名。πno,name(student)或π1,2(student)結(jié)果表如表所示。查詢(xún)學(xué)生的學(xué)號(hào)和姓名學(xué)
號(hào)no姓
名name2022001張超2022002李嵐2022003
王芳2022004劉娟2022005趙強(qiáng)2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算課程名(cname)課程號(hào)(cno)數(shù)據(jù)庫(kù)1高等數(shù)學(xué)2信息系統(tǒng)3操作系統(tǒng)4數(shù)據(jù)結(jié)構(gòu)5C程序設(shè)計(jì)6例:查詢(xún)課程表中的課程名和課程號(hào)。πcname,cno(course)或π2,1(course)
查詢(xún)課程名和課程號(hào)2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算3、連接(Join)(1)連接運(yùn)算的含義:連接也稱(chēng)θ連接,是從兩個(gè)關(guān)系的笛卡兒積中選取滿(mǎn)足某規(guī)定條件的全體元組,形成一個(gè)新的關(guān)系,記為:2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算例題:已知關(guān)系R和關(guān)系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2
RS求:2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算AR.BCEDS.Ba1b267e1b1a1b2610e3b3a2b1710e3b3a1b3910e3b3連接結(jié)果表2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算(3)兩類(lèi)常用連接運(yùn)算①等值連接(equi-join)θ為“=”的連接運(yùn)算稱(chēng)為等值連接,它是從關(guān)系R與S的笛卡兒積中選取A、B屬性值相等的那些元組。等值連接為:A=BRS={trts|tr
R∧ts
S∧tr[A]=ts[B]}2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算②自然連接(Naturaljoin)若A、B是相同的屬性組,就可以在結(jié)果中把重復(fù)的屬性去掉。這種去掉了重復(fù)屬性的等值連接稱(chēng)為自然連接。自然連接可記作:RS={trts|tr
R∧ts
S∧tr[B]=ts[B]}2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算例題:已知關(guān)系R和關(guān)系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2
RS2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算求:
R.B=S.B2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算R.C=S.E,等值連接結(jié)果表AR.BCEDS.Ba1b266e2b2a2b177e1b12.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算R.B=S.B等值連接結(jié)果自然連接結(jié)果表ABCEDa1b265e2a1b266e2a2b177e1a3b2125e2a3b2126e2a1b3910e3AR.BCEDS.Ba1b265e2b2a1b266e2b2a2b177e1b1a3b2125e2b2a3b2126e2b2a1b3910e3b32.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算根據(jù)學(xué)生-課程數(shù)據(jù)庫(kù)的三個(gè)表:求:
(1)student∞score(2)course∞score(3)student∞score∞course
2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算4.關(guān)系代數(shù)操作表達(dá)式舉例*設(shè)教學(xué)數(shù)據(jù)庫(kù)中有三個(gè)關(guān)系,學(xué)生關(guān)系:S(SNO,SN,AGE,SEX)、學(xué)習(xí)關(guān)系:SC(SNO,CNO,SCORE)、課程關(guān)系:C(CNO,CN,TEACHER)(1)檢索學(xué)習(xí)課程號(hào)為C3的學(xué)生學(xué)號(hào)和成績(jī)∏SNO,SCORE(σCNO=’C3’(SC))(2)檢索學(xué)習(xí)課程號(hào)為C4的學(xué)生學(xué)號(hào)和姓名∏SNO,SN(σCNO=’C4’(S∞SC))2.3.2專(zhuān)門(mén)的關(guān)系運(yùn)算(3)檢索學(xué)習(xí)課程名為MATHS的學(xué)生學(xué)號(hào)和姓名∏
SNO,SN(σCN=’MATHS’(S∞SC∞C))(4)檢索學(xué)習(xí)課程號(hào)為C1或C3的學(xué)生學(xué)號(hào)∏
SNO(σCNO=’C1’VCNO=’C3’(SC))(5)檢索不學(xué)習(xí)課程號(hào)為C2的學(xué)生的姓名和年齡∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC))實(shí)體的聯(lián)系有兩類(lèi),一類(lèi)是實(shí)體與實(shí)體之間的聯(lián)系;另一類(lèi)是實(shí)體內(nèi)部各屬性間的聯(lián)系。關(guān)系模式中各個(gè)屬性之間的相互關(guān)聯(lián),就是數(shù)據(jù)依賴(lài),它是規(guī)范化理論中一個(gè)最重要最基本的概念,是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵。本節(jié)重點(diǎn)介紹兩個(gè)問(wèn)題:函數(shù)依賴(lài):數(shù)據(jù)依賴(lài)中最重要的一種關(guān)系的規(guī)范化目的和過(guò)程2.4關(guān)系的規(guī)范化數(shù)據(jù)依賴(lài)共有三種:函數(shù)依賴(lài)(FunctionalDependency,簡(jiǎn)稱(chēng)FD)、多值依賴(lài)(MultivaluedDependency,簡(jiǎn)稱(chēng)MVD)和連接依賴(lài)(JoinDependency,簡(jiǎn)稱(chēng)JD),其中最重要的是函數(shù)依賴(lài)。1.函數(shù)依賴(lài)的定義所謂函數(shù)依賴(lài)是指在關(guān)系R中,X、Y為R的兩個(gè)屬性或?qū)傩越M,如果關(guān)系R存在:對(duì)于X的每一個(gè)具體值,Y都只有一個(gè)具體值與之對(duì)應(yīng),則稱(chēng)屬性Y函數(shù)依賴(lài)于屬性X。記作X→Y。
2.4.1函數(shù)依賴(lài)函數(shù)依賴(lài)簡(jiǎn)單表述:如果屬性X的值決定屬性Y的值,那么屬性Y函數(shù)依賴(lài)于屬性X。或者,如果知道X的值,就可以獲得Y的值。所以X→Y可以叫做Y函數(shù)依賴(lài)于X,也可以叫做X函數(shù)決定Y,或X決定Y。2.4.1函數(shù)依賴(lài)?yán)龑W(xué)生情況表學(xué)號(hào)姓名專(zhuān)業(yè)名性別出生日期總學(xué)分20211101王林計(jì)算機(jī)男2003-02-105020211102程明計(jì)算機(jī)男2003-02-015020211103王燕計(jì)算機(jī)女2004-10-065020211104韋嚴(yán)平網(wǎng)絡(luò)男2002-08-265020211106李方方網(wǎng)絡(luò)女2003-11-20502.4.1函數(shù)依賴(lài)學(xué)生情況表對(duì)應(yīng)的關(guān)系模式可描述為:學(xué)生情況(學(xué)號(hào),姓名,性別,出生日期,總學(xué)分)其中,學(xué)號(hào)為主鍵,則存在如下的函數(shù)依賴(lài)關(guān)系:學(xué)號(hào)→姓名;學(xué)號(hào)→專(zhuān)業(yè)名;學(xué)號(hào)→性別;學(xué)號(hào)→出生日期;學(xué)號(hào)→總學(xué)分2.4.1函數(shù)依賴(lài)2、幾種特定的函數(shù)依賴(lài)*(1)非平凡函數(shù)依賴(lài)和平凡函數(shù)依賴(lài)設(shè)關(guān)系模式R(U),X、Y?U;如果X→Y,且Y?X,則稱(chēng)X→Y為平凡的函數(shù)依賴(lài)。如果X→Y,且Y不是X的子集,則稱(chēng)X→Y為非平凡的函數(shù)依賴(lài)。例:在學(xué)生課程關(guān)系(學(xué)生號(hào),課程號(hào),成績(jī))中,若存在函數(shù)依賴(lài):(1)(學(xué)生號(hào),課程號(hào))→成績(jī)(非平凡)(2)(學(xué)生號(hào),課程號(hào))→課程號(hào)(平凡)2.4.1函數(shù)依賴(lài)(2)完全函數(shù)依賴(lài)和部分函數(shù)依賴(lài)**定義:設(shè)關(guān)系模式R(U),X,Y?U;如果X→Y,并且對(duì)于X的任何一個(gè)真子集Z,Z→Y都不成立,則稱(chēng)Y完全函數(shù)依賴(lài)于X。若X→Y,但對(duì)于X的某一個(gè)真子集Z,有Z→Y成立,則稱(chēng)Y部分函數(shù)依賴(lài)于X。2.4.1函數(shù)依賴(lài)?yán)涸趯W(xué)生課程關(guān)系(學(xué)號(hào),課程號(hào),成績(jī))中,主碼為(學(xué)號(hào),課程號(hào))。因?yàn)閷W(xué)號(hào)→成績(jī)不成立,課程號(hào)→成績(jī)也不成立,所以(學(xué)號(hào),課程號(hào))→成績(jī)?yōu)橥耆瘮?shù)依賴(lài)。又例:在選課關(guān)系(學(xué)號(hào),課程號(hào),姓名,成績(jī))中,(學(xué)號(hào),課程號(hào))是主碼。由于:學(xué)號(hào)→姓名成立,因此:姓名部分函數(shù)依賴(lài)于(學(xué)號(hào),課程號(hào))。2.4.1函數(shù)依賴(lài)(3)傳遞函數(shù)依賴(lài)設(shè)關(guān)系模式R(U),X?U,Y?U,Z?U。如果X→Y,YX,且Y→Z成立,則稱(chēng)X→Z為傳遞函數(shù)依賴(lài)。
例如:學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,年齡,所在系,系主任),其上的函數(shù)依賴(lài)集F={學(xué)號(hào)→姓名,學(xué)號(hào)→性別,學(xué)號(hào)→年齡,學(xué)號(hào)→所在系,所在系→系主任},則學(xué)號(hào)→系主任為傳遞函數(shù)依賴(lài)。2.4.1函數(shù)依賴(lài)3、碼的函數(shù)依賴(lài)表示函數(shù)依賴(lài)的概念給出關(guān)系模式中碼的更嚴(yán)格定義:候選碼:設(shè)K為關(guān)系模式R(U)中的屬性或?qū)傩约?。若K→U,則K稱(chēng)為R的一個(gè)候選碼。若關(guān)系模式R有多個(gè)候選碼,則選定其中一個(gè)作為主碼。2.4.1函數(shù)依賴(lài)設(shè)有一描述學(xué)校的數(shù)據(jù)庫(kù):含有這樣一個(gè)關(guān)系模式:學(xué)生信息表(學(xué)號(hào),姓名,年齡,系別,系主任,課程號(hào),成績(jī)),(學(xué)號(hào),課程號(hào))為主鍵。其中,一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系;一個(gè)系只有一名主任;一個(gè)學(xué)生可以選修多門(mén)課程,每門(mén)課程有若干學(xué)生選修;每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。2.4.2關(guān)系的規(guī)范化目的2.4.2關(guān)系的規(guī)范化目的學(xué)號(hào)姓名年齡系別系主任課程號(hào)成績(jī)20221001趙紅20計(jì)算機(jī)張力C19020221001趙紅20計(jì)算機(jī)張力C28520222002王小明17數(shù)學(xué)王曉C55720222002王小明17數(shù)學(xué)王曉C68020222002王小明17數(shù)學(xué)王曉C77620222002王小明17數(shù)學(xué)王曉C47020223003吳林19信息趙鋼林19信息趙鋼C27020221004張濤21計(jì)算機(jī)張力C193關(guān)系模式學(xué)生信息表中存在如下問(wèn)題*:①數(shù)據(jù)冗余(浪費(fèi)大量的存儲(chǔ)空間)。例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)很多次②更新異常(數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大) 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組2.4.2關(guān)系的規(guī)范化目的③插入異常(該插的數(shù)據(jù)插不進(jìn)去)例:如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。④刪除異常(不該刪除的數(shù)據(jù)不得不刪)例:如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也刪掉了。2.4.2關(guān)系的規(guī)范化目的以上問(wèn)題產(chǎn)生的原因:由存在于模式中的某些不合適的數(shù)據(jù)依賴(lài)引起的。解決方法:*通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴(lài)。關(guān)系模式規(guī)范化的目的是解決關(guān)系模式中存在的數(shù)據(jù)冗余、插入和刪除異常以及更新異常等問(wèn)題?;舅枷耄合龜?shù)據(jù)依賴(lài)中的不合適部分,即模式分解。2.4.2關(guān)系的規(guī)范化目的關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿(mǎn)足一定的規(guī)范化要求,對(duì)于不同的規(guī)范化程度可用范式來(lái)衡量。范式(NormalForm)是符合某一種級(jí)別的關(guān)系模式的集合,是衡量關(guān)系模式規(guī)范化程度的標(biāo)準(zhǔn),達(dá)到的關(guān)系才是規(guī)范化的。目前主要有6種范式:第一、第二、第三、BC范式、第四和第五范式。2.4.2關(guān)系的規(guī)范化目的滿(mǎn)足最低要求的叫第一范式,簡(jiǎn)稱(chēng)為1NF。在第一范式基礎(chǔ)上進(jìn)一步滿(mǎn)足一些要求的為第二范式,簡(jiǎn)稱(chēng)為2NF。其余以此類(lèi)推。范式之間存在聯(lián)系:1NF?2NF?3NF?BCNF?4NF?5NF。通常把某一關(guān)系模式R為第n范式簡(jiǎn)記為R∈nNF。在這些范式中,最重要的是3NF和BCNF,它們是進(jìn)行規(guī)范化的主要目標(biāo)。2.4.2關(guān)系的規(guī)范化目的一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這個(gè)過(guò)程稱(chēng)為規(guī)范化。
通常實(shí)際應(yīng)用中,規(guī)范化到3NF就可以了。2.4.3關(guān)系的規(guī)范化過(guò)程1、第一范式(1NF)定義:設(shè)R是一個(gè)關(guān)系模式。如果R的每個(gè)屬性的值域都是不可分的簡(jiǎn)單數(shù)據(jù)項(xiàng)(原子)的集合,則稱(chēng)這個(gè)關(guān)系模式屬于第一范式,簡(jiǎn)記作R∈1NF。簡(jiǎn)單表述:如果關(guān)系模式R的每一個(gè)屬性都是不可分解的,則R∈1NF。1NF是規(guī)范化最低的范式,在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,關(guān)系至少應(yīng)該是第一范式。不滿(mǎn)足第一范式的數(shù)據(jù)庫(kù)模式不能稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。2.4.3關(guān)系的規(guī)范化過(guò)程例如:職工情況表
職工號(hào)姓名工資基本工資職務(wù)工資工齡工資20011李嵐32901200143020012王曉江30001300124020013張華3800150016202.4.3關(guān)系的規(guī)范化過(guò)程可規(guī)范為:職工情況表職工號(hào)姓名基本工資職務(wù)工資工齡工資20011李嵐329080043020012王曉江300080034020013張華3800150016202.4.3關(guān)系的規(guī)范化過(guò)程2、第二范式定義:如果關(guān)系模式R是第一范式,且每個(gè)非主屬性都完全函數(shù)依賴(lài)于碼,則稱(chēng)R為滿(mǎn)足第二范式的模式,記為:R∈2NF。
在一個(gè)關(guān)系中,包含在任何候選碼中的各個(gè)屬性都稱(chēng)為主屬性;不包含在任何候選碼中的屬性稱(chēng)為非主屬性。從第二范式開(kāi)始,規(guī)范化時(shí)首先要確定關(guān)系中的最小函數(shù)依賴(lài)集。什么是最小函數(shù)依賴(lài)集F?2.4.3關(guān)系的規(guī)范化過(guò)程①F中任何一個(gè)函數(shù)依賴(lài)的右部?jī)H含有一個(gè)屬性(非主屬性)。②F中的所有函數(shù)依賴(lài)的左邊都沒(méi)有冗余屬性。③F中不存在冗余的函數(shù)依賴(lài)。例:學(xué)生關(guān)系S(學(xué)號(hào),姓名,性別,課程號(hào),成績(jī)),其中學(xué)號(hào)和課程號(hào)的組合為主碼,姓名、性別、成績(jī)?yōu)榉侵鲗傩浴jP(guān)系S中的最小函數(shù)依賴(lài)集為:學(xué)號(hào)→姓名,學(xué)號(hào)→性別,(學(xué)號(hào)、課程號(hào))→成績(jī)。2.4.3關(guān)系的規(guī)范化
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)位證代領(lǐng)委托書(shū)
- 2025高考日語(yǔ)復(fù)習(xí)必背重點(diǎn)句型歸納總結(jié)默寫(xiě)表
- 企業(yè)整體戰(zhàn)略的協(xié)調(diào)與執(zhí)行計(jì)劃
- 2025至2031年中國(guó)炒菜王調(diào)料行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 家長(zhǎng)參與美術(shù)教育活動(dòng)計(jì)劃
- 速度改變快慢的描述加速度教學(xué)設(shè)計(jì)
- 進(jìn)行性脊髓性肌萎縮癥的臨床護(hù)理
- 新產(chǎn)品上市計(jì)劃與策略
- 戰(zhàn)略執(zhí)行中的障礙與解決方案計(jì)劃
- 強(qiáng)化倉(cāng)庫(kù)跨部門(mén)溝通的必要性計(jì)劃
- 機(jī)場(chǎng)能源管理
- 高速公路路基及土石方工程施工方案與技術(shù)措施
- 多尺度圖像分析
- 技能人才評(píng)價(jià)新職業(yè)考評(píng)員培訓(xùn)在線考試(四川省)
- AQ 1083-2011 煤礦建設(shè)安全規(guī)范 (正式版)
- 河南省開(kāi)封市鐵路中學(xué)2023-2024學(xué)年八年級(jí)下學(xué)期6月期末歷史試題
- CJT165-2002 高密度聚乙烯纏繞結(jié)構(gòu)壁管材
- 駕駛員交通安全培訓(xùn)及考試試題
- 3貨物接取送達(dá)運(yùn)輸協(xié)議
- DZ∕T 0148-2014 水文水井地質(zhì)鉆探規(guī)程(正式版)
- 2024年浙江杭州市林水局所屬事業(yè)單位招聘擬聘人員招聘歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論