數據庫關系數據理論


關系數據理論

  • 數據依賴是一個關系內部屬性與屬性之間的一種約束關系,是通過屬性間值的相等與否體現出來的數據間相關聯系。
  • 最重要的數據依賴:函數依賴、多值依賴。

函數依賴是指關系中屬性間(或者說是表中字段間)的對應關系。
定義:設 R 為任一給定關系,如果對於 R 中屬性 X 的每一個值,R 中的屬性 Y 只有唯一值與之對應,則稱 X 函數決定 Y 或稱 Y 函數依賴於 X ,記作 X—>Y。其中,X 稱為決定因素。
通俗一點,就是給定一個 X 都有唯一的 Y。可以理解為函數 y = f(x); 對於任意的 x 都有唯一的 y ,且 y 的取值由 x 決定。
例如:學生號—>學生姓名,學生年齡等等有關該學生的所有信息
反之,像學生姓名不能決定唯一的學生,因為存在同名的可能,這種情況就不能稱作函數依賴。
根據函數依賴性質可分為以下三種:

完全函數依賴
書上定義的意思基本是:如果存在 X 屬性集(注意是集合,說明是聯合主鍵)決定 唯一的 Y ,且 X 中的任一子集都不能決定 唯一的 Y,則 Y 完全依賴於 X。
例如:學生數學成績完全由該學生的學號和數學課決定,所以數學課成績完全依賴於(學號,數學課)
部分函數依賴
定義和完全函數依賴有一點不一樣,就是 X 的屬性集中任一子集可以決定唯一的 Y
例如:學生學號和姓名可以決定唯一的學生,但是學生號也可以決定唯一的學生
傳遞函數依賴
定義:設 R 為任一給定關系, X Y Z 為其不同的屬性子集,若 X —> Y, Y 不決定 X 且 Y —>Z,則有 X —>Z,稱為 Z 傳遞函數依賴於 X
例如:書的出版編號是唯一,版權歸出版社所有,所以只能由該出版社出版。所以存在函數依賴:書出版編號—>出版社名,出版社名—>出版社地址,但是出版社名不能決定唯一的出版書編號(除非出版社只出版過一本書,那我沒話說🤣),則有出版社地址傳遞函數依賴於出版書編號

范式

第一范式(1NF):屬性(字段)是最小單位不可再分。

(學號,系名,課程號,成績)屬於1NF

第二范式(2NF):滿足 1NF,每個非主屬性完全依賴於主鍵(消除 1NF 非主屬性對碼的部分函數依賴)。

(學號,系名,課程號,成績)屬於1NF,由於(學號,課程號)是碼,其他為非主屬性,但是 只有成績完全依賴於(學號,課程號),系名只依賴於學號,因此不符合2NF,可拆分成(學號,系名),(學號,課程號,成績)

第三范式(3NF):滿足 2NF,任何非主屬性不依賴於其他非主屬性(消除 2NF 主屬性對碼的傳遞函數依賴)。

如:在一個學生表中,我們規定一個系的學生是住在同一個宿舍區域的,於是,該關系模型為:

學生表(學號, 系名, 宿舍區)

在這關系中,學號為碼,學號——>系名,學號——>宿舍區,但是,系名也能推出宿舍區,變成   學號——>系名——>宿舍區,即宿舍區傳遞依賴於學號了。解決方法:拆分成兩個表:

1(學號,系名),2(系名,宿舍區)

從上面我們可以看到,在兩個表中我們可以看到,當兩個表通過外鍵(1表的系名,2中系名為主健)關聯后,另一個表的的信息(如2表中的宿舍區)不能再寫到包含外鍵關系的表中(1表)。

鮑依斯-科得范式(BCNF):滿足 3NF,任何非主屬性不能對主鍵子集依賴(消除 3NF 主屬性對碼的部分和傳遞函數依賴)。前面的三個范式是針對非主屬性的,BC范式則是針對於碼,它要求每個函數的依賴關系中其決定因素都要包含碼。

在關系模式STJ(S,T,J)中,S表示學生,T表示教師,J表示課程。

           函數依賴:(S,J)→T,(S,T)→J, T→J 其中,(S,J)和(S,T)都是候選                 碼。

可以看出STJ中,它是屬於第三范式的,因為沒有哪一組依賴關系中,非主屬性傳遞或者部分 依賴於碼,(記住是非主屬性,是候選碼以外的屬性,T在候選碼中),但是,它不屬於BC范式,因為T是決定因素,T不包含碼(候選碼的任何一個真子集都不能叫候選碼)。

 

第四范式(4NF):滿足 3NF,屬性之間不能有非平凡且非函數依賴的多值依賴(消除 3NF 非平凡且非函數依賴的多值依賴)。

多值依賴定義:第四范式需要掌握的一個內容。它說的就是設R(U)是一個屬性集U上的一個關系模式, X、 Y和Z是U的子集,並且Z=U-X-Y。關系模式R(U)中多值依賴 X→→Y成立,當且僅當對R(U)的任一關系r,給定的一對(x,z)值,有一組Y的值,這組值僅僅決定於x值而與z值無關(想不到好的方法把它概括起來,哎!)

判定方法:對於任意關系中,如果存在兩個元組(就是行),記為A,B,如果他們的某一屬性X的值相等,那么我們交換它們另外的屬性Y的值后,得到的新的兩個元組,在表中是可以在原來的表中找到與它們相匹配的元組的。

平凡多值依賴和非平凡的多值依賴:

若X→→Y,而Z=φ,則稱X→→Y為平凡的多值依賴否則稱X→→Y為非平凡的多值依賴。

多值依賴與函數依賴的區別:

1)若函數依賴X→Y在R(U)上成立,則對於任何Y' 屬於Y均有X→Y' 成立

2)多值依賴X→→Y若在R(U)上成立,不能斷言對於任何Y' 屬於Y有X→→Y' 成立,因為多值依賴中,其實就是一對一組,一個老師可能教多門課,所以不同老師可能有教相同的課,所以不能推出X→→Y' 成立。我們可以看出,如果把一組改為一個,實際上就是函數依賴,所以所函數依賴是多值依賴的特例,多值依賴不一定是函數依賴,但函數依賴一定是多值依賴。

多值依賴性質:

(1)多值依賴具有對稱性

若X→→Y,則X→→Z,其中Z=U-X-Y

(2)多值依賴具有傳遞性

若X→→Y,Y→→Z, 則X→→Z –Y

(3)函數依賴是多值依賴的特殊情況。

若X→Y,則X→→Y。

(4)若X→→Y,X→→Z,則X→→YU Z。

(5)若X→→Y,X→→Z,則X→→Y∩Z。

(6)若X→→Y,X→→Z,則X→→Y-Z,X→→Z -Y。

第四范式:1)不允許有非平凡且非函數依賴的多值依賴   2)允許的非平凡多值依賴是函數依賴    3)平凡的多值依賴屬於第四范式

像,我們上面的圖表(C,T,B),如果改成屬於第四范式,就要分為:

                           CT(C, T) ∈ 4NF   CB(C, B) ∈ 4NF

其中, C→→T, C→→B是平凡多值依賴。

 

參考

 https://blog.csdn.net/legendaryhaha/article/details/80032808


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM