關系:單一的資料結構
現實世界的實體以及實體間的各種聯系均用關系來表示
域(Domain)
【域】是一組具有相同資料類型的值的集合
例如:整數、實數、介于某個取值範圍的整數、指定長度的字元串集合等......
笛卡爾積(Cartesian Product)
給定一組域D1,D2 .....Dn,允許其中某些域是相同的。
D1,D2 .....Dn的笛卡爾積為:D1*D2* .....*Dn=
【所有域的所有取值的任意組合】
【笛卡爾積可以看作是關系的“域”】
【基數】Cardinal number(表示笛卡爾空間的大小)
若D1(i=1,2,....n)為有限集,其基數為m1(i=1,2,...,n),則D1*D2*...*Dn的基數 M 為:
笛卡爾積的表示方法:
(1)笛卡爾積可表示為一張二維表
(2)表中的每一行對應一個元組,表中的每列對應一個域
舉例:
整個笛卡爾空間所有可能的集合;
關系(Relation)
D1*D2*....*Dn的子集叫做在域D1,D2,...,Dn上的【關系】
表示為:R(D1,D2,...,Dn)
【R】:關系名
【n】:關系的 [目] 或 [度] (Degree)
由D1到Dn這n個域的笛卡爾空間的一個子集就稱為一個關系
【元組】
關系中的每個元素(d1,d2,....,dn)叫做一個n元組(n-tuple)或簡稱元組,通常用t表示。
【屬性】
(1)關系中不同列可以對應相同的域
(2)為了加以區分,必須對每列起一個名字,稱為屬性(attribute)
(3)n目關系必有n個屬性
【碼】
【候選碼】(Candidate key)
若關系中的某一屬性組的值能唯一地辨別一個元組,則稱該屬性組為候選碼
簡單地情況:候選碼隻包含一個屬性
【全碼】(All-key)
最極端的情況: 關系模型的所有屬性組是這個關系模型的候選碼,稱為全碼(All-key)
【主碼】(Primary key)
若一個關系有多個候選碼,則標明其中一個為 主碼
【主屬性】(Prime attribute)
候選碼的諸屬性稱為 主屬性
不包含在任何候選碼中的屬性稱為非主屬性(Non-Prime attribute)或 非碼屬性(Non-key attribute)
單元關系與二進制關系
當n=1時(這個關系是定義在單個屬性上的)稱該關系為 【單元關系】(Unary relation)或 一進制關系
當n=2時(這個關系是定義在兩個屬性上的)稱該關系為【二進制關系】(Binary relation)
這個關系是定義在 n 個屬性上的,稱為【n元關系】
基本關系的性質
(1)列是同質的(Homogeneous)
(2)不同的列可出自同一個域
(3)列的順序無所謂,列的次序可以任意交換
(4)任意兩個元組的候選碼不能相同
(5)行的順序無所謂,行的次序可以任意交換
(6)分量必須取原子值
(6)分量必須取原子值
這是規範條件中最基本的一條
注意
關系必須是笛卡爾積的某個子集,它才有實際含義
關系模式 (Relation Schema)
1、什麼是關系模式
2、如何定義關系模式
3、關系模式與關系的關系
(1)什麼是關系模式
【關系模式】是 型
【關系】是 值
關系模式是對關系的描述
【元組集合的結構】
屬性的 構成
屬性來自的 域
屬性與域之間的 映像關系
【完整性限制條件】
(2)定義關系模式
關系模型可以形式化地表示為:
R(U,D,DOM,F )
R 關系名
U 組成該關系的屬性名集合
D U中屬性所來自的域
DOM 屬性向域的映像集合
F 屬性間資料的依賴關系的集合
例子:
(3)關系模式與關系的‘關系’
實際上就是一個【型】和【值】的關系
【關系模式】
(1)對關系的描述
(2)靜态的、穩定的
【關系】
(1)關系模式在某一時刻的狀态或内容
(2)動态的、随時間不斷變化的
關系模式和關系往往籠統稱為關系
需要通過上下文加以差別
關系資料庫
【關系資料庫】
在一個給定的應用領域中,所有關系的集合構成一個關系資料庫
【關系資料庫的 型 與 值 】
關系資料庫的型:關系資料庫模式,是對關系資料庫的描述
關系資料庫的值:關系模式在某一時刻對應的關系的集合,通常稱為‘關系資料庫’