天天看點

資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性

關系模型的組成

  • 描述DB各種資料的基本結構形式(Table/Relation)
  • 描述Table與Table之間可能發生的各種操作(關系運算)
  • 描述這些操作應當遵循的限制條件(完整性限制)

關系模型的三個要素

  • 基本結構:Relation/Table
  • 基本操作:Relation Operator (基本的:并、差、廣義積、選擇、投影;擴充的:交、連接配接、除)
  • 完整性限制:實體完整性、參照完整性、使用者自定義的完整性

關系運算

  • 分為關系代數和關系演算

關系演算

  • 分為元組演算(基于邏輯的運算,包括與或非等)和域演算(基于示例的運算)

關系代數

  • 基于集合的運算,即操作的對象及結果都是集合,是一次一集合的操作。而非關系型的資料操作通常是一次一記錄的操作。
    資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性

關系(Relation)

  • 首先定義 “列”的取值範圍“域(Domain)”
  • 再定義“元組”及所有可能組合成的元組:笛卡爾積
  • 一組域D1,D2,…,Dn的笛卡爾積的子集,
  • 笛卡兒積中具有某一方面意義的元組被稱作一個關系(Relation)

域(Domain)

  • 一組具有相同資料類型的值的集合,如整數的集合、字元串的集合、全體學生的集合
  • 集合中元素的個數稱為域的基數(Cardinality)

屬性名

  • 由于關系的不同列可能來自同一個域,為區分,需要為每一列起一個名字,該名字即為屬性名。
  • 資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性

笛卡爾積(Cartesian Product)

資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性
  • 可了解為:每一列的域值随機組合可能産生的所有結果。
  • 笛卡爾積的每個元素(d1,d2,d3,…,dn)稱作一個n-元組(n-tuple)。
  • 元組(d1,d2,d3,…,dn)的每一個值di都叫做分量(component)
  • 笛卡爾積是由n個域形成的所有可能的n-元組的集合。

關系模式(Schema)

  • 關系可用R(A 1 : D 1 , A2 : D 2 , … , A n : D n ) 表示,可簡記為R(A1 , A 2, … ,A n) ,這種描述又被稱為關系模式 (Schema)或表标題(head),A1 , A 2, … ,A n表示屬性名,很多時候D 1 , D 2 , … , D n 直接說明為屬性的類型、長度等,比如Student(S# char(8),Sname char(10))
  • R 是關系的名字, A i 是屬性, D i域 是屬性所對應的域, n 是關系的 “度” 或 “目”(degree), 關系中元組的數目稱為關系的基數 (Cardinality)

關系模式與關系

  • 同一關系模式下,可有很多的關系
  • 關系模式是關系的結構,關系是關系模式在某一時刻的資料
  • 關系模式是穩定的;而關系是某一時刻的值,是随時間可能變化的

關系的特性

  • 列是同質的:即每一列中的分量來自同一域,是同一類型的資料
  • 不同的列可來自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名
  • 關系和行列的位置無關
  • 理論上,關系的任意兩個元組不能完全相同。現實中,**表(Table)**可能并不完全遵守此特性。這也是關系和表的差別。
  • 屬性不可再分特性:又稱為關系第一範式
    資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性

候選碼(Candidate Key)/候選鍵

  • 關系中的一個屬性組,其值能唯一辨別一個元組,若從該屬性組中去掉任何一個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。比如學生的學号。有時關系中可以有多個候選碼

主碼(Primary Key)/主鍵

  • 當有多個候選碼時,可以標明一個作為主碼。
  • DBMS以主碼為主要線索管理關系中的各個元組。

主屬性和非主屬性

  • 包含在任何一個候選碼中的屬性被稱作主屬性,而其它屬性被稱作非主屬性。

外碼(Foreign Key)/外鍵

  • 關系R中的一個屬性組,它不是R的候選碼,但它與另一個關系S的候選碼相對應,則稱這個屬性組為R的外碼或外鍵。
  • 連接配接兩個關系的碼

關系與表的關系

  • 關系是對表的嚴格定義,二者是有差異的,關系是嚴格的數學含義,沒有重複的元組,而表可以有重複的元組,現實中的商用資料庫多以表來表達,而理論中多以關系來描述。
  • 關系
    • 域和域值:值的集合
    • 元組:每一個值的集合取一個元素,構成元組
    • 笛卡爾積:所有可能的元組
    • 表标題:對應關系模式
    • 列名與列值:列對應屬性、列值的範圍對應屬性值
    • 行/記錄:對應元組
      資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性

    關系模型中的完整性

    1.實體完整性

    • 關系中的主碼中的屬性值不能為空值
    • 空值:不知道、不存在或無意義的值
    • 有空值時需要特殊處理,要特别注意

    2.參照完整性

    • 如果關系R1的外碼Fk與關系R2的主碼Pk相對應,則R1中的每一個元組的Fk值或者等于R2中的某個元組的Pk值,或者為空值
    • 意義:如果關系R1的某個元組t1參照了關系R2的某個元組t2,則t2必須存在。即兩個關系必須是一一對應的,不能有缺失、錯誤

    3.使用者自定義完整性

    • 使用者針對具體的應用環境定義的完整性限制條件。比如限制性别僅為男女兩項。
    資料庫系統(上):模型與語言--第3講 關系模型之基本概念關系模型的組成關系模型的三個要素關系運算關系(Relation)關系模式(Schema)關系模式與關系關系的特性候選碼(Candidate Key)/候選鍵關系與表的關系關系模型中的完整性