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

歡迎訪問 生活随笔!

生活随笔

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

数据库

关系数据库——关系数据语言

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

關系

  • 域:一組具有相同數據類型的值的集合(即取值范圍)

  • 笛卡爾積:域上的一種集合運算。結果為一個集合,集合的每一個元素是一個元組,元組的每一個分量來自不同的域。

  • 基數:一個域允許的不同取值個數。

  • 笛卡爾積的基數:每個域不同取值的個數的乘積,或者說元組的個數

  • 關系:域的笛卡爾積的子集叫做在域上的關系,域的個數叫做關系的目或度。(即列數,屬性的數目),注意廣義上的笛卡爾積一般不能稱為關系,因為存在無效的數據。

  • 關系:表

    列:屬性

    行:元組

  • 候選碼:某一屬性組的值能唯一地標示一個元組,而其子集不能,則稱該屬性組為候選碼

  • 主屬性:候選碼中的屬性都稱為主屬性,注意:主屬性非空。

  • 非主屬性:候選碼之外的屬性稱為非主屬性

  • 全碼:關系模式的所有屬性是這個關系模式的候選碼

  • 主碼:從候選碼中選取一組能唯一確定一個元組的屬性組作為主碼。

  • 三類關系:

    1)基本關系:實際存在的表,是實際存儲數據的邏輯表示

    2)查詢表:查詢結果對應的表

    3)視圖表:由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據。

    注意:關系數據模型中的關系必須是有限集合。

    關系的每一個列必須附加一個屬性名,屬性名不能重名,這種方法取消了關系屬性的有序性。

  • ① 列是同質的(Homogeneous):每一列中的分量來自同一個域,是同一類型的數據

    ② 不同的列可出自同一個域

    • 其中的每一列稱為一個屬性

    • 不同的屬性要給予不同的屬性名

    ③ 列的順序無所謂, 列的次序可以任意交換

    ④ 任意兩個元組的候選碼不能相同:相同就不是候選碼了

    ⑤ 行的順序無所謂,行的次序可以任意交換

    ⑥ 分量必須取原子值(不允許表中套表)

  • 關系模式

    ?

  • 關系模式:對關系的描述,是靜態的、穩定的

  • 關系:是關系模式在某一時刻的狀態或內容,是動態的、隨時間不斷變化的,指后邊的那個關系

  • 關系模式的形式化表示:

  • //關系模式 R(U, D, DOM, F) R 關系名 U 組成該關系的屬性名集合 D 屬性組U中屬性所來自的域 DOM 屬性向域的映象集合 F 屬性間的數據依賴關系集合//可以簡記為 R (U) 或 R (A1,A2,…,An) R: 關系名 A1,A2,…,An : 屬性名 注:域名及屬性向域的映象常常直接說明為屬性的類型、長度

    關系數據庫

  • 在一個給定的應用領域中,所有關系的集合構成一個關系數據庫

  • 關系數據庫的型與值,不是關系的型與值

    1)關系數據庫的型也稱關系數據庫模式,是對關系數據庫的描述

    2)關系數據庫的值是關系模式在某一時刻對應的關系的集合,簡稱為關系數據庫

  • 基本的關系操作

  • 常用的基本操作:

    **查詢:**選擇、投影、連接、除、并、交、差

    **數據更新:**插入、刪除、修改

  • **5種基本操作:**選擇、投影、并、差、笛卡爾積?注意:不算交

  • 關系操作的特點:

    集合操作方式:操作的對象和結果都是集合,一次一集合的方式,操作對象是集合,操作結果亦為集合。

  • ?

    關系的完整性

    實體完整性(即主屬性非空)

  • 若屬性A是基本關系R的主屬性,則屬性A不能取空值
  • 參照完整性

  • 關系間的引用:關系與關系之間存在著聯系

  • 外碼:設F是基本關系R的一個或一組屬性,但不是關系R的主碼Ks是基本關系S的主碼。如果F與Ks相對應,則稱F是基本關系R的外碼,外碼所在的基本關系叫做參照關系,Ks所在的關系叫做被參照關系。

    注:

    1)R、S不一定是不同的關系。

    2)目標關系S的主碼Ks 和參照關系的外碼F必須定義在同一個(或一組)域上

    3)外碼并不一定要與相應的主碼同名,當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別

    4)外碼的取值:如果外碼是參照關系的主屬性,則不能為空(實體完整性),只能為被參照關系中主碼的取值。如果外碼不是參照關系的主屬性,則可以取空或者被參照關系主碼的取值

  • 兩個不變性:指實體完整性和參照完整性

  • 用戶定義完整性

  • 針對某一具體關系數據庫的約束條件,反映某一具體應用所涉及的數據必須滿足的語義要求

  • 關系模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理它們,而不要由應用程序承擔這一功能

  • 關系代數

    傳統的集合運算

  • 傳統的關系運算:

    并、交、差、笛卡爾積

  • 操作對象關系:

    操作方式:同數學中的并、交、差、笛卡爾積。只不過操作對象的元素是元組。另外需要注意能進行運算所需要滿足的條件。

    對于并、交、差需要滿足的關系:1)屬性的數目相同;2)相應的屬性取自同一個域

  • 專門的關系運算

    常見的關系運算有選擇、投影、連接、除

    選擇:

    在關系R中選擇滿足給定條件的諸元組。

    表達式:$\sigma_F(R) = {t | t \in R \and F(t) = ''true''}$

    F:為選擇條件,是一個邏輯表達式,基本形式為:$X_1 \theta Y_1$,其中$\theta$為大于、小于、等于、不等于等。

    舉例:

    選擇:$\sigma_{Sdept = "IS"}(Student)$

    ???????

    投影:

    從R中選擇出若干屬性列組成新的關系

    表達式:$\prod_{A} (R)= {t[A] | t\in R}$

    A為屬性列,即從R中選擇A中屬性列的元組,當然選擇之后可能會刪掉一些元組,因為避免重復。

    舉例:還是上方的關系,經過投影$\prod_{Sname, Sdept}(Student)$,結果如下:

    ?

    連接

    ?

    1)**一般連接:**從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組

    (1)表達式:$R\bowtie_ {A \theta B} S = {t_r^ \frown t_s | t_r \in R \and t_s \in S \and t_r[A] \theta t_s[B] }$

    (2)A和B:分別為R和S上度數相等且可比的屬性組

    (3)$\theta$表示比較運算符,

    (4)連接運算從R和S的廣義笛卡爾積R×S中選取(R關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系θ的元組

    2)**等值連接:**當上述的運算符為等于號的時候

    (1)含義:從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

    (2)表達式:$R\bowtie_ {A = B} S = {t_r^ \frown t_s | t_r \in R \and t_s \in S \and t_r[A] = t_s[B] }$

    (3)仍然是從行的角度進行運算,而不涉及列

    (4)屬性組可以不同

    3)**自然連接:**一種特殊的等值連接

    (1)與等值連接的不同:兩個關系R和S必須具有相同的屬性組

    (2)將結果中相同的屬性列去掉

    (3)表達式:$R\bowtie S = {t_r^ \frown t_s | t_r \in R \and t_s \in S \and t_r[A] = t_s[B] }$

    4)由自然連接所引發的一系列問題:

    (1)懸浮元組:在做自然連接的時候被舍棄的元組

    (2)外連接:如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(Null),這種連接就叫做外連接,外連接 = 左外連接 + 右外連接

    (3)左外連接:如果只把左邊關系R中要舍棄的元組保留就叫做左外連接

    (4)右外連接:如果只把右邊關系S中要舍棄的元組保留就叫做右外連接

    1)除運算的意義:

    (1)假設關系R,S,RS,R關系擁有的屬性是姓名,S關系擁有的屬性是課程,RS關系擁有的屬性是姓名和課程的聯系,則RS/S表示選出所有至少選了表S中所列課程的學生的元組。

    (2)如下圖:

    注:RS/S得到的關系:張三和李四構成的表,表示選修了全部課程的同學的集合。

    舉例:

    R:

    ABC
    a1b1c2
    a2b3c7
    a3b4c6
    a1b2c3
    a4b6c6
    a2b2c3
    a1b2c1

    S:

    BCD
    b1c2d1
    b2c1d1
    b2c3d2

    R÷S

    A
    a1

    (1) 找S與R的共同屬性,即公式中的Y屬性

    (2)計算R中每個X屬性的象集,如果某個象集包含S在Y屬性上的投影,則該屬為R/S結果中的一個值。

    解答如下:

    在關系R中,A可以取四個值{a1,a2,a3,a4},其中:

    a1的象集為:{(b1,c2),(b2,c3),(b2,c1)}

    a2的象集為:{(b3,c7),(b2,c3)}

    a3的象集為:{(b4,c6)}

    a4的象集為:{(b6,c6)}

    S在(B,C)上的投影為{(b1,c2),(b2,c3),(b2,c1)}。

    顯然只有R的象集a1包含S在(B,C)屬性組上的投影,所以R÷S={a1}。

    總結

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

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