1. 程式人生 > >資料庫總結第2章

資料庫總結第2章

第二章 關係資料庫

關係資料庫簡介

1,提出關係模型的是美國IBM公司的E.F.Codd

1970年提出關係資料模型

E.F.Codd, “A Relational Model of Data for Large

Shared Data Banks”, 《Communication of the

ACM》,1970

2,之後,提出了關係代數和關係演算的概念

3,1972年提出了關係的第一、第二、第三正規化

4,1974年提出了關係的BC正規化

 

關係資料結構及形式化定義

關係

1,單一的資料結構----關係

現實世界的實體以及實體間的各種聯絡均用關係來表示

2,邏輯結構----二維表

從使用者角度,關係模型中資料的邏輯結構是一張二維表

3,建立在集合代數的基礎上

 1. 域(Domain)

 2. 笛卡爾積(Cartesian Product)

 3. 關係(Relation)

域是一組具有相同資料型別的值的集合。例:

1,整數

2,實數

3,介於某個取值範圍的整數

4,指定長度的字串集合

5,{‘男’,‘女’}

 

……笛卡爾積

給定一組域D1,D2,…,Dn,允許其中某些域是相同的。

    D1,D2,…,Dn的笛卡爾積為:

    D1×D2×…×Dn =        

{(d1,d2,…,dn)|diDi,i=1,2,…,n}

1,所有域的所有取值的一個組合

2,不能重複

 

………..

元組(Tuple)

1,笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組

2,(張清玫,計算機專業,李勇)、

 3,   (張清玫,計算機專業,劉晨)  等 都是元組

  

分量(Component)

1,笛卡爾積元素(d1,d2,…,dn)中的每一個值di 叫作一個分量

2,張清玫、計算機專業、李勇、劉晨等都是分量

基數(Cardinal number)

若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:

 

 

笛卡爾積的表示方法

1,笛卡爾積可表示為一張二維表

2,表中的每行對應一個元組,表中的每列對應一個域

關係(Relation)

(1) 關係

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的

關係,表示為

 

         R(D1,D2,…,Dn)

         

1,R:關係名

2,n:關係的目或度(Degree)

(2)元組

關係中的每個元素是關係中的元組,通常用t表示。

(3)單元關係與二元關係

當n=1時,稱該關係為單元關係(Unary relation)

                               或一元關係                            

當n=2時,稱該關係為二元關係(Binary relation)

(4)關係的表示

關係也是一個二維表,表的每行對應一個元組,表的每

列對應一個域

(5)屬性

關係中不同列可以對應相同的域

為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)

n目關係必有n個屬性

 

(6)碼

候選碼(Candidate key)

    若關係中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼

    簡單的情況:候選碼只包含一個屬性

全碼(All-key)

    最極端的情況:關係模式的所有屬性組是這個關係模式的候選碼,稱為全碼(All-key)

 

主碼

若一個關係有多個候選碼,則選定其中一個為主碼(Primary key)

主屬性

候選碼的諸屬性稱為主屬性(Prime attribute)

不包含在任何侯選碼中的屬性稱為非主屬性(Non-Prime attribute)或非碼屬性(Non-key attribute)

(7)三類關係

基本關係(基本表或基表)

實際存在的表,是實際儲存資料的邏輯表示

查詢表

查詢結果對應的表

視圖表

由基本表或其他視圖表匯出的表,是虛表,不對

應實際儲存的資料

(8)基本關係的性質

① 列是同質的(Homogeneous)

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

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

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

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

④ 任意兩個元組的候選碼不能相同

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

⑥ 分量必須取原子值

這是規範條件中最基本的一條

關係模式

關係模式(Relation Schema)是型

關係是值

關係模式是對關係的描述

1,元組集合的結構

屬性構成

屬性來自的域          

屬性與域之間的映象關係

2,完整性約束條件

 

關係模式可以形式化地表示為:

           R(U,D,DOM,F)

              R                   關係名

              U                   組成該關係的屬性名集合

              D                  U中屬性所來自的域

              DOM          屬性向域的映象集合

              F                  屬性間資料的依賴關係的集合

關係模式通常可以簡記為

      R (U)    或    R (A1,A2,…,An)

R: 關係名

A1,A2,…,An  : 屬性名

注:域名及屬性向域的映象常常直接說明為

        屬性的型別、長度

關係模式

1,對關係的描述

2,靜態的、穩定的

關係

1,關係模式在某一時刻的狀態或內容

2,動態的、隨時間不斷變化的

關係模式和關係往往籠統稱為關係

     通過上下文加以區別

關係資料庫

關係資料庫

在一個給定的應用領域中,所有關係的集合構成一個關係資料庫

關係資料庫的型與值

關係資料庫的型: 關係資料庫模式,是對關係資料庫的描述

關係資料庫的值: 關係模式在某一時刻對應的關係的集合,通常稱為關係資料庫

關係模型的儲存結構

關係資料庫的物理組織

1,有的關係資料庫管理系統中一個表對應一個作業系統檔案,將物理資料組織交給作業系統完成

2,有的關係資料庫管理系統從作業系統那裡申請若干個大的檔案,自己劃分檔案空間,組織表、索引等儲存結構,並進行儲存管理

關係操作

基本的關係操作

常用的關係操作

1,查詢操作:選擇、投影、連線、除、並、差、交、笛卡爾積

選擇、投影、並、差、笛卡爾基是5種基本操作

2,資料更新:插入、刪除、修改

關係操作的特點

1,集合操作方式:操作的物件和結果都是集合,一次一集合的方式

關係代數語言

1,用對關係的運算來表達查詢要求

2,代表:ISBL

關係演算語言:用謂詞來表達查詢要求

1,元組關係演算語言

謂詞變元的基本物件是元組變數

代表:APLHA, QUEL

2,域關係演算語言   

謂詞變元的基本物件是域變數

代表:QBE

具有關係代數和關係演算雙重特點的語言

1,代表:SQL(Structured Query Language)

關係的完整性

實體完整性和參照完整性

關係模型必須滿足的完整性約束條件稱為關係的兩個不變性,應該由關係系統自動支援

使用者定義的完整性

應用領域需要遵循的約束條件,體現了具體領域中的語義約束

實體完整性

規則2.1  實體完整性規則(Entity Integrity)

1,若屬性A是基本關係R的主屬性,則屬性A不能取空值

2,空值就是“不知道”或“不存在”或“無意義”的值

實體完整性規則的說明

(1)實體完整性規則是針對基本關係而言的。

         一個基本表通常對應現實世界的一個實體集。

(2)現實世界中的實體是可區分的,即它們具有某種唯  

          一性標識。

(3)關係模型中以主碼作為唯一性標識。

(4)主碼中的屬性即主屬性不能取空值。

   主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整性

參照完整性

1. 關係間的引用

2. 外碼

3. 參照完整性規則

1. 關係間的引用

在關係模型中實體及實體間的聯絡都是用關係來描述的,自然存在著關係與關係間的引用。

設F是基本關係R的一個或一組屬性,但不是關係R的碼。如果F與基本關係S的主碼Ks相對應,則稱F是R的外碼

基本關係R稱為參照關係(Referencing  Relation)

基本關係S稱為被參照關係(Referenced Relation)

    或目標關係(Target Relation)

 

外碼(續)

關係R和S不一定是不同的關係

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

外碼並不一定要與相應的主碼同名

     當外碼與相應的主碼屬於不同關係時,往往取相同的名 字,以便於識別

規則2.2  參照完整性規則

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

或者取空值(F的每個屬性值均為空值)

或者等於S中某個元組的主碼值

使用者定義的完整性

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

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

關係代數

關係代數是一種抽象的查詢語言,它用對關係的運算來表達查詢

關係代數

1,運算物件是關係

2,運算結果亦為關係

3,關係代數的運算子有兩類:集合運算子和專門的關係運算符

傳統的集合運算是從關係的“水平”方向即行的角度進行

專門的關係運算不僅涉及行而且涉及列

 

運 算 符

含 義

集合

運算子

-

×

笛卡爾積

專門的

關係

運算子

σ

選擇

π

投影

 

連線

÷

傳統的集合運算

R和S

具有相同的目n(即兩個關係都有n個屬性)

相應的屬性取自同一個域

 

並(續)

R∪S

仍為n目關係,由屬於R或屬於S的元組組成

             R∪S = { t|t  R∨t S }

 

(2)差(Difference)

R和S

具有相同的目n

相應的屬性取自同一個域

 

R - S

仍為n目關係,由屬於R而不屬於S的所有元組組成

                R -S = { t|tR∧tS }

 

(3) 交(Intersection)

R和S

具有相同的目n

相應的屬性取自同一個域

 

R∩S

仍為n目關係,由既屬於R又屬於S的元組組成

                          R∩S = { t|t  R∧t S }

                 R∩S = R –(R-S)

(4) 笛卡爾積(Cartesian Product)

嚴格地講應該是廣義的笛卡爾積(Extended Cartesian Product)

R: n目關係,k1個元組

S: m目關係,k2個元組

R×S

列:(n+m)列元組的集合

元組的前n列是關係R的一個元組

後m列是關係S的一個元組

行:k1×k2個元組

R×S = {tr ts |tr R ∧ tsS }

專門的關係運算

先引入幾個記號

(1) R,tR,t[Ai]

         設關係模式為R(A1,A2,…,An)

         它的一個關係設為R

          tR表示t是R的一個元組

          t[Ai]則表示元組t中相應於屬性Ai的一個分量

 

(2) A,t[A], A

   若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或屬性組。

   t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。

   A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}後剩餘的屬性組。

(3) tr ts

    R為n目關係,S為m目關係。

    tr R,tsS, tr ts稱為元組的連線。

    tr ts是一個n + m列的元組,前n個分量為R中的一個n元組,後m個分量為S中的一個m元組。

(4)象集Zx

  給定一個關係R(X,Z),X和Z為屬性組。

  當t[X]=x時,x在R中的象集(Images Set)為:

                  Zx={t[Z]|t R,t[X]=x}

      它表示R中屬性組X上值為x的諸元組在Z上分量的集合

1. 選擇(Selection)

選擇又稱為限制(Restriction)

選擇運算子的含義

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

         σF(R) = {t|tR∧F(t)= '真'}

F:選擇條件,是一個邏輯表示式,取值為“真”或“假”

基本形式為:X1θY1

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

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

 

2. 投影(Projection)

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

              πA(R) = { t[A] | t R }

              A:R中的屬性列 

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

 

 

 

投影之後不僅取消了原關係中的某些列,而且還可能取消某些元組(避免重複行)

3. 連線(Join)

連線也稱為θ連線

連線運算的含義

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

        R         S = {          | tr  R∧ts S∧tr[A]θts[B] }

 

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

θ:比較運算子 

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

兩類常用連線運算

等值連線(equijoin)

θ為“=”的連線運算稱為等值連線

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

      R    S = {       | tr R∧ts S∧tr[A] = ts[B] }

自然連線(Natural join)

自然連線是一種特殊的等值連線

兩個關係中進行比較的分量必須是相同的屬性組

在結果中把重複的屬性列去掉

自然連線的含義

       R和S具有相同的屬性組B

        R   S = {       [U-B] | tr R∧ts S∧tr[B] = ts[B] } 

懸浮元組(Dangling tuple)

兩個關係R和S在做自然連線時,關係R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被捨棄了,這些被捨棄的元組稱為懸浮元組。

外連線(Outer Join)

如果把懸浮元組也儲存在結果關係中,而在其他屬性上填空值(Null),就叫做外連線

左外連線(LEFT OUTER JOIN或LEFT JOIN)

只保留左邊關係R中的懸浮元組

右外連線(RIGHT OUTER JOIN或RIGHT JOIN)

只保留右邊關係S中的懸浮元組

4. 除運算(Division)

給定關係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上投影的集合,記作:

       R÷S={tr[X]|trR∧πY(S)Yx}

       Yx:x在R中的象集,x = tr[X]

在關係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,c1),(b2,c3) }

只有a1的象集包含了S在(B,C)屬性組上的投影

     所以     R÷S ={a1}

小結

關係代數運算

       關係代數運算

並、差、交、笛卡爾積、投影、選擇、連線、除

       基本運算

並、差、笛卡爾積、投影、選擇

       交、連線、除

可以用5種基本運算來表達

 引進它們並不增加語言的能力,但可以簡化表達

5種基本運算:

並、差、笛卡爾積、投影和選擇。

    不能用其他運算來表達.

 

3種簡化運算(可以用基本運算來表示) :

交、連線和除。

   1.交:R∩S=R-(R-S)

   2.連線:R     S=XY(R×S)

          3.除法:R÷S=X(R)-X(X(R)×S-R)

        

        可見,引進交、連線、除法運算並沒有增加語言的表達能力,但可以大大簡化表示式

集合運算實現的資料庫操作

(1) 資料記錄的新增和插入:關係並運算
  
(2) 資料記錄的刪除:關係差運算

(3) 資料記錄的修改操作:先刪除後插入→關            系差運算+關係並運算

(4) 關係的連線:關係的笛卡兒積

關係代數表示式

關係代數運算經有限次複合後形成的式子

 

典型關係代數語言

ISBL(Information System Base Language)

由IBM United Kingdom研究中心研製

用於PRTV(Peterlee Relational Test Vehicle)實驗系統

2.6 小結

關係資料庫系統是目前使用最廣泛的資料庫系統

關係資料庫系統與非關係資料庫系統的區別:

關係系統只有“表”這一種資料結構

非關係資料庫系統還有其他資料結構,以及對這些資料結構的操作

關係資料結構

 關係

笛卡爾積

關係

關係,屬性,元組

候選碼,主碼,主屬性

基本關係的性質

 關係模式

 關係資料庫

關係模型的儲存結構

關係操作

查詢

選擇、投影、連線、除、並、交、差

第二章 關係資料庫

關係資料庫簡介

1,提出關係模型的是美國IBM公司的E.F.Codd

1970年提出關係資料模型

E.F.Codd, “A Relational Model of Data for Large

Shared Data Banks”, 《Communication of the

ACM》,1970

2,之後,提出了關係代數和關係演算的概念

3,1972年提出了關係的第一、第二、第三正規化

4,1974年提出了關係的BC正規化

 

關係資料結構及形式化定義

關係

1,單一的資料結構----關係

現實世界的實體以及實體間的各種聯絡均用關係來表示

2,邏輯結構----二維表

從使用者角度,關係模型中資料的邏輯結構是一張二維表

3,建立在集合代數的基礎上

 1. 域(Domain)

 2. 笛卡爾積(Cartesian Product)

 3. 關係(Relation)

域是一組具有相同資料型別的值的集合。例:

1,整數

2,實數

3,介於某個取值範圍的整數

4,指定長度的字串集合

5,{‘男’,‘女’}

 

……笛卡爾積

給定一組域D1,D2,…,Dn,允許其中某些域是相同的。

    D1,D2,…,Dn的笛卡爾積為:

    D1×D2×…×Dn =        

{(d1,d2,…,dn)|diDi,i=1,2,…,n}

1,所有域的所有取值的一個組合

2,不能重複

 

………..

元組(Tuple)

1,笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組

2,(張清玫,計算機專業,李勇)、

 3,   (張清玫,計算機專業,劉晨)  等 都是元組

  

分量(Component)

1,笛卡爾積元素(d1,d2,…,dn)中的每一個值di 叫作一個分量

2,張清玫、計算機專業、李勇、劉晨等都是分量

基數(Cardinal number)

若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:

 

 

笛卡爾積的表示方法

1,笛卡爾積可表示為一張二維表

2,表中的每行對應一個元組,表中的每列對應一個域

關係(Relation)

(1) 關係

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的

關係,表示為

 

         R(D1,D2,…,Dn)

         

1,R:關係名

2,n:關係的目或度(Degree)

(2)元組

關係中的每個元素是關係中的元組,通常用t表示。

(3)單元關係與二元關係

當n=1時,稱該關係為單元關係(Unary relation)

                               或一元關係                            

當n=2時,稱該關係為二元關係(Binary relation)

(4)關係的表示

關係也是一個二維表,表的每行對應一個元組,表的每

列對應一個域

(5)屬性

關係中不同列可以對應相同的域

為了加以區分,必須對每列起一個名字,稱為屬性(Attribute)

n目關係必有n個屬性

 

(6)碼

候選碼(Candidate key)

    若關係中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼

    簡單的情況:候選碼只包含一個屬性

全碼(All-key)

    最極端的情況:關係模式的所有屬性組是這個關係模式的候選碼,稱為全碼(All-key)

 

主碼

若一個關係有多個候選碼,則選定其中一個為主碼(Primary key)

主屬性

候選碼的諸屬性稱為主屬性(Prime attribute)

不包含在任何侯選碼中的屬性稱為非主屬性(Non-Prime attribute)或非碼屬性(Non-key attribute)

(7)三類關係

基本關係(基本表或基表)

實際存在的表,是實際儲存資料的邏輯表示

查詢表

查詢結果對應的表

視圖表

由基本表或其他視圖表匯出的表,是虛表,不對

應實際儲存的資料

(8)基本關係的性質

① 列是同質的(Homogeneous)

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

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

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

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

④ 任意兩個元組的候選碼不能相同

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

⑥ 分量必須取原子值

這是規範條件中最基本的一條

關係模式

關係模式(Relation Schema)是型

關係是值

關係模式是對關係的描述

1,元組集合的結構

屬性構成

屬性來自的域          

屬性與域之間的映象關係

2,完整性約束條件

 

關係模式可以形式化地表示為:

           R(U,D,DOM,F)

              R                   關係名

              U                   組成該關係的屬性名集合

              D                  U中屬性所來自的域

              DOM          屬性向域的映象集合

              F                  屬性間資料的依賴關係的集合

關係模式通常可以簡記為

      R (U)    或    R (A1,A2,…,An)

R: 關係名

A1,A2,…,An  : 屬性名

注:域名及屬性向域的映象常常直接說明為

        屬性的型別、長度

關係模式

1,對關係的描述

2,靜態的、穩定的

關係

1,關係模式在某一時刻的狀態或內容

2,動態的、隨時間不斷變化的

關係模式和關係往往籠統稱為關係

     通過上下文加以區別

關係資料庫

關係資料庫

在一個給定的應用領域中,所有關係的集合構成一個關係資料庫

關係資料庫的型與值

關係資料庫的型: 關係資料庫模式,是對關係資料庫的描述

關係資料庫的值: 關係模式在某一時刻對應的關係的集合,通常稱為關係資料庫

關係模型的儲存結構

關係資料庫的物理組織

1,有的關係資料庫管理系統中一個表對應一個作業系統檔案,將物理資料組織交給作業系統完成

2,有的關係資料庫管理系統從作業系統那裡申請若干個大的檔案,自己劃分檔案空間,組織表、索引等儲存結構,並進行儲存管理

關係操作

基本的關係操作

常用的關係操作

1,查詢操作:選擇、投影、連線、除、並、差、交、笛卡爾積

選擇、投影、並、差、笛卡爾基是5種基本操作

2,資料更新:插入、刪除、修改

關係操作的特點

1,集合操作方式:操作的物件和結果都是集合,一次一集合的方式

關係代數語言

1,用對關係的運算來表達查詢要求

2,代表:ISBL

關係演算語言:用謂詞來表達查詢要求

1,元組關係演算語言

謂詞變元的基本物件是元組變數

代表:APLHA, QUEL

2,域關係演算語言   

謂詞變元的基本物件是域變數

代表:QBE

具有關係代數和關係演算雙重特點的語言

1,代表:SQL(Structured Query Language)

關係的完整性

實體完整性和參照完整性

關係模型必須滿足的完整性約束條件稱為關係的兩個不變性,應該由關係系統自動支援

使用者定義的完整性

應用領域需要遵循的約束條件,體現了具體領域中的語義約束

實體完整性

規則2.1  實體完整性規則(Entity Integrity)

1,若屬性A是基本關係R的主屬性,則屬性A不能取空值

2,空值就是“不知道”或“不存在”或“無意義”的值

實體完整性規則的說明

(1)實體完整性規則是針對基本關係而言的。

         一個基本表通常對應現實世界的一個實體集。

(2)現實世界中的實體是可區分的,即它們具有某種唯  

          一性標識。

(3)關係模型中以主碼作為唯一性標識。

(4)主碼中的屬性即主屬性不能取空值。

   主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整性

參照完整性

1. 關係間的引用

2. 外碼

3. 參照完整性規則

1. 關係間的引用

在關係模型中實體及實體間的聯絡都是用關係來描述的,自然存在著關係與關係間的引用。

設F是基本關係R的一個或一組屬性,但不是關係R的碼。如果F與基本關係S的主碼Ks相對應,則稱F是R的外碼

基本關係R稱為參照關係(Referencing  Relation)

基本關係S稱為被參照關係(Referenced Relation)

    或目標關係(Target Relation)

 

外碼(續)

關係R和S不一定是不同的關係

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

外碼並不一定要與相應的主碼同名

     當外碼與相應的主碼屬於不同關係時,往往取相同的名 字,以便於識別

規則2.2  參照完整性規則

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

或者取空值(F的每個屬性值均為空值)

或者等於S中某個元組的主碼值

使用者定義的完整性

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

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

關係代數

關係代數是一種抽象的查詢語言,它用對關係的運算來表達查詢

關係代數

1,運算物件是關係

2,運算結果亦為關係

3,關係代數的運算子有兩類:集合運算子和專門的關係運算符

傳統的集合運算是從關係的“水平”方向即行的角度進行

專門的關係運算不僅涉及行而且涉及列

 

運 算 符

含 義

集合

運算子

-

×

笛卡爾積

專門的

關係

運算子

σ

選擇

π

投影

 

連線

÷

傳統的集合運算

R和S

具有相同的目n(即兩個關係都有n個屬性)

相應的屬性取自同一個域

 

並(續)

R∪S

仍為n目關係,由屬於R或屬於S的元組組成

             R∪S = { t|t  R∨t S }

 

(2)差(Difference)

R和S

具有相同的目n

相應的屬性取自同一個域

 

R - S

仍為n目關係,由屬於R而不屬於S的所有元組組成

                R -S = { t|tR∧tS }

 

(3) 交(Intersection)

R和S

具有相同的目n

相應的屬性取自同一個域

 

R∩S

仍為n目關係,由既屬於R又屬於S的元組組成

                          R∩S = { t|t  R∧t S }

                 R∩S = R –(R-S)

(4) 笛卡爾積(Cartesian Product)

嚴格地講應該是廣義的笛卡爾積(Extended Cartesian Product)

R: n目關係,k1個元組

S: m目關係,k2個元組

R×S

列:(n+m)列元組的集合

元組的前n列是關係R的一個元組

後m列是關係S的一個元組

行:k1×k2個元組

R×S = {tr ts |tr R ∧ tsS }

專門的關係運算

先引入幾個記號

(1) R,tR,t[Ai]

         設關係模式為R(A1,A2,…,An)

         它的一個關係設為R

          tR表示t是R的一個元組

          t[Ai]則表示元組t中相應於屬性Ai的一個分量

 

(2) A,t[A], A

   若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或屬性組。

   t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。

   A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}後剩餘的屬性組。

(3) tr ts

    R為n目關係,S為m目關係。

    tr R,tsS, tr ts稱為元組的連線。

    tr ts是一個n + m列的元組,前n個分量為R中的一個n元組,後m個分量為S中的一個m元組。

(4)象集Zx

  給定一個關係R(X,Z),X和Z為屬性組。

  當t[X]=x時,x在R中的象集(Images Set)為:

                  Zx={t[Z]|t R,t[X]=x}

      它表示R中屬性組X上值為x的諸元組在Z上分量的集合

1. 選擇(Selection)

選擇又稱為限制(Restriction)

選擇運算子的含義

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

         σF(R) = {t|tR∧F(t)= '真'}

F:選擇條件,是一個邏輯表示式,取值為“真”或“假”

基本形式為:X1θY1

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

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

 

2. 投影(Projection)

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

              πA(R) = { t[A] | t R }

              A:R中的屬性列 

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

 

 

 

投影之後不僅取消了原關係中的某些列,而且還可能取消某些元組(避免重複行)

3. 連線(Join)

連線也稱為θ連線

連線運算的含義

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

        R         S = {          | tr  R∧ts S∧tr[A]θts[B] }