知識總結:
第六章關係資料理論
關係模式是乙個五元組:r(u,d,dom,f),
r是符號元組語義,u是一組屬性,d是屬性組u中的屬性來自的域,dom是屬性到域的對映,f是屬性組u上的一組資料依賴關係。
d、 dom與模式設計沒有什麼關係,只有三個:r。
資料依賴關係是關係中屬性之間的約束關係。其主要型別如下:
功能依賴(fd)
多值依賴(mvd)
一。函式依賴
定義:假設r(u)是屬性集u上的乙個關係模式,x和y是u的子集。如果r中不可能存在r(u)的任何可能關係r:x上兩個元組的屬性值相等,y上的屬性值不相等,則稱為「x函式決定y」或「y函式依賴」在x上「,它被記錄為x→y,x被稱為這個函式依賴性的行列式。
如果x→y和y→x,則記錄為x☆→y。
如果y不依賴於x,則記錄為x↛y。
2。平凡函式依賴與非平凡函式依賴
x→y,但y⊈x將x→y引用為乙個非平凡的函式依賴項。
x→y,但y⊆x將x→y稱為乙個微不足道的函式依賴項。
瑣碎的函式依賴必然是真的,並且不能反映新的語義。如果沒有特別說明,則總是討論非平凡的函式依賴性。
三。完全函式依賴與部分函式依賴
定義:在r(u)中,如果x→y,並且對於任何真正的子集x有x』↛y』,那麼y被稱為對x.f的完全函式依賴
如果x→y,但y不完全函式依賴於x,那麼y依賴於x部分函式。第頁
四。r(u)中的傳遞函式依賴項
定義:如果x→y(y⊈x),y↛x,y→z,z⊈y,則z稱為x上的傳遞函式依賴項。記錄為:x→z。
注:如果y→x,即x☆→y,z直接依賴於x,而不是傳遞函式。
多值依賴
定義:將r(u)設定為屬性集u.10上的關係模式。y、 z是u的子集,z=u-x-y。在關係模式r(u)中,多值依賴x→→y保持,如果且僅當r(u)的任何關係r的給定對(x,z)值存在一組y值時,該組值僅由x值而不是z值確定。
如果x→y,z=φ,那麼x→y是乙個平凡的多值依賴項,否則x→y是乙個非平凡的多值依賴項。
設k為r中的屬性或屬性組合。如果k→u,則k被稱為r的候選金鑰。
如果u部分函式依賴於k,即k→u,則k稱為超碼。候選碼是最小的超碼,即k的任何真子集都不是候選碼。
如果關係模式r中有多個候選**,則選擇其中乙個作為主鍵。
關係模式r中的屬性或屬性組x不是r的**,而x是另乙個關係模式的**,那麼x是r的外來鍵,也稱為外碼。
主**和外部**一起提供了一種表示它們之間關係的方法。
任何候選**中包含的屬性都稱為primary屬性。
未包含在任何**中的屬性稱為非主屬性。
整個屬性組是code,稱為all key。
正規化是一組符合一定層次的關係模式。
r是第n正規化,可縮寫為r∈nnf。
低層正規化的關係模式可以通過模式分解轉化為多個高層正規化的一組關係模式,稱之為規範化。
1nf:二維表的每個元件都必須是不可分割的資料項。滿足此條件的關係模式屬於第乙個正規化。
第二層定義:如果關係模式r∈1nf,且每個非主屬性完全依賴於任何候選**,則r∈2nf。
如果關係模式不屬於2nf,則會導致插入異常、刪除異常和複雜的修改。出現這個問題的原因:有兩種型別的非主要屬性,一種是對**的完全功能依賴,另一種是對**的完全功能依賴。解決方案:使用投影分解來分解關係模式,使非主要屬性完全依賴於**的功能。
第三層定義:設定關係模式r∈1nf。如果r中不存在這樣的碼x、屬性群y和非主屬性z(y⊈z),並且x→y、y→z、y↛x成立,則r∈3nf。
無傳遞依賴關係
在s-l中,可以得到sno→sdept(sdept↛sno),sdept→sloc。
解是將s-l分解為s-d(sno,sdept)∈3nf,d-l(sdept,sloc)∈3nf
第四層定義: 關係模式r∈1nf,如果對於r的每個非平凡多值依賴x→→y(y ⊈ x),x都含有碼,則r∈4nf。
如果乙個關係模式是4nf, 則必為bcnf。
4nf所允許的非平凡多值依賴是函式依賴。
不能說規範化程度越高的關係模式就越好。必須對現實世界的實際情況和使用者應用需求作進一步分析,確定乙個合適的、能夠反映現實世界的模式。上面的規範化步驟可以在其中任何一步終止。
閉包(記作x+ + )是由x直接或間接推導出的所有屬性的集合。
對於給定的關係r(a1,a2,…an)和函式依賴集f,可將其屬性分為4類:
l類:僅出現在函式依賴左部的屬性。
r 類:僅出現在函式依賴右部的屬性。
n 類:在函式依賴左右兩邊均未出現的屬性。
lr類:在函式依賴左右兩邊均出現的屬性。
定理:對於給定的關係模式r及其函式依賴集f,若x(x∈r):
是l類屬性,則x必為r的任一候選碼的成員;
是l類屬性,且x+包含了r的全部屬性,則x必為r的唯一候選碼;
是r類屬性,則x不在任何候選碼中;
是n類屬性,則x必包含在r的任一候選碼中;
是l類和n類組成的屬性集,且x+包含了r的全部屬性,則x是r的唯一候選碼。
習題:2、
學生:學號、姓名、出生年月、系名、班號、宿舍區
班級:班號、專業名、系名、班級人數、入校年份
系:系名、系號、系辦公室地點、系人數
學會:學會名、成立年份、地點、學會人數
乙個系有若干專業(設無相同專業名在不同系):專業名→→系名
每個專業每年只招乙個班(設班號不同):(專業名,入校年份)←→←→班號
每個班若干學生(設學生只能屬於乙個班):學號→→班號
乙個系的學生住同一宿舍:系名→→宿舍區
學生參加某學會有乙個入會年份:(學號,學會名)→→入會年份
關係模式:
學生(學號、姓名、出生年月、班號)
候選碼:學號。外部碼:班號。
班級(班號、專業名、班級人數、入校年份)
候選碼:班號、(專業名,入校年份)。
專業(專業名,系名)
候選碼:專業名。外部碼:系名。
系(系名、系號、系辦公室地點、系人數,宿舍區)
候選碼:系號、系名。
學會(學會名、成立年份、地點、學會人數)
候選碼:學會名。
學生參加學會(學號,學會名,入會年份)
候選碼:(學號,學會名)。
不存在傳遞函式依賴、部分函式依賴。
6、(1)
a→→bcde, bcde⊈⊈a, a是碼;
bc→→de, de⊈⊈bc, bc必含有碼.
bc含有碼時是bcnf。
(2)l:c,e,c,e必為任一候選碼的成員。lr:a,b,d。
(ace)+ + =abcde;
(bce)+ + =abcde;
(cde)+ +=abcde.
碼:ace, bce, cde.
(3)不存在非主屬性,屬於3nf.
a, bc, de不含碼,不屬於bcnf。
7、(1)正確:二目關係不存在碼x、屬性組y及非主屬性z,屬於3nf。
(2)正確
(3)正確:二目關係不存在多值依賴,屬於4nf。
(4)正確
(5)正確
(6)正確
(7)正確
(8)錯誤:例:sc.(sno,cno)→→sc.grade, sc.sno↛↛sc.grade,sc.cno↛↛ sc.grade
8、(1)若r是bcnf,x →y且y ⊈⊈x時x必含有碼,每乙個決定因素都含碼。
r中不存在這樣的碼x、屬性組y及非主屬性z(y ⊈⊈ z), 使得x→y,y→z,y↛↛x成立。因為每乙個決定因素都含碼,y含碼,y→→x成立,是3nf。
(2)若r不屬於2nf,r中有非主屬性部分函式依賴於任乙個候選碼,
則存在x→y(y⊈x),y↛↛x,y→z,z⊈y, 不屬於3nf。
第六章作業
例題6.1 舉例說明了指標的幾種表示形式,p指向指標指向的變數,p指向該變數的儲存位址,例題6.1 指標的幾種形式 自動化1121 李慶典 include 預編譯處理命令 using namespace std 標準名字空間 int main q 0 cout string1 is cout 例題6...
第六章作業
6.12 要求 1 建立基類area cl的兩個派生類rectangle與isosceles,讓每乙個派生類都包含乙個函式area 分別用來返回矩形與三角形的面積。用建構函式對height與width進行初始化。2 寫出主程式,用來求height與width分別為10.0與5.0的矩形面積,以及求h...
作業第六章
一簡答題 1.說明在迴圈結構中break和continue語句的區別。答 break語句 用於終止某個迴圈,程式跳轉到迴圈體外的下一條語句。continue語句 用於跳出本次迴圈,進入下一次迴圈。2.使用for迴圈結構實現 從鍵盤上輸入接收從周一到周五每天學習時間 以小時為單位 並計算每日平均學習時...