關於關係數據庫的一些概念 | 數據庫知識點整理

第2章 關係數據庫(重點)

瞭解:關係數據結構及形式化定義、關係操作、關係的完整性、關係代數

掌握

  • 關係模型的三個組成部分及各部分所包括的主要內容
  • 關係數據結構及其形式化定義
  • 關係的三類完整性約束
  • 關係代數及其運算,包括並、交、差、選擇、投影、連接、除、廣義笛卡兒積

知識點

關係模型三個組成部分

  • 關係數據結構
  • 關係操作集合
  • 關係完整性約束
    • 實體完整性規則:若屬性A是基本關係R的主屬性,則屬性A不能取空值參照完整性規則:若屬性(或屬性組)F是基本關係R的外碼它與基本關係S的主碼Ks相對應(基本關係R和S不一定是不同的關係),則對於R中每個元組在F上的值必須爲:
      • 或者取空值(F的每個屬性值均爲空值)
      • 或者等於S中某個元組的主碼值
    • 用戶定義的完整性:針對某一具體關係數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求

關係數據語言的特點和分類

  • 關係代數語言
  • 關係演算語言
  • 具有關係代數和關係演算雙重特點的語言

域、笛卡兒積、關係、元組、屬性

  • 域:域是一組具有相同數據類型的值的集合
  • 笛卡兒積:D1*D2*…*Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
  • 關係:在域D1,D2,…,Dn上笛卡兒積D1*D2*…*Dn的子集,表示爲R(D1,D2,…,Dn)
  • 元組:關係中的每個元素是關係中的元組
  • 屬性:關係也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由於域可以相同,爲了加以區分,對每列起一個名字,稱爲屬性

候選碼、主碼、外碼

  • 候選碼:若關係中的某一屬性組的值能唯一地標識一個元組,而其子集不能,則稱該屬性組爲候選碼(candidate key)
  • 主碼:若一個關係有多個候選碼,選定其中一個爲主碼(primary key)
  • 外碼:設F是基本關係R的一個或一組屬性,但不是關係R的碼,如果F與基本關係S的主碼Ks相對應,則稱F是基本關係R的外部碼(foreign key),簡稱外碼

關係模式、關係、關係數據庫

  • 關係模式:關係的描述稱爲關係模式(relation schema),
  • 關係模式形式化表示爲R(U,D,DOM,F)。R爲關係名,U爲組成該關係的屬性名集合,D爲屬性組U中屬性來自的域,DOM爲屬性向域的映像集合,F爲屬性間數據的依賴關係集合關係:在域D1,D2,…,Dn上笛卡兒積D1*D2*…*Dn的子集,表示爲R(D1,D2,…,Dn)
    • 關係是關係模式在某一時刻的狀態或內容
    關係數據庫:關係數據庫也有型和值之分。
    • 關係數據庫的型:稱爲關係數據庫模式,是對關係數據庫的描述,它包括若干域的定義以及在這些域上定義的若干關係模式。
    • 關係數據庫的值:是這些關係模式在某一時刻對應的關係的集合,通常就稱爲關係數據庫。

關係模式和關係的區別

  • 關係模式是型;關係是值,是關係模式的實例

關係模型的完整性規則

  • 實體完整性規則:若屬性A是基本關係R的主屬性,則屬性A不能取空值參照完整性規則:若屬性(或屬性組)F是基本關係R的外碼它與基本關係S的主碼Ks相對應(基本關係R和S不一定是不同的關係),則對於R中每個元組在F上的值必須爲:
    • 或者取空值(F的每個屬性值均爲空值)
    • 或者等於S中某個元組的主碼值
  • 用戶定義的完整性:針對某一具體關係數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求

用關係代數完成查詢


設有一個SPJ數據庫,包括S,P,J,SPJ四個關係模式:

S( SNO,SNAME,STATUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY);

供應商表S由供應商代碼(SNO)、供應商姓名(SNAME)、供應商狀態(STATUS)、供應商所在城市(CITY)組成;零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成;供應情況表SPJ由供應商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應數量(QTY)組成,表示某供應商供應某種零件給某工程項目的數量爲QTY。

  • 求供應工程J1零件的供應商號碼SNO:

  • 求供應工程J1零件P1的供應商號碼SNO:

  • 求供應工程J1零件爲紅色的供應商號碼SNO:

  • 求沒有使用天津供應商生產的紅色零件的工程號JNO:

  • 求至少用了供應商S1所供應的全部零件的工程號JNO:

等值連接與自然連接區別和聯繫

  • 自然連接是一種特殊的等值連接,它要求兩個關係中進行比較分量,即連接屬性必須是相同的屬性組,並且要在結果中去掉其中一個的重複屬性

代數運算,用基本運算表示其他運算

 

    • 基本運算
      • 【並】:RUS仍爲n目關係,由屬於R或屬於S的元組組成
      • 【差】:R-S仍爲n目關係,由屬於R而不屬於S的所有元組組成
      • 【笛卡兒積】(全排列組合):R*S列:(n+m)列元組的集合,元組的前n列是關係R的一個元組,後m列是關係S的一個元組,行:k1*k2各元組【投影】:從R中選擇出若干屬性列組成新的關係
        • πA(R) = { t[A] | t∈R }
        • 例:查詢學生的姓名和所在系,即求Student關係上學生姓名和所在系兩個屬性上的投影 πSname,Sdept(Student)
        【選擇】:在關係R中選擇滿足給定條件的諸元組
        • σF(R) = {t|t∈R∧F(t)= '真'} F:選擇條件,是一個
        • 例:查詢信息系(IS系)全體學生 σSdept = 'IS' (Student)
      其他運算
      • 【交】:RnS仍爲n目關係,由既屬於R又屬於S的元組組成

      • 【連接】:從兩個關係的笛卡兒積中選取屬性間滿足一定條件的元組

      • 【除】:給定關係R(X,Y) 和S(Y,Z),其中X,Y,Z爲屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關係P(X),P是R中滿足下列條件的元組在 X 屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合,R÷S = {tr[X] | tr∈R ∧ πY(S) 真包含於 Yx }

補充

關於關係模型

      • 一個關係至少要有一個候選碼
      • 行、列的次序可以任意交換
      • 一個列的值只能來自一個域
      • 不同的列應有不同的列名
      • 一個碼是【可有多個或者一個其值能夠唯一表示該關係模式中任何元組的屬性組成】
      • 實體以及實體之間的聯繫都可以使用相同的結構類型來表示
      • 非主屬性不可能出現在任何候選碼中
    • 候選碼都可以唯一地標識一個元組
    • 關係操作中,操作的對象和結果都是【集合】
    • “性別”屬性要求只能取“男”/“女”,這屬於【用戶定義的完整性】
    • 兩個關係R(A,B,C)和S(B,C,D)自然連接,得到結果包含【4】列
    • 在左外連接中,保留的是左邊關係中所有的元組
    • 在關係模型中,關係操作包括【查詢】【插入】【修改】【刪除】
    • 關係模型包括8種查詢操作,【並】【笛卡兒積】【選擇】【投影】【差】是基本操作
    • 職工([職工號],姓名,年齡,部門號)和部門([部門號],部門名稱)存在引用關係,其中【職工】是參照關係,【部門號】是外碼
    • 候選碼和主碼的關係
      • 若關係中的某一屬性組的值能唯一標識一個元組,該屬性組稱爲候選碼
      • 如果一個關係有多個候選碼,其中一個被選爲主碼
      • 候選碼可以有多個,主碼是其中的一個
    • 什麼是關係完備性?關係演算在語言表達能力上是完備的嗎?
      • 關係完備性是指一個查詢語言能夠表示關係代數可以表示的所有查詢。
      • 關係演算具有完備的表達能力
    • 現有如下關係:患者(患者編號,患者姓名,性別,出生日起,所在單位);醫療(患者編號,患者姓名,醫生編號,醫生姓名,診斷日期,診斷結果)其中,醫療關係中的外碼是【醫生編號和患者編號】
    • 現有一個關係:借閱(書號,書名,庫存數,讀者號,借期,還期),假如同一本書允許一個讀者多次借閱,但不能同時對一種書借多本,則該關係模式的外碼是【書號+讀者號+借期】
    • 關係模型中實現實體間 N:M 聯繫是通過增加一個【關係】實現
    • 關係代數運算是以【集合運算】爲基礎的運算
    • 關係數據庫管理系統應能實現的專門關係運算包括【選擇、投影、連接】
    • 五種基本關係代數運算是【∪ - × σ π】
    • 關係代數表達式的優化策略中,首先要做的是【儘早執行選擇運算】
    • 關係數據庫中的投影操作是指從關係中【抽出特定字段】
    • 從一個數據庫文件中取出滿足某個條件的所有記錄形成一個新的數據庫文件的操作是【選擇】操作
    • 關係代數中的連接操作是由【選擇和笛卡爾積】操作組合而成
    • 自然連接是構成新關係的有效方法。一般情況下,當對關係R和S是用自然連接時,要求R和S含有一個或者多個共有的【屬性】
    • 假設有關係R和S,在下列的關係運算中,【R×S】運算不要求:“R和S具有相同的元數,且它們的對應屬性的數據類型也相同”
    • 假設有關係R和S,關係代數表達式R-(R-S)表示的是【R∩S】
    • 有關係SC(S_ID,C_ID,AGE,SCORE),查找年齡大於22歲的學生的學號和分數,正確的關係代數表達式是【πS_ID,SCORE (σ age>22 (SC) ) 】【πS_ID,SCORE (σ age>22 (πS_ID,SCORE,AGE (SC) ) ) 】
    • 下面四個關係表達式是等價的,是判別它們的執行效率【E3最快】
      E1 =πA (σ B=C ∧ D=E′ (R×S) )E2 =πA (σ B=C (R× σD=E′ (S) )E3 =πA (R∞B=CσD=E′(S) )E4 =πA (σD=E′ (R∞B=C S) )
    • 綜合題


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