1. 程式人生 > 其它 >dbsc 第二章 關係資料庫

dbsc 第二章 關係資料庫

關係模型在邏輯層和檢視層描述資料,使得使用者不必關注儲存的底層細節,關係模型非常簡潔

2.1 關係模型的結構

  • 由於一個中的一行代表了一組值之間的一種聯絡,表就是這種聯絡的一個集合,表這個概念和數學上的關係這個概念聯絡密切。
  • n元組表示一個具有n個屬性的tuple,關係用來指代元組用來指代屬性是指行中的
  • 關係例項用來表示一個關係的特定例項
  • 是指一個屬性允許取值的集合
  • 如果一個屬性是不可拆分的,那麼它就是原子的
  • 空(null)很難處理,應該儘量比避免使用空值

2.2 資料庫模式

  • 關係對應於程式設計語言中的變數
  • 關係模式對應於程式設計語言中變數的型別,關係模式由屬性序列以及各屬性對應域組成
  • 關係例項對應於程式設計語言中變數的值
  • 在關係模型中,使用相同的屬性是將不同關係的元組聯絡起來的一個方法

2.3 碼

  • 超碼是一個或多個屬性的集合,這些屬性的組合可以使我們在一個關係中唯一標識一個元組
  • 超碼的任意超集也是超碼,而候選碼是指任意真子集都不能成為超碼的超碼,也就是最小超碼
  • 我們用主碼來說代表被資料庫設計者選中的,主要用來在一個關係種區分不同元組的候選碼。代表了被建模的事物在現實世界的約束。
  • 一個關係模式r1可能在它的屬性種包括另外一個關係模式r2的主碼。這個屬性被稱作參照r2的外碼,關係r1也被稱為外碼依賴的參照關係,r2被叫做外碼的被參照關係
  • 參照完整性約束是指,在參照關係中任意元組在特定屬性上的取值必然等於被參照關係中某個元組在特定屬性上的取值。

2.4 模式圖

2.5 關係查詢語言

  • 實際使用的查詢語言既包含過程化方式的成分,又包含非過程方式的成分。在一些“純”查詢語言,其中關係代數(Relational Algebra)是過程化的,關係代數是指一個運算的集合,這些運算以一個或兩個關係為輸入,產生一個新的關係作為結果;元組關係演算和域關係演算(tuple relational calculus and domain relational calculus)是非過程化的,關係演算使用謂詞邏輯來定義所需的結果,但不需要給出獲取結果的特定代數過程

2.6 關係運算(Relational Algebra)

  • Relational Algebra
    一般施加於單個關係或者一對關係上,結果總是單個關係
  • 自然連線是指從兩個輸入關係中輸出所有的元組對:它們在具有相同名字的所有屬性上取值相同

2.7 總結