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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库学习笔记04——关系数据库2

發布時間:2023/12/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库学习笔记04——关系数据库2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 第三節.關系的完整性
      • (一)實體完整性
      • (二)參照完整性
        • 關系間的引用
        • 外碼
        • 參照完整性(外碼取值要求)
      • (三)用戶定義的完整性
    • 第四節.關系代數
      • (一)傳統集合運算
        • 笛卡爾積
      • (二)專門的關系運算
        • 基礎符號
        • 選擇
        • 投影
        • 連接

第三節.關系的完整性

  • 所謂完整性是關系 需要 滿足的某種約束條件,關系的值需要滿足約束條件
  • 三類完整性:實體完整性、參照完整性、用戶定義完整性
    • 前兩個是關系模型必須滿足的,稱為關系的兩個不變性
    • 最后一個是具體領域的具體約束

(一)實體完整性

  • 實體完整性是針對基本關系而言的,一個基本表通常對應現實世界的一個實體集,每個實體之間應該有某種唯一標識
  • 關系模型中以主碼作為唯一性標識
  • 簡單來說就是,候選碼中的屬性即主屬性不能取空值

(二)參照完整性

關系間的引用

  • 實體與實體間的聯系都是用關系來描述的,自然存在著關系與關系間的引用

  • 兩個關系間的引用

    • 學生的專業號必須是學校有的專業號,兩個專業號之間是引用關系,學生關系的專業號引用專業的專業號

    • 學生(學號,姓名,性別,專業號,年齡)

      專業(專業號,專業名)

  • 兩個以上關系的引用

    • 學生(學號,姓名,性別,專業號,年齡)
    • 課程(課程號,課程名,學分)
    • 選課(學號,課程號,成績)
  • 同一關系內部屬性間的引用

    • 學生(學號,姓名,性別,專業號,年齡,班長

    • 班長引用的學生關系中的學號

外碼

  • 設F是基本關系R的一個或一組屬性,但不是關系R的碼,Ks是基本關系S的主碼。如果F與Ks相對應,則稱F是R的外碼
    • R和S可以是相同的關系,也可以是不同的關系
    • S的主碼Ks和F必須定義在同一個域上
    • 外碼并不一定要與相應的主碼同名,當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別
    • 說白了就是F不是R的碼但是S的碼,F是R的外碼,外碼的作用是表示關系之間的聯系

參照完整性(外碼取值要求)

  • 若屬性(或屬性組)F 是關系R 的外碼,它與關系S 的主碼Ks 相對應(關系R 和S 不一定是不同的關系),則對于R 中每個元組在F 上的值必須為:

    • 或者取空值(F 的每個屬性值均為空值)
    • 或者等于S中某個元組的主碼值
  • 理解1:

    • 學生(學號,姓名,性別,專業號,年齡)
    • 專業(專業號,專業名)

    學生沒選專業之前他的專業號就是空值,當專業確定之后專業號取值必須在專業關系中選擇

  • 理解2:

    • 學生(學號,姓名,性別,專業號,年齡)
    • 課程(課程號,課程名,學分)
    • 選課(學號課程號,成績)

    選修關系的主屬性不能取空值,只能取相應被參照關系中已經存在的主碼值

  • 理解3:

    • 學生(學號,姓名,性別,專業號,年齡,班長)
    • 空值表示還沒有選班長
    • 非空值表示班長學號必須是本關系的學號之一

(三)用戶定義的完整性

  • 例子:課程(課程號,課程名,學分)
    • “課程號”屬性必須取唯一值(實體完整性)
    • 非主屬性“課程名”也不能取空值(用戶定義完整性,這是人為希望的,規定不能是null)
    • “學分”屬性只能取值{1,2,3,4}(用戶定義完整性,這是認為希望的,規定值域的范圍)

第四節.關系代數

  • 關系代數是一種抽象的查詢語言,它用關系運算來表達查詢
  • 運算對象是關系,結果是關系,兩大類:傳統的集合運算符和專門的關系運算符
  • 傳統的僅涉及到行,專門的涉及到行和列

(一)傳統集合運算

  • 前提

    • 目(屬性個數)要相同
    • 相應的屬性要取自同一個域
  • 運算

    • 結果屬性個數不變,有屬于R或屬于S的元組組成,可以換順序

    • 一定注意:結果是一行一行的看,看哪一行不同則加到一起

    • 元組元組元組

  • 前提
    • 目(屬性個數)要相同
    • 相應的屬性要取自同一個域
  • 運算:
    • 屬于R 而不屬于S 的所有元組組成 ,不能換順序
    • 把R中元組依次和S每一個比較,如果S沒有則就是結果之一

  • 前提
    • 目(屬性個數)要相同
    • 相應的屬性要取自同一個域
  • 運算:
    • 既屬于R又屬于S的元組組成 ,可以換順序

笛卡爾積

  • 前提

    • 嚴格地講應該是廣義的笛卡爾積,笛卡爾積的元素是元組
    • R: n目關系,k1個元組
    • S: m目關系,k2個元組
  • 運算

    • 實質上的拼接,前邊的每一個元組與后面的元組依次拼接,不能調換順序

      • 一共是m+n列

      • 元組的前n列是關系R的一個元組

      • 后m列是關系S的一個元組

      • k1×k2個元組

(二)專門的關系運算

基礎符號

  • R,t屬于R,t[Ai]
    • 設關系模式為 R(A1,A2,…,An),它的一個關系設為R
    • t屬于R 表示t是一個元組
    • t[Ai] 表示元組t中屬性Ai的一個分量
  • A,t[A], A取反
  • A:所有屬性的一部分,稱為屬性列或屬性組
  • t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組 t 在屬性列A上k個分量的集合
  • A非,表示把所有屬性列中A的部分去掉。
  • tr連接ts(類似于廣義的笛卡爾積)
  • R為n目關系,S為m目關系
  • tr 屬于R,ts屬于S, tr連接ts稱為元組的連接
  • tr連接ts是一個n + m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組
  • 象集——
    • 給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集定義為Zx={ t[Z]|t∈R,t[X]=“x” }
    • 它表示R中屬性組X上值為x的所有元組在Z上分量的集合
    • 即固定一個,選出與固定的這個有關的分量

選擇

  • 選擇又稱為限制

  • 在關系R中選擇滿足給定條件的元組
    σF(R)=t∣t屬于R∧F(t)=TrueσF(R) = {t|t屬于R∧F(t)= True} σF(R)=ttRF(t)=True

    • F:選擇條件,是一個邏輯表達式,基本形式為: X1θY1

    • θ表示比較運算符,它可以是>,≥,<,≤,=或<>

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

    • 選擇就是根據要求的條件選擇行來查詢

投影

  • 從R中選擇出若干屬性列組成新的關系
    πA(R)=t[A]∣tI^RπA(R) = { t[A] | t ?R } πA(R)=t[A]tI^R
    ? A:R中的屬性列

  • 投影操作主要是從列的角度進行運算

  • 但是有一種特殊的情況,如果只選擇一個列,可能會有很多重復的分量,DBMS會自動去重,所以把重復元組就去掉了

連接

  • 連接也稱為θ連接
  • 從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組
  • 分類:
    • 等值連接:θ為=的連接運算,從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組
    • 自然連接:是一種特殊的等值連接,把重復的屬性列去掉,從行和列的角度運算
    • 一般連接:從行的角度,根據θ取值來進行連接
  • 懸浮元祖
    • 兩個關系R和S在做自然連接時,關系R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被舍棄了,這些被舍棄的元組稱為懸浮元組
    • 外連接:
      • 如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(Null),這種連接就叫做外連接
      • 左外連接:如果只把左邊關系R中要舍棄的元組保留就叫做左外連接
      • 右外連接:如果只把右邊關系S中要舍棄的元組保留就叫做右外連接
      • 外連接 = 左外連接+右外連接,外連接的方法就是做一個百搭元組,把所有的分量都置成null

  • 給定關系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上投影的集合
  • 步驟:
    • 1.劃分X、Y、Z,只有R有的是X,只要S有的是Z,公共的是Y
    • 求關系R中X屬性各個分量在Y上的象集
    • 關系S對Y做投影
    • 包含S對Y上投影的象集對應的屬性分量
  • 簡而言之,最關鍵的三個步驟就是,劃分后的求象集、找S對Y的投影,比較包含
  • 出現至少、全部等字眼用除

總結

以上是生活随笔為你收集整理的数据库学习笔记04——关系数据库2的全部內容,希望文章能夠幫你解決所遇到的問題。

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