02關係數據庫

  • 2.1關係數據結構及其形式化定義
    • 1970年E.F.Codd提出關係數據模型,關係數據庫之父.1972提出關係代數和關係演算爲sql奠定了基礎
    • 什麼是關係模型
      • 用二維表格表示實體集,用碼進行數據導航的數據模型稱爲關係模型
    • 關係模型的三要素
      • 關係數據結構
      • 關係操作
      • 關係的完整性
    • 2.1.1關係
      • 單一的數據結構--關係
      • 邏輯結構---二維表
      • 建立在集合代數的基礎上
        • 域:一組具有相同數據類型的值的集合
        • 笛卡爾積:所有的域所有的值的一個組合,不能重複
          • 笛卡爾積中的每一個元素叫作一個N元組或簡稱元組
          • 笛卡爾積元素中的每一個值叫作一個分量
          • D1*D2*DN=基數M
          • 笛卡爾積可表示一張二維錶行爲元組,列爲域
        • 關係:(由笛卡爾積子集)
          • D1*D2*D3*.....*Dn的子集叫作在域D1,D2,D3,Dn的關係表示爲 R(D1,D2,D3,Dn)
          • R:關係名 n:關係的目或度 (n個屬性)
          • 關係中的每個元素=元組,用t表示,n=1單元關係(1個屬性)
          • 關係是一個二維錶行爲元組,列爲域,列的名字爲屬性,n目關係必有n個屬性
          • 關係中的碼

            • 候選碼=主屬性.不包含在任何候選碼中的屬性爲非主屬性或非碼屬性
          • 三類關係
            • 基本關係(基本表/基表) 實際存在的表是存儲數據的邏輯表示
              • 列是同質的,不同列可出自同一個域,列行順序無所謂,任意兩個元組的候選碼不能相同,候選碼唯一標識一個元組,分量必取原子值不可表中表
            • 查詢表 查詢結果對應的表 虛表
            • 視圖表 基本表.其他視圖表導出的表 是虛表
    • 2.1.2關係模式
      • 1.什麼是關係模式
        • 關係模式是型(模子) 靜態的,穩定的
        • 關係是值 (零件) 動態的,隨時間不斷變化的 關係模式在某一時刻的狀態或內容
        • 關係模式是對關係的描述,兩者籠統稱爲關係
      • 2.定義關係模式

      • 3.關係模式與關係
        • sql的學生選修成績表 域名及屬性向域的映像常常直接說明爲屬性的類型長度

    • 2.1.3關係數據庫
      • 在一個給定的應用領域中,所有關係的集合構成一個關係數據庫(表的集合)
    • 2.1.4關係模型的存儲結構
      • 有的關係數據庫管理系統中一個表對應一個操作系統軟件,將物理數據組織交給操作系統完成
      • 有的關係數據庫管理系統從操作系統那裏申請若干個大的文件,子集劃分文件空間,組織表索引等存儲管理
  • 2.2關係操作
    • 常用操作
      • 查詢操作:選擇 投影 並 差 笛卡爾積連接 除 交
      • 數據更新 :插入 刪除 修改
      • 關係操作的特點:集合操作方式,操作的對象和結果都是集合,一次一集合
    • 具有關係代數和關係演算雙重特點的語言 :sql
  • 2.3關係的完整性約束
    • 2.3.1實體完整性
      • 若屬性A是基本關係R的屬性,則屬性A不能取空值 主屬性不能爲空 主屬性=候選碼 非主屬性:不包含在主碼中的屬性
      • 實體完整性規則是針對基本關係而言的,一個基本表通常對應現實世界的一個實體集
    • 2.3.2參照完整性
      • 1.關係間的引用
        • 在關係模型中實體及實體間的聯繫都是用關係來描述的,自然存在着關係與關係間的引用(單一的數據結構)
      • 2.外碼
        • 設F是基本關係R的一個或一組屬性,但不是關係R的碼.如果F與基本關係S的主碼ks相對應,則稱F是R的外碼
        • 基本關係R稱爲參照關係(有外碼)
        • 基本關係S稱爲被參照關係或目標關係(主碼被參照)
        • 在參照完整性規則中,R和S可以是同一個關係。
          • 在學生(學號,姓名,性別,年齡,專業號,班長)關係中,“學號”屬性是主鍵,“班長”屬性表示該學生所在班級的班長的學號,因此它應用的本關係“學號”屬性。按照參照完整性規則,“班長”屬性可以取以下兩類值:
          • (1)空值,表示該學生所在班級尚未選出班長。
          • (2)非空值,該值必須是本關係中某個元組的學號值,即某個當選班長的學生的學號值。
        • 主碼,外碼必須定義在同一個(或一組)域上
        • 外碼並不一定要與相應的主碼同名(外碼主碼屬於不同關係的時候,往往取相同名字便於識別)
      • 3.參照完整性規則
        • 若屬性或屬性組 F 是基本關係R 的外碼它與基本關係S的主碼Ks相對應(基本關係R和S不一定是不同的關係)則對於R中每個元組在F上的值必爲
        • 或者取空值(F的每個屬性值均爲空值) 或者等於S中某個元組的主碼值
        • 外碼所在的屬性列值等於主碼值或者爲空值
    • 2.3.3用戶定義的完整性
      • 數據滿足語義要求
      • 關係模型應提供定義和檢驗這類完整性的機制,以便使用統一的系統的方法以便用統一的系統的方法處理它們,而不需由應用程序承擔這一功能
  • 2.4關係代數
    • 關係代數運算

      • 關係代數是一種抽象的查詢語言,它用對關係的運算來表達查詢。運算對象結果都是關係。
      • 傳統的幾何運算是從關係的水平方向即行的角度進行
      • 專門的關係運算不僅涉及行而且涉及列
    • 四類運算符
      • 傳統

        • 並差交仍爲N目關係
        • 笛卡爾積:R:n目關係,K1個元組 S:m目關係,K2個元組
        • RxS 列:(n+m)列元組的集合 行:K1 x K2 個元組
      • 專門的關係運算符

        • 選擇運算是從關係R中選取使邏輯表達式F爲真的元組,從行的角度進行的運算

          • 例如查詢年齡小於20歲的學生 𝝈𝖲𝖺𝗀𝖾<20(Studengt) 總分,域中取值
        • 投影
          • 分總 由值尋域

          • 查詢學生的姓名和所在系,即求Student關係上學生姓名和所在系兩個屬性上的投影
            • π sname,sdept(Student)
        • 連接
          • 連接也稱爲θ連接

          • 兩類常用連接運算
            • 等值連接
              • θ爲=的連接運算稱爲等值連接
              • 從關係R與S的廣義笛卡爾積中選取A B屬性值相等的那些元組
            • 一般的連接從行的角度進行計算
            • 自然連接
              • 自然連接是一種特殊的等值連接
                • 兩個關係中進行比較的分量必須是相同的屬性組
                • 在結果中把重複的屬性列去掉
              • 關係中(即表中)相同屬性的做連接;橋接:至少三表連接
            • 自然連接取消重複列,同時從行和列角度進行計算
          • 懸浮元組(被捨棄的元組)
            • 兩個關係R和S在做自然連接時,關係R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被捨棄了,這些被捨棄的元組稱爲懸浮元組
            • 外連接:把懸浮組也保存在結果關係中,而在其他屬性上填空值就叫做外連接
              • 左外連接:只保留左邊關係R中的懸浮元組
              • 右外連接:只保留右邊關係S中的懸浮元組
        • 除運算
          • 象集Z

          • 除運算同時從行和列進行運算

          • 打卡網紅地帶入理解

  • 2.5關係演算

 

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