數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt

上傳人:max****ui 文檔編號:15169924 上傳時間:2020-08-04 格式:PPT 頁數(shù):99 大?。?.13MB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt_第1頁
第1頁 / 共99頁
數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt_第2頁
第2頁 / 共99頁
數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt_第3頁
第3頁 / 共99頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫原理-2關(guān)系數(shù)據(jù)庫.ppt(99頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、數(shù)據(jù)庫系統(tǒng)原理(第2章),,第二章 關(guān)系數(shù)據(jù)庫,2-5章為本課程重點(diǎn)與難點(diǎn) 關(guān)系數(shù)據(jù)庫的理論基礎(chǔ) 1970, E.F.Codd “A Relational Model of Data for Shared Data Banks” 現(xiàn)代主流數(shù)據(jù)庫幾乎全部支持關(guān)系模型 Oracle(甲骨文),Sybase, IBM DB2, MS SQL Server, Ingres,2.1 關(guān)系模型概述,關(guān)系模型由關(guān)系數(shù)據(jù)庫、關(guān)系操作集合和關(guān)系完整性約束三部分組成。 單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系 實(shí)體和實(shí)體之間的聯(lián)系都用關(guān)系描述,,二. 關(guān)系操作 就關(guān)系模型而言,僅僅給出了關(guān)系操作的能力,并不給定(限定)RDBMS語言的

2、語法要求。 關(guān)系操作的特點(diǎn):一次一集合的操作方式 Set-at-a-Time 操作的對象和結(jié)果都是關(guān)系。,三種具有相同表達(dá)能力的抽象查詢語言: 關(guān)系代數(shù) ISBL 元組關(guān)系演算語言 ALPHA,QUEL 域關(guān)系演算語言 QBE,,SQL則是介于關(guān)系代數(shù)和關(guān)系演算之間的標(biāo)準(zhǔn)查詢語言。 由IBM提出,是應(yīng)用得最廣泛的關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言。,三. 關(guān)系的三類完整性約束條件 關(guān)系模型必須滿足:實(shí)體完整性和參照完整性約束。 應(yīng)用領(lǐng)域中的大量語義約束則由DBMS實(shí)現(xiàn)的用戶定義完整性保證。 注意:這是由DBMS來保證的,而非應(yīng)用程序保證。,2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)及其形式化定義,從集合論的角度給出關(guān)

3、系數(shù)據(jù)結(jié)構(gòu)的形式化定義。(需要離散數(shù)學(xué)集合論的概念) 2.2.1 關(guān)系 (Relation) 1.域 定義2.1: 域是具有相同數(shù)據(jù)類型的值的集合。 如自然數(shù),全班同學(xué)的名字等。,2.2 笛卡兒集(卡氏集) 定義2.2 給定一組域D1,D2,,Dn,這些域中可以有相同的, D1,D2,,Dn的笛卡兒集為: D1D2Dn(d1,d2,,dn)| diDi, i=1,2,n,其中每一個元素稱為一個n元組,元素中的每個值稱為一個分量。,,例:D1=大,中,小,D2=紅,綠,,例:D1=大,中,小,D2=紅,綠 D1D2=(大,紅),(大,綠),(中,紅),(中,綠),(小,紅),(小,綠) 共有32

4、6個2元組,注意:集合論中笛卡兒集不滿足交換率,即笛卡兒集的元組有序。 基數(shù)的概念: 若Di(i=1,2,,n)為有限集,其基數(shù)為|Di|,則D1D2 Dn的基數(shù)為: |D1||D2| |Dn|,,3. 關(guān)系 定義2.3 D1D2 Dn的任意子集叫做在域D1,D2, ,Dn上的關(guān)系,可記做: R(D1,D2, ,Dn),R為關(guān)系名,n是關(guān)系的目或度(degree)。,注意: 1. 這里的“子集”是“任意子集”,包括空集。 2. 笛卡兒集不滿足交換率,而關(guān)系通過給關(guān)系的列附加屬性名的方式取消元組的有序性。 3. 按2.3的定義,關(guān)系可以是無限集。通常我們在關(guān)系數(shù)據(jù)模型中限定關(guān)系為有限關(guān)系。,候

5、選碼若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為該關(guān)系的一個候選碼(Candidate Key)。 一個關(guān)系可能有多個候選碼,則選定其中一個作為主碼(Primary Key)。 包含在任何候選碼中的屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性。 全碼(All-Key)關(guān)系模式的所有屬性組構(gòu)成此關(guān)系模式的唯一候選碼。,基本關(guān)系六性質(zhì) 列是同質(zhì)的; 不同列可出自同一個域,每一列為一個屬性,不同屬性(列)給不同屬性名; 列的順序可任意交換; 任意兩個元組不能完全相同; 行的順序可任意交換; 每一分量是不可分的數(shù)據(jù)項。 記憶方法:三列兩行一分量。,注意:在許多實(shí)際關(guān)系數(shù)據(jù)庫產(chǎn)

6、品中,基本表并不完全具有這六條性質(zhì),例如,有的數(shù)據(jù)庫產(chǎn)品(如FoxPro)仍然區(qū)分了屬性順序和元組的順序;許多關(guān)系數(shù)據(jù)庫產(chǎn)品中,例如Oracle,F(xiàn)oxPro等,它們都允許關(guān)系表中存在兩個完全相同的元組。,2.2.2 關(guān)系模式 關(guān)系模式是對關(guān)系的描述。(是對型的描述) 需描述元組集合的結(jié)構(gòu):由哪些屬性構(gòu)成,這些屬性來自哪些域,以及屬性與域之間的映象關(guān)系。 此外,關(guān)系模式應(yīng)刻劃出完整性約束條件。,,定義2.4 關(guān)系的描述稱為關(guān)系模式,可表述為:R(U,D,dom,F(xiàn)) 其中R為關(guān)系名,U為組成該關(guān)系地屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集

7、。,關(guān)系模式通??梢院営洖椋?R(U)或R(A1,A2, ,AN) 其中R為關(guān)系名,A1,A2, ,AN為屬性名。而域名及屬性向域的映象常常直接說明為屬性的類型、長度。 關(guān)系模式是靜態(tài)度、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間變化的,兩者是型與值的關(guān)系。,2.2.3 關(guān)系數(shù)據(jù)庫 在給定應(yīng)用領(lǐng)域中,用于描述所有實(shí)體和實(shí)體間的聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。同樣,關(guān)系數(shù)據(jù)庫也有型和值之分。 型:關(guān)系數(shù)據(jù)庫模式 是對關(guān)系數(shù)據(jù)庫的描述。 值:一般就稱為關(guān)系數(shù)據(jù)庫。,2.3 關(guān)系的完整性,關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件。 關(guān)系模型的三類完整性: 實(shí)體完整性 參照完整性 用戶定義的完整性,其中實(shí)體

8、完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為是關(guān)系的兩個不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持。 一、實(shí)體完整性 實(shí)體完整性規(guī)則(規(guī)則2.1):每一關(guān)系必有一主碼,構(gòu)成主碼的各屬性值均不能取空值。 實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主碼的各屬性都不能取空值,而不僅是主碼整體不能取空值。,例如學(xué)生選課關(guān)系“選修(學(xué)號,課程號,成績)”中,“學(xué)號、課程號”為主碼,則“學(xué)號”和“課程號”都不能取空值,而不是整體不為空。 實(shí)體完整性可以引申一下,主碼也不能取重復(fù)值。,有關(guān)實(shí)體完整性的說明: (1)實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn)實(shí)世界的一個實(shí)體集。(名字怎么來的) (2)

9、 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。 (3) 相應(yīng)地,關(guān)系模型中以主碼作為唯一標(biāo)識。 (4) 主碼中的屬性即主屬性不能取空值。所謂空值就是“不知道”或“不確定”的值。,二、參照完整性 現(xiàn)實(shí)世界中的實(shí)體之間往往存在某種聯(lián)系,在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系與關(guān)系之間的引用。 引用的時候,必須取基本表中已經(jīng)存在的值。由此引出參照的引用規(guī)則。 參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。,定義2.5 設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼(Foreign key),

10、并稱基本關(guān)系R為參照關(guān)系(Referencing relation),基本關(guān)系S為被參照關(guān)系(Referenced relation)或目標(biāo)關(guān)系(Target relation)。關(guān)系R和S不一定是不同的關(guān)系。,參照完整性規(guī)則(規(guī)則2.2):若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為: 或者取空值(F的每個屬性值均為空值); 或者等于S中某個元組的主碼值。,,例如,學(xué)生選課系統(tǒng),選課關(guān)系的學(xué)號按實(shí)體完整性要求,不能為空;按參照完整性要求,只能選學(xué)生關(guān)系中的學(xué)號,表示語義關(guān)系“只有注冊的學(xué)生才能選

11、課”。課程號也類似(請同學(xué)們自己考慮)。,三、用戶定義的完整性(User-defined integrity) 實(shí)體完整性和參照性適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng)。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。,2.4 關(guān)系代數(shù),本節(jié)要求 給定關(guān)系和關(guān)系代數(shù)表達(dá)式,要會算。 給定關(guān)系模式和查詢(語義)要求,要會寫關(guān)系代數(shù)表達(dá)式。,,關(guān)系代數(shù)是一種抽象的查詢語言,

12、用對關(guān)系的運(yùn)算來表達(dá)查詢,作為研究關(guān)系數(shù)據(jù)語言的數(shù)學(xué)工具。 關(guān)系代數(shù)的運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。關(guān)系代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符。,,比較運(yùn)算符和邏輯運(yùn)算符是用來輔助專門的關(guān)系運(yùn)算符進(jìn)行操作的,所以關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同,主要分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。,2.4.1 傳統(tǒng)的集合運(yùn)算,是四種二目運(yùn)算: ,把關(guān)系看作元組的集合,于是,這四種運(yùn)算與傳統(tǒng)集合運(yùn)算類似。,其中, 三種運(yùn)算要求參與運(yùn)算的兩個關(guān)系R,S具有相同的目n,且相應(yīng)屬性取自同一個域。 并 :RSt|tRtS 交 :RSt|tRtS 差 :RSt|tRtS

13、, 廣義笛卡爾積(Extended cartesian product) 元組連接的記號: R為n目關(guān)系,S為m目關(guān)系。 tr ts 稱為元組的連接(Concatenation)。它是一個(n+m)列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。,,兩個分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。記作: RStr ts|trRtsS 若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1k2個元組。,,2.4.2 專門的關(guān)系運(yùn)算,一般包括選擇、投影、連接和除。,1.選擇

14、 選擇又稱為限制(Restriction)。它是在關(guān)系R中選擇滿足給定條件的諸元組,記作: F(R) = t|tR F(t)=真 其中F表示選擇條件,它是一個邏輯表達(dá)式,取邏輯值真或假。,邏輯表達(dá)式F的基本形式為: X1 Y1 X2 Y2 表示比較運(yùn)算符,它可以是、、、、或。X1、Y1等是屬性名或常量或簡單函數(shù)。屬性名也可以用它的序號來代替。表示邏輯運(yùn)算符,它可以是、或。因此選擇運(yùn)算實(shí)際上是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組。這是從行的角度進(jìn)行的運(yùn)算。,設(shè)有一個學(xué)生-課程關(guān)系數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。(下面的例子都針對這三個關(guān)系進(jìn)行運(yùn)算。)

15、例1 查詢信息系(IS系)全體學(xué)生 Sdept=IS(Student) 或 4=IS(Student) 例2 查詢年齡小于20歲的元組 Sage<20(Student) 或4<20(Student) 。,補(bǔ)充例1: 查詢信息系的年齡小于20歲的學(xué)生,補(bǔ)充例1: 查詢信息系的年齡小于20歲的學(xué)生 Sdept=IS Sage<20(Student),補(bǔ)充例1: 查詢信息系的年齡小于20歲的學(xué)生 Sdept=IS Sage<20(Student) 當(dāng)然也可以表示為 Sdept=IS (Student) Sage<20(Student) (注:雙目運(yùn)算符的優(yōu)先級低于單目運(yùn)算符),2. 投影(Pro

16、jection) 先介紹與投影有關(guān)的兩個記號: 一. (元組屬性分量記號) 設(shè)關(guān)系模式為R(A1, A2, , An)。它的一個關(guān)系設(shè)為R。tR表示t是R的一個元組。tAi則表示元組t中相應(yīng)于屬性Ai的一個分量 。,二. (元組屬性列分量記號) 若A=Ai1, Ai2, , Aik,其中Ai1, Ai2, , Aik是A1, A2, , An中的一部分,則A稱為屬性列或域列。A則表示A1, A2, , An中去掉Ai1, Ai2, , Aik后剩余的屬性組。tA=(tAi1, tAi2, , tAik)表示元組t在屬性列A上諸分量的集合。,關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記

17、作: A(R) = tA | tR 其中A為R中的屬性列。 基本思想是從關(guān)系中消除某些屬性,投影也可能消除掉某些行。 因為取消了某些屬性列后,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。,例3 查詢學(xué)生關(guān)系Student在學(xué)生姓名和所在系兩個屬性上的投影 Sname,Sdept(Student) 或 2,5(Student),例4 查詢學(xué)生關(guān)系Student中都有哪些系,即查詢學(xué)生關(guān)系Student在所在系屬性上的投影 : Sdept(Student),補(bǔ)充例2: (投影與選擇的混合運(yùn)算) 查詢信息系學(xué)生的姓名和年齡。,補(bǔ)充例2: (投影與選擇的混合運(yùn)算) 查詢信息系學(xué)生的姓名和年齡。 Snam

18、e,Sage Sdept=IS(Student) (注:單目運(yùn)算為右結(jié)合),3. 連接 連接也稱為連接。它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。記作: R S=tr ts | tr R tsS trA tsB AB 其中A和B分別為R和S上度數(shù)相等且可比的屬性組。是比較運(yùn)算符。連接運(yùn)算從R和S的笛卡爾積RS中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。,,,連接運(yùn)算中有兩種最為重要也最為常用的連接,一種是等值連接(equi-join),另一種是自然連接(Natural join)。 為“”的連接運(yùn)算稱為等值連接(equi-join) 。它是從關(guān)

19、系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。 自然連接(Natural join)是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。 一般的連接操作是從行的角度進(jìn)行運(yùn)算。但自然連接還需要取消了重復(fù)列,所以是同時從行和列的角度進(jìn)行運(yùn)算。,,連接的計算 首先根據(jù)連接的類型(連接、自然連接),確定結(jié)果的屬性。 計算過程類似二重循環(huán)。 如P50.圖2.6(c) (d) (e),,補(bǔ)充例3:求選了2號課程的學(xué)生的學(xué)號和姓名。,,補(bǔ)充例3:求選了2號課程的學(xué)生的學(xué)號和姓名。 Sno,SName(Student Cno=2 SC),,補(bǔ)充例4

20、:求選修數(shù)據(jù)庫原理的學(xué)生的學(xué)號和姓名。 Sno,SName(Student SC Cname=數(shù)據(jù)庫原理 Course),,,,注意:自然連接在沒有相同的屬性組時退化為廣義笛卡兒集運(yùn)算。,4. 除 () 先介紹與除有關(guān)的記號:(象集記號) 給定一個關(guān)系R(X,Y),X和Y為屬性組。我們定義,當(dāng)tX=x時,x在R中的象集(Images Set)為:Yx=tY|tR, tX=x 它表示R中屬性組X上值為x的諸元組在Y上分量的集合。,補(bǔ)充例5: 象集的計算。設(shè)R(A,B)如下 A B --------------------------------- 1 aa 1

21、 ab 2 st 1 mm 求 B1,計算過程 考察r的每一個元組t 如果tA=1,則把tB放入結(jié)果。 得如下: B ---------------------- aa ab mm,除的定義: 給定關(guān)系R(X,Y)和S(Y,Z),其中X, Y, Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作: RS = tX|tR Y(S) Yx 其中Yx為x在R中的象集,x=

22、tX。,書例6.(p62) 分析:R的A相當(dāng)于X,B和C相當(dāng)于Y S的B和C相當(dāng)于Y,D相當(dāng)于Z(與結(jié)果無關(guān))。 除的結(jié)果只有A一個屬性。 a1出現(xiàn)在R的第1,4,7行,所以象集為(b1,c2),(b2,c3),(b2,c1) 而S在(B,C)上的投影為(b1,c2), (b2,c1),(b2,c3) a1的象集包含量S在(B,C)上的投影,所以a1出現(xiàn)在結(jié)果中,類似的,a2,a3,a4 的象集均不包含S在(B,C)上的投影。所以它們不出現(xiàn)在結(jié)果中。,例7. (不用臨時關(guān)系,改用完整表達(dá)式) Sno,Cno(SC) CnoCno=1 Cno=3 (SC) 可以看出,除運(yùn)算有“包含”的語義。 對

23、于同一個查詢,關(guān)系代數(shù)表達(dá)式可能不唯一。,關(guān)系運(yùn)算的第二種劃分方法:5種基本運(yùn)算和3種附加運(yùn)算。 交()的基本運(yùn)算表達(dá): RS = R-(R-S) RS = S-(S-R) RS = (R-(R-S)) (S-(S-R)),連接的表達(dá): R S= F (RS) F,,除的表達(dá): R S= x(R)- x(x(R)y(S)-R),2.5 關(guān)系演算,關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。本節(jié)我們通過兩個實(shí)際的關(guān)系演算語言來介紹關(guān)系演算的思想。 本節(jié)內(nèi)容僅要求了解。,2.5.1 元組關(guān)系演算語言ALPHA (簡單了解) 元組關(guān)系演算以

24、元組變量作為謂詞變元的基本對象。一種典型的元組關(guān)系演算語言是E.F.Codd提出ALPHA語言,這一語言雖然沒有實(shí)際實(shí)現(xiàn),但關(guān)系數(shù)據(jù)庫管理系統(tǒng)INGRES所用的QUEL語言是參照ALPHA語言研制的,與ALPHA十分類似。,ALPHA語言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句,語句的基本格式是: 操作語句 工作空間名(表達(dá)式):操作條件,一、檢索操作 檢索操作用GET語句實(shí)現(xiàn)。 (1)簡單檢索(即不帶條件的檢索) 例1 查詢所有被選修的課程號碼。 GET W (SC.Cno) 注意與“查詢所有的課程號碼”的區(qū)別。 GET W (Course.Cno),,(

25、2)限定的檢索(即帶條件的檢索) 例2 GET W (Student.Sno,Student.Sage): Student.Sdept=ISStudent.Sage<20,,(3)帶排序的檢索 例4 查詢計算機(jī)科學(xué)系(CS)學(xué)生的學(xué)號、年齡,結(jié)果按年降序排序。 GET W (Student.Sno, Student.Sage):Student.Sdept=CS DOWN Student.Sage,(4)帶定額(指定結(jié)果數(shù)量)的檢索 例6 查詢信息系(IS)年齡最大的學(xué)生的學(xué)號及其年齡,結(jié)果按年齡降序排序。 GET W (3) (Student.Sno, Student.Sage):Studen

26、t.Sdept=IS DOWN Student.Sage,(5)用元組變量的檢索 格式:RANGE 表名 變量名 元組變量兩個用處: 1. 簡化關(guān)系名; 2. 操作條件中使用量詞時必須使用元組變量。一般情況下,操作條件中如果用到了不出現(xiàn)在結(jié)果表達(dá)式中的表時,必須使用量詞。例如,一般連接查詢常用到存在量詞。,例7 查詢信息系學(xué)生的名字 RANGE Student X GET W (X.Sname):X.Sdept=IS,(6)用存在量詞的檢索 注意語義要求,“有一個”,“任意”等語義。 例8 查詢選修2號課程的學(xué)生的名字 RANGE SC X GET W (Student.Sname): X(X

27、.Sno=Student.SnoX.Cno=2) (理解:存在一條選課記錄SC(即X),使得X是要求的學(xué)生Student所選的,且X的課程號是2),(7)帶有多個關(guān)系的表達(dá)式的檢索 例:查詢成績在90分以上的學(xué)生名字與課程名字。 RANGE SC SCX GET W (Student.Sname,Course.Cname): SCX(Student.Sno=SCX.SnoCSX.Cno= Course.Cno CSX.Grade=90) (注:結(jié)果表達(dá)式中出現(xiàn)的表不需要存在量詞),(8)用全稱量詞的檢索 例:不選1號課程的學(xué)生的姓名,類似上例: GET W (Student.Sname):SC

28、X(Student.Sno =SCX.SnoSCS.Cno=1) (理解:要求的學(xué)生不存在1號課程的選課記錄),也可改為全稱量詞: RANGE SC SCX GET W (Student.Sname): SCX(Student.SnoSCX.Sno CS.Cno1) (理解:對于要求的學(xué)生,每一條選課記錄要么不是他選的,要么不是選的1號課程),(9)用兩種量詞的檢索 根據(jù)語義分清使用全稱和存在量詞的條件。 例13 查詢選修了全部課程的學(xué)生姓名 RANGE Course CX RANGE SC SCX GET W (Student.Sname): CX SCX (SCX.Sno=Student.

29、Sno SCX.Cno=CX.Cno) (理解:要求的學(xué)生,對每一門課程都存在相應(yīng)的選課記錄。),,(10)用蘊(yùn)函(Implication)的檢索 例14:查詢最少選修了95002號學(xué)生所選全部課程的學(xué)生的學(xué)號。 P:學(xué)生95002選修了課程CX。 q:學(xué)生Y也選了課程CX。 轉(zhuǎn)換為 CX(p -q)的問題。,RANGE Corse CX SC SCX SC SCY GET W (Student.Sno): CX(SCX (SCX.Sno=95002 SCX.Cno=CX.Cno) - SCY(SCY.Sno=Student.Sno SCY.Cno=CX.Cno)),(11)集函數(shù)

30、 二、更新操作(知道就可以) 修改 插入 刪除,2.5.2 域關(guān)系演算語言QBE 與MS Foxpro的RQBE沒有什么聯(lián)系。 關(guān)系演算的另一種形式是域關(guān)系演算。域關(guān)系演算以元組變量的分量即域變量作為謂詞變元的基本對象。 QBE是Query By Example(即通過例子進(jìn)行查詢)的簡稱,其最突出的特點(diǎn)是它的操作方式。它是一種高度非過程化的基于屏幕表格的查詢語言,用戶通過終端屏幕編輯程序以填寫表格的方式構(gòu)造查詢要求,而查詢結(jié)果也是以表格形式顯示,因此非常直觀,易學(xué)易用。,QBE中用示例元素來表示查詢結(jié)果可能的例子,示例元素實(shí)質(zhì)上就是域變量。QBE操作框架如書圖2-9所示。 檢索操作 (通過書上給出的例子適當(dāng)理解) 例1 求信息系全體學(xué)生的姓名,例2 查詢?nèi)w學(xué)生的全部數(shù)據(jù)。,例4 查詢計算機(jī)系的年齡大于19歲的學(xué)生的學(xué)號。,方法一 一行表示“與”,“與”的表示,方法二 兩行表示“與” (使用相同的示例元素),“或”的表示。,例5 查詢計算機(jī)科學(xué)系或年齡大于19歲的學(xué)生的學(xué)號。,連接的表示。(涉及參與連接的所有表) 例7 查詢選修1號課程的學(xué)生的姓名。,例8 查詢未選修1號課程的學(xué)生的姓名。,自表連接的表示。 例9 查詢有兩個人以上選修的課程號。,,二. 更新操作(略),作業(yè),本章習(xí)題5。(P80),

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!