數(shù)據(jù)庫(kù)原理與應(yīng)用:第2章 關(guān)系數(shù)據(jù)庫(kù)_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用:第2章 關(guān)系數(shù)據(jù)庫(kù)_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用:第2章 關(guān)系數(shù)據(jù)庫(kù)_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用:第2章 關(guān)系數(shù)據(jù)庫(kù)_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用:第2章 關(guān)系數(shù)據(jù)庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩61頁(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)介

1、第2章 關(guān)系數(shù)據(jù)庫(kù) 2本章主要按數(shù)據(jù)模型的三個(gè)要素講述關(guān)系數(shù)據(jù)庫(kù)的一些基本理論(關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的定義和性質(zhì)、關(guān)系的完整性、關(guān)系代數(shù)、關(guān)系數(shù)據(jù)庫(kù)等 )掌握關(guān)系的定義及性質(zhì)、關(guān)系鍵、外部鍵等基本概念以及關(guān)系演算語(yǔ)言的使用方法重點(diǎn)掌握實(shí)體完整性和參照完整性的內(nèi)容和意義、常用的幾種關(guān)系代數(shù)的基本運(yùn)算等32.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.2 關(guān)系的鍵與關(guān)系的完整性2.3 關(guān)系代數(shù) 2.4 關(guān)系演算 42.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義 2.1.1 關(guān)系的形式化定義及其有關(guān)概念 域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域域中所包含的值的個(gè)數(shù)稱為域的基數(shù)(用m

2、表示)。例如 :D1=李力,王平,劉偉,m1=3;D2=男,女;m2=2;D3=18,20,18;m3=3。整數(shù)、實(shí)數(shù)和字符串的集合都是域 域名 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu):關(guān)系。以集合代數(shù)理論為基礎(chǔ)。在關(guān)系中,用域來(lái)表示屬性的取值范圍。5給定一組域D1,D2,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡爾積為 D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 每一個(gè)元素(d1,d2,dn)中的每一個(gè)值di叫做一個(gè)分量(Component) ,diDi 每一個(gè)元素(d1,d2,dn)叫做一個(gè)n元組(n-Tuple),簡(jiǎn)稱元組(Tuple) (

3、注意:元組是按序排列的)笛卡爾積(Cartesian Product) 6笛卡爾積D1D2Dn的基數(shù)M(即元素(d1,d2,dn)的個(gè)數(shù))為所有域的基數(shù)的累乘之 積,即M= 。 例如,上述表示教師關(guān)系中姓名、性別兩個(gè)域的笛卡爾積為: D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)分量:李力、王平、劉偉、男、女 元組 :(李力,男),(李力,女) ,M=m1m2=32=6 7笛卡爾積可用二維表的形式表示: 笛卡爾積實(shí)際是一個(gè)二維表,表的任意一行是一個(gè)元組,表中的每一列來(lái)自同一個(gè)域。姓 名 性 別 李力 男 李力 女 王平 男 王平 女 劉偉 男 劉偉

4、 女 元組同一域8關(guān)系(Relation) 笛卡爾積D1D2Dn的任一子集稱為定義在域D1,D2,Dn上的n元關(guān)系(Relation) R(D1,D2,Dn)關(guān)系的名字n是關(guān)系的目或度(Degree)姓 名 性 別 李力 男 王平 女 劉偉 男 如,上例D1D2笛卡爾積的某個(gè)子集可以構(gòu)成教師關(guān)系T1,如表2.2所示 D1D2笛卡爾積的子集(關(guān)系T1)9在關(guān)系R中,當(dāng)n=1時(shí),稱為單元關(guān)系。當(dāng)n=2時(shí),稱為二元關(guān)系,以此類推 。關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示,關(guān)系中元組個(gè)數(shù)是關(guān)系的基數(shù) (笛卡爾積可用二維表的形式)由于關(guān)系是笛卡爾積的子集,因此,也可以把關(guān)系看成一個(gè)二維表 。說(shuō)明:

5、10姓 名 性 別 李力 男 王平 女 劉偉 男 元組域?qū)傩詫傩缘拿治┮?(1)表的框架由域Di(i=1,2,n)構(gòu)成,即表的每一列對(duì)應(yīng)一個(gè)域。(2)表的每一行對(duì)應(yīng)一個(gè)元組。(3)由于域可以相同,為了加以區(qū)別,必須對(duì)每一列起一個(gè)名字,稱為屬性,n目關(guān)系,必有n個(gè)屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,n)稱為值域。11姓 名 性 別 李力 男 李力 女 不符合實(shí)際意義的關(guān)系在關(guān)系模型中,關(guān)系可進(jìn)一步定義為:關(guān)系頭(Heading)+關(guān)系體(Body) 由屬性名的集合組成關(guān)系結(jié)構(gòu)中的內(nèi)容或者數(shù)據(jù) 不變可變(4)具有相同關(guān)系框架的關(guān)系稱為同類關(guān)系。實(shí)際應(yīng)用中,關(guān)系是笛卡爾積中所取的

6、有意義的子集。122.1.2 關(guān)系的性質(zhì)關(guān)系是一種規(guī)范化了的二維表中行的集合 每一列中的分量必須來(lái)自同一個(gè)域,必須是同一類型的數(shù)據(jù)。即,列是同質(zhì)的。不同的列可來(lái)自同一個(gè)域,每一列稱為屬性,不同的屬性必須有不同的名字 。列的順序可以任意交換。 關(guān)系中元組的順序(即行序)可任意。 關(guān)系中不允許出現(xiàn)相同的元組。(集合中元素唯一)關(guān)系中每一分量必須是不可分的數(shù)據(jù)項(xiàng)。 盡管關(guān)系與二維表格、傳統(tǒng)的數(shù)據(jù)文件是非常相似的,但它們之間又有著重要的區(qū)別。13姓名籍 貫省市縣張強(qiáng)吉林長(zhǎng)春王麗山西大同姓 名省市縣張強(qiáng)吉林長(zhǎng)春王麗山西大同非規(guī)范化的關(guān)系 表2.8 規(guī)范化的關(guān)系 表2.9在表2.8中,籍貫含有省、市縣兩項(xiàng)

7、,出現(xiàn)了“表中有表”的現(xiàn)象,則為非規(guī)范化關(guān)系,而應(yīng)把籍貫分成省、市縣兩列,將其規(guī)范化,如表2.9所示 142.1.3 關(guān)系模式2.1.3 關(guān)系模式 關(guān)系的描述稱為關(guān)系模式(Relation Schema) R(U,D,DOM,F(xiàn))R-關(guān)系名 U-屬性名集合 D-屬性所來(lái)自的域 DOM-屬性向域的映像集合 F-屬性間數(shù)據(jù)的依賴關(guān)系集合 簡(jiǎn)記為:R(U)或R(A1,A2,An)屬性名 數(shù)據(jù)庫(kù)中要區(qū)分型和值。關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模式是型、關(guān)系是值。15關(guān)系模型關(guān)系關(guān)系頭關(guān)系體靜態(tài)、穩(wěn)定,固定不變隨數(shù)據(jù)更新不斷變化 16例如,在第1章的圖1-22所示的教學(xué)數(shù)據(jù)庫(kù)中,共有五個(gè)關(guān)系,其關(guān)系模式可分別表示為:

8、 學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別)教師(教師號(hào),姓名,性別,年齡,職稱,工資,崗位津貼,系別)課程(課程號(hào),課程名,課時(shí))選課(學(xué)號(hào),課程號(hào),成績(jī))授課(教師號(hào),課程號(hào))17與學(xué)生關(guān)系模式對(duì)應(yīng)的數(shù)據(jù)庫(kù)中的實(shí)例有如下6個(gè)元組,如圖2-1所示。 圖2-1 與學(xué)生關(guān)系模式對(duì)應(yīng)的實(shí)例 182.1.4 關(guān)系數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)模式關(guān)系數(shù)據(jù)庫(kù)模式關(guān)系數(shù)據(jù)庫(kù)型值靜態(tài)、穩(wěn)定,固定不變隨數(shù)據(jù)更新不斷變化 關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系進(jìn)行表示。給定一應(yīng)用領(lǐng)域,所有實(shí)體以及實(shí)體之間的聯(lián)系所對(duì)應(yīng)的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)也有型和值之分:對(duì)關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)的描述與關(guān)系數(shù)據(jù)庫(kù)模式對(duì)應(yīng)的關(guān)系數(shù)

9、據(jù)庫(kù)的內(nèi)容192.2 關(guān)系的鍵與關(guān)系的完整性 2.2.1 候選鍵與主關(guān)系鍵 候選鍵(Candidate Key)“學(xué)生關(guān)系”中的學(xué)號(hào)能惟一標(biāo)識(shí)每一個(gè)學(xué)生 “選課關(guān)系”中,只有屬性的組合“學(xué)號(hào)+課程號(hào)”才能惟一地區(qū)分每一條選課記錄 能惟一標(biāo)識(shí)關(guān)系中元組的一個(gè)屬性或?qū)傩约Q為候選鍵(Candidate Key) 候選鍵 候選鍵 惟一性 最小性 20主關(guān)系鍵(Primary Key) 一個(gè)關(guān)系中候選鍵可能存在多個(gè),如學(xué)號(hào)、身份證號(hào)從多個(gè)候選鍵中選擇一個(gè)作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為 主關(guān)系鍵。每個(gè)關(guān)系必定有且僅有一個(gè)主關(guān)系鍵 學(xué)號(hào) 姓名 以學(xué)號(hào)作為數(shù)據(jù)操作的依據(jù) 以姓名作為

10、數(shù)據(jù)操作的依據(jù) 主鍵主碼關(guān)系鍵關(guān)鍵字21主屬性(Prime Attribute)與非碼屬性(Non-Prime Attribute) 主屬性:包含在主關(guān)系鍵中的各個(gè)屬性稱為主屬性 非碼屬性:不包含在任何候選鍵中的屬性稱為非碼屬性(或非主屬性) 全碼 :所有屬性的組合是關(guān)系的候選鍵 教師T 課程C 1:nn:1學(xué)生S課程C 1:nn:1教師T 學(xué)生S 課程C n:nn:nn:n候選碼為(T,C,S)全碼 教師ID學(xué)生ID課程IDJ001S120345C01J003S120312C04J012S120345C11222.2.2 外部關(guān)系鍵 2.2.2 外部關(guān)系鍵 或外碼(Foreign key)關(guān)

11、系R1關(guān)系R2屬性X屬性Y屬性X屬性Z主碼 主碼 外部關(guān)系鍵或外碼 參照關(guān)系 被參照關(guān)系 被參照關(guān)系的主碼和參照關(guān)系的外碼必須定義在同一個(gè)域上 232.2.3 關(guān)系的完整性 2.2.3 關(guān)系的完整性 完整性約束 實(shí)體完整性 參照完整性 用戶自定義完整性 必須滿足體現(xiàn)具體領(lǐng)域中的語(yǔ)義約束 為了維護(hù)關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)與現(xiàn)實(shí)世界的一致性,對(duì)關(guān)系數(shù)據(jù)庫(kù)的操作必須有一定的約束條件,這些約束條件是現(xiàn)實(shí)世界的要求。24實(shí)體完整性(Entity Integrity) 主關(guān)系鍵的值不能為空或部分為空 學(xué)生關(guān)系中的主關(guān)系鍵“學(xué)號(hào)”不能為空 選課關(guān)系中的主關(guān)系鍵“學(xué)號(hào)+課程號(hào)”不能部分為空, 即“學(xué)號(hào)”和“課程號(hào)”兩

12、個(gè)屬性都不能為空 參照完整性(Referential integrity) 如果關(guān)系R2的外部關(guān)系鍵X與關(guān)系R1的主關(guān)系鍵相符,則X的每個(gè)值或者等于R1中主關(guān)系鍵的某一個(gè)值,或者取空值25未分配系別S中,系別取空值,表示該學(xué)生尚未分配到任何一個(gè)系; 否則,它只能取D中某個(gè)元組的系別號(hào)值。如果該屬性為主屬性,則連空值都無(wú)法取,只能取被參照關(guān)系中的已有值。26用戶定義完整性(User-defined Integrity)針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求 如:成績(jī)屬性的取值范圍在0-100之間 272.3 關(guān)系代數(shù) 關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系操作 關(guān)系完整性約束

13、 查詢 更新 插入 刪除修改 關(guān)系模型 關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系完整性約束三部分組成。關(guān)系模型中常用的關(guān)系操作包括查詢操作和更新操作(包括插入、刪除和修改)兩大部分。2.3 關(guān)系代數(shù)關(guān)系操作采用集合操作方式,即操作的對(duì)象和結(jié)果都是集合。也稱為一次一集合(set-at-a-time)關(guān)系操作通常用代數(shù)方式或邏輯方式來(lái)表示,分別稱為關(guān)系代數(shù)和關(guān)系演算28三種運(yùn)算語(yǔ)言關(guān)系代數(shù)關(guān)系演算元組關(guān)系演算域關(guān)系演算292.3.1 關(guān)系代數(shù)的分類及其運(yùn)算符 2.3.1 關(guān)系代數(shù)的分類及其運(yùn)算符 關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言 關(guān)系代數(shù)的運(yùn)算對(duì)象與運(yùn)算結(jié)果都是關(guān)系關(guān)系代數(shù)運(yùn)算符 * ,1000) (S

14、ex= 男)(T) 運(yùn)算結(jié)果如圖41投影(Projection) A(R)=tA | tR 例2-7 查詢教師的姓名、教師號(hào)及其職稱。TN,TNo,Prof(T) 或2,1,5(T)(其中2,1,5分別為屬性TN、TNo和Prof的序號(hào))運(yùn)算結(jié)果如圖 A為R中的屬性列 從列的角度進(jìn)行的運(yùn)算 投影運(yùn)算是從關(guān)系R中順序取出若干屬性列,刪去重復(fù)元組,組成 新的關(guān)系。42例2-8 查詢教師關(guān)系中有哪些系。Dept(T)運(yùn)算結(jié)果如圖43例2-9 查詢講授C5課程的教師號(hào)。運(yùn)算結(jié)果如圖44連接(Join) = t rts |trRtsStr XtsY 為真 為算術(shù)比較運(yùn)算符 自然連接: 在等值連接的情況下

15、,當(dāng)連接屬性X與Y具有相同屬性組時(shí),把在連接結(jié)果中重復(fù)的屬性列去掉,記為:R*S =等值連接 大于連接 連接操作是二目運(yùn)算,是從兩個(gè)關(guān)系的笛卡爾積中選擇滿足連接條件的元組,組成新的關(guān)系。 對(duì)于關(guān)系R(Z,X),S(W,Y):RS=xy(RS)45例2-10 設(shè)有如圖2-9(a)、(b)所示的兩個(gè)關(guān)系R與S,(c)為R和S的大于連接(CD),(d)為R和S的等值連接(C=D),(e)為R和S的等值連接(R.B=S.B),(f)為R和S的自然連接。 (a) (b) 46 (c) (d) (f) (e) 47等值連接與自然連接的區(qū)別 自然連接要求相等屬性值的屬性名相同,而等值連接不要求 自然連接是去

16、掉重復(fù)列的等值連接 例2-11 查詢講授“數(shù)據(jù)庫(kù)”課程的教師姓名。TN(CN=數(shù)據(jù)庫(kù) (C)*TC*TNo,TN(T) 或TN(TNo(CN=數(shù)據(jù)庫(kù) (C)*TC)*TNo,TN(T)運(yùn)算結(jié)果如圖48除法(Division) RS = trX | trRy(S)Yx 除法運(yùn)算同時(shí)從行和列的角度進(jìn)行運(yùn)算,適合于包含“全部”之類的短語(yǔ)的查詢。Yx為x在R中的象集,x =trX 49例2-13 查詢選修了全部課程的學(xué)生學(xué)號(hào)和姓名。SNo,CNo(SC)CNo(C)*SNo,SN(S)例2-14 查詢至少選修了C1課程和C3課程的學(xué)生學(xué)號(hào)。 SNo,CNo(SC)CNo(CNo=C1CNo=C3 (C

17、)只有S4同學(xué)的象集至少包含了C1課程和C3課程,因此,查詢結(jié)果為S4 。50【例2-12】 已知關(guān)系R和S,如圖2-11(a),(b)所示,則RS如圖(c)所示。ABCDa1b2c3d5a1b2c4d6a2b4c1d3a3b5c2d8R(a) CDFc3d5f3c4d6f4S(b) 51ABa1b2RS (c)與除法的定義相對(duì)應(yīng),本題中X=A,B=(a1,b2),(a2,b4),(a3,b5),Y=C,D=(c3,d5),(c4,d6) Z=F=f3,f4其中,元組在X上各個(gè)分量值的象集分別為:(a1,b2)的象集為(c3,d5),(c4,d6)(a2,b4)的象集為(c1,d3)(a3,b

18、5)的象集為(c2,d8)S在Y上的投影為(c3,d5),(c4,d6)顯然只有(a1,b2)的象集包含S在Y上的投影,所以RS=(a1,b2) 52除舉例設(shè)關(guān)系R,S,如圖 (a),(b)所示 ,則RS如圖(c)所示。c1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBAR(a)d2c3b2d1c1b2d1c2b1DCBS(b)53關(guān)系R中,A可以取4個(gè)值a1,a2,a3,a4。其中:a1 的象集為(b1,c2),(b2,c3),(b2,c1)a2 的象集為(b3,c7),(b2,c3)a3 的象集為(b4,c6)a4 的象集為(b6,c6)S在(B,C)

19、上的投影為(b1,c2),(b2,c1),(b2,c3)顯然,只有a1的象集(B,C)a1包含了S在(B,C)屬性組上的投影,所以R S=a1a1AR S(c)542.4 關(guān)系演算關(guān)系代數(shù)關(guān)系演算 過(guò)程化語(yǔ)言,怎樣做非過(guò)程化語(yǔ)言,做什么 552.4.1 元組關(guān)系演算語(yǔ)言 ALPHA語(yǔ)言 QUEL語(yǔ)言 關(guān)系演算 元組關(guān)系演算 域關(guān)系演算 ALPHA,QUEL QBE 562.4.1 元組關(guān)系演算語(yǔ)言 ALPHA語(yǔ)言基本格式: ():內(nèi)存空間 (W)GETPUTHOLDUPDATEDELETEDROP 57數(shù)據(jù)查詢 簡(jiǎn)單查詢 條件查詢 排序查詢 定額查詢 帶元組變量的查詢 帶存在量詞的查詢 庫(kù)函數(shù)

20、查詢 數(shù)據(jù)更新 修改 插入 刪除DELETE PUT 58 簡(jiǎn)單查詢 例2-16 查詢所有被選修的課程號(hào)碼。GET W (SC.CNo) 條件查詢 例2-17 查詢計(jì)算機(jī)系工資高于1000元的教師的姓名和工資。GET W (T.TN,T.Sal):T.Dept= 計(jì)算機(jī)T.Sal1000 排序查詢 例2-18 查詢S3同學(xué)所選課程號(hào)及成績(jī),并按成績(jī)降序排列。GET W (SC.CNo,SC.Score):SC.SNo= S3 DOWN SC.Score 定額查詢 例2-20 查詢一名男教師的教師號(hào)和姓名,并使他的年齡最小。GET W (1) (T.TNo,T.TN):T.Sex= 男 UP T.Age 59 帶元組變量的查詢 例2-21 查詢S3同學(xué)所選課程號(hào)。RANGE SC XGET W (X.CNo):X.SNo= S3 帶存在量詞的查詢 例2-23 查詢至少選修一門其課時(shí)數(shù)為80的課程的學(xué)生的姓名。RANGE C CX SC SCXGET W (S.SN):SCX(SCX.SNo=S.SNoCX(CX.CNo=SCX.CNoCX.CT=80) 使用RANGE來(lái)說(shuō)明元組變量,X為關(guān)系SC上的元組變量 60 庫(kù)函數(shù)查詢 例2-25 求學(xué)號(hào)為S1學(xué)生的平均分。GET W (AVG(SC

溫馨提示

  • 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)論