第3章 關系模型的基本概念
3.1 關系的定義與性質
3.1.1 關系的定義
域(Domain):是值的集合
笛卡爾積(Cartesian Product):集合中各元素之間一切可能的匹配組合構成的集合。
笛卡爾積中包含元組(Tuple)。元組個數稱為笛卡爾積的基數(Cardinality)。元組由元組分量組成,元組分量是元組的值。參與笛卡爾積的域的個數,稱為元數(Arity)或度。
關系:也稱為關系模式的一個實例。
域中的任一個元素稱為關系中的一個元組。
3.1.2 鍵(Key):即關鍵字
超鍵(Super Key):在一個關系中能夠唯一標識元組的屬性組合
候選鍵(Candidate Key):不含多余屬性的超鍵
主鍵(Primary Key):用戶選做元組標識的那個候選鍵
外鍵(Foreign Key):關系R中某個屬性組合A不是關系R的候選鍵,而是關系S的候選鍵,則稱A為R的外鍵
3.1.3 關系的性質
關系中的每個元組分量必須是原子的
關系中不允許出現相同的元組
定義一個關系模式時可隨意指定屬性的排列次序
在一個關系中元組的排列次序可任意交換
關系模式相對穩定,關系實例則隨時間的推移而不斷地變化
3.2 關系模型
3.2.1 從ER圖導出關系模型數據結構
兩實體集間1:N聯系
將“1”方關系的“主鍵”納入“N”方關系中作為“外鍵”,同時把聯系的屬性也一起納入“N”方關系中。
兩實體集間M:N聯系
將“聯系”單獨建立一個關系,需要把聯系關聯的雙方實體的“主鍵”納入到“聯系”的關系中作為“主鍵”和“外鍵”。
兩實體集間1:1聯系
“聯系”不單獨建立關系,將其中一個實體集的主鍵納入另一個實體集作為外鍵。
“聯系”單獨建立關系,將兩個實體集的主鍵都納入關系中作為主鍵和外鍵。
同一實體集內各實體間1:N聯系
在實體集內增加一個屬性,用來表示與當前實體相聯系的另一個實體的“主鍵”
同一實體集內各實體間M:N聯系
“聯系”單獨建立關系,將相互聯系的雙方實體的“主鍵”都納入到關系中。
多個實體集間M:N多元聯系
“聯系”單獨建立關系,將相互聯系的所有實體的“主鍵”都納入到關系中。
3.2.2 關系模型的體系結構
關系概念模式
由若干個關系模式組成的集合,它描述關系數據庫中全部數據的整體邏輯結構。
關系外模式
關系外模式是關系概念模式的一個邏輯子集。描述關系數據庫中數據的局部邏輯結構。
關系概念模式與關系外模式之間的映射在外模式中描述。
在關系數據庫中,一個用戶可以使用的全部的“表”和“虛表”構成這個用戶的數據視圖,視圖中所有“表”和“虛表”的框架組成數據庫的外模式。
系統把“虛表”的定義存儲在數據字典中。
關系內模式
關系存儲時的基本組織方式是文件,關系中的元組對應文件中的記錄。
關系概念模式和關系內模式之間的映射在內模式中描述。
3.2.3 關系模型的三類完整性約束規則
實體完整性約束規則
關系中不允許出現相同的元組,在組成主鍵的屬性上也不允許取空值
參照完整性約束規則
不能引用不存在的實體,又稱為引用完整性
用戶定義的完整性約束規則
針對某些具體數據的約束規則,主要是保證數據的語義要求。
3.2.4 關系模型的形式定義
關系模型是一種結構數據模型,是能夠在計算機中真正實現的模型,有著嚴格的形式化定義。
關系模型的組成
數據結構:數據的表達方式和數據聯系的實現方式。
數據操作:檢索和更新(即插入、刪除和修改)兩大類操作。
數據完整性約束:給出數據及聯系的制約與依賴規則,保證數據的正確性。
3.3 關系數據語言
3.3.1 關系數據描述語言(DDL)
問答式DDL
通過人機對話建立關系模式,簡單易學,但是人工干預多,速度慢。
語言描述式DDL
使用源語句描述定義關系模式的內容,再編譯成目標模式。
3.3.2 關系數據操縱語言(DML)
DML的特點
操作對象與操作結果都是關系
語言完備性及非過程性
語言所提供的運算(或操作)可以存取數據庫中的任何數據及數據間的聯系信息。
關系代數和關系演算都是衡量關系數據庫語言完備性的標準
用戶在編寫應用程序時,只需要提出“做什么”,不需要說明“怎么做”,就稱這種語言的非過程性級別高。
語言建立在嚴密的數學理論基礎上
用關系代數運算表達查詢,查詢以集合理論為基礎
用關系演算公式表達查詢,查詢以數理邏輯謂詞演算為基礎
3.3.3 標準數據庫語言SQL
SQL介紹
SQL是一種介于關系代數與關系演算之間的語言
SQL是已經被認可的標準數據庫語言
備注:
《數據庫技術基礎與應用(第2版)》的豆瓣鏈接https://book.douban.com/subject/2995584/