關係數據結構、關係操作(關係代數和關係演算)、關係完整性、關係代數(集合運算、專門的關係運算) | 數據庫系統概論第二章

目錄

 

一、關係數據結構定義及其形式化定義

二、關係操作

三、關係的完整性

四、關係代數

關係運算:下面開始逐個瞭解選擇、投影、連接和除運算:

1.選擇 / 限制:

2.投影:

3.連接 / θ連接:

4.除運算:

五、關係演算:略


一、關係數據結構定義及其形式化定義

關係數據庫是支持關係模型的數據庫系統。

而對於關係模型的數據結構有以下重要定義:

 

 

 

二、關係操作

分爲關係代數和關係演算:

  • 關係代數
  • 關係演算

SQL具有關係代數和關係演算雙重特點。

 

 

 

三、關係的完整性

關係模型有三種完整性約束:

  • 實體完整性:主屬性不能取空值
  • 參照完整性:例如好幾個表都有一個同樣的屬性,這個屬性要參照不同的表,不能有衝突。
  • 用戶定義的完整性:數據庫的值是否符合現實。

 

 

 

四、關係代數

關係代數用關係的運算表示查詢:

運算對象、運算符和運算結果是關係運算的三個要素。

都有以下這些運算:

關係代數運算符
運算符 含義
集合運算符
× 笛卡爾積
專門的關係運算符 σ 選擇
投影
連接
÷
  • 1.傳統的集合運算:並、差、交、笛卡爾積,具體實現略
  • 2.專門的關係運算:選擇、投影、連接、除運算

 

關係運算:下面開始逐個瞭解選擇、投影、連接和除運算:

1.選擇 / 限制:

在關係 R 中選擇邏輯表達式 F 爲真的諸元組(F是個bool型值,表示 true 或 false)

例如:  查詢Sdept='IS'的全體學生。

從行的角度進行的運算。

 

2.投影

關係R的投影是從R中選擇若干列組成新的關係


例如:​  查詢學生的姓名,所在系。

從列的角度進行的運算。

 

3.連接 / θ連接

從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組

  • 等值連接:θ爲等於的連接運算稱爲等值連接。
  • 自然連接:它要求兩個關係中進行比較的分量必須是同名的屬性組,並且在結果中把重複的屬性列去掉。

例如:

同時從行和列的角度進行運算。

  • 懸浮元組:在自然連接的時候,有些R或者S的元組壯烈犧牲了(比如說有的R關係的元組的B屬性值(R.B)在對面S.B匹配失敗了(沒有對應相等的),它就被拋棄了,這些被拋棄的元組就叫懸浮元組。)
  • 外連接:把這些可憐的懸浮元組收容進來,在其他屬性填NULL,就是外連接(左外連接和右外連接就是隻收容左邊的 / 右邊的)

例如:

上圖中自然連接的部分,關係R的第4個元組和關係S的第5個元組都被拋棄了,現在它們得外連接就是原來的自然連接的關係再加上這兩個元組唄,就是這樣的↓↓↓

 

4.除運算:

若R÷S = T,則T屬於R,不屬於S,且S×T = R

 例如:求下圖的R÷S

  • 如圖關係R(A, B,C),關係S(B,C,D),都有B、C屬性,我們不妨把BC屬性看作一個整體。
  • A屬性對應着BC屬性,BC屬性又對應着D屬性(對應即存在某種關係)
  • 因爲是除運算,所以只要找出A與BC的對應關係,就可以拿過來和關係S進行比較。

這種關係要通過象集來表示:

  1. 如果要知道A與BC的對應關係,可以從a1到a4逐個列出b、c對應的集合:
  2. 比如a1在表格R中對應着{(b1,c2),(b2,c3),(b2,c1)}這就稱作象集!!!

則:

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

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

a3象集{(b4,c6)}

a4象集{(b6,c6)}

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

 

五、關係演算:略

這部分就完成到這裏,小夥伴們加油,歡迎一起探討~

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