日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关系模型和关系代数

發布時間:2025/3/18 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关系模型和关系代数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

關系模型

基本術語:

關系模型:用二維表格表示實體集,用關鍵碼表示實體之間聯系的數據模型稱為關鍵模型。

在關系模型中,字段稱為屬性,字段值稱為屬性值,記錄類型稱為關系模式。記錄稱為元組,元組的集合稱為關系或實例。一般用大寫字母A、B、C...表示單個屬性,用大寫字母...X、Y、Z表示屬性集,用小寫字母表示屬性值,元組為行(Row), 屬性為列(Column)。

關系中的屬性的個數稱為“元組”,元組個數稱為“基數”。

關鍵碼(Key,鍵)由一個或多個屬性組成。在實際使用中,有下列幾種鍵。

  • 超鍵:在關系中能唯一標識元組的屬性或屬性集稱為關系模式的超鍵;
  • 候選鍵:不含多余屬性的超鍵稱為候選鍵;
  • 主鍵:用戶選作元組標識的候選鍵稱為主鍵。一般不加說明鍵指主鍵;
  • 外鍵:如果模式R中屬性K是其他模式的主鍵,那么K在模式R中稱為外鍵。

關系中每一個屬性都有一個取值范圍,稱為屬性的值域(Domain),屬性A的取值范圍用DOM(A)表示。

關系的定義和性質

關系是一個屬性數目相同的元組的集合。

在關系模型中,對關系做了下列規范性限制:

  • 不可分解:關系中每個屬性值都是不可分解的;
  • 不重復:關系中不允許出現重復元組;
  • 無行序:由于關系是一個集合,因此不考慮元組間的順序;
  • 無列序:元組中的屬性理論上也是無序的,但使用時按習慣考慮列的順序。

三類完整性原則

實體完整性原則:

這條規則要求關系中元組在組成主鍵的屬性上不能有空值。如果出現空值,那么主鍵值就起不到唯一標識元組的作用。

參照完整性規則:

這條規則的實質是“不允許引用不存在的實體”。該規則在具體使用時有三點可變通:

  • 外鍵和相應的主鍵可以不同名,只要定義在相同的值域上即可;
  • 可以引用本關系中的主鍵。這樣表示同一個關系中不同元組之間的聯系;
  • 外鍵值是否為空,應視具體情況而定。
  • 用戶定義的完整性原則:

    建立關系模型時對屬性定義了數據類型可能還滿足不了用戶的需求。用戶應該可以根據具體數據約束,設置完整性原則,設置完整性規則,由系統來檢查實施,以統一的方法處理它們,不再由應用程序承擔這份工作。

    關系模型的三層體系結構

    關系模式:

    記錄類型稱為關系模式,而關系模式的集合就是數據庫的概念模式。

    子模式:

    用戶所用到的那部分數據的描述。

    存儲模式:

    在DBMS中,關系存儲時是作為文件看待的,每個元組就是一條記錄。由于關系模式有鍵,因此存儲一個關系可以用散列的方法或索引方法實現。

    關系模型的形式定義和優點

    關系模型有三個重要的組成部分:數據結構、數據操縱和數據完整性控制。

    • 數據結構:數據庫中全部數據及其相互聯系都被組織成“關系”的形式。關系模型的基本數據類型是關系。
    • 數據操縱:關系模型提供一組完備的高級關系運算,以支持對數據庫的各種操作;
    • 數據完整性原則:數據庫中的數據必須滿足實體完整性、參照完整性和用戶定義完整性原則。

    關系模式優點:

  • 關系模型提供單一的數據結構形式,具有高度的簡明性和精確性;
  • 邏輯結構和相應的操作完全獨立于數據的存儲方式,具有高度的數據獨立性;
  • 關系模型使數據庫的研究建立在比較堅實的數學基礎上;
  • 為以關系數據庫為基礎的推理系統和知識庫系統的研究提供了方便,并成為新一代數據庫技術不可缺少的基礎。
  • 關系代數

    關系代數的五個基本操作:

    • 并(Union):設關系R和S具有相同的關系模式,R和S的并是由屬于R或屬于S的元組構成的集合,記為R∪S。
    • 差(Difference):設關系R和S具有相同的關系模式,R和S的差是由屬于R但不屬于S的元組構成的集合,記為R-S。
    • 笛卡兒積(Cartesian Product):設關系R和S的元組數分別為r和s,R和S的笛卡兒積是一個(r+s)的元組集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自S的一個元組,記為R×S。
    • 投影(Projection):對一個關系進行垂直分割,消去某些列,并重新安排列的排序,用π表示。
    • 選擇(Selection):根據某些條件對關系進行水平分割,即選取符合條件的元組,用σ表示。

    關系代數的四個組合操作:

    • 交(Intersection):由即屬于R又屬于S的元組構成的集合,記為R∩S。這里要求R和S定義在相同的關系模式上。
    • 連接(Join):從關系R和S的笛卡兒積中選取屬性值滿足某一操作θ的元組。
    • 自然連接(Natural Join):第一步,計算R和S的笛卡兒積;第二步,挑選公共屬性相同的元組;第三步,去掉S中的相關列。
    • 除/逆笛卡兒積(Division):R÷S是一個(r-s)元的元組集合,滿足下列條件的最大關系:其中每個元組t與S中的每個元組u組成的新元組<t,u>必在關系R中。

    關系代數的七個擴充操作:

    • 改名:改名運算符用ρS(A1,A2,...An)(R)表示。表示把關系R改名為S,S中的元組和R中一樣,屬性順序為A1,A2,...An。如果只需要改名不需要重新排列屬性,可以簡寫為ρS(R)。
    • 廣義投影:廣義投影允許在投影列表中使用算術函數來對投影進行拓展。
    • 賦值:賦值運算符“←”,通過把臨時變量賦值,可以把關系代數分開寫,以把復雜的表達式化整為零,成為簡單的表達式。注意:賦值操作不執行關系操作,僅僅是保存關系形式,該表達式可以重復使用。
    • 外連接:如果在做R和S的自然連接時,把原本該舍棄的元組也保留在新關系中,同時在這些元組新增的屬性上填上空值,這種操作稱為“外連接”。同樣的,如果只保留R中該舍棄的元組,稱為“左外連接”,只保存S中該舍棄的元組,稱為“右外連接”。
    • 外部并:上面定義R和S的并操作時,規定兩者需要有兩桶的關系模式。如果關系模式不同,構成的新關系的屬性由兩者的所有屬性組成(公共屬性只取一次),新關系的元組由屬于R或S的元組組成,同時在元組新增加的屬性上填上空值,這種操作稱為“外部并”。
    • 半連接:定義為R和S的自然連接在關系R的屬性集上的投影。半連接主要用于分布式數據庫中。
    • 聚集操作:指輸入一個值的集合,根據該集合得到一個單一值作為結果。常用的聚集函數包括求最大值max,最小值min,平均值avg,總和值sum和計數值count等。

    轉載于:https://my.oschina.net/HuoQibin/blog/1678207

    總結

    以上是生活随笔為你收集整理的关系模型和关系代数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。