關(guān)系型數(shù)據(jù)庫基本原理_第1頁
關(guān)系型數(shù)據(jù)庫基本原理_第2頁
關(guān)系型數(shù)據(jù)庫基本原理_第3頁
關(guān)系型數(shù)據(jù)庫基本原理_第4頁
關(guān)系型數(shù)據(jù)庫基本原理_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022/11/29

2.1關(guān)系數(shù)據(jù)模型

2.2E-R模型到關(guān)系模型的轉(zhuǎn)換

2.3關(guān)系模型的三類完整性約束

2.4案例1:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫設(shè)計第1頁,共17頁。2022/11/292.1關(guān)系數(shù)據(jù)模型2.1.1關(guān)系模型的結(jié)構(gòu)關(guān)系(relationship)關(guān)系是滿足一定條件的二維表。表中的一行稱為關(guān)系的一個元組,用來存儲事物的一個實例;表中的一列稱為關(guān)系的一個屬性,用來描述實體的某一特征。表是由一組相關(guān)實體組成的集合。所以,表和實體集這兩個詞常常可以交替使用。

表2-1給出了實體集、關(guān)系、表等一系列術(shù)語之間的對照關(guān)系

概念模型中關(guān)系理論中關(guān)系數(shù)據(jù)庫中某些軟件中實體集(Entityset)關(guān)系(relation)表(Table)表(或數(shù)據(jù)庫文件)實體(Entity)元組(Tuple)行(Row)記錄(Recode)屬性(Attribute)屬性(Attribute)列(Col)字段(Field)主碼(Primarykey)主碼(Primarykey)關(guān)鍵字(Primarykey)關(guān)鍵字(Primarykey)第2頁,共17頁。2022/11/29

關(guān)系是一個行與列交叉的二維表,每一列(屬性)的所有數(shù)據(jù)都是同一種數(shù)據(jù)類型的,每一列都有惟一的列名,列在表中的順序無關(guān)緊要;表中的任意兩行(元組)不能相同,行在表中的順序也無關(guān)緊要。

表2-2以圖書借閱系統(tǒng)為例給出了一個表的實例編號書名作者出版社出版日期定價F12.245計算機文化基礎(chǔ)劉凌志青山2002.521.80F33.33數(shù)據(jù)結(jié)構(gòu)實用教程王云曉藍天2002.522.00G22.12VisualBasic實用教程梁曉峰碧水2003.1028.00G11.22Java程序設(shè)計實用教程張大海碧水2004.720.80F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.724.50G11.11C語言程序設(shè)計張大海藍天2004.826.30G12.08C語言程序設(shè)計梁曉峰青山2004.1022.00G12.09C語言程序設(shè)計梁曉峰青山2004.1022.00第3頁,共17頁。2022/11/29

關(guān)系的特點:關(guān)系的每一行定義實體集的一個實體,每一列定義實體的一個屬性。每一行必須有一個主碼,主碼是一個屬性組(可以是一個屬性),它能惟一的標識一個實體。每一列表示一個屬性,且列名不能重復(fù)。列的每個值必須與對應(yīng)屬性的類型相同。列有取值范圍,稱為域。列是不可分割的最小數(shù)據(jù)項。行、列的順序?qū)τ脩魺o關(guān)緊要。第4頁,共17頁。2022/11/29關(guān)系中的術(shù)語候選碼(CandidateKey)若關(guān)系中的某一屬性組(或單個屬性)的值能惟一的標識一個元組,則稱該屬性組(或?qū)傩裕楹蜻x碼。選擇一個候選碼作為關(guān)系的主碼。主屬性(PrimeAttribute)和非主屬性關(guān)系中包含在任何一個候選碼中的屬性稱為主屬性。不包含在任何一個候選碼中的屬性稱為非主屬性。第5頁,共17頁。2022/11/292.2E-R模型到關(guān)系模型的轉(zhuǎn)換

E-R模型可以向現(xiàn)有的各種數(shù)據(jù)庫模型轉(zhuǎn)換,對不同的數(shù)據(jù)庫模型有不同的轉(zhuǎn)換規(guī)則。這里只討論E-R模型向關(guān)系模型的轉(zhuǎn)換方法。E-R模型向關(guān)系模型轉(zhuǎn)換的規(guī)則是:實體一個實體類型轉(zhuǎn)換成一個關(guān)系模式。實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼。

E-R模型向關(guān)系模型轉(zhuǎn)換時,除了將實體轉(zhuǎn)換為關(guān)系外,還要考慮如何將實體之間的聯(lián)系正確的轉(zhuǎn)換為關(guān)系。一對一聯(lián)系

(1:1)一般是將聯(lián)系與任意一端實體所對應(yīng)的關(guān)系模式合并,需要在該關(guān)系模式的屬性中加入另一個實體的碼和聯(lián)系本身的屬性。第6頁,共17頁。2022/11/29【例2-10】實體部門(編號,名稱)與實體經(jīng)理(工號,姓名)之間的任職聯(lián)系是1:1聯(lián)系。E-R模型如圖2-1所示。將其轉(zhuǎn)換為關(guān)系模型。11部門經(jīng)理任職名稱工號編號任職日期姓名11部門(編號,名稱)經(jīng)理(工號,姓名,編號,任職日期)圖2-1第7頁,共17頁。2022/11/29一對多(1:n)聯(lián)系一般是將該聯(lián)系與n端實體所對應(yīng)的關(guān)系模式合并。合并時需要在n端實體的關(guān)系模式的屬性中加入1端實體的碼和聯(lián)系本身的屬性。

【例2-11】將授課系統(tǒng)中的E-R模型轉(zhuǎn)換為關(guān)系模型。教師課程參考書講授1n1第8頁,共17頁。2022/11/29

該E-R模型中有3個實體和1個多元聯(lián)系??梢杂脙煞N方法轉(zhuǎn)換為關(guān)系模型:

1)

將聯(lián)系轉(zhuǎn)換為一個單獨的關(guān)系。則該E-R模型對應(yīng)的關(guān)系模型包含4個關(guān)系模式:

課程(課號,課名,學(xué)分)教師(工號,姓名,職稱)參考書(書號,書名)講授(工號,課號,書號)

2)由于該例中的聯(lián)系是一對多聯(lián)系,所以可以將聯(lián)系合并到實體對應(yīng)的關(guān)系中。課程(課號,課名,學(xué)分)教師(工號,姓名,職稱,課號)參考書(書號,書名,課號)第9頁,共17頁。2022/11/29多對多(m:n)聯(lián)系將聯(lián)系轉(zhuǎn)換成一個關(guān)系模式。與該聯(lián)系相連的各實體的碼及聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實體碼的組合。

【例2-12】將學(xué)生選課系統(tǒng)的E-R模型轉(zhuǎn)換為關(guān)系模型。

課程號課程名學(xué)分課程學(xué)號所在系年齡姓名性別學(xué)生成績選課mn學(xué)生(學(xué)號,姓名,性別,年齡,所在系)選課(學(xué)號,課程號,成績)

課程(課程號,課程名,學(xué)分)第10頁,共17頁。2022/11/29【例2-13】將圖書借閱系統(tǒng)的E-R模型轉(zhuǎn)換為關(guān)系模型。

讀者編號姓名讀者類型已借數(shù)量圖書出版日期出版社編號書名定價借期還期借閱mn讀者(編號,姓名,讀者類型,已借數(shù)量)借閱(讀者編號,圖書編號,借期,還期)圖書(編號,書名,出版社,出版日期,定價)第11頁,共17頁。2022/11/292.3關(guān)系模型的三類完整性約束

2.3.1實體完整性

實體完整性規(guī)則:

若屬性A是關(guān)系R的主屬性,則A不能取空值。2.3.2參照完整性規(guī)則

外碼和參照關(guān)系設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的主碼(或候選碼)。如果F與基本關(guān)系S的主碼KS相對應(yīng),則稱F是基本關(guān)系R的外碼,并稱基本關(guān)系R為參照關(guān)系,稱基本關(guān)系S為被參照關(guān)系。例如:在授課系統(tǒng)的關(guān)系模型中:課程(課號,課名,學(xué)分)課號關(guān)系課程的主碼教師(工號,姓名,職稱,課號)課號是關(guān)系教師的外碼參考書(書號,書名,課號)關(guān)系教師是參照關(guān)系,關(guān)系課程是被參照關(guān)系。第12頁,共17頁。2022/11/29參照完整性規(guī)則

參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼KS相對應(yīng),則對于R中的每個元組在F上的值必須滿足:或者取空值(F的每個屬性均為空值),或者等于S中某個元組的主碼值。例如,在授課系統(tǒng)的關(guān)系模型中,關(guān)系教師中的外碼“課號”只能是下面兩類值:

(1)空值。表示還未給該教師安排課。

(2)非空值,但此值必須為被參照關(guān)系課程中某一門課程的“課號”。

注意:在實際應(yīng)用中,外碼不一定與對應(yīng)的主碼同名。在關(guān)系數(shù)據(jù)庫中,表與表之間的聯(lián)系是通過公共屬性實現(xiàn)的。這個公共屬性往往是一個表的主碼,同時是另一個表的外碼。第13頁,共17頁。2022/11/292.3.3用戶定義的完整性用戶定義的完整性就是針對某一具體要求來定義的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如,某個屬性必須取惟一值;某些屬性之間應(yīng)滿足一定的函數(shù)關(guān)系;某個屬性的取值范圍在0—400之間等。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便系統(tǒng)用統(tǒng)一的方法處理它們,而不需要由應(yīng)用程序來承擔這一功能。所以,用戶定義的完整性通常是定義屬性取值的約束,即對屬性的值域的約束。對屬性的值域的約束也稱為域完整性規(guī)則是指對關(guān)系中屬性取值的正確性限制。包括數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。第14頁,共17頁。2022/11/292.3.4完整性規(guī)則檢查為了維護數(shù)據(jù)庫中數(shù)據(jù)的完整性,在對關(guān)系數(shù)據(jù)庫執(zhí)行插入、刪除和修改操作時,就要檢查是否滿足以上三類完整性規(guī)則。當執(zhí)行插入操作時首先檢查實體完整性規(guī)則,插入行的主碼屬性上的值,是否已經(jīng)存在。若不存在,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作。再檢查參照完整性規(guī)則,如果是向被參照關(guān)系插入,不需要考慮參照完整性規(guī)則;如果是向參照關(guān)系插入,插入行在外碼屬性上的值是否已經(jīng)在相應(yīng)被參照關(guān)系的主碼屬性值中存在。若存在,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作,或?qū)⒉迦胄性谕獯a屬性上的值改為空值后再執(zhí)行插入操作(假定該外碼允許取空值)。最后檢查用戶定義完整性規(guī)則,檢查被插入的關(guān)系中是否定義了用戶定義完整性規(guī)則,如果定義了,檢查插入行在相應(yīng)屬性上的值是否符合用戶定義完整性規(guī)則。若符合,可以執(zhí)行插入操作;否則不可以執(zhí)行插入操作。第15頁,共17頁。2022/11/29當執(zhí)行刪除操作時一般只需要檢查參照完整性規(guī)則。如果是刪除被參照關(guān)系中的行,則應(yīng)檢查被刪除行在主碼屬性上的值是否正在被相應(yīng)的參照關(guān)系的外碼引用,若沒被引用,可以執(zhí)行刪除操作,若正在被引用,有三種可能的做法:不可以執(zhí)行刪除操作(拒絕刪除),或?qū)⒄贞P(guān)系中相應(yīng)行在外碼屬性上的值改為空值后再執(zhí)行刪除操作(空值刪除),或?qū)⒄贞P(guān)系中相應(yīng)行一起刪除(級聯(lián)刪除)。當執(zhí)行修改操作時因為修改操作可看成先執(zhí)行刪除操作,再執(zhí)行插入操作,因此是上述兩種情況的綜合。第16頁,共17頁。內(nèi)容梗概2022/11/18。2022/11/18。2.1關(guān)系數(shù)據(jù)模型。2.3關(guān)系模型的三類完整性約束。2.4案例1:活期儲蓄管理系統(tǒng)數(shù)據(jù)庫設(shè)計。表2-1給出了實體集、關(guān)系、表等一系列術(shù)語之間的對照關(guān)系。表中的任意兩行(元組)不能相同,行在表中的順序也無關(guān)緊要。表2-2以圖書借閱系統(tǒng)為例給出了一個表的實例。列的每個值必須與對應(yīng)屬性的類型相同。主屬性(PrimeAttribute)和非主屬性。關(guān)系中包含在任何一個候選碼中的屬性稱為主屬性。不包含在任何一個候選碼中的屬性稱為非主屬性。2.2E-R模型到關(guān)系模型的轉(zhuǎn)換。這里只討論E-R模型向關(guān)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論