數(shù)據(jù)庫系統(tǒng)概念--第3章關系數(shù)據(jù)庫.ppt_第1頁
數(shù)據(jù)庫系統(tǒng)概念--第3章關系數(shù)據(jù)庫.ppt_第2頁
數(shù)據(jù)庫系統(tǒng)概念--第3章關系數(shù)據(jù)庫.ppt_第3頁
數(shù)據(jù)庫系統(tǒng)概念--第3章關系數(shù)據(jù)庫.ppt_第4頁
數(shù)據(jù)庫系統(tǒng)概念--第3章關系數(shù)據(jù)庫.ppt_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)教程,第3章 關系數(shù)據(jù)庫,1,第3章 關系數(shù)據(jù)庫,3.1 關系數(shù)據(jù)模型 3.2 基本術語與形式化定義 3.3 完整性約束 3.4 關系代數(shù),2019年6月22日11時49分,2,3.1 關系數(shù)據(jù)模型,關系數(shù)據(jù)模型源于數(shù)學。 1970年IBM研究員E.F.Codd博士在美國計算機學會會刊(Communication of the ACM)上發(fā)表了題為“A Relational Model of Data for Shared Data Banks”的論文,開創(chuàng)了數(shù)據(jù)庫系統(tǒng)的新紀元。,2019年6月22日11時49分,3,關系模型,關系模型由三部分組成: 數(shù)據(jù)結(jié)構(gòu) 操作集合 完整性約束 這三部分也稱為關系模型三要素。,2019年6月22日11時49分,4,3.1.1 數(shù)據(jù)結(jié)構(gòu),關系數(shù)據(jù)模型用二維表來組織數(shù)據(jù)。 這個二維表在關系數(shù)據(jù)庫中就稱為關系。 關系數(shù)據(jù)庫就是表或者說是關系的集合。 表是邏輯結(jié)構(gòu)而不是物理結(jié)構(gòu)。,2019年6月22日11時49分,5,學生關系模型,2019年6月22日11時49分,6,學生,3.1.2 數(shù)據(jù)操作,關系數(shù)據(jù)模型中的操作包括: 傳統(tǒng)的關系運算:并、交、差、廣義笛卡爾乘積; 專門的關系運算:選擇、投影、連接、除; 有關的數(shù)據(jù)操作:查詢、插入、刪除、更改。,2019年6月22日11時49分,7,操作特點,關系模型中操作的數(shù)據(jù)以及查詢的結(jié)果都是完整的集合(或表), 這些集合可以只包含一行數(shù)據(jù),也可以是不包含任何數(shù)據(jù)的空集合。 非關系模型數(shù)據(jù)庫中典型的操作是一次一行或一次一個記錄。 集合處理能力是關系系統(tǒng)區(qū)別于其他系統(tǒng)的重要特征。,2019年6月22日11時49分,8,關系模型與非關系模型區(qū)別,在非關系模型中,各個數(shù)據(jù)記錄之間是通過指針等方式連接的,當要定位到某條記錄時,需要用戶自己按指針的鏈接方向逐層查找導航。 在關系模型中,用戶只需指定數(shù)據(jù)的定位條件,數(shù)據(jù)庫管理系統(tǒng)就可以自動定位到該數(shù)據(jù)記錄非導航。,2019年6月22日11時49分,9,層次模型查找示例,2019年6月22日11時49分,10,關系模型查找示例,2019年6月22日11時49分,11,關系操作,關系模型的數(shù)據(jù)操作主要包括: 查詢、插入、刪除、更改 關系數(shù)據(jù)庫中的信息表示方式:表中的行列位置有明確的值邏輯層。,2019年6月22日11時49分,12,關系數(shù)據(jù)庫的物理層,關系數(shù)據(jù)庫在物理層也使用指針,但這些物理層的存儲細節(jié)對用戶來說都是不可見的,用戶所看到的物理層實際上就是存放數(shù)據(jù)的數(shù)據(jù)庫文件: 文件名 存放位置,2019年6月22日11時49分,13,關系語言特點,關系操作是通過關系語言實現(xiàn)的,關系語言的特點是高度非過程化: 用戶不必關心數(shù)據(jù)的存取路徑和存取過程,只需要提出數(shù)據(jù)請求,DBMS會自動完成用戶請求的操作; 用戶沒有必要編寫程序代碼來實現(xiàn)對數(shù)據(jù)的重復操作。,2019年6月22日11時49分,14,3.1.3 數(shù)據(jù)完整性約束,數(shù)據(jù)的完整性是指保證數(shù)據(jù)正確性的特征。 數(shù)據(jù)完整性是一種語義概念,包括: 與現(xiàn)實世界中應用需求的數(shù)據(jù)的相容性和正確性; 數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。,2019年6月22日11時49分,15,數(shù)據(jù)完整性,數(shù)據(jù)完整性由一組完整性規(guī)則定義,關系模型的完整性規(guī)則是對關系的某種約束條件。 在關系數(shù)據(jù)模型中將數(shù)據(jù)完整性分為三類: 實體完整性 參照完整性(引用完整性) 用戶定義的完整性,2019年6月22日11時49分,16,3.2 關系模型的基本術語與形式化定義,3.2.1 基本術語 3.2.2 形式化定義,2019年6月22日11時49分,17,3.2.1 基本術語,關系:關系就是二維表,二維表的名字就是關系的名字。 屬性:二維表中的每個列就稱為一個屬性(或叫字段), 每個屬性有一個名字屬性名 某一列的值屬性值 列的個數(shù)關系的元數(shù)。如果一個二維表有n個列,則稱其為n元關系。,2019年6月22日11時49分,18,基本術語(續(xù)),值域:二維表中屬性的取值范圍稱為值域。 例如: “年齡”的取值為大于0的整數(shù) “性別”列的取值為男,女,2019年6月22日11時49分,19,基本術語(續(xù)),元組:二維表中的一行數(shù)據(jù)稱為一個元組(記錄值)。,2019年6月22日11時49分,20,5個 元組,基本術語(續(xù)),分量:元組中的每一個屬性值稱為元組的一個分量。 n元關系的每個元組有n個分量。 例:(0811101,李勇,21,男,計算機系),有5個分量,2019年6月22日11時49分,21,基本術語(續(xù)),關系模式:二維表的結(jié)構(gòu)稱為關系模式。 設有關系名為R,屬性分別為A1,A2,An,則關系模式可以表示為: R(A1,A2,An) 如果將關系模式理解為數(shù)據(jù)類型,則關系就是該數(shù)據(jù)類型的一個具體值。,2019年6月22日11時49分,22,基本術語(續(xù)),關系數(shù)據(jù)庫:對應于一個關系模型的所有關系的集合稱為關系數(shù)據(jù)庫。 候選鍵:如果一個屬性或?qū)傩约闹的軌蛭┮粯俗R一個關系的元組而又不包含多余的屬性,則稱該屬性或?qū)傩约癁楹蜻x鍵。,2019年6月22日11時49分,23,基本術語(續(xù)),主鍵:當一個關系中有多個候選鍵時,從中選擇一個作為主鍵。 每個關系只能有一個主鍵。 主鍵也稱為主碼或主關鍵字,用于惟一地確定一個元組。 主鍵可以由一個屬性組成,也可以由多個屬性共同組成。,2019年6月22日11時49分,24,主鍵示例,學生(學號,姓名,性別,年齡,所在系),2019年6月22日11時49分,25,學號,選課(學號,課程號,成績),學號,課程號,選課(學號,課程號,考試次數(shù),成績),學號,課程號,考試次數(shù),基本術語(續(xù)),主屬性:包含在任一候選鍵中的屬性稱為主屬性。 非主屬性:不包含在任一候選鍵中的屬性稱為非主屬性。 選課(學號,課程號,成績),2019年6月22日11時49分,26,學號,課程號,成績,術語對比,2019年6月22日11時49分,27,3.2.2 形式化定義,定義笛卡爾積:設D1,D2,Dn為任意集合,定義笛卡爾積D1,D2,Dn為: D1 D2 Dn ( d1,d2,dn ) | di Di,i1,2,n 其中每一個元素(d1,d2,dn)稱為一個n元組,簡稱元組。 元組中每一個di稱為是一個分量。,2019年6月22日11時49分,28,笛卡爾積示例,D1計算機系,信息管理系 D2李勇,劉晨,吳賓 D3男,女 則D1 D2 D3笛卡爾積為: (計算機系,李勇,男),(計算機系,李勇,女), (計算機系,劉晨,男),(計算機系,劉晨,女), (計算機系,吳賓,男),(計算機系,吳賓,女), (信息管理系,李勇,男),(信息管理系,李勇,女), (信息管理系,劉晨,男),(信息管理系,劉晨,女), (信息管理系,吳賓,男),(信息管理系,吳賓,女),2019年6月22日11時49分,29,笛卡爾乘積實際就是二維表,2019年6月22日11時49分,30,關系的形式化定義,笛卡爾積D1,D2,Dn的任意一個子集稱為D1,D2,Dn上的一個n元關系。 形式化的關系定義同樣可以把關系看成二維表,給表中的每個列取一個名字,稱為屬性。 n元關系有n個屬性,一個關系中的屬性的名字必須是唯一的。 屬性Di的取值范圍(i1,2,n)稱為該屬性的值域。,2019年6月22日11時49分,31,示例,2019年6月22日11時49分,32,R(計算機系,李勇,男), (計算機系,劉晨,男), (計算機系,吳賓,女) ,對關系的限定,關系中的每個分量都是不可再分的最小屬性 表中列的數(shù)據(jù)類型是固定的,即列中的每個分量都是同類型的數(shù)據(jù),來自相同的值域。 不同列的數(shù)據(jù)可以取自相同的值域。 關系表中列的順序不重要。 關系表行的順序也不重要。 同一個關系中的元組不能重復。,2019年6月22日11時49分,33,3.3 完整性約束,數(shù)據(jù)完整性是指數(shù)據(jù)庫中存儲的數(shù)據(jù)是有意義的或正確的,和現(xiàn)實世界相符。 3.3.1 實體完整性 3.3.2 參照完整性 3.3.3 用戶定義的完整性,2019年6月22日11時49分,34,3.3.1 實體完整性,保證關系中的每個元組都是可識別的和惟一的。 指關系數(shù)據(jù)庫中所有的表都必須有主鍵,而且表中不允許存在如下記錄: 無主鍵值的記錄。 主鍵值相同的記錄。,2019年6月22日11時49分,35,無主鍵值的情況,2019年6月22日11時49分,36,?,主鍵值重復情況,2019年6月22日11時49分,37,2019年6月22日11時49分,37,?,主鍵作用,當在表中定義了主鍵時,數(shù)據(jù)庫管理系統(tǒng)會自動保證數(shù)據(jù)的實體完整性,即保證不允許存在主鍵值為空的記錄以及主鍵值重復的記錄。 空值是特殊的標量常數(shù),它代表未定義的或者有意義但目前還處于未知狀態(tài)的值。,2019年6月22日11時49分,38,3.3.2 參照完整性,也稱為引用完整性。 現(xiàn)實世界中的實體之間往往存在著某種聯(lián)系,在關系模型中,實體以及實體之間的聯(lián)系都是用關系來表示的,這樣就自然存在著關系與關系之間的引用。 參照完整性就是描述實體之間的聯(lián)系的。 參照完整性一般是指多個實體或關系之間的關聯(lián)關系。,2019年6月22日11時49分,39,示例1,學生(學號,姓名,班號,性別) 班(班號,所屬專業(yè),人數(shù)),2019年6月22日11時49分,40,班號,班號,示例2,學生(學號,姓名,性別,專業(yè)) 選課(學號,課程號,成績) 課程(課程號,課程名,學分),2019年6月22日11時49分,41,學號,學號,課程號,課程號,示例3,職工(職工號,姓名,直接領導職工號),2019年6月22日11時49分,42,直接領導職工號,職工號,?,外鍵定義,設F是關系R的一個或一組屬性,如果F與關系S的主鍵相對應,則稱F是關系R的外鍵(Foreign Key),并稱關系R為參照關系,關系S為被參照關系。關系R和關系S不一定是不同的關系。,2019年6月22日11時49分,43,關系的參照表示圖,可以用圖形化的方法形象地表達參照和被參照關系。,2019年6月22日11時49分,44,示例,2019年6月22日11時49分,45,說明,參照完整性規(guī)則就是定義外鍵與被參照的主鍵之間的引用規(guī)則。 外鍵一般應符合如下要求: 或者值為空; 或者等于其所參照的關系中的某個元組的主鍵值。,2019年6月22日11時49分,46,3.3.3 用戶定義的完整性,也稱為域完整性或語義完整性。 是針對某一具體應用領域定義的數(shù)據(jù)約束條件。 反映某一具體應用所涉及的數(shù)據(jù)必須滿足應用語義的要求。 實際上就是指明關系中屬性的取值范圍,防止屬性的值與應用語義矛盾。,2019年6月22日11時49分,47,3.4 關系代數(shù),關系代數(shù)是關系操作語言的一種傳統(tǒng)表示方式,是一種抽象的查詢語言。 是一種純理論語言,它定義了一些操作,運用這些操作可以從一個或多個關系中得到另一個關系,而不改變源關系。 關系代數(shù)的操作數(shù)和操作結(jié)果都是關系,而且一個操作的輸出可以是另一個操作的輸入。,2019年6月22日11時49分,48,關系代數(shù)的運算,關系代數(shù)的運算對象是關系,運算結(jié)果也是關系。 與一般的運算一樣,運算對象、運算符和運算結(jié)果是關系代數(shù)的三大要素。 關系代數(shù)的運算可分為以下兩大類: 傳統(tǒng)的集合運算:并、交、差、笛卡爾積 專門的關系運算:選擇、投影、連接、除,2019年6月22日11時49分,49,運算符,2019年6月22日11時50分,50,運算符(續(xù)),2019年6月22日11時50分,51,3.4.1 傳統(tǒng)的集合運算,并運算(Union) 交運算(Intersection) 差運算(Except) 廣義笛卡爾積(Cartesian Product),2019年6月22日11時50分,52,并、交、差運算示意圖,2019年6月22日11時50分,53,并運算,并(RS):設關系R與關系S均是n目關系,關系R與關系S的并記為: RSt | tR tS 其結(jié)果仍是n目關系,由屬于R或?qū)儆赟的元組組成。 元組在新關系中的順序不重要。,2019年6月22日11時50分,54,并運算示例,R,S,RS,2019年6月22日11時50分,55,交運算,交(RS):設關系R與關系S均是n目關系,關系R與關系S的交記為: RSt | tR tS 其結(jié)果仍是n目關系,由屬于R并且也屬于S的元組組成。,2019年6月22日11時50分,56,差運算,差(RS):設關系R與關系S均是n目關系,關系R與關系S的差記為: RSt | tR tS 其結(jié)果仍是n目關系,由屬于R但不屬于S的元組組成。 RSR-(R S ),2019年6月22日11時50分,57,交、差運算示例,RS,RS,R,S,2019年6月22日11時50分,58,廣義笛卡爾積,兩個分別為n目和m目的關系R和關系S的笛卡爾積是一個(mn)列的元組的集合。元組的前n個列是R的一個元組,后m個列是S的一個元組。 若R有K1個元組,S有K2個元組,則關系R和關系S的廣義笛卡爾積有K1K2個元組,記做: RStrts | trR tsS trts表示由元組tr和ts前后有序連接而成的一個元組。 任取元組tr和ts,當且僅當tr屬于R且ts屬于S時,tr和ts的有序連接即為RS的一個元組。,2019年6月22日11時50分,59,笛卡爾積示例,2019年6月22日11時50分,60,3.4.2 專門的關系運算,選擇運算(Select) 投影運算(Project) 連接運算(Join) 除運算(Division),2019年6月22日11時50分,61,選擇運算,從指定的關系中選擇滿足給定條件(用邏輯表達式表達)的元組而組成一個新的關系。,F(R) r | rR F(r)真 ,條件表達式, 取邏輯“真”值或“假”值,2019年6月22日11時50分,62,選擇運算示意圖,F(R),2019年6月22日11時50分,63,選擇運算示例,例. 查詢計算機系學生信息。 Sdept計算機系(Student),有Student 關系:,2019年6月22日11時50分,64,投影運算,從關系R中選擇若干屬性,并用這些屬性組成一個新的關系。,A(R) (t(A)| tR),屬性列序列,2019年6月22日11時50分,65,投影運算示意圖,投影,2019年6月22日11時50分,66,投影運算示例,例2.查詢學生的姓名和所在系。 sname,sdept(Student),有Student 關系:,2019年6月22日11時50分,67,連接運算,連接運算用來連接相互之間有聯(lián)系的兩個關系,從而產(chǎn)生一個新的關系。 連接運算具有如下幾種形式: 連接 等值連接(連接的特例) 自然連接 外部連接(或稱外連接) 半連接,2019年6月22日11時50分,68,連接,A、B是關系R和S上語義相同的屬性或?qū)傩越M, 是比較運算符。 連接運算從R和S的廣義笛卡爾積中選擇R關系在A屬性組上的值與S關系在B屬性組上的值滿足的元組。,2019年6月22日11時50分,69,等值連接,為“=”的連接成為等值連接。它是從關系R與S的笛卡爾積中選取A,B屬性值相等的那些元組:,2019年6月22日11時50分,70,自然連接,是一種特殊的等值連接,它去掉了等值連接結(jié)果中的重復的屬性列。 即若R與S具有相同的屬性組B,則自然連接可記作:,2019年6月22日11時50分,71,原始數(shù)據(jù),2019年6月22日11時50分,72,商品,銷售,左外連接示例,半連接示例,等值連接與自然連接示例,數(shù)據(jù),2019年6月22日11時50分,73,外連接,如果希望不滿足連接條件的元組也出現(xiàn)在連接結(jié)果中,則可以通過外連接實現(xiàn)。 外連接有三種: 左外連接: 右外連接: 全外連接:,2019年6月22日11時50分,74,外連接含義,左(右)外連接:把連接符號左(右)邊的關系中不滿足連接條件的元組也保留到連接后的結(jié)果中,并在連接結(jié)果中將該元組所對應的右(左)邊關系的各個屬性均置成空值(NULL)。 全外連接:把連接符號兩邊的關系中不滿足連接條件的元組均保留到連接后的結(jié)果中,并在連接結(jié)果中將不滿足連接條件的各元組的相關屬性均置成空值(NULL)。,2019年6月22日11時50分,75,左外連接示例,2019年6月22日11時50分,76,數(shù)據(jù),全外連接示例,2019年6月22日11時50分,77,半連接,在兩個關系之間執(zhí)行連接操作,并將其結(jié)果投影在第一個操作關系的所有屬性上。 半連接的一個優(yōu)點是可以減少必須參與連接的元組的數(shù)目。 半連接操作的表達形式為: 上述半連接是一個半連接,其他還有半等值連接、半自然連接等。,2019年6月22日11時50分,78,半連接示例,查詢銷售價格高于5000的商品的全部信息。(僅僅是想查看商品的信息),2019年6月22日11時50分,79,數(shù)據(jù),除運算,設關系S的屬性是關系R的屬性的一部分,則RS為這樣一個關系: 此關系的屬性是由屬于R但不屬于S的所有屬性組成; RS的任一元組都是R中某元組的一部分。但必須符合下列要求,即任取屬于RS的一個元組t,則t與S的任一元組連接后,都為R中原有的一個元組。,2019年6月22日11時50分,80,除運算示意圖,2019年6月22日11時50分,81,除運算的一般形式,設有關系R(X,Y)和S(Y,Z),其中X、Y、Z為關系的屬性組,則: R(X,Y) S(Y,Z)R(X,Y) Y(S),2019年6月22日11時50分,82,象集定義,設有關系R(X,Y),其中X,Y為屬性(組),X=x在R上的象集是: Yx = tY | tR tX=x tY和tX分別表示R中的元組t在屬性組Y和X上的分量的集合。,2019年6月22日11時50分,83,象集示例1,2019年6月22日11時50分,84,有元組:(0821101,張立,男,20,信息管理系) 設XSdept,Ssex,YSno,Sname,Sage, tX的一個值:x(信息管理系,男) 則Yx為tXx(信息管理系,男)時所有tY的值: Yx=(0821101,張立,20),(0821103,張海,20),象集示例2,2019

溫馨提示

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

評論

0/150

提交評論