MOOC 數據庫筆記(三):關係模型之基本概念

關係模型的基本概念

關係模型簡述

1.最早由E.F.Codd在1970年提出。
2.是從表(Table)及表的處理方式中抽象出來的,是在對傳統表及其操作進行數學化嚴格定義的基礎上,引入集合理論與邏輯學理論提出的。
3.是數據庫的三大經典模型之一,現在大多數數據庫系統仍然使用關係數據模型。
4.標準的數據庫語言(SQL語言)是建立在關係模型基礎之上的,數據庫領域的衆多理論也都是建立在關係模型基礎之上的。

關係模型研究什麼

1.我們把關係(relation)都抽象成了一個一個Table。
2.關係模型就是處理Table的,它由三個部分組成:
①描述DB各種數據的基本結構形式(Table/relation)
②描述Table與Table之間所可能發生的各種操作(關係運算)
③描述這些操作所應遵循的約束條件(完整性約束)

關係模型的三個要素

①基本結構:Relation/Table
②基本操作:Relation Operator(例如:交∩、並∪、差-、投影π等等)
③完整性約束:實體完整性、參照完整性和用戶自定義完整性。

關於關係運算

關係運算:關係代數和關係演算:關係演算:元組演算和域演算。
詳見下週博客(可能)

關係的數學描述

首先定義列的取值範圍“域(Domain)”

域(Domain)

1.一組值的集合,這組值具有相同的數據類型。如整數的集合、字符串的集合、全體學生的集合
2.集合中元素的個數爲域的基數(Cardinality)

再定義“元組”及所有可能組合成的元組:笛卡爾積

笛卡爾積(Cartesian Product)

1.一組域D1,D2,......,Dn的笛卡爾積爲:
D1×D2×......×Dn={(d1,d2,.....,dn)|di∈Di,i=1....n}
2.笛卡爾積的每個元素(d1,d2,......,dn)稱作一個n-元組

元組(d1,d2,......,dn)的每一個值di叫做一個分量(component)
元組(d1,d2,......,dn)是從每一個域任取一個值所形成的一種組合,笛卡爾積是所有這種可能組合的集合,即:笛卡爾積是由n個域形成的所有可能的n-元組的集合
若Di的基數爲mi,則笛卡爾積的基數,即元組個數爲m1×m1×...×mn

由於笛卡爾積中的所有元組不都是有意義的,因此...

關係(Relation)

1.一組域D1,D2,......,Dn的笛卡爾積的子集
2.笛卡爾積中具有某一方面意義的那些元組被稱作一個關係(Relation)
由於關係的不同列可能來自同一個域,爲區分,需要爲每一列起一個名字,該名字即爲屬性名。
3.關係可用R(A1:D1,A2:D2,...,An:Dn)表示,可簡記爲R(A1,A2,...,An),這種描述被稱爲關係模式(Schema)或表標題(head)
4.R是關係的名字,Ai是屬性,Di是屬性所對應的域,n是關係的度或目(degree),關係中元組的數目稱爲關係的基數(Cardinality)
例如:家庭(丈夫:男人,妻子:女人,子女:兒童)或家庭(丈夫,妻子,子女)
5.關係模式R中屬性向域的映像在很多DBMS種一般直接說明爲屬性的類型、長度等。
例如:Student(S# char(8),Sname char(10),Ssex char(2),Sage integer,D# char(2),Sclass char(6))

關係模式與關係

1.同一關係模式下,可有很多的關係
2.關係模式是關係的結構,關係是關係模式在某一時刻的數據
3.關係模式是穩定的:而關係是某一時刻的值,是隨時間可能變化的

關係的特性及相關概念

1.列是同質的:即每一列中的分量來自同一個域,是同一類型的數據
2.不同的列可來自同一個域,稱其中的每一列爲一個屬性,不同的屬性要給予不同的屬性名。
3.列位置互換性(無關性)
4.行位置互換性(無關性)
5.理論上,關係的任意兩個元組不能完全相同。(集合的要求:集合內不能有相同的兩個元素);現實應用中,表(Table)可能並不完全遵守此特性。
(這也說明了關係和表並不是完全相同的)。
6.元組相同是指兩個元組的每個分量都相同。
7.屬性的不可再分特性:又被稱爲關係第一範式

關係上的一些重要概念

候選碼(Candidate Key)/候選鍵

關係中的一個屬性組,其值能唯一標識一個元組,若從該屬性組中去掉任何一個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。
候選碼不一定只有一個,候選碼也可能是多個屬性的集合。
例如學生表中學生的學號就是一個候選鍵。

主碼(Primary Key)/主鍵

當有多個候選碼時,可以選定一個作爲主碼。
DBMS以主碼爲主要線索管理關係中的各個元組。

主屬性與非主屬性

包含在任何一個候選碼中的屬性被稱作主屬性,而其他屬性被稱作非主屬性
最簡單的,候選碼只包含一個屬性。
最極端的,所有屬性構成這個關係的候選碼,稱爲全碼(All-Key)。

外碼(Foreign Key)/外鍵

關係R中的一個屬性組,它不是R的候選碼,但它與另一個關係S的候選碼相對應,則稱這個屬性組爲R的外碼或外鍵。
兩個關係通常是靠外碼連接起來的。

關係模型的完整性

實體完整性

關係的主碼中的屬性值不能爲空值。

空值:不知道、不存在或者無意義的值

數據庫中有了空值,會影響許多方面,如影響聚集函數運算的正確性,不能參加與算術、比較或邏輯運算等。
有空值的時候是需要特殊處理的,要特別注意。

參照完整性

一個關係的外碼一定要在該外碼多對應的關係的屬性範圍內。
一個關係的某一元組可以沒有外碼。

用戶自定義完整性

用戶針對具體的應用環境定義的完整性約束條件。
當有更新操作發生時,DBMS將自動安照完整性約束條件檢驗更新操作的正確性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章