必威电竞|足球世界杯竞猜平台

關系模型
來源:互聯網

關系模型由關系數據結構、關系操作集合和關系完整性約束3部分組成。關系模型的數據結構非常簡單,只包含單一的數據結構:關系。關系用二維表結構來表示各類實體及實體間的聯系,二維表由行和列組成。一個關系數據庫由多張二維表組成。

關系模型是建立在嚴格的數學概念基礎上的。給定一組域(域是值的集合)D1、D2 、……、Dn,這組域中可以有相同域,則其勒內·笛卡爾乘積 D1 × D2 ×…… × Dn 的子集可以構成一張二維表,稱為一個關系,也稱作表。n為關系的目或度。表中各列名必須唯一,稱為屬性名;唯一確定一個元組的屬性組稱為候選碼;若一個關系有多個候選碼,則選定其中一個為主碼;一個元組中的某一屬性值稱為一個分量,關系的每一個分量,必須是不可分的數據項。

簡介

關系模型是1970年由E. F. Codd提出的。

它和層次、網狀模型相比,有以下特點:

1.數據結構簡單(二維表格)

2.扎實的理論基礎。

a.關系運算理論

b.關系模式設計理論

定義

網狀數據庫和層次數據庫已經很好地解決了數據的集中和共享問題,但是在數據獨立性和抽象級別上仍有很大欠缺。用戶在對這兩種數據庫進行存取時,仍然需要明確數據的存儲結構,指出存取路徑。而后來出現的關系數據庫較好地解決了這些問題。關系數據庫理論出現于60年代末到70年代初。1970年,IBM的研究員E. F. Codd博士發表《大型共享數據銀行的關系模型》一文提出了關系模型的概念。后來Codd又陸續發表多篇文章,奠定了關系數據庫的基礎。關系模型有嚴格的數學基礎,抽象級別比較高,而且簡單清晰,便于理解和使用。但是當時也有人認為關系模型是理想化的數據模型,用來實現DBMS是不現實的,尤其擔心關系數據庫的性能難以接受,更有人視其為當時正在進行中的網狀數據庫規范化工作的嚴重威脅。為了促進對問題的理解,1974年ACM牽頭組織了一次研討會,會上開展了一場分別以Codd和Bachman為首的支持和反對關系數據庫兩派之間的辯論。這次著名的辯論推動了關系數據庫的發展,使其最終成為現代數據庫產品的主流。

關系數據模型提供了關系操作的特點和功能要求,但不對DBMS的語言給出具體的語法要求。對關系數據庫的操作是高度非過程化的,用戶不需要指出特殊的存取路徑,路徑的選擇由DBMS的優化機制來完成。Codd在70年代初期的論文論述了范式理論和衡量關系系統的12條標準,用數學理論奠定了關系數據庫的基礎。Codd博士也以其對關系數據庫的卓越貢獻獲得了1981年ACM圖靈獎。

關系數據模型是以集合論中的關系概念為基礎發展起來的。關系模型中無論是實體還是實體間的聯系均由單一的結構類型——關系來表示。在實際的關系數據庫中的關系也稱表。一個關系數據庫就是由若干個表組成。

基本術語

關系模型的基本術語共有十三個,它們分別是:

1、關系:一個關系對應著一個二維表,二維表就是關系名。

2、屬性和值域:在二維表中的列,稱為屬性。屬性的個數稱為關系的元或度。列的值稱為屬性值;屬性值的取值范圍為值域。

3、關系模式:在二維表中的行定義,即對關系的描述稱為關系模式

4、元組:在二維表中的一行,稱為一個元組。

5、分量:元組中的一個屬性值

6、鍵或者碼:如果在一個關系中存在這樣的一個屬性,使得在該關系的任何一個關系狀態中的兩個元組,在該屬性上的值的組合都不同,即這些屬性的值都能夠用來唯一標識該關系的元組,則稱這些屬性為該關系的鍵或者碼。

7、超鍵或者超碼:如果在關系的一個鍵中移去某個屬性,它仍然是這個關系的鍵,則稱這樣的鍵為關系的超鍵或者超碼。

8、候選鍵或者候選碼:如果在關系的一個鍵中不能移去任何一個屬性,否則它就不是這個關系的鍵,則稱這個被指定的候選鍵為該關系的候選鍵或者候選碼。

9、主鍵或者主碼:在一個關系的若干候選鍵中指定一個用來唯一標識該關系的元組,則稱這個被指定的候選鍵為該關系的主鍵或者主碼。

10、全鍵或者全碼:一個關系模式中的所有屬性的集合。

11、主屬性和非主屬性:關系中包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何一個候選鍵中的屬性為非主屬性。

12、外鍵或者外碼:關系中的某個屬性雖然不是這個關系的主鍵,或者只是主鍵的,但它卻是另外一個關系的主鍵時,則稱之為外鍵或者外碼。

13、參照關系與被參照關系:是指以外鍵相互聯系的兩個關系,可以相互轉化。

二維表格

關系模型中,字段稱為屬性,字段值稱為屬性值,記錄類型稱為關系模型。關系模式名是R。記錄稱為元組,元組的集合稱為關系或實例。一般用大寫字母A、B、C、……表示單個屬性,用小寫字母表示屬性值。關系中屬性的個數稱為“元數”,元組的個數稱為“基數”。例子的關系元數為5,基數為2。有時也稱關系為表格,元組為行,屬性為列。

鍵,又稱碼,由一個或幾個屬性組成,分為以下幾種:

a.超鍵:如果在關系的一個鍵中移除某個屬性,它仍然是這個關系的鍵,則這樣的鍵成為超鍵。

b.候選鍵:不含多余屬性的超鍵稱為候選鍵。即在候選鍵中,若要再刪除屬性,就不是超鍵了。

c.主鍵:用戶選作元組標識的一個候選鍵稱為主鍵。一般情況下,鍵指主鍵。

關系的定義和性質

關系是個元數為K(K>=1)的元組的集合。

關系是一種規范化的表格,他有以下限制:

a.關系中的每一個屬性值都是不可分解的。

b.關系中不允許出現相同的元組。

c.關系中不考慮元組之間的順序。

d. 元組中屬性也是無序的。

關系模式、關系子模式和存儲模式

關系模型中,概念模式是關系模式的集合,外模式是關系子模式的集合,內模式是存儲模式的集合。

1.關系模式

關系模式實際就是記錄類型,包括:模式名、屬性名、值域名及模式的主鍵。他不涉及物理存儲方面的描述,只是對數據特性的描述。

2.關系子模式

子模式是用戶所用到的那部分數據的描述。除了指出用戶的數據外,還應指出模式和子模式之間的對應性。中國。網管聯盟

3. 存儲模式

關系存儲時的基本組織方式是文件,元組是文件中的記錄。由于關系模式有鍵,因此存儲一個關系能用散列方法或索引方法實現。

關系模型的三類完整性規則

1.實體完整性規則

這條規則需求關系中元組在組成主鍵的屬性上不能有空值。如有空值,那么主鍵值就起不了唯一標識元組的作用。

2.參照完整性規則

如果屬性集K是關系模式R1的主鍵,K也是關系模式R2的外鍵,那么在R2的關系中,K的取值只允許有兩種可能,或為空值,或等于R1關系中某個主鍵值。

使用時應注意:

a.外鍵和相對應的主鍵能不同名,只要定義在相同的值域上即可。

b.R1和R2也能是同一個關系模式,表示了屬性之間的聯系。

c. 外鍵值是否允許為空,應視具體問題而定。

3.用戶定義的完整性規則

這是針對具體數據的約束條件,由應用環境而定。

關系模型的形式定義

一、三個組成部分:數據結構、數據操作和完整性規則。

1.關系模型的基本數據結構就是關系。

2.關系運算分為關系代數和關系演算。

3.關系模型的三類完整性規則。

二、關系代數

關系數據庫的數據操作分為查詢和更新兩類。查詢語句用于各種檢索操作,更新操作用于插入、刪除和修改等操作。

關系查詢語言根據其理論基礎的不同分成兩大類:

1.關系代數語言:查詢操作是以集合操作為基礎運算的DML語言。

2.關系演算語言:查詢操作是以謂詞演算為基礎運算的DML語言。

關系代數的五個基本運算

關系代數是以關系為運算對象的一組高級運算的集合。關系定義為元數相同的元組的集合。集合中的元素為元組,關系代數中的操作可分為兩類:

傳統的集合操作:并、差、交、勒內·笛卡爾積。

擴充的關系操作:投影,選擇,聯接和自然聯接,除。

1.并

設有兩個關系R和S具有相同的關系模式,R和S的并是由屬于R和S的元組構成的集合,記為R∪S。

注意:R和S的元數相同。中國網管聯盟

2.差

設有兩個關系R和S具有相同的關系模式,R和S的差是由屬于R但不屬于S的元組構成的集合,記為R-S。

注意:R和S的元數相同。

3.笛卡爾積

設關系R和S的元數分別為r和s。定義R和S的笛卡爾積是個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自S的一個元組,記為R×S。

若R有M個元組,S有n個元組,則R×S 有m×n個元組。

4.選擇

從關系中找出滿足給定條件的所有元組稱為選擇。其中的條件是以邏輯表達式給出的,該邏輯表達式的值為真的元組被選取。這是從行的角度進行的運算,即水平方向抽取元組。經過選擇運算得到的結果能形成新的關系,其關系模式不變,但其中元組的數目小于或等于原來的關系中的元組的個數,他是原關系的一個子集

記為: δF(R)≡{t?t屬于R∧F(t)=true}

5.投影

從關系中挑選若干屬性組成的新的關系稱為投影。這是從列的角度進行運算。經過投影運算能得到一個新關系,其關系所包含的屬性個數往往比原關系少,或屬性的排列順序不同。如果新關系中包含重復元組,則要刪除重復元組。中國網管論壇

記為:∏A(R)={t[A] ?t屬于R} A為R中的屬性列。

例如: ∏3,1(R)

關系代數的四個組合操作

1.交

關系R和S的交是由屬于R又屬于S的元組構成的集合,記為R∩S。R和S需求定義在相同的關系模式上。

R∩S≡ {t?t屬于R∧t屬于S},R和S的元數相同。

2.聯接

聯接有兩種:θ聯接和F聯接(θ是算術比較符,F是公式)。

⑴ θ聯接

θ聯接是從關系R和S的勒內·笛卡爾積中選取屬性值滿足某一θ操作的元組,記為:

R?×i θj?S,這里i和j 分別是關系R和S中第 i個、第j個屬性的序號。

R?×i θj?S≡ δi θ (r+j)( R×S )

如果θ是等號“=”,該聯接操作稱為“等值聯接”。

⑵F聯接

F聯接操作是從關系R和S的笛卡爾積中選取屬性值滿足某一公式F的元組,記為:

R?×F?S,這里的F是形為F1∧F2∧…∧Fn的公式,每一個f都是形為i θj的式子,而i和j 分別是關系R和S中第 i個、第j個屬性的序號。

中國網管聯盟

3.自然聯接

兩個關系R和S的自然聯接用R?×?S表示。具體計算過程如下:

①計算R×S

②設R和S的公共屬性是A1,……,Ak,挑選R×S中滿足R .A1=S.A1,……,R.Ak=S.Ak的那些元組

③去掉S.A1,……, S.Ak的這些列。

如果兩個關系中沒有公共屬性,那么其自然聯接就轉化為笛卡爾積操作。

4.除法

給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y和S中的Y能有不同的屬性名,但必須出自相同的域集。R和S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性上的投影:元組在X上分量值x的象集YX包含S在Y上投影的集合。

關系代數表達式及其應用實例

在關系代數運算中,把由五個基本操作經過有限次復合的式子稱為關系代數表達式。這種表達式的結果仍然是個關系。能使用關系代數表達式表示各種數據查詢操作。

例題:設教學庫中有三個關系:

學生關系S(S#,SNAME,AGE,SEX)

學習關系SC(S#,C#,GRADE)

課程關系C(C#,CNAME,TEACHER)

下面用關系代數表達式表達各個查詢語句

1.檢索學習課程號為C2的學生學號和成績。

2.檢索學習課程號為C2的學生學號和姓名。

3.檢索選修課程名為MATHS的學生學號和姓名。

4.檢索選修課程號為C2或C4的學生學號。

5.檢索至少選修課程號為C2或C4的學生學號。

6.檢索不學C2課的學生姓名有年齡。

7.檢索學習全部課程的學生姓名。

1. ∏S#,GRADE(δC#=‘C2’(SC))

或∏1,3(δ2=‘C2’

參考資料 >

生活家百科家居網