數(shù)據(jù)庫學習筆記(三)
2024-07-21 02:08:28
供稿:網(wǎng)友
關系數(shù)據(jù)庫
一, 關系數(shù)據(jù)庫的由來
1, 系統(tǒng)而嚴格的提出關系數(shù)據(jù)庫模型的是美國ibm的e.f.codd
2, 1970年,e.f.codd繼續(xù)完善和發(fā)展關系理論。
3, c.j.data是關系數(shù)據(jù)庫領域中最著名的獨立撰稿人,學者和顧問。
二, 關系模型概述
關系模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。
1、單一的數(shù)據(jù)結構關系
關系模型中的數(shù)據(jù)結構非常單一。實體及實體間的聯(lián)系都用關系表示,關系就是一張二維表。
2、關系操作
關系模型中常用的關系操作包括。關系操作的特點是集合操作方式,即操作的對象和結果都是集合。這種操作方式也成為一次一集合的方式。相應地,非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一記錄的方式。
3、關系的三類完整性約束:實體完整性,參照完整性,用戶定義完整性。
三, 關系數(shù)據(jù)結構及形式化定義
1, 關系
1.域:域是一組具有相同數(shù)據(jù)類型的值的集合。
2.笛卡兒積:
定義:給定一組域d1,d2,…,dn,這些域中可以有相同的。d1,d2,…,dn的笛卡兒積為:
d1×d2×…×dn={(d1,d2, …,dn) | di∈di,i=1,2, …,n}
其中每一個元素(d1,d2, …,dn)叫做一個n元組或簡稱元組(tuple)。元組中的每一個值di叫做一個分量(component)。
若di(i=1,2, …,n)為有限集,其基數(shù)為mi(i=1,2, …,n),則d1×d2×…×dn的基數(shù)m為:mi的積。
3.關系:
定義:d1×d2×…×dn的子集叫做在域d1,d2,…,dn上的關系,表示為:
r(d1,d2,…,dn)
d1×d2×…×dn表示的是域上所有可能的組合,在現(xiàn)實生活中很多元組是無意義的數(shù)據(jù),而一個關系肯定包含在d1×d2×…×dn之中,因此在數(shù)學上把關系定義為d1×d2×…×dn的子集。
關系是笛卡兒積的有限子集,所以關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由于域可以相同,為了加以區(qū)分,必須對每列起一個名字,稱為屬性。n目關系必有n個屬性。
候選碼:若關系中的某一屬性組的值能唯一地標識一個元組,則稱該數(shù)據(jù)組為候選碼。
全碼:若一個關系有多個候選碼,則選定其中一個為主碼。主碼的諸屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非碼屬性。關系模式的所有數(shù)據(jù)組是這個關系模式的候選碼,稱為全碼。
關系可以有三種類型:基本關系、查詢表和視圖表。
對關系的限定和擴充:
⑴ 無限關系在數(shù)據(jù)庫系統(tǒng)中時無意義的。因此,限定關系數(shù)據(jù)模型中的關系必須是有限集合。
⑵ 通過為關系的每個列附加一個屬性名的方法取消關系元組的有序性。
基本關系具有以下六條性質:
1,列是同質的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。
2,不同的列可以出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。
3,列的順序無所謂,即列的次序可以任意交換。
4,任意兩個元組不能完全相同。
5,行的順序無所謂,即行的次序可以任意交換。
6,分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。
備注:在許多實際關系數(shù)據(jù)庫產品中,基本表并不完全具有這六條性質,例如,有的數(shù)據(jù)庫產品能(如foxpro)仍然區(qū)分了屬性順序和元組的順序;許多關系數(shù)據(jù)庫產品中,例如oracle,foxpro等,它們都允許關系表中存在兩個完全相同的元組。
四,關系模式
定義:關系的描述稱為關系模式。它可以形式化地表示為:
r(u,d,dom,f)
關系模式通常可以簡記為:
r(u)或r(a1,a2, …,an)
五,關系的完整性
1、實體完整性
實體完整性規(guī)則:若屬性a是基本關系r的主屬性,則屬性a不能取空值。
實體完整性規(guī)則說明如下:
⑴ 實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集。
⑵ 現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。
⑶ 相應地,關系模型中以主碼作為唯一標識。
⑷ 主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“不確定”的值。
2、參照完整性
外碼定義:設f是基本關系r的一個或一組屬性,但不是關系r的碼,如果f與基本關系s的主碼ks相對應,則稱f是基本關系r的外碼(foreign key),并稱基本關系r為參照關系,基本關系s為被參照關系或目標關系。關系r和s不一定是不同的關系。
注意:f不能是關系r的主碼,ks必須是關系s的主碼。
參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則:
參照完整性規(guī)則:若屬性(或屬性組)f是基本關系r的外碼,它與基本關系s的主碼ks相對應(基本關系r和s不一定是不同的關系),則對于r中每個元組在f上的值必須為:
或者取空值(f的每個屬性值均為空值);
或者等于s中某個元組的主碼值。
3、用戶定義的完整性:即是針對某一具體關系數(shù)據(jù)庫的約束條件。
未完待續(xù)。
小康
[email protected]
2004-2-29