數(shù)據(jù)庫技術(shù)應(yīng)用與應(yīng)用關(guān)系數(shù)據(jù)庫_第1頁
數(shù)據(jù)庫技術(shù)應(yīng)用與應(yīng)用關(guān)系數(shù)據(jù)庫_第2頁
數(shù)據(jù)庫技術(shù)應(yīng)用與應(yīng)用關(guān)系數(shù)據(jù)庫_第3頁
數(shù)據(jù)庫技術(shù)應(yīng)用與應(yīng)用關(guān)系數(shù)據(jù)庫_第4頁
數(shù)據(jù)庫技術(shù)應(yīng)用與應(yīng)用關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 關(guān)系數(shù)據(jù)庫 3.1 關(guān)系模型及其定義 3.2 3 3.1 關(guān)系模型及其定義 3.1.1 關(guān)系數(shù)據(jù)結(jié)構(gòu) 在關(guān)系模型中,無論是實(shí)體集,還是實(shí)體集之間的聯(lián)系均由單一的關(guān)系表示。由于關(guān)系模型是建立在集合代數(shù)基礎(chǔ)上的,因而一般從集合論角度對(duì)關(guān)系數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義。1. 關(guān)系的數(shù)學(xué)定義(1) 域。域是一組具有相同數(shù)據(jù)類型的值的集合。(2) 笛卡兒積。(3) 關(guān)系。 表3-1 D1、D2、D3的笛卡兒積表3-2 學(xué) 生 關(guān) 系 2. 關(guān)系中的基本名詞 (1) 元組。 關(guān)系表中的每一橫行稱作一個(gè)元組,組成元組的元素為分量。 (2) 屬性。 關(guān)系中的每一列稱為一個(gè)屬性。 (3) 候選碼和主碼。 若關(guān)系中的

2、某一屬性組(或單個(gè)屬性)的值能惟一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組(或?qū)傩?為候選碼。 (4) 全碼。 若關(guān)系的候選碼中只包含一個(gè)屬性,則稱它為單屬性碼;若候選碼是由多個(gè)屬性構(gòu)成的,則稱它為多屬性碼。 (5) 主屬性和非主屬性。 在關(guān)系中,候選碼中的屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性 3. 數(shù)據(jù)庫中關(guān)系的類型 (1) 基本表。它是關(guān)系數(shù)據(jù)庫中實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示。 (2) 視圖表。它是由基本表或其他視圖表導(dǎo)出的表。 (3) 查詢表。它是指查詢結(jié)果表或查詢中生成的臨時(shí)表。 4. 數(shù)據(jù)庫中基本關(guān)系的性質(zhì) 關(guān)系數(shù)據(jù)庫中的基本表具有以下六個(gè)性質(zhì): (1) 同一屬性的數(shù)

3、據(jù)具有同質(zhì)性,即同一列中的分量是同一類型的數(shù)據(jù),它們來自同一個(gè)域。 (2) 同一關(guān)系的屬性名具有不能重復(fù)性,即同一關(guān)系中不同屬性的數(shù)據(jù)可出自同一個(gè)域,但不同的屬性要給予不同的屬性名。 (3) 關(guān)系中的列位置具有順序無關(guān)性,即關(guān)系中的列的次序可以任意交換、重新組織,屬性順序不影響使用。 (4) 關(guān)系具有元組無冗余性,即關(guān)系中的任意兩個(gè)元組不能完全相同。 (5) 關(guān)系中的元組位置具有順序無關(guān)性,即關(guān)系元組的順序可以任意交換。 (6) 關(guān)系中每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。 表3-3 非規(guī)范化的關(guān)系結(jié)構(gòu) 表3-4 修改后的關(guān)系結(jié)構(gòu)5. 關(guān)系模式關(guān)系的描述稱為關(guān)系模式。關(guān)系模式可以表示為R(U,D,

4、Dom,F(xiàn))其中:R關(guān)系名,它是關(guān)系的形式化表示;U組成該關(guān)系的屬性集合;D屬性組U中屬性所來自的域;Dom屬性向域的映像的集合;F屬性間數(shù)據(jù)的依賴關(guān)系集合。 6. 關(guān)系數(shù)據(jù)庫 在關(guān)系數(shù)據(jù)庫中,實(shí)體集以及實(shí)體間的聯(lián)系都是用關(guān)系來表示的。在某一應(yīng)用領(lǐng)域中,所有實(shí)體集及實(shí)體之間聯(lián)系所形成關(guān)系的集合就構(gòu)成了一個(gè)關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫也有型和值的區(qū)別。 3.1.2 關(guān)系操作概述 1. 關(guān)系操作的基本內(nèi)容 關(guān)系操作包括數(shù)據(jù)查詢、數(shù)據(jù)維護(hù)和數(shù)據(jù)控制三大功能。 (1) 數(shù)據(jù)查詢指數(shù)據(jù)檢索、統(tǒng)計(jì)、排序、分組以及用戶對(duì)信息的需求等功能。 (2) 數(shù)據(jù)維護(hù)指數(shù)據(jù)增加、刪除、修改等數(shù)據(jù)自身更新的功能。 (3) 數(shù)據(jù)

5、控制是為了保證數(shù)據(jù)的安全性和完整性而采用的數(shù)據(jù)存取控制及并發(fā)控制等功能。2. 關(guān)系操作的特點(diǎn)關(guān)系操作具有以下三個(gè)明顯的特點(diǎn):(1) 關(guān)系操作語言操作一體化。 (2) 關(guān)系操作的方式是一次一集合方式。 (3) 關(guān)系操作語言是高度非過程化的語言。 3. 關(guān)系操作語言的種類關(guān)系操作語言可以分為以下三類:(1) 關(guān)系代數(shù)語言。 (2) 關(guān)系演算語言。 (3) 基于映像的語言。 3.1.3 關(guān)系的完整性 1. 關(guān)系模型的實(shí)體完整性 關(guān)系的實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A的值不能為空值。 實(shí)體完整性規(guī)則規(guī)定:基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼不能取空值。實(shí)體完整性的主要作

6、用是: (1) 能夠保證實(shí)體的惟一性。 (2) 能夠保證實(shí)體的可區(qū)分性。 2. 關(guān)系模型的參照完整性 (1) 外碼和參照關(guān)系。 設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的主碼(或候選碼)。 (2) 參照完整性規(guī)則。 (3) 用戶定義的完整性。 3.2 關(guān) 系 代 數(shù) 關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,它是用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢的。 關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。關(guān)系代數(shù)所使用的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、比較運(yùn)算符和邏輯運(yùn)算符。 (1) 集合運(yùn)算符:(并運(yùn)算),(差運(yùn)算),(交運(yùn)算),(廣義笛卡兒積)。 (2) 專門的關(guān)

7、系運(yùn)算符:(選擇),(投影),(連接),(除)。 (3) 比較運(yùn)算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。 (4) 邏輯運(yùn)算符:(非),(與),(或)。 3.2.1 傳統(tǒng)的集合運(yùn)算 傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,它包括四種運(yùn)算:并、差、 交、廣義笛卡兒積。 1. 并運(yùn)算 關(guān)系R與關(guān)系S的并運(yùn)算表示為 RS=t| t (Rt (S 上式說明,R和S并的結(jié)果仍為n目關(guān)系,其數(shù)據(jù)由屬于R或?qū)儆赟的元組組成。 2. 差運(yùn)算 關(guān)系R與關(guān)系S的差運(yùn)算為 R - S = t | t (Rt (S 上式說明,R和S差運(yùn)算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由屬于R而不屬于S的所有元組組

8、成。 3. 交運(yùn)算 關(guān)系R與關(guān)系S的交運(yùn)算為 RS = t | t(Rt (S 上式說明,R和S交運(yùn)算的結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由既屬于R同時(shí)又屬于S的元組組成。 關(guān)系的交可以用差來表示,即 RS = R-(R-S) 4. 廣義笛卡兒積運(yùn)算 設(shè)兩個(gè)分別為n目和m目的關(guān)系R和S,它們的廣義笛卡兒積是一個(gè)(n+m)目的元組集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積應(yīng)當(dāng)有k1k2個(gè)元組。 R和S的笛卡兒積表示為 RS = tr ts | tr ( Rts ( S 表3-5 傳統(tǒng)集合運(yùn)算的實(shí)例 3.2.2 專門的

9、關(guān)系運(yùn)算 專門的關(guān)系運(yùn)算包括選擇、投影、連接和除法運(yùn)算。為了敘述上的方便,先引入幾個(gè)記號(hào)。 1. 記號(hào)說明 (1) 關(guān)系模式、關(guān)系、元組和分量。 (2) 域列和域列非。 (3) 元組連串。 (4) 屬性的像集。 2. 專門關(guān)系運(yùn)算的定義 (1) 選擇運(yùn)算。 選擇運(yùn)算又稱為限制運(yùn)算。選擇運(yùn)算指在關(guān)系R中選擇滿足給定條件的元組,記作: F(R)= t | t (RF(t)= 真 【例3-1】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢計(jì)算機(jī)系的全體學(xué)生的操作。 所在系= 計(jì)算機(jī)系 (學(xué)生) 或 4 = 計(jì)算機(jī)系 (學(xué)生) 【例3-2】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢年齡小于20歲的學(xué)生的操作。 年齡2

10、0(學(xué)生) 或 320(學(xué)生) (2) 投影運(yùn)算。 關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系,記作: A(R)=t A | t (R 其中,A為R中的屬性列。 (3) 連接運(yùn)算。 (4) 除運(yùn)算。 【例3-3】在學(xué)生課程數(shù)據(jù)庫中,查詢學(xué)生的姓名和所在系,即求學(xué)生關(guān)系在學(xué)生姓名和所在系兩個(gè)屬性上的投影操作,表示為 姓名,所在系(學(xué)生) 或 2,4(學(xué)生) 在學(xué)生課程數(shù)據(jù)庫中,查詢學(xué)生關(guān)系中都有哪些系,即查詢關(guān)系學(xué)生在所在系屬性上的投影的操作,表示為 所在系(學(xué)生) 【例3-4】設(shè)學(xué)生和選課關(guān)系中的數(shù)據(jù)如下,學(xué)生與選課之間的笛卡兒積、等值連接和自然連接的結(jié)果如表3-6所示。表3-6 關(guān)系

11、間的笛卡兒積、等值連接和自然連接運(yùn)算結(jié)果比較 【例3-5】給出選課、選修課和必修課三個(gè)關(guān)系,它們的關(guān)系模式為 選課(學(xué)號(hào),課號(hào),成績) 選修課(課號(hào),課名) 必修課(課號(hào),課名) “選課選修課”運(yùn)算結(jié)果如表3-7所示,“選課必修課”以及“學(xué)號(hào),課號(hào)(選課)必修課”的結(jié)果如表3-8所示。表3-7 關(guān)系除運(yùn)算實(shí)例1 表3-8 關(guān)系除運(yùn)算實(shí)例2 3.2.3 關(guān)系代數(shù)檢索實(shí)例 下面的檢索實(shí)例均基于學(xué)生選課庫,學(xué)生選課庫的關(guān)系模式為 學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系) 課程(課程號(hào),課程名,先行課) 選課(學(xué)號(hào),課程號(hào),成績) 【例3-6】求選修了課程號(hào)為“C2”課程的學(xué)生學(xué)號(hào)。 【例3-7】求選修

12、了課程號(hào)為“C2”課的學(xué)生學(xué)號(hào)和姓名。 【例3-8】求沒有選修課程號(hào)為“C2”課程的學(xué)生學(xué)號(hào)。 【例3-9】求既選修“C2”課程,又選修“C3”課程的學(xué)生學(xué)號(hào)。 【例3-10】求選修課程號(hào)為“C2”或“C3”課程的學(xué)生學(xué)號(hào)。 【例3-11】求選修了全部課程的學(xué)生學(xué)號(hào)。 【例3-12】一個(gè)學(xué)號(hào)為“04001”的學(xué)生所學(xué)過的所有課程可能也被其他學(xué)生選修,求這些學(xué)生的學(xué)號(hào)和姓名。(求至少選修了學(xué)號(hào)為“04001”的學(xué)生所學(xué)過的所有課程的學(xué)生的學(xué)號(hào)和姓名)。習(xí) 題 33.1 試述關(guān)系模型的特點(diǎn)和三個(gè)組成部分。3.2 解釋下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:(1) 主碼、候選碼、外碼。(2) 迪卡兒積、關(guān)系、元組、屬性、域。(3) 關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫。 3.3 試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼屬性的值也可以為空?什么情況下才可以為空? 3.4 試述等值連接與自然連接的區(qū)別和聯(lián)系。 3.5 設(shè)屬性A是關(guān)系R的主屬性,則屬性A不能取空值(NULL),這是_。 A. 實(shí)體完整性規(guī)則 B. 參照完整性規(guī)則 C. 用戶定義完整性規(guī)則 D. 域完整性規(guī)則 3.6 下面對(duì)于關(guān)系的敘述中,哪個(gè)是不正確的? A. 關(guān)系中的每個(gè)屬性是不可分解的 B. 在關(guān)系中元組的順序是無關(guān)緊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論