天天看點

資料庫筆記(關系資料庫相關)資料庫筆記(關系資料庫相關)

資料庫筆記(關系資料庫相關)

1. 關系資料庫基本概念

關系資料庫由被稱為關系(Relation)的表格組成。關系中的每一個列被稱為屬性(Attribution),每一行被稱為一條記錄(Record)。每一個存儲了實際資料的關系被稱為關系執行個體(Relation Instance)

在關系的屬性中,每一條記錄的某個屬性被限制在某個特定的資料類型上,這個類型被稱為屬性的域(Domain)。每一個屬性隻允許輸入一個值,即不允許一條記錄上的一個屬性上對應複數個值,這個特性被稱為原子性(Atomic)

關系資料庫允許關系中的屬性留白,此時屬性可填入空值(Null)來表示該屬性的值未知或是不存在。

2. 關系模式表示

表示一個關系模式需要包含模式名、屬性名。關系模式具體表示執行個體如下,該語句表示一個名為dpartment的關系:

3. 鍵

3.1 超鍵

當一個或一組屬性能夠唯一的辨別一組資料的時候,這個或這組屬性被稱為超鍵。超鍵的嚴格定義是:在關系R中,對于兩組不同的資料t1和t2,t1的超鍵k1與t2的超鍵k2必須滿足k1不等于k2。

注意到超鍵的定義,有以下幾點注意:

  1. 超鍵可以是一個屬性,也可以是一組屬性。
  2. 對于存在多個屬性的超鍵,雖然超鍵用于辨別資料,但超鍵不能保證每一個屬性都對于辨別資料有着作用,即超鍵的子集不能保證也是超鍵。
  3. 不同的資料的超鍵不允許都相同,但相同資料卻不能保證它們超鍵中的每一個屬性都是相同的。

3.2 候選鍵

若超鍵K的任何子集都不是是超鍵,則該鍵被稱為候選鍵。候選鍵可以說是關系中某些超鍵子集中最小的超鍵。注意到候選鍵的定義,一個關系模式是允許出現多個候選鍵的。

3.3 主鍵

資料庫設計者要在在多個候選鍵中選擇一個作為辨別一組資料的候選鍵。被設計者使用的這個候選鍵叫做主鍵。

在選擇主鍵時,設計者需要估計這些屬性可以唯一地表示某個實體或資料。對于一些屬性,若存在可能會存在使該屬性不滿足候選鍵條件的值或是值經常改動的的情況,則該屬性不應選做為主鍵。

一般主鍵在表示時會以下劃線标注。

3.4 外鍵

若關系r1存在某些屬性恰好是r2的主鍵,那麼這些屬性被稱為r1參照r2的外鍵。r1被稱為參照關系,r2被稱為被參照關系。另外,外鍵必須滿足參照完整性限制,即參照關系中的外鍵的所有值必須在也在被參照關系中對應的主鍵出現。對于外鍵有以下幾點注意:

1. 參照關系和被參照關系不能颠倒,這種關聯是單項關聯。外鍵的關聯倒轉是不成立的。

2. 參照關系中外鍵中的值必須在被參照關系中出現,但被參照關系的對應主鍵的值可以出現參照關系外鍵不出現的值。(這也是為什麼上一條不成立)

3. 雖然外鍵是被參照關系的主鍵,但參照關系中外鍵可以不唯一,即可以出現多個相同外鍵但其他值卻不同。

4 資料庫模式圖

資料庫模式圖描述了資料庫的模式設計。它包括了各種關系、屬性、主鍵以及外鍵與其造成的依賴關系。在該圖中,每個方框的頂部為關系名,其下部為該關系的所有屬性。被下劃線标注的屬性為關系的主鍵。外鍵由一個箭頭表示,箭頭從參照關系的外鍵指向被參照關系的主鍵。其效果如圖所示。

(img)

5 關系運算

  • 選擇運算:一進制運算,傳回關系中滿足某種條件的行。
  • 投影運算:一進制運算,傳回關系中某一列或某幾列的資料
  • 笛卡兒積:二進制運算,傳回兩個關系行的所有可能的排列組合所形成的關系。
  • 自然連接配接:二進制異能算,其結果是兩個關系進行笛卡兒積運算,将關系中相同名字的屬性的值相同的行進行選擇運算,再将這些相同名字的屬性合并為一列。該運算一般用于将兩個存在外鍵依賴的關系進行合并。
  • 聯合:二進制運算,将兩個結構相同的關系的行合并。
下一篇: #crush❤️