




已閱讀5頁,還剩154頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
,第4章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì),第六章 關(guān)系數(shù)據(jù)理論,4.1 問題的提出 4.2 規(guī)范化 4.3 數(shù)據(jù)依賴的公理系統(tǒng) *4.4 模式的分解 4.5 小結(jié),一、概念回顧,關(guān)系 關(guān)系模式 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫的模式,關(guān)系模式的形式化定義,關(guān)系模式由五部分組成,即它是一個(gè)五元組: r(u, d, dom, f) r: 關(guān)系名 u: 組成該關(guān)系的屬性名集合 d: 屬性組u中屬性所來自的域 dom: 屬性向域的映象集合 f: 屬性間數(shù)據(jù)的依賴關(guān)系集合,四、關(guān)系模式的簡化表示,關(guān)系模式r(u, d, dom, f) 簡化為一個(gè)三元組: r(u, f) 當(dāng)且僅當(dāng)u上的一個(gè)關(guān)系r滿足f時(shí),r稱為關(guān)系模式 r(u, f)的一個(gè)關(guān)系,4.1 問題的提出,關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì) 針對(duì)具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式 數(shù)據(jù)庫邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論,例1建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫: 學(xué)生的學(xué)號(hào)(sno)、所在系(sdept) 系主任姓名(mname)、課程名(cname) 成績(grade) 單一的關(guān)系模式 : student u sno, sdept, mname, cname, grade ,u sno, sdept, mname, cname, grade u sno, sdept, mname, cname, grade ,屬性組u上的一組函數(shù)依賴f: f sno sdept, sdept mname, (sno, cname) grade ,關(guān)系模式中存在的問題, 數(shù)據(jù)冗余太大 浪費(fèi)大量的存儲(chǔ)空間 例:每一個(gè)系主任信息重復(fù)出現(xiàn) 更新異常 數(shù)據(jù)冗余 ,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。 例:系主任信息修改,關(guān)系模式中存在的問題, 插入異常 該插的數(shù)據(jù)插不進(jìn)去 例,插入一個(gè)新系信息。 刪除異常 不該刪除的數(shù)據(jù)不得不刪 例,某系學(xué)生全部畢業(yè),關(guān)系模式student中存在的問題,1. 數(shù)據(jù)冗余太大 2. 更新異常(update anomalies) 3. 插入異常(insertion anomalies) 4. 刪除異常(deletion anomalies),數(shù)據(jù)依賴對(duì)關(guān)系模式的影響(續(xù)),結(jié)論: student關(guān)系模式不是一個(gè)好的模式。 “好”的模式: 不會(huì)發(fā)生插入異常、刪除異常、更新異常, 數(shù)據(jù)冗余應(yīng)盡可能少 原因:由存在于模式中的某些數(shù)據(jù)依賴引起的 解決方法:通過分解關(guān)系模式來消除其中不合適 的數(shù)據(jù)依賴,什么是數(shù)據(jù)依賴(續(xù)),數(shù)據(jù)依賴 一個(gè)關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系 現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象 數(shù)據(jù)內(nèi)在的性質(zhì) 語義的體現(xiàn),什么是數(shù)據(jù)依賴(續(xù)),數(shù)據(jù)依賴的類型 函數(shù)依賴(functional dependency,簡記為fd) 多值依賴(multivalued dependency,簡記為mvd) 其他,分解關(guān)系模式,把這個(gè)單一模式分成3個(gè)關(guān)系模式: s(sno,sdept,sno sdept); sc(sno,cno,grade,(sno,cno) grade); dept(sdept,mname,sdept mname),第六章 關(guān)系數(shù)據(jù)理論,4.1 問題的提出 4.2 規(guī)范化 4.3 數(shù)據(jù)依賴的公理系統(tǒng) *4.4 模式的分解 4.5 小結(jié),4.2 規(guī)范化,規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.1 函數(shù)依賴,函數(shù)依賴 平凡函數(shù)依賴與非平凡函數(shù)依賴 完全函數(shù)依賴與部分函數(shù)依賴 傳遞函數(shù)依賴,一、函數(shù)依賴,定義4.1 設(shè)r(u)是一個(gè)屬性集u上的關(guān)系模式,x和y是u的子集。 若對(duì)于r(u)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在x上的屬性值相等, 而在y上的屬性值不等, 則稱 “x函數(shù)確定y” 或 “y函數(shù)依賴于x”,記作xy。,說明,1. 所有關(guān)系實(shí)例均要滿足 2. 語義范疇的概念 3. 數(shù)據(jù)庫設(shè)計(jì)者可以對(duì)現(xiàn)實(shí)世界作強(qiáng)制的規(guī)定,二、平凡函數(shù)依賴與非平凡函數(shù)依賴,在關(guān)系模式r(u)中,對(duì)于u的子集x和y, 如果xy,但y x,則稱xy是非平凡的函數(shù)依賴 若xy,但y x, 則稱xy是平凡的函數(shù)依賴 例:在關(guān)系sc(sno, cno, grade)中, 非平凡函數(shù)依賴: (sno, cno) grade 平凡函數(shù)依賴: (sno, cno) sno (sno, cno) cno,平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù)),若xy,則x稱為這個(gè)函數(shù)依賴的決定屬性組,也稱為決定因素(determinant)。 若xy,yx,則記作xy。 若y不函數(shù)依賴于x,則記作xy。,三、完全函數(shù)依賴與部分函數(shù)依賴,定義4.2 在r(u)中,如果xy,并且對(duì)于x的任何一個(gè)真子集x,都有x y, 則稱y對(duì)x完全函數(shù)依賴,記作x f y。 若xy,但y不完全函數(shù)依賴于x,則稱y對(duì)x部分函數(shù)依賴,記作x p y。,完全函數(shù)依賴與部分函數(shù)依賴(續(xù)),例1 中(sno,cno)grade是完全函數(shù)依賴, (sno,cno)sdept是部分函數(shù)依賴 因?yàn)閟no sdept成立,且sno是(sno,cno)的真子集,f,p,復(fù) 習(xí),什么是函數(shù)依賴、非平凡函數(shù)依賴、完全函數(shù)依賴 什么是碼? 不好的關(guān)系模式會(huì)存在哪些問題?,四、傳遞函數(shù)依賴,定義4.3 在r(u)中,如果xy,(y x) ,yx yz, 則稱z對(duì)x傳遞函數(shù)依賴。 記為:x z 注: 如果yx, 即xy,則z直接依賴于x。 例: 在關(guān)系std(sno, sdept, mname)中,有: sno sdept,sdept mname mname傳遞函數(shù)依賴于sno,傳遞,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.2 碼,定義4.4 設(shè)k為r中的屬性或?qū)傩越M合。若k u, 則k稱為r的侯選碼(candidate key)。 若候選碼多于一個(gè),則選定其中的一個(gè)做為主碼(primary key)。,f,碼(續(xù)),主屬性與非主屬性 包含在任何一個(gè)候選碼中的屬性 ,稱為主屬性(prime attribute) 不包含在任何碼中的屬性稱為非主屬性(nonprime attribute)或非碼屬性(non-key attribute) 全碼 整個(gè)屬性組是碼,稱為全碼(all-key),碼(續(xù)),例3 關(guān)系模式r(p,w,a) p:演奏者 w:作品 a:聽眾 一個(gè)演奏者可以演奏多個(gè)作品 某一作品可被多個(gè)演奏者演奏 聽眾可以欣賞不同演奏者的不同作品 碼為(p,w,a),即all-key,外部碼,定義4.5 關(guān)系模式 r 中屬性或?qū)傩越Mx 并非 r的碼,但 x 是另一個(gè)關(guān)系模式的碼,則稱 x 是r 的外部碼(foreign key)也稱外碼 如在sc(sno,cno,grade)中, sno不是碼,但sno是關(guān)系模式s(sno,sdept, sage)的碼, 則sno是關(guān)系模式sc的外部碼 主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手段,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.3 范式,范式是符合某一種級(jí)別的關(guān)系模式的集合 范式的種類: 第一范式(1nf) 第二范式(2nf) 第三范式(3nf) bc范式(bcnf) 第四范式(4nf) 第五范式(5nf),4.2.3 范式,各種范式之間存在聯(lián)系: 某一關(guān)系模式r為第n范式,可簡記為rnnf。 一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過程就叫規(guī)范化,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.4 2nf,1nf的定義 如果一個(gè)關(guān)系模式r的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則r1nf 第一范式是對(duì)關(guān)系模式的最起碼的要求。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫 但是滿足第一范式的關(guān)系模式并不一定是一個(gè)好的關(guān)系模式,2nf(續(xù)),2nf的定義 定義4.6 若r1nf,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則r2nf。,2nf(續(xù)),例4 關(guān)系模式 s-l-c(sno, sdept, sloc, cno, grade) sloc為學(xué)生住處,假設(shè)每個(gè)系的學(xué)生住在同一個(gè)地方 函數(shù)依賴包括: (sno, cno) f grade sno sdept (sno, cno) p sdept sno sloc (sno, cno) p sloc sdept sloc,2nf(續(xù)),s-l-c的碼為(sno, cno) s-l-c滿足第一范式。 非主屬性sdept和sloc部分函數(shù)依賴于碼(sno, cno),s-l-c,s-l-c不是一個(gè)好的關(guān)系模式(續(xù)),(1) 插入異常 (2) 刪除異常 (3) 數(shù)據(jù)冗余度大 (4) 修改復(fù)雜,s-l-c不是一個(gè)好的關(guān)系模式(續(xù)),原因 sdept、 sloc部分函數(shù)依賴于碼。 解決方法 s-l-c分解為兩個(gè)關(guān)系模式,以消除這些部分函數(shù)依賴 sc(sno, cno, grade) 2nf s-l(sno, sdept, sloc) 2nf,2nf(續(xù)),函數(shù)依賴圖:,關(guān)系模式sc的碼為(sno,cno) 關(guān)系模式s-l的碼為sno 這樣非主屬性對(duì)碼都是完全函數(shù)依賴,2nf(續(xù)),采用投影分解法將一個(gè)1nf的關(guān)系分解為多個(gè) 2nf的關(guān)系,可以在一定程度上減輕原1nf關(guān)系中 存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改 復(fù)雜等問題。 將一個(gè)1nf關(guān)系分解為多個(gè)2nf的關(guān)系,并不能 完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.5 3nf,3nf的定義 定義4.7 關(guān)系模式r 中若不存在這樣的碼x,屬性組y及非主屬性z(z y), 使得xy,yz 成立,y x,則稱r 3nf。 若r3nf,則每一個(gè)非主屬性既不部分依賴于碼也不傳遞依賴于碼。,3nf(續(xù)),例:2nf關(guān)系模式s-l(sno, sdept, sloc)中 函數(shù)依賴: snosdept sdept sno sdeptsloc 可得: snosloc,,傳遞,所以s-l 3nf,3nf(續(xù)),函數(shù)依賴圖:,3nf(續(xù)),解決方法 采用投影分解法,把s-l分解為兩個(gè)關(guān)系模式,以消除傳遞函數(shù)依賴: s-d(sno, sdept) d-l(sdept,sloc) s-d的碼為sno, d-l的碼為sdept。 分解后的關(guān)系模式s-d與d-l中不再存在傳遞依賴,3nf(續(xù)),s-d的碼為sno, d-l的碼為sdept,s-l(sno, sdept, sloc) 2nf s-l(sno, sdept, sloc) 3nf s-d(sno,sdept) 3nf d-l(sdept, sloc) 3nf,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.6 bc范式(bcnf),定義4.8 關(guān)系模式r1nf,若xy且y x時(shí)x必含有碼,則rbcnf。 等價(jià)于:每一個(gè)決定屬性因素都包含碼,bcnf(續(xù)),若rbcnf 所有非主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴 所有的主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性 r bcnf r 3nf,bcnf(續(xù)),例5 關(guān)系模式c(cno,cname,pcno) c3nf cbcnf 例6 關(guān)系模式s(sno,sname,sdept,sage) 假定s有兩個(gè)碼sno,sname s3nf。 s bcnf,bcnf(續(xù)),例7關(guān)系模式sjp(s, j , p) 學(xué)生 課程 名次 函數(shù)依賴:(s,j)p;(j,p)s (s,j)與(j,p)都可以作為候選碼 sjp3nf sjpbcnf,bcnf(續(xù)),例8在關(guān)系模式stj(s,t,j)中,s表示學(xué)生,t表示教師,j表示課程。 函數(shù)依賴: (s,j)t,(s,t)j,tj (s,j)和(s,t)都是候選碼,bcnf(續(xù)),j,bcnf(續(xù)),stj3nf 沒有任何非主屬性對(duì)碼傳遞依賴或部分依賴 stjbcnf t是決定因素,t不包含碼,bcnf(續(xù)),解決方法:將stj分解為二個(gè)關(guān)系模式: st(s,t) bcnf, tj(t,j) bcnf 沒有任何屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴,3nf與bcnf的關(guān)系,r bcnf r 3nf 如果r3nf,且r只有一個(gè)候選碼 r bcnf r 3nf,判斷下列關(guān)系模式是否滿足bc范式,1、r(x,y,z)f= y-z,y-x,x-yz 2、 管理(倉庫號(hào),設(shè) 備號(hào),職工號(hào)) (語義:每個(gè)倉庫有多個(gè)職工,一名職工只能在一個(gè)倉庫工作,每個(gè)倉庫一種設(shè)備僅有一名職工保管,每名職工可保管多種設(shè)備),職工號(hào) 倉庫號(hào) (倉庫號(hào),設(shè)備號(hào)) 職工號(hào),4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.7 多值依賴,例9 學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。每個(gè)教員可以講授多門課程,每種參考書可以供多門課程使用。,多值依賴(續(xù)),非規(guī)范化關(guān)系,多值依賴(續(xù)),用二維表表示teaching,多值依賴(續(xù)),teachingbcnf teaching具有唯一候選碼(c,t,b), 即全碼,多值依賴(續(xù)),teaching模式中存在的問題 (1)數(shù)據(jù)冗余度大 (2)插入操作復(fù)雜 (3)刪除操作復(fù)雜 (4)修改操作復(fù)雜,存在 多值依賴,多值依賴(續(xù)),定義4.9 設(shè)r(u)是一個(gè)屬性集u上的一個(gè)關(guān)系模式, x、 y和z是u的子集,并且zuxy,當(dāng)且僅當(dāng) 對(duì)r的任一關(guān)系r,r在(x,z)上的每個(gè)值對(duì)應(yīng) 一組y的值,這組值僅僅決定于x值而與z值無關(guān) 則多值依賴 xy成立 例 teaching(c, t, b),多值依賴(續(xù)),多值依賴的另一個(gè)等價(jià)的形式化的定義: 在r(u)的任一關(guān)系r中,如果存在元組t,s 使得tx=sx,那么就必然存在元組 w,v r,(w,v可以與s,t相同),使得wx=vx=tx,而wy=ty,wz=sz,vy=sy,vz=tz(即交換s,t元組的y值所得的兩個(gè)新元組必在r中),則y多值依賴于x,記為xy。 這里,x,y是u的子集,z=u-x-y。,多值依賴(續(xù)),平凡多值依賴和非平凡的多值依賴 若xy,而z,則稱 xy為平凡的多值依賴 否則稱xy為非平凡的多值依賴,多值依賴(續(xù)),例10關(guān)系模式wsc(w,s,c) w表示倉庫,s表示保管員,c表示商品 假設(shè)每個(gè)倉庫有若干個(gè)保管員,有若干種商品 每個(gè)保管員保管所在的倉庫的所有商品 每種商品被所有保管員保管,多值依賴(續(xù)),ws且wc,多值依賴(續(xù)),ws且wc,多值依賴的性質(zhì),(1)多值依賴具有對(duì)稱性 若xy,則xz,其中zuxy (2)多值依賴具有傳遞性 若xy,yz, 則xz y (3)函數(shù)依賴是多值依賴的特殊情況。 若xy,則xy。 (4)若xy,xz,則xy z。 (5)若xy,xz,則xyz。 (6)若xy,xz,則xy-z,xz -y。,多值依賴與函數(shù)依賴的區(qū)別,(1) 多值依賴的有效性與屬性集的范圍有關(guān) (2) 若函數(shù)依賴xy在r(u)上成立,則對(duì)于任何y y均有xy 成立 多值依賴xy若在r(u)上成立,不能斷言對(duì)于任何y y有xy 成立,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.8 4nf,定義4.10 關(guān)系模式r1nf,如果對(duì)于r的每個(gè)非平凡多值依賴xy(y x),x都含有碼,則r4nf。 如果r 4nf, 則r bcnf,4nf(續(xù)),例: teaching(c,t,b) 4nf 存在非平凡的多值依賴ct,且c不是碼用投影分解法把teaching分解為如下兩個(gè)關(guān)系模式: ct(c, t) 4nf cb(c, b) 4nf ct, cb是平凡多值依賴,4.2 規(guī)范化,4.2.1 函數(shù)依賴 4.2.2 碼 4.2.3 范式 4.2.4 2nf 4.2.5 3nf 4.2.6 bcnf 4.2.7 多值依賴 4.2.8 4nf 4.2.9 規(guī)范化小結(jié),4.2.9 規(guī)范化小結(jié),關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計(jì)的工具 目的:盡量消除插入、刪除異常,修改復(fù)雜,數(shù)據(jù)冗余 基本思想:逐步消除數(shù)據(jù)依賴中不合適的部分 實(shí)質(zhì):概念的單一化,規(guī)范化小結(jié)(續(xù)),關(guān)系模式規(guī)范化的基本步驟 1nf 消除非主屬性對(duì)碼的部分函數(shù)依賴 消除決定屬性 2nf 集非碼的非平 消除非主屬性對(duì)碼的傳遞函數(shù)依賴 凡函數(shù)依賴 3nf 消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴 - bcnf 消除非平凡且非函數(shù)依賴的多值依賴 4nf,規(guī)范化小結(jié)(續(xù)),不能說規(guī)范化程度越高的關(guān)系模式就越好 在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對(duì)現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式 上面的規(guī)范化步驟可以在其中任何一步終止,第六章 關(guān)系數(shù)據(jù)理論,4.1 問題的提出 4.2 規(guī)范化 4.3 數(shù)據(jù)依賴的公理系統(tǒng) *4.4 模式的分解 4.5 小結(jié),4.3 數(shù)據(jù)依賴的公理系統(tǒng),邏輯蘊(yùn)含 定義4.11 對(duì)于滿足一組函數(shù)依賴 f 的關(guān)系模式r ,其任何一個(gè)關(guān)系r,若函數(shù)依賴xy都成立, 則稱f邏輯蘊(yùn)含x y,例如,關(guān)系模式student(sno,sname, sage,sd,sdname) 其屬性組上的函數(shù)依賴集為 fsnosname,snosage,snosd,sdsdname, snosdname就是f所邏輯蘊(yùn)含的一個(gè)函數(shù)依賴。,函數(shù)依賴的邏輯蘊(yùn)涵,1. armstrong公理系統(tǒng),關(guān)系模式r 來說有以下的推理規(guī)則: a1.自反律(reflexivity):若y x u,則x y為f所蘊(yùn)含。 a2.增廣律(augmentation):若xy為f所蘊(yùn)含,且z u,則xzyz為f所蘊(yùn)含。 a3.傳遞律(transitivity):若xy及yz為f所蘊(yùn)含,則xz為f所蘊(yùn)含。,定理 4.1 armstrong推理規(guī)則是正確的,(l)自反律: 若y x u,則x y為f所蘊(yùn)含 證: 設(shè)y x u 對(duì)r 的任一關(guān)系r中的任意兩個(gè)元組t,s: 若tx=sx,由于y x,有ty=sy, 所以xy成立,自反律得證,定理 4.l armstrong推理規(guī)則是正確的(續(xù)),(2)增廣律: 若xy為f所蘊(yùn)含,且z u,則xzyz 為f所蘊(yùn)含。 證:設(shè)xy為f所蘊(yùn)含,且z u。 設(shè)r 的任一關(guān)系r中任意的兩個(gè)元組t,s: 若txz=sxz,則有tx=sx和tz=sz; 由xy,于是有ty=sy,所以tyz=syz,所以 xzyz為f所蘊(yùn)含,增廣律得證。,2. 導(dǎo)出規(guī)則,1.根據(jù)a1,a2,a3這三條推理規(guī)則可以得到下面三條推理規(guī)則: 合并規(guī)則:由xy,xz,有xyz。 (a2, a3) 偽傳遞規(guī)則:由xy,wyz,有xwz。 (a2, a3) 分解規(guī)則:由xy及 zy,有xz。 (a1, a3),例:設(shè)有關(guān)系模式r(a,b,c,d,e)及其上的函數(shù)依賴集f=abcd,ab,de,求證f必蘊(yùn)涵ae。,證明: ab (給定條件) aab (a2增廣律) abcd (給定條件) acd (a3傳遞律) ac,ad (分解規(guī)則) de (給定條件) ae (a3傳遞律) 證畢。,舉例,【例】 對(duì)于關(guān)系模式csz(city,st, zip),其屬性組上的函數(shù)依賴集為 f (city,st)zip,zipcity ,利用 armstrong公理系統(tǒng)的推理規(guī)則,證明 (st,zip)(city,st,zip)。,舉例,證明:根據(jù)題意不難看出只要證明(st,zip)是一個(gè)候選碼即可,證明步驟如下: 因?yàn)閦ipcity (f中已給出) 所以(st,zip)(city,st) (利用增廣率,即在函數(shù)依賴的兩端加st) (st,zip)(city,st,zip) (用增廣率,加zip),armstrong公理系統(tǒng),armstrong公理系統(tǒng)是有效的、完備的 有效性:由f 出發(fā)根據(jù)armstrong公理推導(dǎo)出來的每一個(gè)函數(shù)依賴一定在f+中; 完備性:f+中的每一個(gè)函數(shù)依賴,必定可以由f出發(fā)根據(jù)armstrong公理推導(dǎo)出來,3. 函數(shù)依賴閉包,定義4.l2 在關(guān)系模式r中為f所邏輯蘊(yùn)含的函數(shù)依賴的全體叫作 f的閉包(closure),記為f +。 定義4.13 設(shè)f為屬性集u上的一組函數(shù)依賴,x u, xf+ = a|xa能由f 根據(jù)armstrong公理導(dǎo)出,xf+稱為屬性集x關(guān)于函數(shù)依賴集f 的閉包,例:設(shè)關(guān)系模式r(a,b,c)的函數(shù)依賴集為f=ab,bc,分別求a、b、c的閉包。,解:若xa, ab,bc (給定條件) ac (a2傳遞律) aa (a1自反律) =a,b,c (據(jù)定義),若x=b bb (a1自反律) bc (給定條件) =b,c (據(jù)定義),若x=c cc (自反律) =c (據(jù)定義),例:設(shè)關(guān)系模式r(a,b,c)的函數(shù)依賴集為f=ab,bc,分別求a、b、c的閉包。,舉例,【例】已知關(guān)系模式r(u,f),u=a,b,c,d,e,f=ab,dc,bce,acb,求 、 。,解: =abcde =abe,f的閉包,f=xy, yz f+= x, y, z, xy, xz, yz, xyz, xx, yy, zz, xyx, xzx, yzy, xyzx, xy, y z, xyy, xzy, yzz, xyzy, xz, yyz, xyz, xzz, yzyz,xyzz, xxy, xyxy,xzxy, xyzxy, xxz, xyyz,xzxz, xyzyz, xyz, xyxz,xzxy, xyzxz, xzyz, xyxyz,xzxyz, xyzxyz f=xa1, , xan的閉包f+計(jì)算是一個(gè)np完全問題,關(guān)于閉包的引理,引理4.2 設(shè)f為屬性集u上的一組函數(shù)依賴,x,y u,xy能由f 根據(jù)armstrong公理導(dǎo)出的充分必要條件是y xf+ 用途 將判定xy是否能由f根據(jù)armstrong公理導(dǎo)出的問題,轉(zhuǎn)化為求出xf+ 、判定y是否為xf+的子集的問題,5. 函數(shù)依賴集等價(jià),定義4.14 如果g +=f +,就說函數(shù)依賴集f覆蓋g(f是g的覆蓋,或g是f的覆蓋),或f與g等價(jià)。 引理4.3 f + = g + 的充分必要條件是 f g + ,和g f +,判斷兩個(gè)函數(shù)依賴集等價(jià)的可行算法,定理4.3 每個(gè)函數(shù)依賴集f均等價(jià)于一個(gè)極小函數(shù)依賴集fm。,4. 最小依賴集,定義4.15 如果函數(shù)依賴集f滿足下列條件,則稱f為一個(gè)極小函數(shù)依賴集。亦稱為最小依賴集或最小覆蓋。 (1) f中任一函數(shù)依賴的右部僅含有一個(gè)屬性。 (2) f中不存在這樣的函數(shù)依賴xa,使得f與f- xa等價(jià)。 (3) f中不存在這樣的函數(shù)依賴xa, x有真子集 z使得f-xaza與f等價(jià)。,算法:求函數(shù)依賴f的最小依賴集f,最小依賴集,例2 關(guān)系模式s,其中: u= sno,sdept,mname,cno,grade , f= snosdept,sdeptmname,(sno, cno)grade 設(shè)f=snosdept,snomname,sdeptmname, (sno,cno)grade,(sno,sdept)sdept f是最小覆蓋,而f不是。 因?yàn)椋篺 - snomname與f 等價(jià) f - (sno,sdept)sdept也與f 等價(jià),極小化處理= fmin=求最小的函數(shù)依賴集,例:設(shè)f是關(guān)系模式r(abc)的fd集,f=abc,bc,ab,abc ,試求fmin。,f=abc,bc,ab,abc , 先把f中的fd寫成右邊是單屬性形式: f=ab,ac,bc,ab,abc 刪去重復(fù)的fd ab,得f=ab,ac,bc,abc f中ac可從ab和bc推出,因此ac是冗余的,可刪去。得f=ab,bc,abc f中abc可從ab和bc推出,因此abc也可刪去。最后得f=ab,bc,即所求的fmin。,極小化過程(續(xù)),例3 f = ab,ba,bc,ac,ca fm1= ab,bc,ca fm2= ab,ba,ac,ca fm1、fm2都是f的最小依賴集: f的最小依賴集fm不唯一 極小化過程也是檢驗(yàn)f是否為極小依賴集的一個(gè)算法,求候選碼的方法,將屬性分為四類 l:僅出現(xiàn)在函數(shù)依賴的左邊 r:僅出現(xiàn)在函數(shù)依賴的右邊 n:兩邊均未出現(xiàn) lr:左右均出現(xiàn),求候選碼的方法,1、令x代表l、n類,y代表lr類 2、求x的閉包,若x的閉包含r的全部屬性,則x為r的唯一候選碼,轉(zhuǎn)5,否則轉(zhuǎn)3 3、在y中取屬性a,求(xa)的閉包,若它包含r的全部屬性,則轉(zhuǎn)4,否則換一個(gè)屬性反復(fù)進(jìn)行這一過程,直到測(cè)完y中的屬性 4、如已找到所有候選碼,則轉(zhuǎn)5,否則在y中依次取2,3個(gè)屬性,直到試完y中所有組合 5、結(jié)束輸出結(jié)果,【例】設(shè)關(guān)系模式r(u,f),其中u=a,b,c,d,f=ac, cb, adb。求r的候選碼。,求候選碼的方法,解:(1)檢查 f發(fā)現(xiàn),a,d只出現(xiàn)在函數(shù)依賴的左部,所以為l類屬性,x=ad,y=c (2)根據(jù)求屬性閉包的算法,f中ac,adb可以求得 =abcd=u,故ad為r唯一的候選碼。,f=ac, cb, adb,例題,設(shè)有關(guān)系模式r(a,b,c,d,e),其上的函數(shù)依賴集: f=abc,cde,bd,ea 計(jì)算b+。 求出r的所有候選關(guān)鍵字。, b+=bd。 r的候選關(guān)鍵字只可能由f中各個(gè)函數(shù)依賴的lr屬性組成,即a,b,c,d,e 計(jì)算可知:a+=abcde,即au,a是一個(gè)候選關(guān)鍵字。 b+=bd ,c+=c, d+=d, b、c、d不是候選碼 e+=abcde,即eu,e是一個(gè)候選碼。,f=abc,cde,bd,ea,計(jì)算可知: (bc)+=abcde,即cdu (cd)+=abcde,即cdu, (bd)+=bd cd,bc都是候選關(guān)鍵字。 r的所有候選關(guān)鍵字是a,bc,cd,e。,f=abc,cde,bd,ea,【例】設(shè)關(guān)系模式r(u,f),其中u=h,i,j,k,l,m,f=hi,ki,lmk,ik,khm。求r的候選碼。,求候選碼的方法,解:(1)檢查 f發(fā)現(xiàn), h,l只出現(xiàn)在函數(shù)依賴的左部,所以為l類屬性, j為n類的屬性。 (2)根據(jù)求屬性閉包的算法,f中hi,ik, khm可以求得 =hijklm=u,故hij為r唯一的候選碼。,f=hi,ki,lmk,ik,khm,第六章 關(guān)系數(shù)據(jù)理論,4.1 問題的提出 4.2 規(guī)范化 4.3 數(shù)據(jù)依賴的公理系統(tǒng) *4.4 模式的分解 4.5 小結(jié),4.4 模式的分解,把低一級(jí)的關(guān)系模式分解為若干個(gè)高一級(jí)的關(guān)系模式的方法不是唯一的 只有能夠保證分解后的關(guān)系模式與原關(guān)系模式等價(jià),分解方法才有意義,關(guān)系模式分解的標(biāo)準(zhǔn),三種模式分解等價(jià)的定義: 分解具有無損連接性 分解要保持函數(shù)依賴 分解既要保持函數(shù)依賴,又要具有無 損連接性,模式的分解(續(xù)),如果一個(gè)分解具有無損連接性,則它能夠保證不丟失信息 如果一個(gè)分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況 分解具有無損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無損連接性的分解不一定能夠保持函數(shù)依賴;同樣,保持函數(shù)依賴的分解也不一定具有無損連接性。,定理4.5:關(guān)系模式r(u,f)的一個(gè)分解,= r1 (u1,f1), r2 (u2,f2)具有無損連接的充分必要的條件是: u1u2u1-u2 f+ 或u1u2u2-u1 f+,保持無損連接的分解,【例】對(duì)給定的關(guān)系模式r(u,f),u=a,b,c,f=ab,如下的兩個(gè)分解: (1)1 = ab,bc (2)2 = ab,ac 判斷這兩個(gè)分解是否無損。,舉例,解:(1)可根據(jù)無損連接定理判斷本題 abbc=b ab-bc=a bc-ab=c ,u=a,b,c,f=ab,故1為有損連接。,舉例,(2)根據(jù)無損連接定理判斷本題 abac=a ab-ac=b ac-ab =c ,2為無損連接。,(1)構(gòu)造一個(gè)n列k行表,每一行對(duì)應(yīng)于一個(gè)模式ri(1ik),每一列對(duì)應(yīng)于一個(gè)屬性aj(1jn),如下表所示。,定理4.4判斷分解是無損連接的測(cè)試方法,(2) 初始表(填表):若ajri,則第i行第j列上填入aj,否則空著。 (3) 修改表:取f中的某個(gè)函數(shù)依賴xy,在表中尋找與x對(duì)應(yīng)的列中含有相同屬性值的行,然后,將這些行中對(duì)應(yīng)y的屬性的元素進(jìn)行修改;若這些元素中有aj,則全部改為aj; (4) 這樣反復(fù)進(jìn)行,如發(fā)現(xiàn)某一行變成a1,a2,,ak,則此分解具有連接不失真性。,例題,已知r(abcd), =ab,bc,cd, f=b a,c d 判斷相對(duì)于f是否無損分解。,=ab,bc,cd, f=b a,c d, 是無損分解,例:設(shè)有r(u,f),其中:u =(a,b,c,d,e), f=(ac,bc,cd,dec,cea),r的一個(gè)分解為:r1(ad),r2 (ab),r3(be) ,r4(cde) ,r5(ae)是否無損分解?, 是無損分解,判斷分解保持函數(shù)依賴的測(cè)試方法,設(shè)關(guān)系模式r的一個(gè)分解=r1,r2,rk, f是r的依賴集,如果f等價(jià)于 r1(f)u r2(f) u u rk(f),則稱分解具有依賴保持性,例 題,給定關(guān)系模式r,其中 u=a,b,c,d,f=a b,b c,c d,d a,判斷關(guān)系模式r的分解=ab,bc,cd 是否具有依賴保持性,f=a b,b c,c d,d a =ab,bc,cd,解: ab(f)=a b,b a bc(f)=b c, c b cd(f)=cd, dc ab(f) u bc(f) u cd(f)=a b ,b a, b c ,c b,c d,d c 從中可以看到a b ,b c,c d均得以保持,又d+=abcd, d a也得到保持 該分解具有依賴保持性,分解成2nf模式集的算法,設(shè)r(u),主鍵w,若r上存在fd xz,且z是非主屬性和xw,則xz是一個(gè)部分函數(shù)依賴。此時(shí)應(yīng)把r分解成兩個(gè)模式: r1(xz),主鍵是x; r2(y),其中y=u-z,主鍵仍是w,外鍵是x(參照r1) 利用外鍵和主鍵的聯(lián)接可以從r1和r2重新得到r。 如果r1和r2還不是2nf,則重復(fù)上述過程,一直到數(shù)據(jù)庫模式中每一個(gè)關(guān)系模式都是2nf為止。,算法:分解成3nf模式集的算法,設(shè)r(u),主鍵w,若r上存在fd xz。且z是非主屬性,zx,x不是候選鍵,則wz就是一個(gè)傳遞依賴。此時(shí)應(yīng)把r分解成兩個(gè)模式: r1(xz),主鍵是x; r2(y),其中y=u-z,主鍵w,外鍵x(參照r1); 利用外鍵和主鍵相匹配機(jī)制,r1和r2通過聯(lián)接可以重新得到r。 如果r1和r2還不是3nf,則重復(fù)上述過程,一直到數(shù)據(jù)庫模式中每一個(gè)關(guān)系模式都是3nf為止。,算法4.3:轉(zhuǎn)換為3nf的保持函數(shù)依賴的分解, 對(duì) r 中的函數(shù)依賴集f進(jìn)行“極小化處理”,仍記為f。 找出不在f中出現(xiàn)的屬性,把這樣的屬性構(gòu)成一個(gè) 關(guān)系模式。把這些屬性從u中去掉,剩余的屬性仍記為u。 若有 x a f,且xa=u,則 r,算法終止 否則, 每一組函數(shù)依賴fi所涉及的全部屬性形成一個(gè)屬性集ui 。若ui uj (ij)就去掉ui 。,設(shè)有關(guān)系模式r(a,b,c,d,e), r的函數(shù)依賴集: f=ad,ed,db,bcd,cda 求r的候選關(guān)鍵字。 將r分解為3nf。,例:,解: 設(shè)u=(a,b,c,d,e),由于(ce)+=abcde r的唯一候選關(guān)鍵字是ce。 求出最小依賴集fm=ad,ed,db,bcd,cda 將r分解為3nf:=ad,de,bd,bcd,acd,化簡得=de,bcd,acd,例: f=ad,ed,db,bcd,cda,設(shè)關(guān)系模式ru,f,u=c,t,h,r,s,g,x,y,z,f=ct,csg,hrc,hsr,thr,cx,將r分解為3nf,且保持函數(shù)依賴。 解:該函數(shù)依賴集已經(jīng)是最小化的,則分解為: =yz,ct,cx,csg,hrc,hsr,thr.,算法:轉(zhuǎn)換為3nf的保持函數(shù)依賴的分解,算法4.4: 轉(zhuǎn)換為3nf既有無損連接性又保持函數(shù)依賴的分解, 設(shè) x 是 r 的碼。 r 已由算法分解為r1, r2, ,rk, 令 rx 。 若有某個(gè)ui ,x ui ,將 rx 從 中去掉。把這些屬性從u中去掉,剩余的屬性仍記為u。 就是所求的分解。,【例】有關(guān)系模式ru,f,u=c,t,h,r,s,g,f=ct,csg,hrc,hsr,thr,將r分解為3nf,且既具有無損連接性又能保持函數(shù)依賴。 解:可以求得關(guān)系模式r的碼為hs,它的一個(gè)保持函數(shù)依賴的3nf為: =ct,csg,hrc,hsr,thr. hs是關(guān)鍵字, hs ,hs是hsr的一個(gè)子集 = ct,csg,hrc,hsr,thr為滿足要求的分解。,算法4.5 轉(zhuǎn)換為bcnf的無損連接的分解, 令r 檢查中各關(guān)系模式是否均屬于bcnf。若是, 則算法終止。 設(shè)中ri不屬于bcnf,那么必有x a fi+ (ax),且x非ri的碼。因此,xa是ui的真子集。對(duì)ri進(jìn)行分解:s1,s2,us1=xa, us2=ui-a,以代替ri返回第步。,【例】設(shè)有關(guān)系模式ru,f,u=cthrsg,f= ct,hrc,htr,csg,hsr,試把r分解成具有無損連接的bcnf。 解:令= cthrsg 1) 由于r的碼為hs,選擇csg分解。 得出:=s1,s2. 其中:s1=csg, f1= csg; s2=cthrs, f2= ct,hrc, htr,hsr. 顯然,s2不服從bcnf,需要繼續(xù)分解。,2) 對(duì)s2分解。s2的碼為hs,選擇ct分解。 得出:= s1,s3,s4. 其中:s3=ct, f3= ct; s4=chrs, f4= hrc,hsr. 顯然,s4不服從bcnf,還需要繼續(xù)分解。 3) 對(duì)s4分解。s4的碼為hs,選擇hrc分解。 得出:= s1,s3,s5,s6. 其中:s5=hrc, f5= hrc; s6=hrs, f6=hsr. 4) 最后的分解為:=csg,ct,hrc,hrs.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年皮膚問題分析試題及答案
- 2024年汽車美容師職場行為規(guī)范試題及答案
- 2024年汽車美容師面試題目及答案
- 2025年語文考試分析性試題及答案
- 貓的智商測(cè)試題及答案
- 護(hù)理會(huì)議考試試題及答案
- 云南省保山市2024-2025學(xué)年高一上學(xué)期期末考試 英語 含解析
- 2024年汽車檢修技術(shù)新動(dòng)態(tài)試題及答案
- 2024-2025學(xué)年湖北省隨州市高一下學(xué)期2月聯(lián)考?xì)v史試題及答案
- 2024年汽車美容師入行指南試題及答案
- 20以內(nèi)加減法口算練習(xí)題帶括號(hào)填空135
- 幼兒園 小班音樂《森林音樂會(huì)》原版有聲動(dòng)態(tài)課件
- 個(gè)人外匯管理辦法實(shí)施問答(一二三四期)
- 【財(cái)務(wù)報(bào)表分析論文:美的集團(tuán)財(cái)務(wù)報(bào)表分析6400字】
- 百位數(shù)加減法練習(xí)題連加
- 婦產(chǎn)科學(xué)妊娠合并糖尿病課件
- 2024年北京牌照租賃協(xié)議參考樣本(四篇)
- GB/T 4706.61-2024家用和類似用途電器的安全第61部分:使用液體或蒸汽的家用表面清潔器具的特殊要求
- JT-T-1246-2019公路與鐵路兩用橋梁技術(shù)要求
- 2024年不動(dòng)產(chǎn)登記代理人《地籍調(diào)查》考試題庫大全(含真題、典型題)
- 3D打印混凝土技術(shù)的發(fā)展與展望
評(píng)論
0/150
提交評(píng)論