天天看點

資料庫_資料模型(四)

外鍵引用完整性限制:外鍵不可指空

域完整性限制(Domain integrity constraint):表中每個元組每個屬性值都必須符合其值域要求

實體完整性限制(Entity integrity constraint):主鍵不能為空

Example Instances

R1

sid bid day
22 101 10/10/96
58 103 11/12/96

B2

bid bname color
101 tiger red
103 lion green
105 hero blue

S1

sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0

S2

sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0

關系代數(Relational Algebra)

關系代數是關系模型的理論基礎。

關系模型最大的特點是,它把現實中的實體以及實體間的聯系用表來表示。資料庫裡面存的資料就是表,對資料庫的各種操作,包括操作的結果都是表。

基礎操作:

  • 選擇操作[selectio] σ —— 選擇滿足條件的行(元組)
  • 投影操作[projection] π —— 去掉不需要的列
  • 笛卡爾乘積[cross-product] × —— 把兩個關系拼接在一起(類似點乘)
  • 集合差[set-difference] - —— A - AB
  • 集合并[union] ∪ —— 滿足并相容條件的元組合并

支援以上五個操作,則稱關系完備。關系模型中,所有其他任何操作都可由這五個操作導出。

Projection

把表S2投影到姓名和級别上,結果:

sname rating
yuppy 9
lubber 8
guppy 5
rusty 10

注:1.**投影操作會消除重複元組。**關系模型裡,一張表的兩個元組,如果它們所有屬性的值都相等,我們認為它表達的是現實世界中的同一個事情。

2.盡管理論上投影操作會消除重複元組,但在實際資料庫系統裡,用SOL語言表達投影操作時,除非使用者要求消除重複元組,否則不會自動消除。

若把S2投影到年齡上,結果:

age
35.0
55.5

選擇操作(selection)

在一張表裡,把滿足條件的元組找出來

σ r a t i n g > 8 S ( 2 ) {\sigma _{{\rm{rating}}{\kern 1pt} {\kern 1pt} > 8}}{\kern 1pt} S(2) σrating>8​S(2)

結果:

sid sname rating age
28 yuppy 9 35.0
58 rusty 10 35.0

注:

  1. 選擇操作本身不會造成重複元組
  2. 選擇操作之後的模式與選擇前完全相同

    操作之間的組合:

    π s n a m e , r a t i n g ( σ r a t i n g > 8 ( S 2 ) ) {\pi _{sname,rating\left( {{\sigma _{rating > 8}}(S2)} \right)}} πsname,rating(σrating>8​(S2))​

    先選擇,後投影,結果:

sname rating
yuppy 9
rusty 10

二進制操作:集合的并交叉(與數學中集合的并交叉運算相同)。參與運算的兩個關系必須滿足并相容條件。

并相容條件:1. 屬性個數相同

2.對應屬性的類型必須一樣(名字有點差别沒關系)