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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、登記表 52.1.1 基本術語(2)關系R元數(shù)為5,基數(shù)為4 圖2.2 關系模型的術語 一般術語 關系模型術語字段、數(shù)據(jù)項屬性記錄類型關系模式記錄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 基本術語(3) 在關系模型中字段-屬性,字段值-屬性值記錄類型-關系模式記錄-元組(tuple)元組的集合-關系(relation)或實例(instance)關系中屬性個數(shù)稱為元數(shù)(arity),元組個數(shù)為基數(shù)(cardinality)。

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

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

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

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

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

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

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

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

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

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

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

14、sian Product)設關系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) 這個操作是對一個關系進行垂直分割,消去某些列,并重新安排列的順序。 設關系R是k元關系,R在其分量Ai1,Aim(mk,i1,im為1到k間的整數(shù))上的投影用i1,im(R)表示,它是一個m元元組集合,形式定義如下: i1,im(R)t|tR例如,3,1(R)表示關系R

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

16、,F(xiàn)(R)表示從R中挑選滿足公式F為真的元組所構成的關系。例如,23(R)表示從R中挑選第2個分量值大于3的元組所構成的關系。書寫時,為了與屬性序號區(qū)別起見,常量用引號括起來,而屬性序號或屬性名不要用引號括起來。2.2.1 關系代數(shù)的五個基本操作 (4)29A B C A B C a b cb g a d a fd a f c b d (a)關系R (b)關系S 圖2.12 兩個關系 2.2.1 關系代數(shù)的五個基本操作 (例)例2.3 圖2.12有兩個關系R和S,圖2.13的(a)、(b)表示RS和RS。(c)表示RS,此處R和S的屬性名相同,就應在屬性名前注上相應的關系名,例如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 關系代數(shù)操作的結果 A B C A B C a b cb g a d a fd a f c b d (a)關系R (b)關系S 圖2.12 兩個關系 2.2.1關系代數(shù)的五個基本操作 (例)返回312.2.2 關系代數(shù)的四個組合操作 (1) 交(intersection)關系R和S的交是由屬于R又屬于S的元組構成的集合,記為RS,這里要求R和S定義在相同的關系模式上。形式定義如下: RSttR tS,R和S的元數(shù)相同。由于RS

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

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

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

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

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

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

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

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

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

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

28、b)是關系R和S,(c)(g)分別是下面五個元組表達式的值 圖2.20 元組關系演算的例子 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 元組關系演算(5) 在元組關系演算的公式中,有下列三個等價的轉換規(guī)則: P1P2等價于(P1P2); P1P2等價于(P1P2)。 (s)(P1(s)等價于(s)(P1(s); (s)(P1(s)等價于(s)(P1(s)。 P1P2等價于 P1P2

29、。482.3.1 元組關系演算(6)關系代數(shù)表達式到元組表達式的轉換例2.17 R和S都是3元關系。五個基本操作的等價元組關系演算如下: 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. 設投影操作是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元組關系演

30、算應用實例例2.19 設教學數(shù)據(jù)庫中有三個關系: 學生關系 S(S#,SNAME,AGE,SEX) 選課關系 SC(S#,C#,GRADE) 課程關系 C(C#,CNAME,TEACHER)(1) 檢索學習課程號為C2的學生學號與成績。(2) 檢索學習課程號為C2的學生學號與姓名。(3) 檢索選修課程名為MATHS的學生學號與姓名。(4) 檢索選修課程號為C2或C4的學生學號。(5) 檢索至少選修課程號為C2和C4的學生學號。返回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 域關系演算 (1)原子公式有兩種形式: R(x1xk),R是一個k元關系,每個xi是常量或域變量; xy,其中x,y是常量或

32、域變量,但至少有一個是域變量, 是算術比較符。 公式中可使用、和等邏輯運算符,也可用(x)和(x)形成公式,但變量x是域變量,不是元組變量。自由域變量、約束域變量等概念和元組演算中一樣。域演算表達式是形為t1tkP(t1,tk)的表達式,其中P(t1,tk)是關于自由域變量t1,tk 的公式。512.3.2 域關系演算 (2)例2.20 圖2.21的(a)、(b)、(c)是三個關系R、S、W,(d)、(e)、(f)分別表示下面三個域表達式的值。(a)關系R (b)關系S (c)關系W (d)R1 (e)R2 (f)R3 圖2.21 域關系演算的例子 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 域關系演算 (3)元組表達式到域表達式的轉換我們可以很容易地把元組表達式轉換成域表達式,轉換規(guī)則如下: 對于k元的元組變量t,可引入k個域變量t1tk,在公式中t用t1tk替換,元組分量ti用ti替換。 對于每個量詞(u)或(u),若u是m元的元組

34、變量,則引入m個新的域變量u1um。在量詞的轄域內,u用u1um替換,ui用ui替換,(u)用(u1)(um)替換,(u)用(u1)(um)替換。 返回53域關系演算應用實例例2.22 設教學數(shù)據(jù)庫中有三個關系: 學生關系 S(S#,SNAME,AGE,SEX) 選課關系 SC(S#,C#,GRADE) 課程關系 C(C#,CNAME,TEACHER)(1) 檢索學習課程號為C2的學生學號與成績。(2) 檢索學習課程號為C2的學生學號與姓名。返回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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論