第四章 關系數據庫的模式設計
45. 什么是關系數據庫:
關系數據庫是以關系模型為基礎的數據庫,它利用關系來描述現實世界。一個關系既可以用來描述一個實體及其屬性,也可以用來描述實體間的聯(lián)系。關系實質上是一張二維表。
46. 一個關系模型有哪兩個方面內容:
一個關系模型包括外延和內涵兩個方面的內容。
外延就是通常所說的關系,或實例,或當前值。它與時間有關,隨著時間的推移在不斷變化。(由于元組的插入、刪除、修改引起的)
內涵是與時間獨立的,包括關系、屬性、及域的一些定義和說明,還有各種數據完整性約束。
47. 數據完整性約束分為哪兩類:
數據完整性約束分為靜態(tài)約束和動態(tài)約束。
靜態(tài)約束:包括各種數據之間的聯(lián)系(數據依賴),主鍵的設計和關系值的各種限制等等。這一類約束是如何定義關系的有效數據問題。
動態(tài)約束:主要定義如插入、刪除、和修改等各種操作的影響。
48. 關系數據庫設計理論主要包括哪些內容:
關系數據庫設計理論主要包括三個方面的內容:數據依賴、范式、模式設計方法。其中數據依賴起著核心的作用。
49. 數據庫使用過程中存在的問題是什么:
數據冗余、更新異常、插入異常、刪除異常。
50. 函數依賴(FD)的定義:
設有關系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具體關系,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]導致t1[Y]=t2[Y],則稱X函數決定Y,或Y函數依賴于X,記為X→Y,X→Y為模式R的一個函數依賴。
或者說,對于X的每一個具體值,都有Y惟一的具體值與之對應,即Y值由X值決定,因而
這種數據依賴稱為函數依賴。
51. 函數依賴的邏輯蘊涵、FD的閉包F+:
設F是關系模式R的一個函數依賴集,X,Y是R的屬性子集,如果從F中的函數依賴能夠推出X—>Y,則稱F邏輯蘊涵X—>Y,記為F X→Y。
被F邏輯蘊涵的函數依賴的全體構成的集合,稱為F的閉包,記為F+。F+={X→Y|F X→Y}
52. 候選鍵、主屬性、非主屬性:
設有關系模式R(A1,A2,……,An),F是R的一個函數依賴集,X是{A1,A2,……,An}的一個子集。如果
① X→A1A2……An∈F+,且
② 不存在X真子集Y,使得Y→A1A2……An成立,則稱X是R的候選鍵。
包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何一個候選鍵中的屬性稱為非主屬性。
53. 函數依賴的推理規(guī)則:
設有關系模式R(A1,A2,……,An)和屬性集U= A1,A2,……,An,X,Y,Z,W是U的一個子集,F是R的一個函數依賴集,推理規(guī)則如下:
(1) 自反律:如果Y X U,則X→Y在R上成立。
(2) 增廣律:如果X→Y為F所蘊涵,Z U,則XZ→YZ在R上成立。
(3) 傳遞律:如果X→Y和Y→Z在R上成立,則X→Z在R上成立。
FD的其他三個推理規(guī)則:
(4) 合并律:如果X→Y成立,那么X→YZ成立。
(5) 偽傳遞律:如果X→Y和WY→Z成立,那么WX→Z成立。
(6) 分解律:如果X→Y和Z Y成立,那么X→Z成立。
54. 什么是平凡的FD?平凡的FD可根據哪一條推理規(guī)則推出?
如果X→Y,并且Y X,則稱X→Y是平凡的FD。根據推理規(guī)則的自反律可推出。
55. 關系模式的分解有幾個不同的衡量標準:
分解具有無損聯(lián)接;
分解要保持函數依賴;
分解既要保持依賴,又要具有無損聯(lián)接。
56. 什么是無損連接:
設有關系模式R,分解成關系模式ρ={R1,R2,……Rk},F是R的一個函數依賴集。如果對R中滿足F的每一個關系r都有:r=πR1(r)|×|πR2(r)|×|……πRK(r),則稱這個分解ρ是無損聯(lián)結分解。
57. 試敘保持函數依賴的定義:
設F是屬性集U上的一個函數依賴集,Z是U上的一個子集,F在Z上的一個投影定義為:πZ(F)={X→Y|X→Y∈F+且XY Z}
設關系模式R的一個分解為ρ={R1,R2,……Rk},F是R的一個函數依賴集,如果
則稱為分解ρ保持函數依賴。
58. 第一范式(1NF):
如果關系模式R的所有屬性的值域中每一個值都是不可再分解的值,則稱R是屬于第一范式模式。
59. 第二范式(2NF):
如果關系模式R為第一范式,并且R中每一個非主屬性完全函數依賴于R的候選鍵,則稱R是第二范式模式。
60. 第三范式(3NF):
如果關系模式R是第一范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R是第三范式的模式。
61. BCNF:
如果關系模式R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R是BCNF的模式。從BCNF的定義可明顯地得出如下結論:
(1) 所有非主屬性對鍵是完全函數依賴。
(2) 所有主屬性對不包含它的鍵是完全函數依賴。
(3) 沒有屬性完全函數依賴于非鍵的任何屬性組。
如果模式R是BCNF,則它必定是第三范式,反之,則不一定。
62. 模式設計方法的原則:
關系模式R相對于函數依賴集F分解成數據庫模式ρ={R1,R2,……Rk},一般應具有下面三個特性:
(1) ρ中每個關系模式Ri是3NF或BCNF
(2) 保持無損聯(lián)結
(3) 保持函數依賴集
(4) ρ中模式個數最少和屬性總數最少。
63. 一個好的模式設計方法應符合哪三條原則:
表達性,分離性,最小冗余性。
表達性涉及到兩個數據庫模式的等價性問題,即數據等價和依賴等價,分別用無損聯(lián)接和保持函數依賴性來衡量。
分離性是指屬性間的“獨立聯(lián)系”應該用不同的關系模式表達。
最小冗余性要求在分解后的數據庫能表達原來數據庫的所有信息這個前提下實現。
關系模式設計方法基本上可以分為分解與合成兩大類。
64. 多值依賴MVD:
設R(U)是屬性集U上的一個關系模式,X,Y是U的子集,若對R(U)的任一關系r,對于X的一個給定的值存在著Y的一組值與其對應,同時Y的這組值又不以任何方式與U-X-Y中的屬性相關,那么稱Y多值依賴于X,記為X→→Y。
65. 平凡多值依賴:
對于屬性集U上的一個多值依賴X→→Y,如果Y X或者XY=U,那么稱X→→Y是一個平凡多值依賴。
66. 第四范式(4NF):
設關系模式R,D是一個多值依賴集,如果D中存在一個非平凡多值依賴X→→Y,并且X必是R的超鍵,那么稱R是4NF模式。
45. 什么是關系數據庫:
關系數據庫是以關系模型為基礎的數據庫,它利用關系來描述現實世界。一個關系既可以用來描述一個實體及其屬性,也可以用來描述實體間的聯(lián)系。關系實質上是一張二維表。
46. 一個關系模型有哪兩個方面內容:
一個關系模型包括外延和內涵兩個方面的內容。
外延就是通常所說的關系,或實例,或當前值。它與時間有關,隨著時間的推移在不斷變化。(由于元組的插入、刪除、修改引起的)
內涵是與時間獨立的,包括關系、屬性、及域的一些定義和說明,還有各種數據完整性約束。
47. 數據完整性約束分為哪兩類:
數據完整性約束分為靜態(tài)約束和動態(tài)約束。
靜態(tài)約束:包括各種數據之間的聯(lián)系(數據依賴),主鍵的設計和關系值的各種限制等等。這一類約束是如何定義關系的有效數據問題。
動態(tài)約束:主要定義如插入、刪除、和修改等各種操作的影響。
48. 關系數據庫設計理論主要包括哪些內容:
關系數據庫設計理論主要包括三個方面的內容:數據依賴、范式、模式設計方法。其中數據依賴起著核心的作用。
49. 數據庫使用過程中存在的問題是什么:
數據冗余、更新異常、插入異常、刪除異常。
50. 函數依賴(FD)的定義:
設有關系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具體關系,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]導致t1[Y]=t2[Y],則稱X函數決定Y,或Y函數依賴于X,記為X→Y,X→Y為模式R的一個函數依賴。
或者說,對于X的每一個具體值,都有Y惟一的具體值與之對應,即Y值由X值決定,因而
這種數據依賴稱為函數依賴。
51. 函數依賴的邏輯蘊涵、FD的閉包F+:
設F是關系模式R的一個函數依賴集,X,Y是R的屬性子集,如果從F中的函數依賴能夠推出X—>Y,則稱F邏輯蘊涵X—>Y,記為F X→Y。
被F邏輯蘊涵的函數依賴的全體構成的集合,稱為F的閉包,記為F+。F+={X→Y|F X→Y}
52. 候選鍵、主屬性、非主屬性:
設有關系模式R(A1,A2,……,An),F是R的一個函數依賴集,X是{A1,A2,……,An}的一個子集。如果
① X→A1A2……An∈F+,且
② 不存在X真子集Y,使得Y→A1A2……An成立,則稱X是R的候選鍵。
包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何一個候選鍵中的屬性稱為非主屬性。
53. 函數依賴的推理規(guī)則:
設有關系模式R(A1,A2,……,An)和屬性集U= A1,A2,……,An,X,Y,Z,W是U的一個子集,F是R的一個函數依賴集,推理規(guī)則如下:
(1) 自反律:如果Y X U,則X→Y在R上成立。
(2) 增廣律:如果X→Y為F所蘊涵,Z U,則XZ→YZ在R上成立。
(3) 傳遞律:如果X→Y和Y→Z在R上成立,則X→Z在R上成立。
FD的其他三個推理規(guī)則:
(4) 合并律:如果X→Y成立,那么X→YZ成立。
(5) 偽傳遞律:如果X→Y和WY→Z成立,那么WX→Z成立。
(6) 分解律:如果X→Y和Z Y成立,那么X→Z成立。
54. 什么是平凡的FD?平凡的FD可根據哪一條推理規(guī)則推出?
如果X→Y,并且Y X,則稱X→Y是平凡的FD。根據推理規(guī)則的自反律可推出。
55. 關系模式的分解有幾個不同的衡量標準:
分解具有無損聯(lián)接;
分解要保持函數依賴;
分解既要保持依賴,又要具有無損聯(lián)接。
56. 什么是無損連接:
設有關系模式R,分解成關系模式ρ={R1,R2,……Rk},F是R的一個函數依賴集。如果對R中滿足F的每一個關系r都有:r=πR1(r)|×|πR2(r)|×|……πRK(r),則稱這個分解ρ是無損聯(lián)結分解。
57. 試敘保持函數依賴的定義:
設F是屬性集U上的一個函數依賴集,Z是U上的一個子集,F在Z上的一個投影定義為:πZ(F)={X→Y|X→Y∈F+且XY Z}
設關系模式R的一個分解為ρ={R1,R2,……Rk},F是R的一個函數依賴集,如果
則稱為分解ρ保持函數依賴。
58. 第一范式(1NF):
如果關系模式R的所有屬性的值域中每一個值都是不可再分解的值,則稱R是屬于第一范式模式。
59. 第二范式(2NF):
如果關系模式R為第一范式,并且R中每一個非主屬性完全函數依賴于R的候選鍵,則稱R是第二范式模式。
60. 第三范式(3NF):
如果關系模式R是第一范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R是第三范式的模式。
61. BCNF:
如果關系模式R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R是BCNF的模式。從BCNF的定義可明顯地得出如下結論:
(1) 所有非主屬性對鍵是完全函數依賴。
(2) 所有主屬性對不包含它的鍵是完全函數依賴。
(3) 沒有屬性完全函數依賴于非鍵的任何屬性組。
如果模式R是BCNF,則它必定是第三范式,反之,則不一定。
62. 模式設計方法的原則:
關系模式R相對于函數依賴集F分解成數據庫模式ρ={R1,R2,……Rk},一般應具有下面三個特性:
(1) ρ中每個關系模式Ri是3NF或BCNF
(2) 保持無損聯(lián)結
(3) 保持函數依賴集
(4) ρ中模式個數最少和屬性總數最少。
63. 一個好的模式設計方法應符合哪三條原則:
表達性,分離性,最小冗余性。
表達性涉及到兩個數據庫模式的等價性問題,即數據等價和依賴等價,分別用無損聯(lián)接和保持函數依賴性來衡量。
分離性是指屬性間的“獨立聯(lián)系”應該用不同的關系模式表達。
最小冗余性要求在分解后的數據庫能表達原來數據庫的所有信息這個前提下實現。
關系模式設計方法基本上可以分為分解與合成兩大類。
64. 多值依賴MVD:
設R(U)是屬性集U上的一個關系模式,X,Y是U的子集,若對R(U)的任一關系r,對于X的一個給定的值存在著Y的一組值與其對應,同時Y的這組值又不以任何方式與U-X-Y中的屬性相關,那么稱Y多值依賴于X,記為X→→Y。
65. 平凡多值依賴:
對于屬性集U上的一個多值依賴X→→Y,如果Y X或者XY=U,那么稱X→→Y是一個平凡多值依賴。
66. 第四范式(4NF):
設關系模式R,D是一個多值依賴集,如果D中存在一個非平凡多值依賴X→→Y,并且X必是R的超鍵,那么稱R是4NF模式。