版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2024年3月9日10時55分,數(shù)據(jù)庫原理,1,關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系定義 關(guān)系性質(zhì) 關(guān)系模式 關(guān)系的完整性 實體完整性 參照完整性 用戶定義完整性 關(guān)系代數(shù) 關(guān)系演算,,2024年3月9日10時55分,數(shù)據(jù)庫原理,2,● 關(guān)系數(shù)據(jù)庫系統(tǒng)研究進展,,1970年 E.F.Codd “A Relational Model
2、of Data for Shared Data Banks” 1978年 IBM公司 QUERY BY EXAMPLE 1979年 IBM公司 SYSTEM R 1981年 IBM公司 SQL/DS ORACLE公司 ORACLE RDBMSINFOMIX公司 INFOMIXSYBASE公司 SYBASEMicroSoft公司 SQL-
3、SERVER,奠定關(guān)系數(shù)據(jù)庫的理論基礎(chǔ),2024年3月9日10時55分,數(shù)據(jù)庫原理,3,2.1 關(guān)系模型概述,,關(guān)系模型,,關(guān)系數(shù)據(jù)結(jié)構(gòu),關(guān)系操作集合,關(guān)系完整性約束,數(shù)據(jù)結(jié)構(gòu)單一,實體間的聯(lián)系用關(guān)系表示,數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。,集合操作方式,即操作對象和結(jié)構(gòu)都是集合。,實體完整性、參照完整性和用戶完整性。,2024年3月9日10時55分,數(shù)據(jù)庫原理,4,2024年3月9日10時55分,數(shù)據(jù)庫原理,5,關(guān)系數(shù)據(jù)語言,,關(guān)系代數(shù)語言
4、,關(guān)系演算語言,具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言,,元組關(guān)系演算語言,域關(guān)系演算語言,例如:ISBL,例如:APLHA, QUEL,例如:QBE,例如:SQL,2024年3月9日10時55分,數(shù)據(jù)庫原理,6,2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義,,2.2.1 關(guān)系,,⒈ 域(Domain),定義2.1 域是一組具有相同數(shù)據(jù)類型的值的集合。,例:D1={A , 2 , 3 , 4, 5 , ……, 10 , J , Q , K },在關(guān)
5、系中用域來表示屬性的取值范圍 域中所包含的值的個數(shù)稱域的基數(shù)(用m表示),D3={數(shù)據(jù)庫原理,面向?qū)ο髷?shù)據(jù)庫技術(shù)},M2 = 4,M3 = 2,M1 = 13,2024年3月9日10時55分,數(shù)據(jù)庫原理,7,其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-Tuple),或簡稱為元組(Tuple)。元素中的每一個值di叫作一個分量(Component)。,定義2.2 給定一組域D1,D2,…,Dn,(允許部分或全部相同)。
6、D1,D2 ,…,Dn的笛卡爾積為: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n },⒉ 笛卡爾積(Cartesian Product),笛卡爾積也是一個集合,2024年3月9日10時55分,數(shù)據(jù)庫原理,8,設(shè)有域,D1={A, 2, 3, ……, J, Q, K} ,,基數(shù) : 13×4 = 52,笛卡爾積可表示為一個二維表。 表中的每行對應(yīng)一個元組,表
7、中的每列對應(yīng)一個域。,,則笛卡爾積,2024年3月9日10時55分,數(shù)據(jù)庫原理,9,3.關(guān) 系 (relation),定義2.3 D1×D2×…×Dn的子集稱為在域D1,D2,…,Dn上的關(guān)系, 表示為R(D1,D2,…,Dn) 。,其中:R為關(guān)系的名;n為關(guān)系的度或目(Degree)。,關(guān)系中每個元素是關(guān)系中的元組,通常用t表示; 當(dāng)n=1時,稱為單元關(guān)系(Unary Relatio
8、n); 當(dāng)n=2時,稱為二元關(guān)系(Binary Relation); 同樣可以把關(guān)系看作是一個二維表:,每一行對應(yīng)一個元組; 表的每一列對應(yīng)一個域,每個域起一個名字——稱為 屬性;,2024年3月9日10時55分,數(shù)據(jù)庫原理,10,關(guān)系類型,,基本關(guān)系,查詢表,視圖表,實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示。,查詢結(jié)果對應(yīng)的表。,由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)。,2024年3月9日10時55分,
9、數(shù)據(jù)庫原理,11,例:設(shè) D1=男人集合(MAN) = { 王強、李東、張兵 } D2 =女人集合(WOMAN) = { 趙紅、吳芳 } D3=兒童集合(CHILD) = { 王輝、李明、李亮 }(1)求上面三個集合的笛卡兒積,,(2)構(gòu)造一個家庭關(guān)系,可表示為: FAMILY(MAN,WOMAN,CHILD),2024年3月9日10時55分,數(shù)據(jù)庫原理,12,主碼的諸屬性稱為主屬性
10、。,若一個關(guān)系有多個候選碼,則選定其中的一個為主碼。,關(guān)系R的某一屬性組X不是R的碼,但是其他某一關(guān)系的碼,稱X為R的外部碼。,5.主 碼(Primary key),6.主屬性(Prime attribute),若關(guān)系中的某一屬性組的值能唯一的標(biāo)識一個元組,稱該屬性組為候選碼。,4.候選碼(Candidate key),7.非碼屬性(Non-key attribute),8.全 碼(All-key),不包含在任何候選碼中的屬性稱為非碼屬
11、性。,9.外部碼(foreign key),關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼,稱為全碼。,2024年3月9日10時55分,數(shù)據(jù)庫原理,13,例:,,學(xué)生:S(S#,SNAME,SA,SD)課程:C(C#,CNAME)選課:SC(S#,C#,GR),S: 候選碼:S#,SNAME;主碼:S#,假設(shè)沒有學(xué)生重名,C: 候選碼:C#; 主碼:C#,SC: 候選碼:(S#,C#); 主 碼:
12、(S#,C#); 外部碼:S#,C#,2024年3月9日10時55分,數(shù)據(jù)庫原理,14,列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的 數(shù)據(jù),來自同一個域。 不同的列可對應(yīng)于同一個域,但給予不同的屬性名。 列的順序無所謂,即列的次序可以任意交換。 任意兩個元組不能完全相同,即無重復(fù)行。 行的順序無所謂,即行的次序可以任意交換。 分量必須取原子值,即每一個
13、分量都必須是不可分的數(shù)據(jù)項。,基本關(guān)系性質(zhì):,注:許多關(guān)系數(shù)據(jù) 產(chǎn)品,不完全具備該性質(zhì),2024年3月9日10時55分,數(shù)據(jù)庫原理,15,2.2.2 關(guān)系模式,,定義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)系集合。,S(S#,SNAME,SA,SD),關(guān)系模式通常簡記為: R(U),,關(guān)系
14、模式就是關(guān)系的框架(表框架) 它是對關(guān)系結(jié)構(gòu)的描述 域名及屬性向域的映象常直接說明為屬性的類型、長度,2024年3月9日10時55分,數(shù)據(jù)庫原理,16,學(xué)生關(guān)系模式 S(S#, SNAME, AGE, SEX) 學(xué)生課程關(guān)系模式 SC(S#, C#, GRADE) 課程關(guān)系模式 C(C#, CNAME, TEACHER),SC,C,S,2024年3月9日10時55分,數(shù)據(jù)庫原理,17,2.2.3 關(guān)系數(shù)據(jù)庫,,在關(guān)
15、系模型中,實體以及實體間的聯(lián)系都是用關(guān)系來表示。在一個給定的應(yīng)用領(lǐng)域中,所有實體及實體之間的聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。,關(guān)系數(shù)據(jù)庫也有型和值之分: 型(關(guān)系數(shù)據(jù)庫模式): 對關(guān)系數(shù)據(jù)庫的描述,包括若干域的定義以及在這些域上定義的若干關(guān)系模式。 值:關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,通常稱為關(guān)系數(shù)據(jù)庫。,2024年3月9日10時55分,數(shù)據(jù)庫原理,18,2.3 關(guān)系的完整性,,完整性約束,,實體完整性,參照完整性,用戶定義
16、的完整性,,關(guān)系的兩個不變性,2024年3月9日10時55分,數(shù)據(jù)庫原理,19,(Entity Integrity),規(guī)則2.1 若屬性A是基本關(guān)系R(u)(A∈u)上的主屬性,則屬性A 不能取空值。,例:選課SC中的S#,C#均不能取空值。,該規(guī)則是針對基本關(guān)系而言的; 現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識; 關(guān)系模型中以主碼作為唯一性標(biāo)識; 主碼中的屬性即主屬性不能取空值。,2024年
17、3月9日10時55分,數(shù)據(jù)庫原理,20,(Referential Integrity),規(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中的某個元組的主碼值。,定義外碼與主碼之間的引用規(guī)則,2024年3月9日10時55分,數(shù)據(jù)庫原理,21,例:職工 EMP(EMP#,ENAM
18、E,JOB,DEPT#) 部門 DEPT(DEPT#,DNAME,LOC),例:學(xué)生 S(S#, SNAME, AGE, SEX) 課程 C(C#, CNAME, TEACHER) 學(xué)生課程 SC(S#, C#, GRADE),則:EMP中的DEPT#為空或為DEPT中的DEPT#的值,則:SC中的S#為空或為S中的S#的值;SC中的C#為空或為C中的C#的值。,2024年3月9日10時55分,數(shù)據(jù)庫原理,22
19、,(User-defined Integrity),用戶自定義完整性是針對某一具體數(shù)據(jù)的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求,由應(yīng)用環(huán)境決定。,例: 屬性的取值范圍 ; 屬性的非空限制,2024年3月9日10時55分,數(shù)據(jù)庫原理,23,,關(guān) 系 數(shù) 據(jù) 庫 語 言,關(guān)系代數(shù),,,具有關(guān)系代數(shù)和關(guān)系演算雙重特點,關(guān)系演算,域演算,關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL,用關(guān)系運算來表達查詢,以ISBL為代表,用謂詞公式來
20、表達查詢元組演算(以行為變量),以ALPHA為代表,域演算(以列為變量),以QBE為代表,元組演算,元組演算、域演算,2024年3月9日10時55分,數(shù)據(jù)庫原理,24,2.4 關(guān)系代數(shù),,一種抽象的查詢語言,用對關(guān)系的運算來表達查詢。運算的三大要素:,運算對象——關(guān)系 運算符 運算結(jié)果——關(guān)系,,集合運算符(并、差、交),專門的關(guān)系運算符(廣義笛卡爾積、選擇、投影、
21、 連接、除),算術(shù)比較符(大/小于、大/小于等于、等于、不等于),邏輯運算符(非、與、或),2024年3月9日10時55分,數(shù)據(jù)庫原理,25,2.4.1 傳統(tǒng)的集合運算,,并(Union)運算,設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成。其結(jié)果關(guān)系仍為n目關(guān)系。記作:R∪S={ t | t∈R∨t∈S },,,,,2024年3月9日10時
22、55分,數(shù)據(jù)庫原理,26,差(Difference)運算,,,,,2024年3月9日10時55分,數(shù)據(jù)庫原理,27,R1∩R2,,設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個域,則關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,其結(jié)果仍為n目關(guān)系。記作: R∩S={t | t∈R∧t∈S},交(Intersection)運算,2024年3月9日10時55分,數(shù)據(jù)庫原理,28,廣義笛卡爾積(Extended Cartesian
23、 Product)運算,兩個分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1×k2個元組。記作:,2024年3月9日10時55分,數(shù)據(jù)庫原理,29,2.4.2 專門的關(guān)系運算,,S,2024年3月9日10時55分,數(shù)據(jù)庫原理,30,選擇運算是從關(guān)系中選取使公式為真的元組。這是
24、從行的角度進行的運算。,在關(guān)系R中選擇滿足給定條件的元組,記作: σF (R) ={ t | t ∈R Λ F(t)=‘真’ } F是一個公式,表示形式為由邏輯運算符(∧,∨,?)連接各算術(shù)表達式組成。 算術(shù)表達式的基本形式為:XθY。 θ ={>, ≥ ,<, ≤ ,=, ≠} 。,選擇(Selection)運算,(b),2024年
25、3月9日10時55分,數(shù)據(jù)庫原理,31,例1 求計算機科學(xué)系CS的學(xué)生,,,,σ SD=‘CS’ (S),2024年3月9日10時55分,數(shù)據(jù)庫原理,32,例2 求計算機科學(xué)系CS,年齡不超過21歲的學(xué)生。,σ SD=‘CS’∧SA≤21 (S),S’,,,,σ SD=‘CS’ (S),,,2024年3月9日10時55分,數(shù)據(jù)庫原理,33,這是從列的角度進行的運算。,關(guān)系R上的投影是從R中選擇若干屬性列組成新的關(guān)系。記做:
26、 πA (R) ={ t[A] | t ∈R}投影之后不僅取消了某些列,還可能取消某些元組。,投影(Projection)運算,2024年3月9日10時55分,數(shù)據(jù)庫原理,34,,,例3 πSN,SD (S) 即求得學(xué)生關(guān)系S在學(xué)生姓名和所在系這兩個 屬性上的投影結(jié)果。,πSN,SD (S),學(xué)號 學(xué)生姓名 所屬系名 學(xué)生年齡 S# SN
27、 SD SA S1 A CS 20 S2 B CS 21 S3 C MA 19 S4 D CI 19 S5 E MA 20 S6 F CS 22,,,,,,(a),(S),πSA (S),SA20
28、211922,,,,,,SN SD A CS B CSC MAD CIE MAF CS,,,,,πSA (S) 即求得學(xué)生關(guān)系S在年齡屬性上的投影結(jié)果。,2024年3月9日10時55分,數(shù)據(jù)庫原理,35,連接運算是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。記做:,連接(Join)運算,其中,F(xiàn)是條件表達式,它涉及到對兩個關(guān)系中的屬性的比較。,例4 設(shè)關(guān)
29、系R、S如下圖:,2024年3月9日10時55分,數(shù)據(jù)庫原理,36,例5 設(shè)關(guān)系R、S如下圖:,θ為“=”的連接運算稱為等值連接:,等值連接,,2024年3月9日10時55分,數(shù)據(jù)庫原理,37,自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。,例6 關(guān)系R、S的自然連結(jié):,自然連接,2024年3月9日10時55分,數(shù)據(jù)庫原理,38,給定關(guān)系R(X,Y)和S(Y,Z),其中
30、X, Y, Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作: R÷S = { tr[X] | tr∈R ∧ Yx ?ΠY(S) } 其中Yx為x在R中的象集,x=tr[X]。,除(Division)運算,2024年3月9日10時55分,數(shù)據(jù)庫原理,
31、39,例7,Z,X,Y,,2024年3月9日10時55分,數(shù)據(jù)庫原理,40,a1的象集為:,a2的象集為:,a3的象集為:,a4的象集為:,{(b1,c2),(b2,c3),(b2,c1)},{(b3,c7),(b2,c3)},{(b4,c6)},{(b6,c6)},S在B、C上的投影,{(b1,c2),(b2,c3),(b2,c1)},R÷S = { tr[X] | tr∈R ∧ Yx ?ΠY(S) },R÷S
32、={ a1},,,除(Division)運算,,2024年3月9日10時55分,數(shù)據(jù)庫原理,41,并、差、笛卡兒積、選擇、投影,R?S = R-(R-S) 或 R?S = S-(S-R),R∩S={t|t∈R∧t∈S},1 2 3,σAθB (R×S),R÷S = { tr[X] | tr∈R ∧ Yx ?ΠY(S) },,關(guān)系代數(shù)五種基本運算,,交、連接和除可以用上
33、述5種基本運算表示,2024年3月9日10時55分,數(shù)據(jù)庫原理,42,3 除運算,給定關(guān)系R(X,Y)和S(Y,Z),其中X, Y, Z為屬性組。 R÷S = { tr[X] | tr∈R ∧ Yx ?ΠY(S) } 其中Yx為x在R中的象集,x=tr[X],① T= π x ( R ),② P= πy ( S ),③ Q= (T×P)-R,④ W
34、= π x ( Q ),⑤ R÷S = T-W,R÷S = π x ( R )-π x ((T×πy ( S ))-R ),2024年3月9日10時55分,數(shù)據(jù)庫原理,43,,① T= π x ( R ),② P= πy ( S ),③ Q= (T×P)-R,④ W= π x ( Q ),⑤ R÷S = T-W,R,S,,,,,,,,,,,,,,,,,,,,3 除運算,,2024年3月
35、9日10時55分,數(shù)據(jù)庫原理,44,,,設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系: 學(xué)生關(guān)系S(S#,SNAME,SD, AGE ) 課程關(guān)系C(C#,CN, CP#) 學(xué)習(xí)關(guān)系SC(S#,C#,GRADE),例1 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績,,,,πS# ,GRADE(σ C# =‘C2’ (SC)),σ C# =‘C2’ (SC),關(guān)系代數(shù)表達式,2024年3月9日
36、10時55分,數(shù)據(jù)庫原理,45,例2 檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號和姓名,2024年3月9日10時55分,數(shù)據(jù)庫原理,46,例3 求選修《數(shù)據(jù)庫原理》這門課程的學(xué)生名和所在系。,設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系: 學(xué)生關(guān)系S(S#,SNAME,SD, AGE ) 課程關(guān)系C(C#,CN, CP#) 學(xué)習(xí)關(guān)系SC(S#,C#,GRADE),,2024年3月9日10時55分
37、,數(shù)據(jù)庫原理,47,例4 檢索學(xué)習(xí)課程號為C2或C3的學(xué)生學(xué)號和所在系,2024年3月9日10時55分,數(shù)據(jù)庫原理,48,例5 求至少選修C2和C3這兩門課程的學(xué)生名。,解法2,2024年3月9日10時55分,數(shù)據(jù)庫原理,49,,例7 求選修全部課程的學(xué)生名。,例8 求至少選修了劉晨所選課程的學(xué)生名。,πS#(SC)-πS# (σC# =‘C2’ (SC)),例6 求不學(xué)C2這門課程的學(xué)生名。,πS#(S)-πS#
38、(σC# =‘C2’ (SC)),×√,,不是所有的學(xué)生都選修了課程,2024年3月9日10時55分,數(shù)據(jù)庫原理,50,2.5 關(guān)系演算,,關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。,元組關(guān)系演算以元組變量作為謂詞變元的基本對象。 ALPHA語言主要有:GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句,域關(guān)系演算以元組變量的分量作為謂
39、詞變元的基本對象。 QBE是Query By Example(即通過例子進行查詢),2024年3月9日10時55分,數(shù)據(jù)庫原理,51,2.5.1,,元組關(guān)系演算語言ALPHA,元組關(guān)系演算語言ALPHA ALPHA語言是元組關(guān)系演算語言,謂詞變元是元組變量。 元組變量的二個用途是: (1) 簡化關(guān)系名; (2) 操作條件中使用量詞時必須用元組變量。,例 查詢計算機系學(xué)生的姓名
40、 元組變量X用來簡化關(guān)系名Student RANGE Student X GET W (X. Sname): X. Deptno =‘CS’ 操作語句 工作空間名 表達式 操作條件,,,,,,(tuple relational calculus),2024年3月9日10時55分,數(shù)據(jù)庫原理,52,檢索操作,更新操作,(1)簡單檢索(即不帶條件的檢索),(2)限定的檢索(即帶條件的檢索),(3)帶排序的檢索
41、,(4)帶定額的檢索,(5)用元組變量的檢索,(6)用存在量詞的檢索,(7)帶有多個關(guān)系的表達式的檢索,(8)用全稱量詞的檢索,(9)用兩種量詞的檢索,(10)用蘊函(Implication)的檢索,(11)集函數(shù),,(1) 修改操作,(2) 插入操作,(3) 刪除,,,元組關(guān)系演算,2024年3月9日10時55分,數(shù)據(jù)庫原理,53,,檢索操作,(1) 簡單檢索(即不帶條件的檢索),例1 查詢所有被選修課程的課程號碼,例2 查詢所
42、有學(xué)生的數(shù)據(jù),,,書59頁的數(shù)據(jù)庫,GET W (SC.Cno),這里條件為空,表示沒有限定條件。W為工作空間名。,GET W (Student),2024年3月9日10時55分,數(shù)據(jù)庫原理,54,(2)限定的檢索(即帶條件的檢索),,,例3 查詢信息系(IS)中年齡小于20歲的學(xué)生的學(xué)號和年齡,例4 查詢計算機科學(xué)系(CS)學(xué)生的學(xué)號、年齡,并按年齡降序排序,(3)帶排序的檢索,,檢索操作,GET W ( Student.Sno ,
43、Student.Sage ): Student.Sdept='IS' ∧ Student.Sage<20,GET W ( Student.Sno , Student.Sage ) : Student.Sdept = 'CS' DOWN Student.Sage,2024年3月9日10時55分,數(shù)據(jù)庫原理,55,(4)帶定額的檢索,
44、,例5 取出一個信息系學(xué)生的學(xué)號,,檢索操作,,例6 查詢信息系年齡最大的三個學(xué)生的學(xué)號及其年齡,結(jié)果按年齡降序排序。,GET W (1) (Student.Sno): Student.Sdept='IS',GET W (3) ( Student.Sno , Student.Sage ) : Student.Sdept = 'IS' DOWN Student.Sage,202
45、4年3月9日10時55分,數(shù)據(jù)庫原理,56,,例7 查詢信息系學(xué)生的名字,(5)用元組變量的檢索,,檢索操作,RANGE Student X GET W (X.Sname): X.Sdept='IS',2024年3月9日10時55分,數(shù)據(jù)庫原理,57,,檢索操作,(6)用存在量詞的檢索,,,例8 查詢選修2號課程的學(xué)生名字,例9 查詢選修了其直接先行課是6號課程的課程的學(xué)生學(xué)號,RANGE
46、SC X GET W (Student.Sname):?X(X.Sno = Student.Sno ∧ X.Cno = '2'),RANGE Course CX GET W (SC.Sno):?CX (CX.Cno=SC.Cno ∧ CX.Pcno='6'),2024年3月9日10時55分,數(shù)據(jù)庫原理
47、,58,例10 查詢至少選修一門其先行課為6號課程的學(xué)生名字,前束范式(Prenex normal form)的形式:,RANGE Course CX SC SCX GET W (Student.Sname):?SCX(SCX.Sno=Student.Sno ∧ ?CX (CX.Cno=SCX.Cno ∧ CX.Pcno='6')),,GET W (Student.Snam
48、e):?SCX?CX(SCX.Sno=Student.Sno ∧ CX.Cno=SCX.Cno ∧ CX.Pcno='6'),2024年3月9日10時55分,數(shù)據(jù)庫原理,59,(7)帶有多個關(guān)系的表達式的檢索,,例11 查詢成績?yōu)?0分以上的學(xué)生名字與課程名字,RANGE SC SCX GET W (Student.Sname, Course.Cname):?SCX (
49、SCX.Grade≥90 ∧ SCX.Sno=Student.Sno ∧ Course.Cno=SCX.Cno),,檢索操作,查詢結(jié)果表達式中可以有多個關(guān)系,(本查詢所要求的結(jié)果學(xué)生名字和課程名字分別 在Student和Course兩個關(guān)系中。),2024年3月9日10時55分,數(shù)據(jù)庫原理,60,,檢索操作,(8)用全稱量詞的檢索,,例12 查詢不選1號課程的學(xué)生名字,存在量詞來表示:,,RANGE S
50、C SCX GET W (Student.Sname):?SCX(SCX.Sno≠Student.Sno ∨ SCX.Cno≠'1'),RANGE SC SCX GET W (Student.Sname):??SCX(SCX.Sno=Student.Sno ∧
51、 SCX.Cno='1'),2024年3月9日10時55分,數(shù)據(jù)庫原理,61,(9)用兩種量詞的檢索,,例13 查詢選修了全部課程的學(xué)生姓名,,檢索操作,RANGE Course CX SC SCX GET W (Student.Sname):?CX?SCX (SCX.Sno = Student.Sno ∧ SCX.Cno = CX.Cno
52、),2024年3月9日10時55分,數(shù)據(jù)庫原理,62,,檢索操作,(10)用蘊函(Implication)的檢索,例14 查詢最少選修了95002學(xué)生所選課程的學(xué)生學(xué)號,,RANGE Couse CX SC SCX SC SCY GET W (Student.Sno):?CX(?SCX (SCX.Sno='95002' ∧ SCX.Cno=
53、CX.Cno) => ?SCY(SCY.Sno=Student.Sno ∧ SCY.Cno=CX.Cno)),2024年3月9日10時55分,數(shù)據(jù)庫原理,63,,檢索操作,(11)集函數(shù)(Aggregation function),,例15 查詢學(xué)生所在系的數(shù)目,例16 查詢信息系學(xué)生的平均年齡,,GET W (COUNT(Student.Sdept)),GET W (AVG(Student.Sage) ): St
54、udent.Sdept='IS',2024年3月9日10時55分,數(shù)據(jù)庫原理,64,,更新操作,(1) 修改操作,,首先用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中 然后用宿主語言修改工作空間中元組的屬性 最后用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中,UPDATE語句實現(xiàn)步驟是:,例17 95007學(xué)生從計算機科學(xué)系轉(zhuǎn)到信息系,HOLD W (Student.Sno, Student.Sdetp):
55、Student.Sno='95007' (從Student關(guān)系中讀出95007學(xué)生的數(shù)據(jù)) MOVE 'IS' TO W.Sdept (用宿主語言進行修改) UPDATE W (Student) ?。ò研薷暮蟮脑M送回Student關(guān)系),2024年3月9日10時55分,數(shù)據(jù)庫原理,65,,更新操作,(2) 插入操作,,首先用宿主語
56、言在工作空間中建立新元組 然后用PUT語句把該元組存入指定的關(guān)系中,PUT語句實現(xiàn)步驟:,例18 學(xué)校新開設(shè)了一門2學(xué)分的課程“計算機組織與結(jié)構(gòu)”,其課程號為8,直接先行課為6號課程。插入該課程元組。,MOVE '8' TO W.Cno MOVE ' 計算機組織與結(jié)構(gòu)' TO W.Cname MOVE '6' TO W.Cpno MOVE &
57、#39;2' TO W.Ccredit PUT W (Course),2024年3月9日10時55分,數(shù)據(jù)庫原理,66,,更新操作,(3) 刪 除,,用HOLD語句把要刪除的元組從數(shù)據(jù)庫中讀到工作空間中 用DELETE語句刪除該元組,DELETE語句實現(xiàn)步驟:,例19 95110學(xué)生因故退學(xué),刪除該學(xué)生元組,HOLD W (Student): Student.Sno='95110'
58、DELETE W,2024年3月9日10時55分,數(shù)據(jù)庫原理,67,例20 將學(xué)號95001改為95102,HOLD W (Student): Student.Sno='95001' DELETE W (Student) MOVE '95102' TO W.Sno MOVE ‘李勇' TO W.Sname MOVE ‘男' TO W.Ssex
59、MOVE '20' TO W.Sage MOVE 'CS' TO W.Sdept PUT W (Student),2024年3月9日10時55分,數(shù)據(jù)庫原理,68,例21 刪除全部學(xué)生,HOLD W (SC) DELETE W,+,HOLD W (Student) DELETE W,SC與Student之間具有參照關(guān)系,為保證參照完整性,刪除Stu
60、dent中元組時相應(yīng)的要刪除SC中的元組。,2024年3月9日10時55分,數(shù)據(jù)庫原理,69,2.5.3,,域關(guān)系演算語言QBE,域關(guān)系演算用域變量代替元組變量的每一個分量,域變量的變化范圍是某個值域而不是一個關(guān)系。QBE為基于屏幕表格的查詢語言,用戶通過終端屏幕編輯程序以填寫表格的方式構(gòu)造查詢要求,而查詢結(jié)果也是以表格形式顯示。,,QBE是Query By Example(即通過例子進行查詢),2024年3月9日10時55分,數(shù)據(jù)庫原
61、理,70,檢索操作,更新操作,(1)簡單查詢,(2)條件查詢,(3)集函數(shù),(4)對查詢結(jié)果排序,,(1) 修改操作,(2) 插入操作,(3) 刪除操作,,,域關(guān)系演算,2024年3月9日10時55分,數(shù)據(jù)庫原理,71,,檢索操作,(1) 簡單查詢,例1 求信息系全體學(xué)生的姓名,1) 用戶提出要求,2) 屏幕顯示空白表格,3) 用戶在最左邊一欄輸入關(guān)系名,4) 屏幕顯示該關(guān)系的欄名,即Student關(guān)系的各個屬性名,5) 用戶在上面
62、構(gòu)造查詢要求,6) 屏幕顯示查詢結(jié)果,Student,Sno Sname Ssex Sage Sdept,P. T IS,P.李勇 IS,操作步驟:,2024年3月9日10時55分,數(shù)據(jù)庫原理,72,例2 查詢?nèi)w學(xué)生的全部數(shù)據(jù),Student,Sno Sname
63、 Ssex Sage Sdept,P. 95001 P.李勇 P.男 P.20 P.CS,示例元素下面要加下劃線,P.是表示打印的操作符。示例元素是這個域中可能的一個值,不必是查詢結(jié)果中的元素。,2024年3月9日10時55分,數(shù)據(jù)庫原理,73,(2) 條件查詢,例3 求年齡大于19歲的學(xué)生的學(xué)號,Student,Sno Sname
64、Ssex Sage Sdept,P. 95001 >19,,檢索操作,2024年3月9日10時55分,數(shù)據(jù)庫原理,74,例4 求計算機科學(xué)系年齡大于19歲的學(xué)生的學(xué)號,Student,Sno Sname Ssex Sage Sdept,P. 95001 >19 CS,Student,
65、Sno Sname Ssex Sage Sdept,P. 95001 CS,P. 95001 >19,2024年3月9日10時55分,數(shù)據(jù)庫原理,75,例5 查詢計算機科學(xué)系或者年齡大于19歲的學(xué)生的學(xué)號,Student,Sno Sname Ssex Sage Sd
66、ept,P. 95001 CS,P. 95002 >19,例6 查既選修了1號課程又選修了2號課程的學(xué)生的學(xué)號,SC,Sno Cno Grade,P. 95001 1,P. 95001 2,2024年3月9日10時55分,數(shù)據(jù)庫原理,76,,“與”:(1)條件寫在同一行上; (2)把兩個條件寫在不同
67、行上,但使用 相同的示例元素。,,“或”:兩個條件寫在不同行上,且使用不同 的示例元素。,2024年3月9日10時55分,數(shù)據(jù)庫原理,77,例7 查詢選修1號課程的學(xué)生姓名,Student,Sno Sname Ssex Sage Sdept,95001 P.李勇,SC,Sno Cno Grade,95001
68、 1,Sno為連接屬性,其值在兩個表中要相同。,2024年3月9日10時55分,數(shù)據(jù)庫原理,78,例8 查詢未選修1號課程的學(xué)生姓名,Student,Sno Sname Ssex Sage Sdept,┓ 95001 P.李勇,SC,Sno Cno Grade,95001 1,邏輯非——將其寫在關(guān)系名下面。,2024
69、年3月9日10時55分,數(shù)據(jù)庫原理,79,例9 查詢有兩個人以上選修的課程號,SC,Sno Cno Grade,95001 P. 1,┓95001 1,2024年3月9日10時55分,數(shù)據(jù)庫原理,80,,檢索操作,(3) 集函數(shù),函數(shù)名 功能,CNT 對元組計數(shù) SUM 求總和 AVG 求平均值
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)系數(shù)據(jù)庫的數(shù)據(jù)完整性保護研究.pdf
- 關(guān)系數(shù)據(jù)庫規(guī)范創(chuàng)建和數(shù)據(jù)完整性維護.pdf
- 基于關(guān)系模式的帶完整性約束的數(shù)據(jù)集成研究.pdf
- 基于xml的關(guān)系數(shù)據(jù)發(fā)布中完整性約束的研究與實現(xiàn)
- linux設(shè)備模型數(shù)據(jù)結(jié)構(gòu)關(guān)系
- 基于XML的關(guān)系數(shù)據(jù)發(fā)布中完整性約束的研究與實現(xiàn).pdf
- 基于泛關(guān)系的關(guān)系數(shù)據(jù)庫設(shè)計.pdf
- 外文翻譯---關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)
- 筆記與口譯信息產(chǎn)出完整性的關(guān)系.pdf
- 包含完整性約束的概率關(guān)系數(shù)據(jù)庫更新和查詢優(yōu)化方法研究.pdf
- 對象模式與關(guān)系數(shù)據(jù)模式的映射研究.pdf
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(家族關(guān)系查詢系統(tǒng))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--家族關(guān)系查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-- 家族關(guān)系查詢系統(tǒng)
- 多關(guān)系數(shù)據(jù)挖掘研究.pdf
- 關(guān)系數(shù)據(jù)分類算法的研究.pdf
- 數(shù)據(jù)庫外文翻譯---關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)
- 關(guān)系數(shù)據(jù)庫的模式設(shè)計習(xí)題及答案
- 鏈接結(jié)構(gòu)用于多關(guān)系數(shù)據(jù)挖掘的研究.pdf
- 根與系數(shù)的關(guān)系
評論
0/150
提交評論