chapter2 關(guān)模型和關(guān)系運算理論_第1頁
chapter2 關(guān)模型和關(guān)系運算理論_第2頁
chapter2 關(guān)模型和關(guān)系運算理論_第3頁
chapter2 關(guān)模型和關(guān)系運算理論_第4頁
chapter2 關(guān)模型和關(guān)系運算理論_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第2章 關(guān)系模型和關(guān)系運算理論 1本章概要 本章先介紹關(guān)系模型的基本概念;然后介紹關(guān)系運算的理論基礎(chǔ):關(guān)系代數(shù)。 2關(guān)系模型和關(guān)系運算理 2.1 關(guān)系模型的基本概念 2.2 關(guān)系代數(shù) 2.4 關(guān)系代數(shù)表達式的優(yōu)化 32.1 關(guān)系模型的基本概念 2.1.1 基本術(shù)語 2.1.2 關(guān)系的定義和性質(zhì)2.1.3 關(guān)系模型的三類完整性規(guī)則 2.1.4 關(guān)系模型的三級體系結(jié)構(gòu) 2.1.5 關(guān)系模型的形式定義和優(yōu)點 2.1.6 關(guān)系查詢語言和關(guān)系運算 42.1.1 基本術(shù)語(1) 定義2.1 用二維表格表示實體集,用關(guān)鍵碼進行數(shù)據(jù)導(dǎo)航的數(shù)據(jù)模型稱為關(guān)系模型(Relational Model)。圖2.1 職工

2、登記表 52.1.1 基本術(shù)語(2)關(guān)系R元數(shù)為5,基數(shù)為4 圖2.2 關(guān)系模型的術(shù)語 一般術(shù)語 關(guān)系模型術(shù)語字段、數(shù)據(jù)項屬性記錄類型關(guān)系模式記錄1元組1記錄2元組2記錄3元組3記錄4元組4字段值屬性值R A B C D E a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 a3 b3 c3 d3 e3 a4 b4 c4 d4 e4 62.1.1 基本術(shù)語(3) 在關(guān)系模型中字段-屬性,字段值-屬性值記錄類型-關(guān)系模式記錄-元組(tuple)元組的集合-關(guān)系(relation)或?qū)嵗╥nstance)關(guān)系中屬性個數(shù)稱為元數(shù)(arity),元組個數(shù)為基數(shù)(cardinality)。

3、一般用大寫字母A、B、C、 表示單個屬性,用大寫字母 、X、Y、Z表示屬性集,用小寫字母表示屬性值,有時也習(xí)慣稱呼關(guān)系為表或表格,元組為行(row),屬性為列(column)。72.1.1 基本術(shù)語(4) 關(guān)鍵碼(key,簡稱鍵)由一個或多個屬性組成。在實際使用中,有下列幾種鍵。 (1)超鍵(super Key) (2)候選鍵(candidate Key) (3)主鍵(primary Key) 在圖2.1中,(工號,姓名)是模式的一個超鍵,但不是候選鍵,而(工號)是候選鍵。在實際使用中,如果選擇(工號)作為刪除或查找元組的標(biāo)志,那么稱(工號)是主鍵。 (4)外鍵(foreign Key)在關(guān)系

4、中能唯一標(biāo)識元組的屬性集。不含多余屬性的超鍵。用戶選作元組標(biāo)識的候選鍵。如果在關(guān)系模式R中屬性K是其他關(guān)系模式的主鍵,那么K在該模式R中稱外鍵。82.1.2 關(guān)系的定義和性質(zhì) 定義2.2 關(guān)系是一個屬性相同的元組的集合。在關(guān)系模型中,對關(guān)系作了下列規(guī)范性限制:關(guān)系中每一個屬性值都是不可分解的;關(guān)系中不允許出現(xiàn)重復(fù)元組(即不允許出現(xiàn)相同的元組);由于關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序;元組中的屬性在理論上也是無序的,但使用時按習(xí)慣考慮列的順序。 92.1.3 關(guān)系模型的三類完整性規(guī)則 關(guān)系的約束條件實體完整性參照完整性用戶自定義完整性102.1.3 關(guān)系模型的三類完整性規(guī)則(1)

5、 實體完整性規(guī)則(entity integrity rule)要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出現(xiàn)空值,那么主鍵值就起不了唯一標(biāo)識元組的作用,即存在不可標(biāo)識的實體。112.1.3 關(guān)系模型的三類完整性規(guī)則(2)參照完整性規(guī)則(reference integrity rule)定義2.3 參照完整性規(guī)則的形式定義如下: 如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空值,或者等于R1關(guān)系中某個主鍵值。 這條規(guī)則的實質(zhì)是“不允許引用不存在的實體”。 122.1.3 關(guān)系模型的三類完整性規(guī)則(3)例2.1 下面各種情況說

6、明了參照完整性規(guī)則在關(guān)系中如何實現(xiàn)的。 在關(guān)系數(shù)據(jù)庫中有下列兩個關(guān)系模式:S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE) 這里帶下劃線者為主鍵,帶波浪線者為外鍵。據(jù)規(guī)則要求關(guān)系SC中的S# 值應(yīng)該在關(guān)系S中出現(xiàn)。如果關(guān)系SC中有一個元組(S7,C4,80),而學(xué)號S7卻在關(guān)系S中找不到,那么我們就認為在關(guān)系SC中引用了一個不存在的學(xué)生實體,這就違反了參照完整性規(guī)則。 另外,在關(guān)系SC中S# 不僅是外鍵,也是主鍵的一部分,因此這里S# 值不允許空。132.1.3 關(guān)系模型的三類完整性規(guī)則(4) 設(shè)工廠數(shù)據(jù)庫中有兩個關(guān)系模式:DEPT(D#,DNAME)EMP(E#,ENAM

7、E,SALARY,D# ) 車間模式DEPT的屬性為車間編號、車間名,職工模式EMP的屬性為工號、姓名、工資、所在車間的編號。每個模式的主鍵與外鍵已標(biāo)出。在EMP中,由于D# 不在主鍵中,因此D# 值允許空。142.1.3 關(guān)系模型的三類完整性規(guī)則(5) 設(shè)課程之間有先修、后繼聯(lián)系。模式如下:R(C# ,CNAME,PC# ) 其屬性表示課程號、課程名、先修課的課程號。如果規(guī)定,每門課程的直接先修課只有一門,那么模式R的主鍵是C#,外鍵是PC#。這里參照完整性在一個模式中實現(xiàn)。即每門課程的直接先修課必須在關(guān)系中出現(xiàn)。 152.1.3 關(guān)系模型的三類完整性規(guī)則(6)用戶定義的完整性規(guī)則 在建立關(guān)

8、系模式時,對屬性定義了數(shù)據(jù)類型,即使這樣可能還滿足不了用戶的需求。此時,用戶可以針對具體的數(shù)據(jù)約束,設(shè)置完整性規(guī)則,由系統(tǒng)來檢驗實施,以使用統(tǒng)一的方法處理它們,不再由應(yīng)用程序承擔(dān)這項工作。例如學(xué)生的年齡定義為兩位整數(shù),范圍還太大,我們可以寫如下規(guī)則把年齡限制在1530歲之間:CHECK(AGE BETWEEN 15 AND 30) 162.1.4 關(guān)系模型的三級體系結(jié)構(gòu)在關(guān)系模型中,關(guān)系模式的集合就是數(shù)據(jù)庫的概念模式。 學(xué)生關(guān)系模式S(S#,SNAME,AGE,SEX) 選課關(guān)系模式SC(S#,C#,SCORE) 課程關(guān)系模式C(C#,CNAME,T#) 教師關(guān)系模式T(T#,TNAME,TI

9、TLE)172.1.4 關(guān)系模型的三級體系結(jié)構(gòu) -關(guān)系SS#SNAMEAGESEXS1Wang20MS4Wu19MS2Liu21FS3Chen22MS8Dong18FS#C#GRADES1C180S3C190S1C270S3C285S3C395S4C470S8C390C#CNAMET#C2MathsT1C4PhysicsT2C3ChemistryT3C1DatabaseT4SCC圖2.7 三個關(guān)系182.1.4 關(guān)系模型的三級體系結(jié)構(gòu) -子模式 子模式是用戶所用到的那部分數(shù)據(jù)的描述。除此之外,還應(yīng)指出數(shù)據(jù)與關(guān)系模式中相應(yīng)數(shù)據(jù)的聯(lián)系。例如,用戶需要用到子模式G(圖2.8)。成績子模式 G(S#,

10、SNAME,C#,SCORE) 圖2.8 子模式192.1.4 關(guān)系模型的三級體系結(jié)構(gòu) -存儲模式 圖2.10 關(guān)系S和SC的環(huán)結(jié)構(gòu) 在有些DBMS中,關(guān)系存儲是作為文件看待的,每個元組就是一個記錄。由于關(guān)系模式有鍵,因此存儲一個關(guān)系可用散列方法或索引方法實現(xiàn)。如果關(guān)系的元組數(shù)目較少(100個以內(nèi)),那么也可以用“堆文件”方式實現(xiàn)(即沒有特定的次序)。此外,還可對任意的屬性集建立輔助索引。 202.1.5 關(guān)系模型的形式定義 關(guān)系模型有三個重要組成部分:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操縱,數(shù)據(jù)完整性規(guī)則。(1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫中全部數(shù)據(jù)及其相互聯(lián)系都被組織成“關(guān)系”(二維表格)的形式。關(guān)系模型基本的數(shù)據(jù)結(jié)構(gòu)是

11、關(guān)系。(2)數(shù)據(jù)操縱:關(guān)系模型提供一組完備的高級關(guān)系運算,以支持對數(shù)據(jù)庫的各種操作。關(guān)系運算分成關(guān)系代數(shù)、關(guān)系演算和關(guān)系邏輯等三類。 (3)數(shù)據(jù)完整性規(guī)則:數(shù)據(jù)庫中數(shù)據(jù)必須滿足實體完整性,參照完整性和用戶定義的完整性等三類完整性規(guī)則。 212.1.5 關(guān)系模型的優(yōu)點與其它數(shù)據(jù)模型相比,關(guān)系模型突出的優(yōu)點如下:(1)關(guān)系模型提供單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性。(2)關(guān)系模型的邏輯結(jié)構(gòu)和相應(yīng)的操作完全獨立于數(shù)據(jù)存儲方式,具有高度的數(shù)據(jù)獨立性。(3)關(guān)系模型使數(shù)據(jù)庫的研究建立在比較堅實的數(shù)學(xué)基礎(chǔ)上。(關(guān)系運算和規(guī)范化理論)(4)關(guān)系數(shù)據(jù)庫語言與一階謂詞邏輯的固有內(nèi)在聯(lián)系,為以關(guān)系數(shù)據(jù)庫

12、為基礎(chǔ)的推理系統(tǒng)和知識庫系統(tǒng)的研究提供了方便。 222.1.6 關(guān)系查詢語言和關(guān)系運算 關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操縱語言(DML)的語句分成查詢語句和更新語句兩大類。從計算機語言的角度看,后者是在前者基礎(chǔ)上的工作,前者比后者更復(fù)雜。關(guān)于查詢的理論稱為“關(guān)系運算理論”。關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成三類:(1)關(guān)系代數(shù)語言。(2)關(guān)系演算語言。(3)關(guān)系邏輯語言。 232.2 關(guān)系代數(shù) 2.2.1 關(guān)系代數(shù)的五個基本操作 2.2.2 關(guān)系代數(shù)的四個組合操作 2.2.3 關(guān)系代數(shù)運算的應(yīng)用實例 返回242.2.1 關(guān)系代數(shù)的五個基本操作關(guān)系代數(shù)中的操作可以分為兩類:傳統(tǒng)的集合操作:并、差、交、笛卡兒

13、積擴充的關(guān)系操作:投影、選擇、連接、除法關(guān)系代數(shù)的五個基本操作并、差、笛卡兒積、投影、選擇關(guān)系代數(shù)的四個擴充操作交、連接、自然連接、除法252.2.1 關(guān)系代數(shù)的五個基本操作 (1) 并(Union)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為RS。形式定義如下:RSt | tR tS,t是元組變量,R和S的元數(shù)相同。 差(Difference)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為RS。形式定義如下:RS t | tR tS,R和S的元數(shù)相同。262.2.1 關(guān)系代數(shù)的五個基本操作 (2)笛卡兒積(Carte

14、sian Product)設(shè)關(guān)系R和S的元數(shù)分別為r和s,定義R和S的笛卡兒積是一個(r+s)元的元組的集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自S的一個元組,記為RS。形式定義如下: RSt | t=trRtsS若R中有m個元組,S中有n個元組,則RS有mn個元組。27 投影(Projection) 這個操作是對一個關(guān)系進行垂直分割,消去某些列,并重新安排列的順序。 設(shè)關(guān)系R是k元關(guān)系,R在其分量Ai1,Aim(mk,i1,im為1到k間的整數(shù))上的投影用i1,im(R)表示,它是一個m元元組集合,形式定義如下: i1,im(R)t|tR例如,3,1(R)表示關(guān)系R

15、中取第1、3列,組成新的關(guān)系,新關(guān)系中第1列為R的第3列,新關(guān)系的第2列為R的第1列。如果R的每列標(biāo)上屬性名,那么操作符的下標(biāo)處也可以用屬性名表示。例如,關(guān)系R(A,B,C),那么C,A(R)與3,1(R)是等價的。2.2.1 關(guān)系代數(shù)的五個基本操作 (3)28 選擇(Selection) 選擇操作是根據(jù)某些條件對關(guān)系做水平分割,即選取符合條件的元組。條件可用命題公式(即計算機語言中的條件表達式)F表示。F中有兩種成分:運算對象:常數(shù),元組分量運算符:算術(shù)比較運算符和邏輯運算符關(guān)系R關(guān)于公式F的選擇操作,用F(R)表示,形式定義如下: F(R) t | tR F(t)= true 為選擇運算符

16、,F(xiàn)(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。例如,23(R)表示從R中挑選第2個分量值大于3的元組所構(gòu)成的關(guān)系。書寫時,為了與屬性序號區(qū)別起見,常量用引號括起來,而屬性序號或?qū)傩悦灰靡柪ㄆ饋怼?.2.1 關(guān)系代數(shù)的五個基本操作 (4)29A B C A B C a b cb g a d a fd a f c b d (a)關(guān)系R (b)關(guān)系S 圖2.12 兩個關(guān)系 2.2.1 關(guān)系代數(shù)的五個基本操作 (例)例2.3 圖2.12有兩個關(guān)系R和S,圖2.13的(a)、(b)表示RS和RS。(c)表示RS,此處R和S的屬性名相同,就應(yīng)在屬性名前注上相應(yīng)的關(guān)系名,例如R.A、S.A

17、等。圖2.13的(d)表示C,A(R),即3,1(R)。(e)表示B=b(R)。30(a)RS (b)RS(c)RS (d)C,A(R)(e)B=b(R) 圖2.13 關(guān)系代數(shù)操作的結(jié)果 A B C A B C a b cb g a d a fd a f c b d (a)關(guān)系R (b)關(guān)系S 圖2.12 兩個關(guān)系 2.2.1關(guān)系代數(shù)的五個基本操作 (例)返回312.2.2 關(guān)系代數(shù)的四個組合操作 (1) 交(intersection)關(guān)系R和S的交是由屬于R又屬于S的元組構(gòu)成的集合,記為RS,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下: RSttR tS,R和S的元數(shù)相同。由于RS

18、= R-(R-S),或RS = S-(S-R),因此交操作不是一個獨立的操作。 在圖2.12中,RS的結(jié)果是只有一個元組(d,a,f)。 322.2.2 關(guān)系代數(shù)的四個組合操作 (2)連接(join)連接有兩種:連接和F連接(這里是算術(shù)比較符,F(xiàn)是公式)。 連接 R St t= trR tsS tritsj 等價于R S i(r+j)(RS) F連接 F連接是從關(guān)系R和S的笛卡兒積中選取屬性間滿足某一公式F的元組, 這里F是形為F1F2Fn的公式,每個FP是形為ij的式子,而i和j分別為關(guān)系R和S的第i、第j個分量的序號。例2.4ijijABC123456789DE3162ABCDE12331

19、1236245662ABCDE1233145662(a) 關(guān)系R(b) 關(guān)系S(c) R S(d) R S212s0),那么RS是一個(r-s)元的元組的集合。(RS)是滿足下列條件的最大關(guān)系:其中每個元組t與S中每個元組u組成的新元組必在關(guān)系R中。 定義如下:RS1,2,r-s(R)-1,2,r-s(1,2,r-s(R)S)-R)例2.6 圖2.16是關(guān)系做除法的例子。關(guān)系R是學(xué)生選修課程的情況,關(guān)系S1、S2、S3分別表示課程情況, 而操作RS1、RS2、RS3分別表示至少選修S1、S2、S3中列出課程的學(xué)生名單。 35 例2.6 圖2.16是關(guān)系做除法的例子。關(guān)系R是學(xué)生選修課程的情況,

20、 關(guān)系S1、S2、S3分別表示課程情況, 而操作RS1、RS2、RS分別表示至少選修S1、S2、S3中列出課程的學(xué)生名單。SNOSNAMECNOCNAMES1BAOC1DBS1BAOC2OSS1BAOC3DSS1BAOC4MISS2GUC1DBS2GUC2OSS3ANC2OSS4LIC2OSS4LIC4MISCNOCNAMEC2OSCNOCNAMEC2OSC4MISCNOCNAMEC1DBC2OSC4MISSNOSNAMES1BAOSNOSNAMES1BAOS4LISNOSNAMES1BAOS2GUS3ANS4LIRS1S2S3RS1RS2RS3圖2.6 除法操作的例子返回362.2.3 關(guān)系

21、代數(shù)運算的應(yīng)用實例 在關(guān)系代數(shù)運算中,把由五個基本操作經(jīng)過有限次復(fù)合的式子稱為關(guān)系代數(shù)表達式。這種表達式的運算結(jié)果仍是一個關(guān)系。我們可以用關(guān)系代數(shù)表達式表示各種數(shù)據(jù)查詢操作。例2.7 設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系: 學(xué)生關(guān)系 S(S#,SNAME,AGE,SEX) 選課關(guān)系 SC(S#,C#,SCORE) 課程關(guān)系 C(C#,CNAME,TEACHER)(1) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績。(2) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名。(3) 檢索選修課程名為MATHS的學(xué)生學(xué)號與姓名。(4) 檢索選修課程號為C2或C4的學(xué)生學(xué)號。(5) 檢索至少選修課程號為C2和C4的學(xué)生學(xué)號。(6)

22、檢索不學(xué)習(xí)C2課程的學(xué)生姓名與年齡。(7) 檢索學(xué)習(xí)全部課程的學(xué)生姓名。(8) 檢索所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號。返回372.2.4 關(guān)系代數(shù)的七個擴充操作 改名 廣義投影 賦值 外連接(outer join) 外部并(outer union) 半連接(semijoin) 聚集操作 返回38外連接(outer join)外連接:R和S做自然連接時,把原該舍棄的元組也保留在新關(guān)系中,同時在這些元組新增加的屬性上填上空值(null)。記為R S。左外連接:R和S做自然連接時,只把R中原該舍棄的元組放到新關(guān)系中,同時在這些元組新增加的屬性上填上空值(null)。記為R S。右外連接:R和S

23、做自然連接時,只把S中原該舍棄的元組放到新關(guān)系中,同時在這些元組新增加的屬性上填上空值(null)。記為R S。返回ABCabcbbfcadBCDbcdbceadbefgABCDabcdabcecadbABCDabcdabcecadbbbfnullnullefgABCDabcdabcecadbbbfnullABCDabcdabcecadbnullefg例2.12(a) 關(guān)系R(b) 關(guān)系S(c) R S(d) R S(e) R S(f) R S39外部并(outer union)定義:如果R和S的關(guān)系模式不同,構(gòu)成的新關(guān)系的元組由屬于R或?qū)儆赟的元組組成(公共屬性只取一次),同時元組在新增加的

24、屬性上填上空值。返回ABCabcbbfcadBCDbbdbceadbefg例2.13(a) 關(guān)系R(b) 關(guān)系SABCDabcnullabcnullcadnullnullbbdnullbcenulladbnullefg(c) 關(guān)系R和S的外部并40半連接(semijoin)定義:R和S的自然連接在關(guān)系R的屬性集上的投影,即:RS=R(RS)。返回ABCabcdbcbbfcadBCDbcdbceadb例2.14(a) 關(guān)系R(b) 關(guān)系SABCDabcdabcedbcddbcecadb(c) RSABCabcdbccadBCDbcdbceadb(d) R S(e) S R41聚集操作聚集操作是指

25、輸入一個值的集合,然后根據(jù)該值集合得到一個單一的值作為結(jié)果。常用的聚集函數(shù)包括求最大值max,最小值min,平均值avg,總和值sum和記數(shù)值count等。例2.151.求男同學(xué)的平均年齡。 avgage(sex=M(S)2.求年齡為18歲的人數(shù)。 counts#(age=18(S)返回422.3 關(guān)系演算 把數(shù)理邏輯的謂詞演算引入到關(guān)系運算中,就可得到以關(guān)系演算為基礎(chǔ)的運算。關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演算,前者以元組為變量,后者以屬性(域)為變量。2.3.1 元組關(guān)系演算 2.3.2 域關(guān)系演算 2.3.3 關(guān)系運算的安全約束和等價性 返回432.3.1 元組關(guān)系演算 (1) 在元

26、組關(guān)系演算(Tuple Relational Calculus)中,元組 關(guān)系演算表達式簡稱為元組表達式,其一般形式為 t | P(t) 其中,t是元組變量,表示一個元數(shù)固定的元組;P是公式,在數(shù)理邏輯中也稱為謂詞,也就是計算機語言中的條件表達式。 t | P(t)表示滿足公式P的所有元組t的集合。 442.3.1 元組關(guān)系演算(2)在元組表達式中,公式由原子公式組成。定義2.4 原子公式(Atoms)有下列三種形式: R(s)。 其中R是關(guān)系名,s是元組變量。s是R的一個元組。 siuj 。 sia或auj。 在定義關(guān)系演算操作時,要用到“自由”(Free)和“約束”(Bound)變量概念。

27、在一個公式中,如果元組變量未用存在量詞或全稱量詞符號定義,那么稱為自由元組變量,否則稱為約束元組變量。 452.3.1 元組關(guān)系演算(3)定義2.5 公式(Formulas)的遞歸定義如下: 每個原子是一個公式。其中的元組變量是自由變量。 如果P1和P2是公式,那么P1、P1P2、P1P2和P1P2也都是公式。 如果P1是公式,那么(s)(P1)和(s)(P1) 也都是公式。 公式中各種運算符的優(yōu)先級從高到低依次為:,和,和,。在公式外還可以加括號,以改變上述優(yōu)先順序。 公式只能由上述四種形式構(gòu)成,除此之外構(gòu)成的都不是公式。 462.3.1 元組關(guān)系演算(4)例2.16 圖2.20的(a)、(

28、b)是關(guān)系R和S,(c)(g)分別是下面五個元組表達式的值 圖2.20 元組關(guān)系演算的例子 R1 = t | S ( t ) t12 R2 = t | R ( t ) S ( t )R5=t|(u)(v)(R(u)S(v)u1v2 t1=u2t2=v3t3=u1)R3 = t | ( u )(S ( t ) R ( u ) t3u1)472.3.1 元組關(guān)系演算(5) 在元組關(guān)系演算的公式中,有下列三個等價的轉(zhuǎn)換規(guī)則: P1P2等價于(P1P2); P1P2等價于(P1P2)。 (s)(P1(s)等價于(s)(P1(s); (s)(P1(s)等價于(s)(P1(s)。 P1P2等價于 P1P2

29、。482.3.1 元組關(guān)系演算(6)關(guān)系代數(shù)表達式到元組表達式的轉(zhuǎn)換例2.17 R和S都是3元關(guān)系。五個基本操作的等價元組關(guān)系演算如下: 1. RS可用 t | R(t)S(t)表示; 2. R-S可用 t | R(t)S(t) 表示; 3.RS可用 t |(u)(v)(R(u)S(v) t1=u1 t2=u2t3=u3t4=v1 t5=v2 t6=v3) 表示。4. 設(shè)投影操作是2,3(R),那么元組表達式可寫成: t |(u)(R(u)tl=u2t2=u3) 5. F(R)可用 t |R(t)F表示, F是F的等價表示形式。譬如 2=d(R)可寫成 t |R(t)t2=d。 49元組關(guān)系演

30、算應(yīng)用實例例2.19 設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系: 學(xué)生關(guān)系 S(S#,SNAME,AGE,SEX) 選課關(guān)系 SC(S#,C#,GRADE) 課程關(guān)系 C(C#,CNAME,TEACHER)(1) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績。(2) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名。(3) 檢索選修課程名為MATHS的學(xué)生學(xué)號與姓名。(4) 檢索選修課程號為C2或C4的學(xué)生學(xué)號。(5) 檢索至少選修課程號為C2和C4的學(xué)生學(xué)號。返回S#,GRADE(C#=C2(SC) 或1,3(2=C2(SC) t|(u)(SC(u)u2=C2tl=u1t2=u3)S#,SNAME(C#=C2(SSC)t|(u

31、)(v)(S(u)SC(v)v2=C2 ul=v1tl=u1t2=u2)S#,SNAME(CNAME=MATHS(SSCC) t|(u)(v)(w)(S(u) SC(v)C(w)w2=MATHS ul=v1v2=w1tl=u1t2=u2) S# (C#=C2C#=C4(SC) t|(u)(SC(u)(u2=C2u2=C4)t1=u1 1 (1=42=C25=C4(SCSC) t| (u)(v)(SC(u)SC(v)u2=C2v2=C4 u1=v1t1=u1502.3.2 域關(guān)系演算 (1)原子公式有兩種形式: R(x1xk),R是一個k元關(guān)系,每個xi是常量或域變量; xy,其中x,y是常量或

32、域變量,但至少有一個是域變量, 是算術(shù)比較符。 公式中可使用、和等邏輯運算符,也可用(x)和(x)形成公式,但變量x是域變量,不是元組變量。自由域變量、約束域變量等概念和元組演算中一樣。域演算表達式是形為t1tkP(t1,tk)的表達式,其中P(t1,tk)是關(guān)于自由域變量t1,tk 的公式。512.3.2 域關(guān)系演算 (2)例2.20 圖2.21的(a)、(b)、(c)是三個關(guān)系R、S、W,(d)、(e)、(f)分別表示下面三個域表達式的值。(a)關(guān)系R (b)關(guān)系S (c)關(guān)系W (d)R1 (e)R2 (f)R3 圖2.21 域關(guān)系演算的例子 R1=xyz|R(xyz)x3 R2=xyz

33、|R(xyz)(S(xyz)y=4)R3=xyz|(u)(v)(R(zxu)W(yv)uv) A B C A B C D E A B C A B C B D A 1 2 3 1 2 3 7 5 4 5 6 1 2 3 5 7 4 4 5 6 3 4 6 4 8 4 5 6 8 7 7 7 8 9 5 6 9 7 8 9 8 47346522.3.2 域關(guān)系演算 (3)元組表達式到域表達式的轉(zhuǎn)換我們可以很容易地把元組表達式轉(zhuǎn)換成域表達式,轉(zhuǎn)換規(guī)則如下: 對于k元的元組變量t,可引入k個域變量t1tk,在公式中t用t1tk替換,元組分量ti用ti替換。 對于每個量詞(u)或(u),若u是m元的元組

34、變量,則引入m個新的域變量u1um。在量詞的轄域內(nèi),u用u1um替換,ui用ui替換,(u)用(u1)(um)替換,(u)用(u1)(um)替換。 返回53域關(guān)系演算應(yīng)用實例例2.22 設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系: 學(xué)生關(guān)系 S(S#,SNAME,AGE,SEX) 選課關(guān)系 SC(S#,C#,GRADE) 課程關(guān)系 C(C#,CNAME,TEACHER)(1) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績。(2) 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名。返回t|(u)(SC(u)u2=C2tl=u1t2=u3)t1t2|(u1)(u2)(u3)(SC(u1u2u3)u2=C2t1=u1t2=u3) 可以化簡為: t1t2| (SC(t1C2 t2)t|(u)(v)(S(u)SC(v)v2=C2 ul=v1tl=u1t2=u2)t1t2|(u1)(u2)(u3)(u4)(v1)(v2)(v3)(S(u1u2u3u4)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論