數據庫系統概論第二章_第1頁
數據庫系統概論第二章_第2頁
數據庫系統概論第二章_第3頁
數據庫系統概論第二章_第4頁
數據庫系統概論第二章_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1第2章 關系數據庫 關系模型具有嚴格的數學基礎,應用數學方法處理數據庫中的數據,奠定關系數據庫理論基礎的人是美國IBM公司的E.F.Codd。模型的提出是在1970年, E.F.Codd的一篇論文“A Relational Model of Data for Shared Data Banks”開創了數據庫系統的新紀元,系統、嚴格的提出了關系模型。 20世紀70年代末關系方法的理論研究已經取得了很大的成果,其中,有兩大研究機構及其試驗系統,一個是IBM公司的System R系統,另一個是美國加州大學伯克利分校的INGRES系統。1981年關系數據庫的軟件產品就問世了。目前主流的商業數據庫系統

2、Oracle,Informix(IBM收購),Sybase,SQL Server,DB2Access,Foxpro,Foxbase 2關系模型的組成關系模型的組成 關系數據結構關系數據結構 ( (實體及實體間的聯系均用二維表來表示實體及實體間的聯系均用二維表來表示) ) 關系操作(查詢及增、刪、改操作兩大部分)關系操作(查詢及增、刪、改操作兩大部分) 關系代數語言關系代數語言 元組關系演算語言元組關系演算語言(ALPHA,QUEL)(ALPHA,QUEL)關系數據語言關系數據語言 關系演算語言關系演算語言 域關系演算語言域關系演算語言(QBE)(QBE) 關系代數和關系演算結合的語言關系代數和

3、關系演算結合的語言(SQL)(SQL)關系的完整性關系的完整性 (實體完整性,參照完整性,用戶定義完整性)(實體完整性,參照完整性,用戶定義完整性)32.1 基本概念基本概念2.1.1 域域(domain)一組具有相同數據類型的值的集合。例:整數,實數,500的整數,性別(男、女)、字符串。2.1.2 笛卡爾積笛卡爾積(Cartesian product)1. 定義定義給定一組域D1,D2,Dn,則其笛卡積為:D1 D2 Dn=(d1,d2,dn)dnDj,j=1,2,n2. 說明1)(d1,dn)為集合中的一個元素,稱為n元組(ntuple),簡稱元組。2)元組中每個值di稱為分量43)集合

4、中元素無序a,b,c=b,a,c=c,b,a4)元組中分量有序(a,b,c)(b,a,c) 屬性及其值的對應性。5)笛卡爾積稱為一個二維表例 設有三個域:D1=男士集合=劉英,劉加D2=女士集合=白雪,白靈D=兒童集合=劉學,劉水,劉牛則D1,D2,D3的笛卡爾積為如下一張二維表: 5男男 士士 女女 士士 兒兒 童童 劉 英 白 雪 劉 學 劉 英 白 雪 劉 水 劉 英 白 雪 劉 牛 劉 英 白 靈 劉 學 劉 英 白 靈 劉 水 劉 英 白 靈 劉 牛 劉 加 白 雪 劉 學 劉 加 白 雪 劉 水 劉 加 白 雪 劉 牛 劉 加 白 靈 劉 學 劉 加 白 靈 劉 水 劉 加 白 靈

5、 劉 牛 笛卡爾積基數= 2 2 3 =12(12 個元組) 男士基數 女士基數 兒童基數 62.1.3 關系關系1. 定義定義D1 D2Dn的任意子集稱為在域D1,D2,Dn上的關系。記為:R(D1,D2,Dn)2. 說明1)R為關系名,n為關系的目或度(degree);2)關系是一張二維表;3)可多個候選KEY(candidate key);4)任選候選KEY之一為主碼(primary key)。例:可從上表中取出一個有意義子集作為一個關系 男 士 女 士 兒 童 丈 夫 妻 子 孩 子 劉 英 白 雪 劉 學 劉 英 白 雪 劉 學 劉 加 白 靈 劉 水 劉 加 白 靈 劉 水 劉 加

6、 白 靈 劉 牛 72.1.4 外碼外碼(internal key)對于R1和R2,A1,An為其屬性子集,若A1,A2,An不是R1的碼,但它是R2的碼,則稱A1,An為R1的外碼。Student (XH,XM)Course (KH,KM)SC (XH,KH,CJ) SC中的XH,KH為外碼。2.1.5 關系模式關系模式(Relation Schema)1. 定義定義關系的描述:R(A1,An)即:R(U,D,DOM,F)R:關系名。U:R中的屬性名序列。D:域(取值范圍)。DOM:屬性到域的映象集(屬性類型、長度)。F:屬性間數據依賴關系。82.1.6 關系數據庫關系數據庫1. 型:若干關

7、系模式的集合(內含)。2. 值:某一時刻每個關系模式對應的具體關系集(外延)。2.1.7 視圖視圖(View)2.1.8 關系的完整性關系的完整性1. 實體完整性(Entity integrity)主碼屬性不能為空。2. 參照完整性(Referential integrity)若關系R1中含有另一個關系R2中主碼的屬性組F(R1的外部KEY),則對于R1的每個無組在F上的值必須滿足:1)空,或2)等于R2中某個元組的主碼值9例:EMPL(ENO,ENAME,DNO) DEPT(DNO,DNAME)則對于EMPL中每個DNO的值必須為: 取空(說明該職工還未分配到某部門) DEPT中某個元組的D

8、NO值(該職工不可能分配到一個不存在的部門)3. 用戶定義完整性(user-defined integrity)用戶定義的約束。跳高100米, 人手2只 102.2 關系代數關系代數2.2.1 概述概述1、含義:用對關系的運算來表達查詢的一種傳統方式。2、分類:1)傳統集合運算并(),交(),差(),笛卡爾積()2)專門的關系運算投影(),選擇(),連接( ),除()3、運算符1)集合運算符:、2)專門運算符:、 、3)比較運算符:、4)邏輯運算符:、5)括號運算符:( )114、特殊記號1)設有關系模式R(A1,A2,Ai,An)則:tR:t是R的一個元組。t Ai:元組t中相應屬性Ai的一

9、個分量。 Student XH XM XB 2001 2007 千里馬 黃河 男 男 t “男” Ai(XB)的一個分量 122)設 A = Ai1, Ai2,Aik,Ai1,Ai2,Aik是A1,A2,An中的一部分,則:A:屬性列或域列。A:A1,A2,An中去掉(Ai1, Ai2,Aik)后剩余的屬性組。tA = (tAi1,tAi2,tAik):元組t在屬性A上諸分量的集合3)設R為n目關系,S為m目關系,則: trR,tsS:R和S的元組的連接,結果是一個n+m列元組;前n個分量是R的一個n元組;后m個分量是s的一個m元組,又稱元組的連串(Concatenation)。134)設有關

10、系R(X, Z),X、Z為屬性組,則:當tX = x時,x在R中的象集(images set)為:Zx = tZ| tR, tX = x表示:R中屬性組X上值為x的諸元組在Z上分量的集合。例:R為(學號,課程)設X為學號,則Z為課程,求x1的象集。學號學號課程課程1C語言1數據結構1數據庫2C語言課程課程C語言數據結構數據庫142.2.2 2.2.2 傳統集合運算傳統集合運算1. 并(union)1)定義:設有關兩個n目關系R、S,則RS表示是由屬于R或屬于S的元組組成。2)特征結果為n目關系:RS=t|tRtS;參入運算對象為兩個關系;R、S屬性同類(取自同一個域);相同元組取其一;從“行”

11、上取值。15A B C A B C a1 b1 c1 a1 b2 c2 a1 b2 c2 a1 b3 c2 a2 b2 c1 a2 b2 c1 例: R S16則RS結果為: R SA B C a1 b1 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 A B C A B C a1 b1 c1 a1 b2 c2 a1 b2 c2 a1 b3 c2 = a2 b2 c1 a2 b2 c1 173)作用:將一個新元組集加入到原關系中去。2、交(intersection)1)定義:設有兩個n目關系R、S,RS是由既屬于R同時又屬于S的元組組成。 R SA B C a1 b2 c2 a2

12、b2 c1 A B C A B C a1 b1 c1 a1 b2 c2 a1 b2 c2 a1 b3 c2 = a2 b2 c1 a2 b2 c1 182)特征結果為n目關系:RS = t|tRtS;參入運算為兩個同目關系;R、S屬性同類;從“行”上取值。193)作用:從兩個關系中找出相同元組。3、差(difference)1)定義:設有兩個n目關系R、S,則R-S是由屬于R不屬于S的元組組成。 R S A B C a1 b1 c1 A B C A B C a1 b1 c1 a1 b2 c2 a1 b2 c2 a1 b3 c2 = a2 b2 c1 a2 b2 c1 202)特征結果為n目關系

13、:R-S = t|tRts;參入運算為兩個同目關系;R、S同類;從“行”上取值。3)作用:從一個關系中刪去某些元組。4、笛卡爾積(Cartesian product)1)定義:設R為n目關系,S為m目關系,則RS是一個由R和S的所有元組連接在一起而組成的(n+m)列的元組集合。每一元組的前n個列是R的一個元組,后m列是s的一個元組。 21RS A B C A B C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c

14、1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1 222)特征結果為(n+m)目關系:RS = tr,ts|trRtss;參入運算為兩個關系;R、S不同類(實際上);從“行”上取值。3)作用:將兩個關系按元組連接組成一個新關系。232.2.3 2.2.3 專門的關系運算專門的關系運算1、選擇(selection)1)定義:從指定關系R中選取滿足條件的元組集的運算。 記作:F(R) = t|tRF(t) = 真 F:邏輯表達式(選擇對象應滿足的條件),一般表示為:X1Y1 X2Y2 X1,Y1:屬性 | 常量 | 簡單函數 | 列順序號 :比較運算符:

15、、 :邏輯運算符:、 :任選標識符,其中內容可有可無 A12,B=田野,3 = 8B5 (R)24設: student sc XH XM XB YL DM XH KH CJ 9901 于得水 男 24 計算機 9901 001 72 9903 牛得草 男 23 動力 9902 001 70 9904 白靈 女 22 計算機 9903 003 72 9902 馬千里 男 23 自控 9904 002 85 9903 001 72 25Course KH KM XF 001 DB 3 002 OS 3 003 C 2 004 AI 2 26例1 查計算機系學生 DM=計算機(Student) XH

16、 XM XB YL DM 9901 于得水 男 24 計算機 9904 白靈 女 22 計算機 student XH XM XB YL DM 9901 于得水 男 24 計算機 9903 牛得草 男 23 動力 9904 白靈 女 22 計算機 9902 馬千里 男 23 自控 27例2 查學分3分的課程 XF80 CJ=70 (SC) XH KH CJ 9902 001 70 9904 002 85 sc XH KH CJ 9901 001 72 9902 001 70 9903 003 72 9904 002 85 9903 001 72 292)說明參入運算只能一個關系;從行上取值。2、

17、投影(projection)1)定義:從指定關系R中選出若干屬性列的運算。記作:A(R)=tA tRA:R中的若干屬性列名或列順序號。30例3:查學生的姓名和年齡。XM, YL(Student)或2,4(Student) XH YL 于得水 24 牛得草 23 白靈 22 馬千里 23 student XH XM XB YL DM 9901 于得水 男 24 計算機 9903 牛得草 男 23 動力 9904 白靈 女 22 計算機 9902 馬千里 男 23 自控 31例4:查招有學生的系有哪些DM(Student)或4(Student) DM 計算機 動力 自控 去掉一個重復元組“計算機”

18、 2)說明:參入運算一個關系;從列上取值。 student XH XM XB YL DM 9901 于得水 男 24 計算機 9903 牛得草 男 23 動力 9904 白靈 女 22 計算機 9902 馬千里 男 23 自控 323、連接(Join)1)定義:從兩個指定關系R和S中選取滿足給定條件的元組的運算。記為:元組的連串(Concatenation)若r = (r1, ,rn),s = (s1 , ,sm),則定義r與s的連串為: rs = (r1, ,rn, s1 , ,sm)33設有如下關系R和S:R S A B C B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2

19、 b3 8 b3 10 a2 b4 12 b3 2 b5 2 2)說明運算步驟:笛長爾積取條件滿足者34例5 cERS笛卡爾積(RS): (R) (S) A B C B E a1 b1 5 b1 3 a1 b1 5 b2 7 a1 b1 7 b3 10 a1 b1 7 b3 2 a1 b1 7 b5 2 a1 b2 6 b1 3 a2 b3 8 b1 3 a2 b4 12 b1 3 a2 b4 12 b2 7 a2 b4 12 b5 2 35取其中C(a1,b2),(a2,b4),(a3,b5),Y=C,D=(c3,d5),(c4,d6),Z=Ff3,f4。其中,元組在X上各個分量值的象集分別

20、為:(a1,b2)的象集為(c3,d5),(c4,d6)(a2,b4)的象集為(c1,d3)(a3,b5)的象集為(c2,d8)S在Y上的投影為(c3,d5),(c4,d6)顯然只有(a1,b2)的象集包含S在Y上的投影,所以RS=(a1,b2) 435種基本運算并、差、笛卡爾積、投影、選擇其它運算交、連接、除均可用5種基本運算來表達,引進它們并不增加語言的能力,但可以簡化表達RS = R (R S)R S = 屬性列表(相同的屬性列值相等(R) (RS)R S = X(R) X(X(R) Y(S) R)44ABCDabcdabefabdebcefedcdedefCDcdefABabedABa

21、bbcedABCDabcdabefbccdbcefedcdedefR AB (R)S AB (R) CD (S) AB (R) CD (S)-R ABCDbccdR S=ABabbcedABbc-=例:RS = X(R) X(X(R) Y(S) R)45關系代數中,這些運算經有限次復合后形成的式子稱為關系代數表達式例:設有關系教師(工作證號、姓名、性別、出生年份、職稱、所在院系)TL(TNO,TNAME,TSEX,BYEAR,RANK,DEPT);教學記錄(工作證號、開課時間、課號、課時)CR(TNO,CTIME,CNO,CNUM);DEPT=DEPT=計算機計算機(TLTL),), DEPT

22、=DEPT=自控自控(TLTL),), RANK=RANK=講師講師(TLTL),),BYEAR1965BYEAR1965(TLTL),),TNO,TNAME,TSEX,DEPTTNO,TNAME,TSEX,DEPT( (CNO=001CNO=001(DEPT=DEPT=計算機計算機(TLTL) DEPT=DEPT=自控自控(TLTL)) )RANK=RANK=講師講師(TLTL) - - BYEAR1965BYEAR2S中A屬性大于2的元組的集合 t | R(t) S(t) R中不在S中出現的元組的集合 t | ( u) (S(t) R(u) tC uA)R中滿足下述條件的元組的集合:C屬性

23、大于S中每個元組的A屬性的值。53 任何一個關系代數表達式都可等價地表示成元組關系演算表達式.關系代數中的5種基本運算用元組關系演算表示為:RS=t|R(t) S(t)對應于:RS=t|tR(t) tS(t)R S=t| R(t) S(t)對應于:R S=t| tR(t) tS(t) 54) . 1 1. 1 1 )()()()()()()(svsrtvrtrurtutvSuRvutSRssrr) . 1 )()()(1)(,.,1kkiiiuktiutuRutRk的等價表示形式是其中FFFtRtRF, )()(55ABC123456789ABC123346569RSABC346569 t |

24、 S(t) tA 2ABC456789 t | R(t) S(t) 56ABC123456789ABC123346569RS t | ( u) (S(t) R(u) tC uA)R中滿足下述條件的元組的集合:C屬性大于S中每個元組的A屬性的值。58ABC123456789ABC123346569RSR.BS.CR.A534837867897 t | (u)(v)(R(u) S(v) uAvB tA=uB tB=vC tC=uA) 新關系的A列從R的B列取值,新關系的B列從S的C列取值,新關系的C列從R的A列取值, 只需滿足條件對應元組的RASB59表達式的安全性元組關系演算有可能會產生無限關系,這樣的表達式是不安全的 如t | R(t),求所有不在R中的元組引入公式P的域域概念,用dom(P)表示 dom(P) 至少包含 顯式出現在P中的值 + 在P中出現的關系的元組中出現的值(不必是最小集),但是有限集。 如果出現在表達式t | P(t)結果中的所有值均來自dom

溫馨提示

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

評論

0/150

提交評論