數據庫系統(tǒng)原理(同名12)課件_第1頁
數據庫系統(tǒng)原理(同名12)課件_第2頁
數據庫系統(tǒng)原理(同名12)課件_第3頁
數據庫系統(tǒng)原理(同名12)課件_第4頁
數據庫系統(tǒng)原理(同名12)課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章關系數據庫 2.1關系數據庫概述 2.2關系數據結構 2.3關系的完整性 2.4關系代數 2.5關系演算* 2.6關系數據庫管理系統(tǒng) 2.1關系數據庫概述 關系數據庫系統(tǒng)是支持關系模型的數據庫系統(tǒng) 關系理論是建立在集合代數理論基礎上的,關系的定義和各種操作運算可以用集合代數給出 關系模型的三要素關系數據結構:二維表 關系操作:選擇、投影、連接、除、并,交、差等查詢以及增、刪、改 完整性約束 :實體、參照、自定義關系數據語言關系代數語言 ISBL 關系演算語言 元組關系演算語言 ALPHA,QUEL 域關系演算語言 QBE 具有關系代數和關系演算雙重特點的語言SQL 2.2關系數據結構 2

2、.2.1關系域:域是一組具有相同數據類型的值的集合。值的個數稱為域的基數 笛卡兒乘積 :給定一組域:D1,D2,Dn,域可以相同,定義D1D2Dn的笛卡兒乘積為:D1D2Dn(d1,d2,dn) |diDi,i1,2,n ; (d1,d2,dn)稱為一個元組 關系(Relation):笛卡兒乘積D1D2Dn的任一子集D,稱作D1,D2,Dn上的關系。 用R(D1,D2Dn)來表示 D中的每個元素(d1,d2,dn)是關系的一個元組 實際應用中關系往往是笛卡兒乘積中有意義的子集構成 n1是單元關系/一元關系;n2是二元關系 舉例域 性別集男、女?;鶖? 月份集1,2,3,4,5,6,7,8,9,

3、10,11,12,基數12 笛卡兒乘積 D1姓名集合趙一平,錢峰,孫英D2性別集合男,女D3年齡集合16,17,18關系姓名性別年齡趙一平男16錢峰男17孫英女172.2.2關系模式關系的描述稱為關系模式(Relation schema),一般表示為R(U,D,DOM,F) 其中,R是關系名,U是組成該關系的屬性集合,D為屬性組U中屬性所來自的域,DOM是屬性向域的映象集合,F是屬性間數據的依賴關系集合。2.2.3關系數據庫 在一個給定的現實世界領域里,所有實體及實體間的聯系的關系所構成的集合是一個關系數據庫關系數據庫有型和值之分:關系數據庫的型也稱關系數據庫模式,是對關系數據庫的描述它包括若

4、干域的定義以及在這些域上定義的若干關系模式;關系數據庫的值也稱為關系數據庫,是這些關系模式在某一時刻對應的關系的集合 關系數據庫的值與關系數據庫模式通稱為關系數據庫 2.3關系的完整性 實體完整性 若屬性A是基本關系R的主屬性,則A不能取空值 參照完整性 若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(關系R、S不一定是不同的關系),則對于R中的每一個元組在F上的取值必須:取空值(F的每個屬性值均取空值) 等于S中某個元組的主碼值 自定義完整性 2.4關系代數 關系代數由一組關系運算組成,是對于關系的操作集。關系運算以一個或多個關系作為操作的對象,運算結果是一個新的關系

5、。用關系運算實現查詢 關系代數運算符 集合運算符:(并)(差)(交)(笛卡兒積) 專門運算符:選擇 投影 連接 除 比較運算符: = 邏輯運算符: 非 與 或 常用的關系運算交、并、差、笛卡兒積、投影、選擇、連接、除 基本關系運算有 并、差、笛卡兒積、投影、選擇同類關系:具有相同的度,且兩個關系每個屬性屬同一個域 2.4.1傳統(tǒng)的集合運算假設: NameSexAgeZhangF22WangM25LuM37ChenF27RNameSexAgeZhangF22WangM25LuF30SunM28S并(Union):同類關系R和S的并記為RS,或R union S 定義:RS=t|tR tS注意去除

6、重復元組 NameSexAgeZhangF22WangM25LuM37ChenF27LuF30SunM28RS 交(Intersection)同類關系R和S的交記為RS,或R intersect S 定義:RS t|tR tS R(RS) NameSexAgeZhangF22WangM25RS 差(Minus/Difference)同類關系R和S的差記為RS或R minus S 定義:RS t|tR tS NameSexAgeLuM37ChenF27RS 笛卡兒積(Cartesian Product)關系R和S的笛卡兒積記為RS 定義:RS ts|tR, sS CNoCNC-11OSC-21D

7、BSNoSNAgeS-01Huang21S-21Lin20S-30Shao22CNoCNSNoSNAgeC-11OSS-01Huang21C-11OSS-21Lin20C-11OSS-30Shao22C-21DBS-01Huang21C-21DBS-21Lin20C-21DBS-30Shao22R S RS 2.4.2專門的關系運算引入以下記號 : 設關系模式R(A1,A2,An),它的一個關系為Rt,tRt表示t是Rt的一個元組。tAi則表示元組t中相應于Ai的一個分量 若AAi1,Ai2,Aik是A1,A2,An的一部分,k=18(Student) 連接(Join)從兩個關系的笛卡兒乘積中

8、選取屬性滿足一定條件的元組,組成新的關系 記做:R S trts| trR tsS trAtsB AB AB (RS) AB表示R上的屬性A和S上的屬性B滿足條件,是比較運算符,A、B的度數相等且可比。這里假設AB分別在R、S關系的第i、j列,R度為r 等值連接(equijoin):為“”時稱為等值連接記:R S trts| trR tsS trAtsB A=B 自然連接(Natioal Join):兩個關系中具有相同的屬性,并且在相同的屬性上做等值連接。自然連接需要取消重復列,而等值連接不需要 。記:R S trts| trR tsS trAtsA BEF20E1F150E2F340E3F1

9、S ABCDEF3020C1D3E1F14020C2D3E1F15020C3D1E1F15040C3D1E3F1ACD30C1D340C2D350C3D110C4D1假設 R R S AB 除法(Division)給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組,R中的Y與S中的Y可以不同屬性名,但必須有相同的域。記RS。令P(X)RS,則P是R中滿足以下條件的元組在X屬性列上的投影:元組在X上的分量值x的象集Yx包含S在Y上投影的集合記做:RStrX|trR YxY(S) RS X(R)X(X(R)Y(S)R) ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2

10、b2c3a1b2c1假設 R BCDb1c2d1b2c1d1b2c3d2S Aa1RS b1c2b2c1b2c3b2c3b3c7b4c6b6c6Yxa1Yxa2Yxa3Yxa4象集: 外連接(Outer Join)如果R和S在做自然連接時,把該舍棄的元組也保存在新關系中,在新增加的屬性上填空值(null),這種操作稱為“外連接”。如果把R中該舍棄的元組保留在新關系中稱左連接;把S中該舍棄的元組保留在新關系中稱右連接 外部并(Outer Union) 若關系R和S不同類,則新關系的屬性由R和S的屬性組成,公共屬性只取一次,新關系的元組由屬于R或S的元組構成,新增的屬性上均填空(null) 半連接

11、(Semijoin) 關系R和S的半連接定義為R和S的自然連接在關系R的屬性集上的投影 ABCabcbbfcadBCDbcdbceadbefg假設 R S ABCDabcdabcecadbbbfnullnullefgABCDabcdabcecadbbbfnullR Outer Join S R left Outer Join S ABCDabcdabcecadbnullefgABCDabcnullbbfnullcadnullnullbcdnullbcenulladbnullefgABCabcabccadBCDbcdbceadbR right Outer Join S R Outer Union

12、 S R Semijoin S R(R S) S Semijoin R S(R S) 2.4.3*關系代數運算應用舉例 假設S(S,SN,SSEX,SAGE)C(C,CN,TEACHER)SC(S,C,GRADE)檢索學習課程號為C2的學生學號與成績 S#,GRADE( C#=C2(SC) 或1,3( 2=C2(SC) 檢索學習課程號為C2的學生學號與姓名 S#,SN( C#=C2(S SC) 檢索選修課程名為Maths的學生學號與姓名 S#,SN( CN=Maths(S SC C) 檢索選修課程為C2或C4的學生學號 S#( C#=C2 C#=C4(SC) )檢索至少選修課程為C2和C4的學

13、生學號 S#( 14 2=C2 5=C4(SCSC)檢索不選修C2課程的學生姓名與年齡 SN,SAGE (S)SN,SAGE( C#=C2(SC S) 檢索選修全部課程的學生姓名 SN(S (S#,C#(SC) C#(C) ) ) 檢索所學課程包含學生S3所學課程的學生學號 S#,C#(SC) C# ( S#=S3(SC) 2.4.4關系代數式的等價規(guī)則1.連接、笛卡爾積交換律E1E2 E2E1E1 E2 E2 E1E1 F E2 E2 F E12.連接、笛卡爾積結合律(E1E2) E3 E1(E2E3)(E1 E2) E3 E1 (E2 E3)(E1 F1 E2) F2 E3 E1 F1 (

14、E2 F2 E3) 3.投影的串接定律A1,A2,An(Ak1,Ak2,Akm (R) A1,A2,An (R) A1,A2,An是Ak1,Ak2,Akm 的子集4.選擇的串接定律 F1( F2(R) F1F2(R)5.選擇與投影的交換律 A1,A2,An (F(R) F(A1,A2,An (R)A1,A2,An (F(R) A1,A2,An (F(A1,A2,An,B1,B2,.Bn (R)例: A ( R.A=S.B(RS) A ( R.A=S.B( A,B (RS) A ( R.A=S.B( A(R)B(S)6.選擇對笛卡爾積的分配率 F ( E1E2) F1 ( E1) F2 ( E2

15、)F=F1F2,F1只涉及E1,F2只涉及E2 F ( E1E2) F ( E1) E2F只涉及E1 F ( E1E2) F2( F1 ( E1) E2)F1只涉及E1,F2涉及E1,E27.選擇對并的分配率 F ( E1E2) F1 ( E1) F2 ( E2)8.選擇對差的分配率 F ( E1 - E2) F1 ( E1) - F2 ( E2)9.投影對笛卡爾積的分配率A1,A2,An,B1,B2,.Bn (E1E2) A1,A2,An(E1) B1,B2,.Bn (E2) A1,A2,An是E1屬性,B1,B2,.Bn是E2 屬性10.投影對并的分配率 A1,A2,An(E1E2) A1

16、,A2,An(E1)A1,A2,An(E2) 11.選擇對自然連接的分配率 F ( E1 E2) F1 ( E1) F2 ( E2)F=F1F2,F1只涉及E1,F2只涉及E212.選擇與連接操作的結合率 F ( E1E2) E1 F E2 F形如E1.A E2.B F1 ( E1 F2 E2) E1 F1F2 E2 F1,F2形如E1.A E2.B利用規(guī)則優(yōu)化查詢例:設學生選課系統(tǒng)中,學生關系S有1000條記錄,每個學生平均選課10門,則SC關系有10000條記錄,課程關系C有1000條記錄。若需要查詢學生“王芳”所選修課程的成績在85分以上的課程名。設 F1表示S.sno=SC.sno F

17、2表示SC.cno=C.cno F3表示S.sn=王芳 F4表示SC.grade=85 cn(F1F2F3F4(SSCC) 1010條連接記錄O(1010) cn(F3F4(S F1SC F2C) 104條記錄,運算O(1010) cn(F3(S)F4(SC) C) =10條記錄,運算O(104) 優(yōu)化過程 cn (F1F2F3F4(SSCC) /式 = cn (F3F4F2(F1(SSC)C) /規(guī)則4,2 = cn (F3F4F2(F1(SSC)C) /規(guī)則6 = cn (F3F4 F2 (S SC)C) /規(guī)則12 = cn (F3F4 (S SC) C) /規(guī)則12 式 = cn (F

18、3(S) F4(SC) C) /規(guī)則11 式基于語法樹優(yōu)化檢索選修DB課程的女生學號及姓名。 sno,sname(cname=dbsex=F(S.sno=SC.snoSC.cno=C.no (SSCC) sno,snamecname=dbsex=FS.sno=SC.snoSC.cno=C.noSCCS初始語法樹 sno,snamecname=dbsex=FS.sno=SC.snoSC.cno=C.noSCCS條件分解條件下移 sno,snamesex=FS.sno=SC.snoSCCScname=dbSC.cno=C.no sno,snamesex=FS.sno=SC.snoSCCScname=dbSC.cno=C.no投影前移 sno,sname sno cno sno,cno sno,snamesex=FS.sno=SC.snoSCCScname=dbSC.cno=C.no笛卡爾積和選擇合成連接 sno,sname sno sno,cno cno sno,

溫馨提示

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

評論

0/150

提交評論