官术网_书友最值得收藏!

2.1 關系數據結構及形式化定義

視頻二維碼(掃碼觀看)

2.1.1 關系

·單一的數據結構——關系

現實世界的實體以及實體間的各種聯系均用關系來表示

·邏輯結構——二維表

從用戶角度,關系模型中數據的邏輯結構是一張二維表

·建立在集合代數的基礎上

1域(Domain)

域是一組具有相同數據類型的值的集合。

例:

整數

實數

介于某個取值范圍的整數

長度指定長度的字符串集合

{“男”,“女”}

……

2笛卡爾積(Cartesian Product)

·笛卡爾積

給定一組域D1,D2,…,Dn,這些域可以有相同的。

D1,D2,…,Dn的笛卡爾積為:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。

所有域的所有取值的一個組合。

不能重復。

例:給出三個域:

D1=SUPERVISOR={張清玫,劉逸}

D2=SPECIALITY={計算機專業,信息專業}

D3=POSTGRADUATE={李勇,劉晨,王敏}

則D1,D2,D3的笛卡爾積為:

D1×D2×D3={(張清玫,計算機專業,李勇),(張清玫,計算機專業,劉晨),(張清玫,計算機專業,王敏),(張清玫,信息專業,李勇),(張清玫,信息專業,劉晨),(張清玫,信息專業,王敏),(劉逸,計算機專業,李勇),(劉逸,計算機專業,劉晨),(劉逸,計算機專業,王敏),(劉逸,信息專業,李勇),(劉逸,信息專業,劉晨),(劉逸,信息專業,王敏)}。

·元組(Tuple)

笛卡爾積中每一個元素(d1,d2,…,dn)稱作一個n元組(n-tuple)或簡稱元組(Tuple)。

(張清玫,計算機專業,李勇)、(張清玫,計算機專業,劉晨)等都是元組。

·分量(Component)

笛卡爾積元素(d1,d2,…,dn)中的每一個值di稱作一個分量。

張清玫、計算機專業、李勇、劉晨等都是分量。

·基數(Cardinal number)

若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:

·笛卡爾積的表示方法

笛卡爾積可表示為一個二維表,表中的每行對應一個元組,表中的每列對應一個域。

例子:

D1=SUPERVISOR(張清玫,劉逸);

D2=SPECIALITY(計算機專業,信息專業);

D3=POSTGRADUATE(李勇,劉晨,王敏)。

表2-1 D1,D2,D3的笛卡爾積

3關系(Relation)

(1)關系

D1×D2×…×Dn的子集稱做在域D1,D2,…,Dn上的關系,表示為R(D1,D2,…,Dn)。

R:關系名

n:關系的目或度(Degree)

(2)元組

關系中的每個元素是關系中的元組,通常用t表示。

(3)單元關系與二元關系

當n=1時,稱該關系為單元關系(Unary relation)或一元關系;

當n=2時,稱該關系為二元關系(Binary relation)。

(4)關系的表示

關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。

表2-2 SAP關系

(5)屬性

·關系中不同列可以對應相同的域

·為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)

·n目關系必有n個屬性

(6)碼

·候選碼(Candidate key)

若關系中的某一屬性組的值能惟一地標識一個元組,則稱該屬性組為候選碼。

簡單的情況:候選碼只包含一個屬性。

·全碼(All-key)

最極端的情況:關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)。

·主碼

若一個關系有多個候選碼,則選定其中一個為主碼(Primary key)。

·主屬性

候選碼的諸屬性稱為主屬性(Prime attribute)。

·非主屬性

不包含在任何侯選碼中的屬性(Non-Prime attribute)或非碼屬性(Non-key attribute)。

D1,D2,…,Dn的笛卡爾積的某個子集才有實際含義。

例:表2-1的笛卡爾積沒有實際意義,取出有實際意義的元組來構造關系。

關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)

假設:導師與專業:1:1,導師與研究生:1:n

主碼:POSTGRADUATE(假設研究生不會重名)

SAP關系可以包含三個元組:{(張清玫,計算機專業,李勇),(張清玫,計算機專業,劉晨),(劉逸,信息專業,王敏)}

(7)三類關系

基本關系(基本表或基表)

實際存在的表,是實際存儲數據的邏輯表示。

查詢表

查詢結果對應的表。

視圖表

由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據。

(8)基本關系的性質

列是同質的(Homogeneous);

不同的列可出自同一個域,其中的每一列稱為一個屬性,不同的屬性要給予不同的屬性名;

列的順序無所謂,列的次序可以任意交換;

任意兩個元組的候選碼不能相同;

行的順序無所謂,行的次序可以任意交換;

分量必須取原子值,這是規范條件中最基本的一條。

2.1.2 關系模式

1什么是關系模式

·關系模式(Relation Schema)是型

·關系是值

·關系模式是對關系的描述

(1)元組集合的結構

屬性構成

屬性來自的域

屬性與域之間的映象關系

(2)元組語義以及完整性約束條件

(3)屬性間的數據依賴關系集合

2定義關系模式

關系模式可以形式化地表示為:

R(U,D,DOM,F)

R:關系名

U:組成該關系的屬性名集合

D:屬性組U中屬性所來自的域

DOM:屬性向域的映象集合

F:屬性間的數據依賴關系集合

例:導師和研究生出自同一個域——人。取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域:

DOM(SUPERVISOR-PERSON)=DOM(POSTGRADUATE-PERSON)=PERSON

關系模式通常可以簡記為:

R(U)或R(A1,A2,…,An

R:關系名

A1,A2,…,An:屬性名

注:域名及屬性向域的映象常常直接說明為屬性的類型、長度。

3關系模式與關系

·關系模式

對關系的描述

靜態的、穩定的

·關系

關系模式在某一時刻的狀態或內容

動態的、隨時間不斷變化的

·關系模式和關系往往統稱為關系

通過上下文加以區別

2.1.3 關系數據庫

·關系數據庫

在一個給定的應用領域中,所有關系的集合構成一個關系數據庫。

·關系數據庫的型與值

(1)關系數據庫的型:關系數據庫模式,對關系數據庫的描述。

(2)關系數據庫模式包括:若干域的定義,在這些域上定義的若干關系模式。

(3)關系數據庫的值:關系模式在某一時刻對應的關系的集合,簡稱為關系數據庫。

主站蜘蛛池模板: 岫岩| 金山区| 乳山市| 清丰县| 遵义县| 贞丰县| 衡阳市| 赫章县| 香河县| 琼中| 嘉鱼县| 化州市| 邵阳县| 鸡西市| 綦江县| 汉沽区| 石楼县| 特克斯县| 常山县| 贞丰县| 荣昌县| 周宁县| 潢川县| 广水市| 长子县| 博客| 万荣县| 耿马| 青神县| 惠安县| 鹤岗市| 肃宁县| 茌平县| 肃宁县| 南康市| 衡山县| 海城市| 芮城县| 池州市| 舟山市| 资源县|