《關系數(shù)據(jù)庫》PPT課件.ppt_第1頁
《關系數(shù)據(jù)庫》PPT課件.ppt_第2頁
《關系數(shù)據(jù)庫》PPT課件.ppt_第3頁
《關系數(shù)據(jù)庫》PPT課件.ppt_第4頁
《關系數(shù)據(jù)庫》PPT課件.ppt_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章 關系數(shù)據(jù)庫,4.1 關系模型及其定義 4.2 關系的3類完整性約束 4.3 關系代數(shù),4.1.1 關系中的基本術語, 關系: 一個關系就是一張二維表。 元組: 表中的一行即為一個元組。 屬性: 表中的列稱為屬性。 域: 屬性的取值范圍。 關系模式:對關系的描述。 例如: R(sno, sname, sex, birthday, class),4.1.1 關系中的基本術語, 候選鍵(或候選關鍵字) 是屬性或屬性組合,其值可以唯一的標識一個元組。 主鍵(或主關鍵字) 如果有多個候選鍵,選擇其中一個作為主鍵。 主屬性 包含在候選鍵中的各個屬性。 全碼 所有屬性都是這個關系模式的候選碼。 外鍵(或外關鍵字) 如果關系R2的一個或一組屬性X是另一關系R1的主鍵,則X稱為外鍵。,4.1.2 關系的數(shù)學定義,1. 域 域是一組具有相同數(shù)據(jù)類型的值的集合。 例如:自然數(shù)、實數(shù)、長度小于25字節(jié)的字符串集合等等。 2. 笛卡爾積 笛卡爾積可以表示為一個二維表。表中的每行對應一個元組,每列對應一個域。 例如:給出3個域: D1 導師集合 李清,劉濤 D2 專業(yè)集合 計算機專業(yè),管理工程專業(yè) D3 研究生集合 李華,楊敏,劉穎 則D1,D2,D3的笛卡爾積為?,4.1.2 關系的數(shù)學定義,該笛卡爾積共有 D1D2D312 個元組,可以列成一張表。,表2-1,4.1.2 關系的數(shù)學定義,3. 關系 笛卡爾積D1D2Dn的任一個子集稱為D1,D2,Dn上的一個n元關系。表示為:R(D1, D2, , Dn) 例如:可以在表3-1的笛卡爾積中取出一個子集來構造一個關系。一個研究生只師從于一個導師,學習某一個專業(yè)。從中取出有實際意義的元組來構造關系,并將關系取名為SAP。這個關系可以表示為: SAP(導師,專業(yè),研究生),4.1.2 關系的數(shù)學定義,假設導師與專業(yè)是一對一的,即一個導師只有一個專業(yè),導師與研究生是一對多,即一個導師可以帶多名研究生,而一名研究生只有一個導師,則SAP關系可以包含3個元組,如下表:,表2-2,4.1.2 關系的數(shù)學定義,4. 關系的性質 (1) 列是同質的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。,4.1.2 關系的數(shù)學定義,4. 關系的性質 (2) 不同的列可出自同一個域,其中的每一列稱為一個屬性,要給予不同的屬性名。,姓名2 曾用名,4.1.2 關系的數(shù)學定義,4. 關系的性質 (3) 列的順序無所謂,即列的次序可以任意交換,也稱屬性無序性。,關系性質3屬性無序,4.1.2 關系的數(shù)學定義,4. 關系的性質 (4) 任意兩個元組不能完全相同。,4.1.2 關系的數(shù)學定義,4. 關系的性質 (5) 行的順序無關緊要,即行的次序可以任意交換,稱為元組無序性。,4.1.2 關系的數(shù)學定義,4. 關系的性質 (6) 所有屬性值都是原子,不允許屬性又是一個二維關系。,關系性質6分量是原子,非規(guī)范化關系,規(guī)范化關系,4. 2 關系的3類完整性約束,(1)實體完整性規(guī)則 關系中主碼的值不能為空或部分為空。 (2)參照完整性規(guī)則 參照完整性規(guī)則就是定義外碼與主碼之間的引用規(guī)則。 (3)用戶定義的完整性 指用戶對某一具體數(shù)據(jù)指定的約束條件進行檢驗。,4. 2 關系的3類完整性約束,不允許為空值或重復值,一個錯誤的引用(不存在15),允許為空值,傳統(tǒng)的集合運算是二目運算,是在兩個關系中進行的。但是并不是任意的兩個關系都能進行這種集合運算,而是要在兩個滿足一定條件的關系中進行運算。那么,對關系有什么要求呢? 設給定兩個關系R、S,若滿足: 具有相同的度n; R中第i個屬性和S中第i個屬性必須來自同一個域。則說關系R、S是相容的。 除笛卡爾積外,要求參加運算的關系必須滿足上述的相容性定義。,4.3 關系代數(shù),4.3.1 傳統(tǒng)的集合運算,1. 并(Union) 關系R和關系S的并由屬于R或屬于S的元組組成,即R和S的所有元組合并,刪去重復元組,組成一個新關系,其結果仍為n目關系。記作: RS=t|tRtS 對于關系數(shù)據(jù)庫,記錄的插入 和添加可通過并運算實現(xiàn)。,4.3.1 傳統(tǒng)的集合運算,4.3.1 傳統(tǒng)的集合運算,2. 差(Difference) 關系R與關系S的差由屬于R而不屬于S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作: R-S=t|tRtS 通過差運算,可實現(xiàn)關系數(shù)據(jù)庫 記錄的刪除。,3. 交(Intersection) 關系R與關系S的交由既屬于R又屬于S的元組組成,即R與S中相同的元組,組成一個新關系,其結果仍為n目關系。記作: RS=t|tRtS,4.3.1 傳統(tǒng)的集合運算,4. 廣義笛卡爾積(Extended Cartesian Product) 兩個分別為n目和m目關系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合,元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡爾積有k1*k2個元組,記作 RS=trts| trR,tsS 關系的廣義笛卡爾積可用于兩關系的連接操作,4.3.1 傳統(tǒng)的集合運算,廣義笛卡兒積運算實例,隨堂練習,設有關系R、S,計算R1=R-S、R2=RS、R3=RS、R4=RS,R,S,由于傳統(tǒng)的集合運算,只是從行的角度進 行,而要靈活地實現(xiàn)關系數(shù)據(jù)庫多樣的查詢操 作,必須引入專門的關系運算。 (選擇) (投影) (連接) (除),4.3.2 專門的集合運算,樣板數(shù)據(jù)庫(學生-課程數(shù)據(jù)庫),4.3.2 專門的集合運算,選擇在關系R中求由滿足給定條件F的元組組成新的關系的運算。其形式為: SELECT 關系名 WHERE 條件 選擇運算記為F(R)。 其中,為選取運算符,F(xiàn)為選取的條件。 例如:在關系S1中找出所有“男生”的數(shù)據(jù)。 SELECT S1 WHERE 性別=“男” 關系代數(shù)為: 性別=“男”(S1),4.3.2 專門的集合運算,F為選取的條件,由運算對象(屬性名、常數(shù)、簡單函數(shù))、算術比較運算符( ,=,)和邏輯運算符( )連接起來的邏輯表達式,結果為邏輯值“真”或“假”。,例子1:查詢信息系全體學生,sdept=“IS” (student),5=“IS” (student),或,4.3.2 專門的集合運算,選擇運算是從關系R中選取使邏輯表達式F為真的元組,實際上是從行的角度進行的運算。,例子1,已知關系R和S, 求,4.3.2 專門的集合運算,2. 投影在關系R中求指定的由若干個屬性組成新的關系,即對關系在垂直方向進行的運算,從左到右按照指定的若干屬性及順序取出相應列,刪去重復元組。記為x(R)。,4.3.2 專門的集合運算,從定義可看出,投影運算是從列的角度進行的運算,這正是選取運算和投影運算的區(qū)別所在。,4.3.2 專門的集合運算,例子2:查詢學生的姓名和所在的系,sname,sdept(student),2,5(student),或,投影運算可以改變關系的屬性次序,例子3: 查詢選課關系中有哪些學生選了課。,4.3.2 專門的集合運算,由例3可以看出,投影后取消了某些屬性列后,就可能出現(xiàn)重復行,應該取消這些完全相同的行。所以投影之后,不但減少了屬性,元組也可能減少,新關系與原關系不相容。,SNO(SC) 結果如右圖所示,例子4: 查詢選了1號課程的學生號。,4.3.2 專門的集合運算,SNO(CNO=1(SC),例子2,已知關系R和S, 求,4.3.2 專門的集合運算,3. 連接從關系R和S的笛卡爾積中選取屬性值滿足一定條件的元組。 (1)連接 記為R S。 其中i和j分別為R和S中的第i、第j個分量,為算術比較運算符。,ij,4.3.2 專門的集合運算,一般的連接操作是從行的角度進行運算。,例子3,已知關系R和S,求,例子3(續(xù)),4.3.2 專門的集合運算,連接舉例:求 R S, R S,2=1,R,S,32,結果中不除去重復的屬性,4.3.2 專門的集合運算,(2)F連接選取屬性值滿足某一條件公式F的元組 記為R S。 例如:R S (3)自然連接除去重復屬性的等值連接 記為R S,即 R S。 例如: R S,R S,F,i=j,213=2,32,3=2,關系R與S,求:R和S的大于連接(CD); R和S的等值連接(C=D);R和S的等值連接 (R.B=S.B);R和S的自然連接。,例子4,R,S,大于連接(CD) 等值連接(C=D),例子4(續(xù)),等值連接(R.B=S.B) 自然連接,例子4(續(xù)),等值連接與自然連接的區(qū)別: 1. 等值連接中不要求相等屬性值的屬性名相同,而自然連接要求相等屬性值的屬性名必須相同,即兩關系只有在同名屬性才能進行自然連接。 2. 等值連接不將重復屬性去掉,而自然連接去掉重復屬性,也可以說,自然連接是去掉重復列的等值連接。,4.3.2 專門的集合運算,4.3.2 專門的集合運算,外連接 如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(Null),這種連接就叫做外連接(OUTER JOIN)。 左外連接 如果只把左邊關系R中要舍棄的元組保留就叫做左外連接(LEFT OUTER JOIN或LEFT JOIN) 右外連接 如果只把右邊關系S中要舍棄的元組保留就叫做右外連接(RIGHT OUTER JOIN或RIGHT JOIN)。,4.3.2 專門的集合運算,下圖是例4中關系R和關系S的全外自然連接,(a) 全外自然連接,4.3.2 專門的集合運算,(b) 左外自然連接,圖(b)是例4中關系R和關系S的左外連接,圖(c)是右外連接,(c) 右外自然連接,4. 除記為RS。 除法運算是二目運算,設有關系R(X,Y)與關系S(Y,Z),其中X,Y,Z為屬性集合,R中的Y與S中的Y可以有不同的屬性名,但對應屬性必須出自相同的域。關系R除以關系S所得的商是一個新關系P(X),P是R中滿足下列條件的元組在X上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作: RS=trX|trRy(S)Yx 其中,Yx為x在R中的象集,x= trX。,4.3.2 專門的集合運算,4.3.2 專門的集合運算,除操作是同時從行和列角度進行運算,象集,(a1,b1)的象集,(a1,b2)的象集,(a4,b5)的象集,X,Y,除,X,Y,=,Y,R上分量值X 的象集Yx包含S在Y上的投影,4.3.2 專門的集合運算,關系除法運算的步驟: 將被除關系屬性分為象集屬性和結果屬性 對象集屬性進行投影目標數(shù)據(jù)集 將被除關系分組:結果屬性值一樣的元組分為一組 找出結果集,除運算實例,=,選課,必修課,選擇了所有必修課表中的課程的學生的學號和成績,例子5,求 RS,隨堂練習,R,S,求 RS,綜合舉例,所用實例:如下圖。,Q1:查詢選修103課程的學生名的關系代數(shù)表達式。,或: sname ( cid=103 (SC) S),表達式: sname ( cid=103 (SC S),查詢結果:何大明, 陳勝,說明:, 對第二種表達式,可分解成三步來做, (Temp1, cid=103 (SC), (Temp2, Temp1 S), sname(Temp2), 第二種表達式比第一種更好,因為中間結果更少。, 由上可知,存在一個查詢優(yōu)化的問題。,優(yōu)化: sname (sid (cid=103 (SC) sid,sname ( S),Q2:查詢選修學分為3的學生名的代數(shù)表達式。,或:sname(credit=3 (C) SC S),或:sname(sid (sid (credit=3 C) SC) S),查詢結果:何大明,李峰,Q3:學生“李峰”所選課程的學分的代數(shù)表達式 。,表達式:credit(

溫馨提示

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

評論

0/150

提交評論