《數(shù)據(jù)庫原理及應用教程-MySQL8.0》課件 第2章 關系數(shù)據(jù)庫_第1頁
《數(shù)據(jù)庫原理及應用教程-MySQL8.0》課件 第2章 關系數(shù)據(jù)庫_第2頁
《數(shù)據(jù)庫原理及應用教程-MySQL8.0》課件 第2章 關系數(shù)據(jù)庫_第3頁
《數(shù)據(jù)庫原理及應用教程-MySQL8.0》課件 第2章 關系數(shù)據(jù)庫_第4頁
《數(shù)據(jù)庫原理及應用教程-MySQL8.0》課件 第2章 關系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理與應用教程-MySQL8.0第2章關系數(shù)據(jù)庫第2章關系數(shù)據(jù)庫關系數(shù)據(jù)庫系統(tǒng)就是支持關系模型的數(shù)據(jù)庫系統(tǒng)。關系數(shù)據(jù)模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。2.1關系數(shù)據(jù)結構關系模型的數(shù)據(jù)結構非常簡單,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示。在用戶看來,關系模型中數(shù)據(jù)的邏輯結構就是一張二維表。2.1.1關系的定義和性質關系就是一張二維表,但并不是任何二維表都叫關系,我們不能把日常生活中所用的任何表格都當成一個關系直接存放到數(shù)據(jù)庫里。那么什么樣的二維表才叫關系呢?

1、關系的數(shù)學定義笛卡兒積:設D1,D2,…,Dn為任意域,定義D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}

域:一組具有相同數(shù)據(jù)類型的值的集合。例如:有兩個域,D1=動物集合={貓,狗,豬},D2=食物集合={魚,骨頭,白菜},D1×D2={(貓,魚)(狗,魚)(豬,魚)(貓,骨頭)(狗,骨頭)(豬,骨頭)(貓,白菜)(狗,白菜)(豬,白菜)}2.1.1關系的定義和性質動物食物貓魚狗魚豬魚貓骨頭狗骨頭豬骨頭貓白菜狗白菜豬白菜D1×D2=動物食物表笛卡兒積推出關系表的定義關系:D1×D2×…×Dn中有關系的行形成的子集叫做D1×D2×…×Dn上的一個關系(Relation),用R(D1,D2,…,Dn)表示。(R表示關系名,n表示關系的目、度或元)動物食物表的子集——動物食物關系表動物食物貓魚狗骨頭豬白菜2.1.1關系的定義和性質2.關系的性質:關系數(shù)據(jù)庫要求關系必須是具有以下性質:(1)在同一個關系中,同一個列的數(shù)據(jù)必須是同一種數(shù)據(jù)類型。(2)在同一個關系中,不同的列的數(shù)據(jù)可以同一種數(shù)據(jù)類型,但各屬性名必須是互不相同。(3)在同一個關系中,任意兩個元組都不能完全相同。(4)在同一個關系中,列的次序無關緊要。(5)在同一個關系中,元組的位置無關緊要,即排行不分先后(6)關系中的每個屬性必須是單值,即不可再分,這就要求關系的結構不能嵌套。這是關系應滿足的最基本的條件。

2.1.1關系的定義和性質例如,有這樣一個學生表如下:復合表示例學號姓名性別系編號成績程序設計英語高數(shù)2022001張三男017787862022002李四女026989762022003劉明男037984822022004王曉女036690762.1.1關系的定義和性質2.1.1關系的定義和性質上述復合表格就不是關系,應對其進行結構上的修改,才能成為數(shù)據(jù)庫中的關系。(1)可以轉化成一個關系,即學生成績關系(學號,姓名,性別,系編號,程序設計,英語,高數(shù));(2)也可以轉化成兩個關系,即學生關系(學號,姓名,性別,系編號)和成績關系(學號,程序設計,英語,高數(shù))。2.1.2關系數(shù)據(jù)庫1.關系模式關系數(shù)據(jù)庫中,關系模式是型,關系是值;關系模式是對關系的描述。因此關系模式必須指出這個元組集合的結構,即它由哪些屬性構成,這些屬性來自哪些域。關系模式形式化表示:R(U,D,dom,F(xiàn))其中:R是關系名;U是組成該關系的屬性名集合;D是屬性所來自的域;dom是屬性向域的映象集合;F是屬性之間的數(shù)據(jù)依賴關系的集合。學號姓名性別年齡所在系2021000101王蕭男17計算機系2021000207李云虎男18物理系0202110302郭敏女18數(shù)學系2022010408高紅女20數(shù)學系2022020309王睿男19美術系2022020506路旭青女21美術系學生情況表(關系)

學生情況表的關系模式可以描述為:學生情況表(學號,姓名,性別,年齡,所在系)關系模式通常可以簡記為:

R(U)或R(A1,A2,…,An)。

其中:R是關系名,A1,A2,…,An為屬性名;域名及屬性向域的映象,常常直接說明為屬性的類型和長度。2.1.2關系數(shù)據(jù)庫關系是關系模式在某一時刻的狀態(tài)或內(nèi)容。關系模式是靜態(tài)的、穩(wěn)定的,而關系是動態(tài)的、隨時間不斷變化的,因為關系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。實際應用中,常常把關系模式和關系統(tǒng)稱為關系。2.關系數(shù)據(jù)庫關系數(shù)據(jù)庫就是采用關系模型的數(shù)據(jù)庫。關系數(shù)據(jù)庫的型即為其關系模式的集合,關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合。

2.1.2關系數(shù)據(jù)庫2.2關系的完整性數(shù)據(jù)完整性是指關系模型中數(shù)據(jù)的正確性與一致性。關系模型允許定義三類完整性約束*:實體完整性、參照完整性和用戶自定義的完整性約束。1、實體完整性規(guī)則*實體完整性規(guī)則要求關系中主碼的屬性具有唯一性且不能取空值*。例如學生表中的學號屬性既具有唯一性又不能為空。選修關系的主碼為學號和課程號既具有唯一性又不允許為空。2.2關系的完整性2、參照完整性規(guī)則*設F是基本關系R的一個或一組屬性,如果F與基本關系S的主碼K相對應,則稱F是基本關系R的外碼(Foreignkey),并稱基本關系R為參照關系,基本關系S為被參照關系或目標關系。如,班級關系(班級,班主任)中班級為主碼。學生關系(學號,姓名,性別,班級)中班級為外碼。參照完整性是用來定義外碼與主碼之間引用規(guī)則的。2.2關系的完整性參照完整性規(guī)則**:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼K相對應(基本關系R和S可能是相同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值*。2.2關系的完整性【例】學生實體和專業(yè)實體可以用下面的關系表示,其中主碼用下劃線標識。學生(學號,姓名,性別,年齡,系別號)系別(系別號,系名)“系別號”屬性是學生關系的外碼,是系別關系的主碼。系別關系是被參照關系,學生關系為參照關系。所以,學生關系中的每個元組的“系別號”屬性只能取下面兩類值:空值或系別關系中已經(jīng)存在的值。學生表:學號姓名性別年齡2003002張三男202003025李四女212005023劉明男182004033王曉女19課程號課程名學分A002數(shù)據(jù)庫4B025英語5A005網(wǎng)絡3B028VB3課程表:學號課程號成績2003002A002782003002B025882003002A005932003025A002902003025B025782003025A005772003025B028882004033A002872004033B025832005023A005792005023B028922005023B02589選修表:2.2關系的完整性分析參照完整性:2.2關系的完整性3、用戶定義的完整性規(guī)則用戶定義的完整性規(guī)則由用戶根據(jù)實際情況對數(shù)據(jù)庫中數(shù)據(jù)的內(nèi)容進行的規(guī)定,也稱為域完整性規(guī)則*。通過這些規(guī)則限制數(shù)據(jù)庫只接受符合完整性約束條件的數(shù)據(jù)值,不接受違反約束條件的數(shù)據(jù),從而保證數(shù)據(jù)庫的中數(shù)據(jù)的有效性和可靠性。例如,學生表中的性別數(shù)據(jù)只能是男和女,選課表中的成績數(shù)據(jù)為0到100之間,等等。3.3關系運算關系代數(shù)是以關系為運算對象的一組高級運算的集合;關系代數(shù)是一種抽象的查詢語言,是關系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達方式。(數(shù)學方式的查詢過程)

注意:關系代數(shù)的運算對象是關系,運算結果也是關系。2.3關系運算關系代數(shù)中的操作可以分為兩類:

傳統(tǒng)的集合操作:并、差、交、笛卡兒積。專門的關系操作*:投影、選擇、連接、除法等。在兩類集合運算中,除運算本身的運算符外(如并運算為∪),還將用到兩類輔助操作符:

(1)比較運算符:>、≥、<、≤、=、≠。

(2)邏輯運算符:∨(或)、∧(與)、┐(非)。2.3.1傳統(tǒng)的集合運算1、笛卡兒積*設關系R和S的元數(shù)(屬性個數(shù))分別為r和s,定義R和S的笛卡兒積是一個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自S的一個元組,記為R×S。若R有m個元組,S有n個元組,則R×S有m×n個元組。2.3.1傳統(tǒng)的集合運算已知關系R和關系S,如下圖:ABCa1b2c1a2b1c3a3b3c2

關系REFDe1f2d2e2f3d1e3f1d3關系S

2.3.1傳統(tǒng)的集合運算R×SABCEFDa1b2c1e1f2d2a1b2c1e2F3d1a1b2c2e3f1d3a2b1c3e1f2d2a2b1c3e2F3d1a2b1c3e3f1d3a3b3c2e1f2d2a3b3c2e2F3d1a3b3c2e3f1d32.3.1傳統(tǒng)的集合運算2、并(Union)

設關系R和S具有相同的關系模式,R和S是n元關系,R和S的并是由屬于R或屬于S的元組構成的集合,記為R∪S。形式定義如下:

R∪S={t|t∈R∨t∈S},其含義為:任取元組t,當且僅當t屬于R或t屬于S時,t屬于R∪S。R∪S是一個n元關系。2.3.1傳統(tǒng)的集合運算我們可以把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的并為?abc123789101112R∪SR

Sabc123456789abc123456789101112注意:并運算會取消某些元組(避免重復行)。2.3.1傳統(tǒng)的集合運算3、差(Difference)

關系R和S具有相同的關系模式,R和S是n元關系,R和S的差是由屬于R但不屬于S的元組構成的集合,記為R-S。形式定義如下:

R-S={t|t∈R∧t∈S}其含義為:當且僅當t屬于R并且不屬于S時,t屬于R-S。R-S也是一個n元關系。\2.3.1傳統(tǒng)的集合運算同樣把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的差為?

R-Sabc456abc123789101112R

Sabc1234567892.3.1傳統(tǒng)的集合運算4、交(Intersection)關系R和S具有相同的關系模式,R和S是n元關系,R和S的交是由屬于R且屬于S是元組構成的集合,記為R∩S。形式定義如下:

R∩S={t|t∈R∧t∈S}其含義為:任取元組t,當且僅當t既屬于R又屬于S時,t屬于R∩S。R∩S也是一個n元關系。2.3.1傳統(tǒng)的集合運算還是把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的交為?

R∩Sabc123789abc123789101112R

Sabc1234567892.3.2專門的關系運算專門的關系運算包括選擇、投影、連接、除等。1、選擇(Selection)選擇運算是在關系R中選擇滿足給定條件的諸元組,記作σF(R)={t|t∈R^F(t)='真'}2.3.2專門的關系運算設有一個學生-課程數(shù)據(jù)庫,包括學生關系student、課程關系course和成績表score。

學生情況表(student)學號(no)姓名(name)性別(sex)年齡(age)所在系(dep)2022001張超男18物理系2022002李嵐女17信息系2022003王芳女19數(shù)學系2022004劉娟女18信息系2022005趙強男19物理系2.3.2專門的關系運算

課程表(course)課程號(cno)課程名(cname)學分(credit)1數(shù)據(jù)庫42高等數(shù)學33信息系統(tǒng)24操作系統(tǒng)35數(shù)據(jù)結構56C程序設計32.3.2專門的關系運算

成績表(score)學號(no)課程號(cno)成績(grade)20220012782022001388202200158120220021902022002468202200347020220035572022003189202200529320220055792.3.2專門的關系運算例:查詢數(shù)學系學生的信息。σdep=‘數(shù)學系’

(student)或σ5=‘數(shù)學系’

(student)查詢數(shù)學系學生的信息,結果:學號(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學系2.3.2專門的關系運算例:查詢年齡大于17的女同學的信息。σ

age>17∧sex=’女’

(student)

σ4>17∧3=’女’(student)

查詢結果表學號(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學系2022004劉娟女18信息系2.3.2專門的關系運算2、投影(Projection)

關系R上的投影是從R中選擇出若干屬性列組成新的關系。記作πA(R)={t[A]|t∈R}其中,A為R中的屬性列。投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復行,應取消這些完全相同的行。2.3.2專門的關系運算例:查詢學生的學號和姓名。πno,name(student)或π1,2(student)結果表如表所示。查詢學生的學號和姓名學

號no姓

名name2022001張超2022002李嵐2022003

王芳2022004劉娟2022005趙強2.3.2專門的關系運算課程名(cname)課程號(cno)數(shù)據(jù)庫1高等數(shù)學2信息系統(tǒng)3操作系統(tǒng)4數(shù)據(jù)結構5C程序設計6例:查詢課程表中的課程名和課程號。πcname,cno(course)或π2,1(course)

查詢課程名和課程號2.3.2專門的關系運算3、連接(Join)(1)連接運算的含義:連接也稱θ連接,是從兩個關系的笛卡兒積中選取滿足某規(guī)定條件的全體元組,形成一個新的關系,記為:2.3.2專門的關系運算例題:已知關系R和關系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2

RS求:2.3.2專門的關系運算AR.BCEDS.Ba1b267e1b1a1b2610e3b3a2b1710e3b3a1b3910e3b3連接結果表2.3.2專門的關系運算(3)兩類常用連接運算①等值連接(equi-join)θ為“=”的連接運算稱為等值連接,它是從關系R與S的笛卡兒積中選取A、B屬性值相等的那些元組。等值連接為:A=BRS={trts|tr

R∧ts

S∧tr[A]=ts[B]}2.3.2專門的關系運算②自然連接(Naturaljoin)若A、B是相同的屬性組,就可以在結果中把重復的屬性去掉。這種去掉了重復屬性的等值連接稱為自然連接。自然連接可記作:RS={trts|tr

R∧ts

S∧tr[B]=ts[B]}2.3.2專門的關系運算例題:已知關系R和關系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2

RS2.3.2專門的關系運算求:

R.B=S.B2.3.2專門的關系運算R.C=S.E,等值連接結果表AR.BCEDS.Ba1b266e2b2a2b177e1b12.3.2專門的關系運算R.B=S.B等值連接結果自然連接結果表ABCEDa1b265e2a1b266e2a2b177e1a3b2125e2a3b2126e2a1b3910e3AR.BCEDS.Ba1b265e2b2a1b266e2b2a2b177e1b1a3b2125e2b2a3b2126e2b2a1b3910e3b32.3.2專門的關系運算根據(jù)學生-課程數(shù)據(jù)庫的三個表:求:

(1)student∞score(2)course∞score(3)student∞score∞course

2.3.2專門的關系運算4.關系代數(shù)操作表達式舉例*設教學數(shù)據(jù)庫中有三個關系,學生關系:S(SNO,SN,AGE,SEX)、學習關系:SC(SNO,CNO,SCORE)、課程關系:C(CNO,CN,TEACHER)(1)檢索學習課程號為C3的學生學號和成績∏SNO,SCORE(σCNO=’C3’(SC))(2)檢索學習課程號為C4的學生學號和姓名∏SNO,SN(σCNO=’C4’(S∞SC))2.3.2專門的關系運算(3)檢索學習課程名為MATHS的學生學號和姓名∏

SNO,SN(σCN=’MATHS’(S∞SC∞C))(4)檢索學習課程號為C1或C3的學生學號∏

SNO(σCNO=’C1’VCNO=’C3’(SC))(5)檢索不學習課程號為C2的學生的姓名和年齡∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC))實體的聯(lián)系有兩類,一類是實體與實體之間的聯(lián)系;另一類是實體內(nèi)部各屬性間的聯(lián)系。關系模式中各個屬性之間的相互關聯(lián),就是數(shù)據(jù)依賴,它是規(guī)范化理論中一個最重要最基本的概念,是數(shù)據(jù)庫模式設計的關鍵。本節(jié)重點介紹兩個問題:函數(shù)依賴:數(shù)據(jù)依賴中最重要的一種關系的規(guī)范化目的和過程2.4關系的規(guī)范化數(shù)據(jù)依賴共有三種:函數(shù)依賴(FunctionalDependency,簡稱FD)、多值依賴(MultivaluedDependency,簡稱MVD)和連接依賴(JoinDependency,簡稱JD),其中最重要的是函數(shù)依賴。1.函數(shù)依賴的定義所謂函數(shù)依賴是指在關系R中,X、Y為R的兩個屬性或屬性組,如果關系R存在:對于X的每一個具體值,Y都只有一個具體值與之對應,則稱屬性Y函數(shù)依賴于屬性X。記作X→Y。

2.4.1函數(shù)依賴函數(shù)依賴簡單表述:如果屬性X的值決定屬性Y的值,那么屬性Y函數(shù)依賴于屬性X?;蛘?,如果知道X的值,就可以獲得Y的值。所以X→Y可以叫做Y函數(shù)依賴于X,也可以叫做X函數(shù)決定Y,或X決定Y。2.4.1函數(shù)依賴例學生情況表學號姓名專業(yè)名性別出生日期總學分20211101王林計算機男2003-02-105020211102程明計算機男2003-02-015020211103王燕計算機女2004-10-065020211104韋嚴平網(wǎng)絡男2002-08-265020211106李方方網(wǎng)絡女2003-11-20502.4.1函數(shù)依賴學生情況表對應的關系模式可描述為:學生情況(學號,姓名,性別,出生日期,總學分)其中,學號為主鍵,則存在如下的函數(shù)依賴關系:學號→姓名;學號→專業(yè)名;學號→性別;學號→出生日期;學號→總學分2.4.1函數(shù)依賴2、幾種特定的函數(shù)依賴*(1)非平凡函數(shù)依賴和平凡函數(shù)依賴設關系模式R(U),X、Y?U;如果X→Y,且Y?X,則稱X→Y為平凡的函數(shù)依賴。如果X→Y,且Y不是X的子集,則稱X→Y為非平凡的函數(shù)依賴。例:在學生課程關系(學生號,課程號,成績)中,若存在函數(shù)依賴:(1)(學生號,課程號)→成績(非平凡)(2)(學生號,課程號)→課程號(平凡)2.4.1函數(shù)依賴(2)完全函數(shù)依賴和部分函數(shù)依賴**定義:設關系模式R(U),X,Y?U;如果X→Y,并且對于X的任何一個真子集Z,Z→Y都不成立,則稱Y完全函數(shù)依賴于X。若X→Y,但對于X的某一個真子集Z,有Z→Y成立,則稱Y部分函數(shù)依賴于X。2.4.1函數(shù)依賴例:在學生課程關系(學號,課程號,成績)中,主碼為(學號,課程號)。因為學號→成績不成立,課程號→成績也不成立,所以(學號,課程號)→成績?yōu)橥耆瘮?shù)依賴。又例:在選課關系(學號,課程號,姓名,成績)中,(學號,課程號)是主碼。由于:學號→姓名成立,因此:姓名部分函數(shù)依賴于(學號,課程號)。2.4.1函數(shù)依賴(3)傳遞函數(shù)依賴設關系模式R(U),X?U,Y?U,Z?U。如果X→Y,YX,且Y→Z成立,則稱X→Z為傳遞函數(shù)依賴。

例如:學生關系(學號,姓名,性別,年齡,所在系,系主任),其上的函數(shù)依賴集F={學號→姓名,學號→性別,學號→年齡,學號→所在系,所在系→系主任},則學號→系主任為傳遞函數(shù)依賴。2.4.1函數(shù)依賴3、碼的函數(shù)依賴表示函數(shù)依賴的概念給出關系模式中碼的更嚴格定義:候選碼:設K為關系模式R(U)中的屬性或屬性集合。若K→U,則K稱為R的一個候選碼。若關系模式R有多個候選碼,則選定其中一個作為主碼。2.4.1函數(shù)依賴設有一描述學校的數(shù)據(jù)庫:含有這樣一個關系模式:學生信息表(學號,姓名,年齡,系別,系主任,課程號,成績),(學號,課程號)為主鍵。其中,一個系有若干學生,一個學生只屬于一個系;一個系只有一名主任;一個學生可以選修多門課程,每門課程有若干學生選修;每個學生所學的每門課程都有一個成績。2.4.2關系的規(guī)范化目的2.4.2關系的規(guī)范化目的學號姓名年齡系別系主任課程號成績20221001趙紅20計算機張力C19020221001趙紅20計算機張力C28520222002王小明17數(shù)學王曉C55720222002王小明17數(shù)學王曉C68020222002王小明17數(shù)學王曉C77620222002王小明17數(shù)學王曉C47020223003吳林19信息趙鋼林19信息趙鋼C27020221004張濤21計算機張力C193關系模式學生信息表中存在如下問題*:①數(shù)據(jù)冗余(浪費大量的存儲空間)。例:每一個系主任的姓名重復出現(xiàn)很多次②更新異常(數(shù)據(jù)冗余,更新數(shù)據(jù)時,維護數(shù)據(jù)完整性代價大) 例:某系更換系主任后,系統(tǒng)必須修改與該系學生有關的每一個元組2.4.2關系的規(guī)范化目的③插入異常(該插的數(shù)據(jù)插不進去)例:如果一個系剛成立,尚無學生,我們就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。④刪除異常(不該刪除的數(shù)據(jù)不得不刪)例:如果某個系的學生全部畢業(yè)了,我們在刪除該系學生信息的同時,把這個系及其系主任的信息也刪掉了。2.4.2關系的規(guī)范化目的以上問題產(chǎn)生的原因:由存在于模式中的某些不合適的數(shù)據(jù)依賴引起的。解決方法:*通過分解關系模式來消除其中不合適的數(shù)據(jù)依賴。關系模式規(guī)范化的目的是解決關系模式中存在的數(shù)據(jù)冗余、插入和刪除異常以及更新異常等問題?;舅枷耄合龜?shù)據(jù)依賴中的不合適部分,即模式分解。2.4.2關系的規(guī)范化目的關系數(shù)據(jù)庫中的關系必須滿足一定的規(guī)范化要求,對于不同的規(guī)范化程度可用范式來衡量。范式(NormalForm)是符合某一種級別的關系模式的集合,是衡量關系模式規(guī)范化程度的標準,達到的關系才是規(guī)范化的。目前主要有6種范式:第一、第二、第三、BC范式、第四和第五范式。2.4.2關系的規(guī)范化目的滿足最低要求的叫第一范式,簡稱為1NF。在第一范式基礎上進一步滿足一些要求的為第二范式,簡稱為2NF。其余以此類推。范式之間存在聯(lián)系:1NF?2NF?3NF?BCNF?4NF?5NF。通常把某一關系模式R為第n范式簡記為R∈nNF。在這些范式中,最重要的是3NF和BCNF,它們是進行規(guī)范化的主要目標。2.4.2關系的規(guī)范化目的一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式的集合,這個過程稱為規(guī)范化。

通常實際應用中,規(guī)范化到3NF就可以了。2.4.3關系的規(guī)范化過程1、第一范式(1NF)定義:設R是一個關系模式。如果R的每個屬性的值域都是不可分的簡單數(shù)據(jù)項(原子)的集合,則稱這個關系模式屬于第一范式,簡記作R∈1NF。簡單表述:如果關系模式R的每一個屬性都是不可分解的,則R∈1NF。1NF是規(guī)范化最低的范式,在任何一個關系數(shù)據(jù)庫系統(tǒng)中,關系至少應該是第一范式。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關系數(shù)據(jù)庫。2.4.3關系的規(guī)范化過程例如:職工情況表

職工號姓名工資基本工資職務工資工齡工資20011李嵐32901200143020012王曉江30001300124020013張華3800150016202.4.3關系的規(guī)范化過程可規(guī)范為:職工情況表職工號姓名基本工資職務工資工齡工資20011李嵐329080043020012王曉江300080034020013張華3800150016202.4.3關系的規(guī)范化過程2、第二范式定義:如果關系模式R是第一范式,且每個非主屬性都完全函數(shù)依賴于碼,則稱R為滿足第二范式的模式,記為:R∈2NF。

在一個關系中,包含在任何候選碼中的各個屬性都稱為主屬性;不包含在任何候選碼中的屬性稱為非主屬性。從第二范式開始,規(guī)范化時首先要確定關系中的最小函數(shù)依賴集。什么是最小函數(shù)依賴集F?2.4.3關系的規(guī)范化過程①F中任何一個函數(shù)依賴的右部僅含有一個屬性(非主屬性)。②F中的所有函數(shù)依賴的左邊都沒有冗余屬性。③F中不存在冗余的函數(shù)依賴。例:學生關系S(學號,姓名,性別,課程號,成績),其中學號和課程號的組合為主碼,姓名、性別、成績?yōu)榉侵鲗傩?。關系S中的最小函數(shù)依賴集為:學號→姓名,學號→性別,(學號、課程號)→成績。2.4.3關系的規(guī)范化

溫馨提示

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

評論

0/150

提交評論