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

下載本文檔

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

文檔簡(jiǎn)介

2022/11/29

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)

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

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

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

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

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

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

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

2.3.1實(shí)體完整性

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論