版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關系數(shù)據(jù)庫系統(tǒng)模型第一頁,共一百零三頁,2022年,8月28日第3章關系數(shù)據(jù)庫系統(tǒng)模型3.1關系數(shù)據(jù)模型3.2關系模型的完整性規(guī)則3.3關系代數(shù)的基本運算3.4關系演算
第二頁,共一百零三頁,2022年,8月28日3.1關系數(shù)據(jù)模型
3.1.1關系模式
形式化地表示為:R(U,D,DOM,F)
R-關系名;
U-組成該關系的屬性名集合;
D-屬性組U中屬性所來自的域;
DOM---屬性向域的映像集合;
F-屬性間數(shù)據(jù)的依賴關系集合。關系模式通??梢院営洖镽(U)或R(A1,A2,…,An),其中,R為關系名,A1,A2,…,An為屬性名。第三頁,共一百零三頁,2022年,8月28日1.關系單一的數(shù)據(jù)結構----關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示邏輯結構----二維表從用戶角度,關系模型中數(shù)據(jù)的邏輯結構是一張二維表第四頁,共一百零三頁,2022年,8月28日1.關系學號(SNO)姓名(SNAME)性別(SEX)年齡(AGE)系別(SDEPT)1105054208張三F18CS1105054323李四M19IS1104014109王五M20CS表3-1學生表第五頁,共一百零三頁,2022年,8月28日關系模型術語
在關系模型中,字段稱為屬性,字段值稱為屬性值,記錄類型稱為關系模式。記錄稱為元組,元組的集合稱為關系或實例。關系中屬性個數(shù)稱為元數(shù),元組個數(shù)稱為基數(shù)。關系中每一個屬性都有一個取值范圍,稱為屬性的值域。每一個屬性列對應一個值域,不同的屬性可對應于同一值域。第六頁,共一百零三頁,2022年,8月28日關系的特點
(1)關系可以看成是由行和列交叉組成的二維表格。它表示的是一個實體集合。(2)表中一行稱為一個元組,可用來表示實體集中的一個實體。(3)表中的列稱為屬性,給每一列起一個名稱即屬性名,表中的屬性名不能相同。(4)列的取值范圍稱為域,同列具有相同的域。例如,年齡為整數(shù)域。(5)表中任意兩行(元組)不能相同。
第七頁,共一百零三頁,2022年,8月28日關系的性質
嚴格地說,關系是一種規(guī)范化的二維表格,具有如下性質:列是同質的:每一列中的分量是同一類型的數(shù)據(jù),來自同一域。不同列可來自同一個域:不同列(屬性)要給予不同的屬性名。列的順序無所謂:列的次序可以任意交換。任意兩個元組不能完全相同:這是由笛卡兒積的性質決定的。行的順序無所謂:行的次序可以任意交換。分量必須取原子值:每一個分量都必須是不可分的數(shù)據(jù)項。第八頁,共一百零三頁,2022年,8月28日2.關鍵碼和表之間的聯(lián)系超鍵在一個關系中,能唯一標識元組的屬性或屬性集稱為關系的超鍵。候選鍵如果一個屬性集能唯一標識元組,且又不含有多余的屬性,那么這個屬性集稱為關系的候選鍵。主鍵若一個關系中有多個候選鍵,則選其中的一個為關系的主鍵。包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何鍵中的屬性稱為非主屬性或非鍵屬性。外鍵關系模式R1中的某一屬性(或屬性組)F與關系模式R2的主鍵相對應,但不是R1的超鍵,則稱F是關系模式R1的外鍵。其中,基本關系R1稱為參照關系;基本關系R2稱為被參照關系或目標關系。第九頁,共一百零三頁,2022年,8月28日2.關鍵碼和表之間的聯(lián)系例如:學生關系
(SNO,SNAME,SEX,AGE,SDNO)
系部關系
(SDNO,SDNAME,CHAIR)
學生關系的主鍵是SNO,系部關系的主鍵為SDNO,在學生關系中,SDNO是它的外鍵。學生關系為參照關系,系部關系為被參照關系。第十頁,共一百零三頁,2022年,8月28日3.關系模式、關系子模式和存儲模式
關系模型基本上遵循數(shù)據(jù)庫的三級體系結構。在關系模型中,概念模式是關系模式的集合,外模式是關系子模式的集合,內模式是存儲模式的集合。第十一頁,共一百零三頁,2022年,8月28日(1)關系模式關系模式是對關系的描述,它包括模式名,組成該關系的諸屬性名、值域名和模式的主鍵。具體的關系稱為實例?!纠?-1】圖3-2是一個教務管理子系統(tǒng)的實體聯(lián)系圖。學生實體的屬性SNO、SNAME、SEX、AGE、SDEPT;課程實體的屬性CNO、CNAME、CDEPT、TNAME。學生關系用S表示,課程關系用C表示。S和C之間有m:n的聯(lián)系(一個學生可選多門課程,一門課程可以被多個學生選修),聯(lián)系類型SC的屬性成績用GRADE表示。
第十二頁,共一百零三頁,2022年,8月28日(1)關系模式SCSCSNAMESNOSDEPTAGESEXGRADECNOCNAMECDEPTETNAME圖3-2實體聯(lián)系圖m學生關系模式S(SNO,SNAME,SEX,AGE,SDEPT)選修關系模式SC(SNO,CNO,GRADE)課程關系模式C(CNO,CNAME,CDEPT,TNAME)n第十三頁,共一百零三頁,2022年,8月28日SNOSNAMESEXAGESDEPTS1張莉F18CSS2李強M19ISS3王剛M20CSSNOCNOGRADES1C180S2C290???表3-2關系模式集的三個具體關系CNOCNAMECDEPTTNAMEC1數(shù)據(jù)庫IS劉軍C2微機原理CS楊林C3編譯原理CS王娟(a)學生關系
(c)選修關系
(b)課程關系第十四頁,共一百零三頁,2022年,8月28日
(2)關系子模式關系子模式是用戶所需數(shù)據(jù)結構的描述,其中包括這些數(shù)據(jù)來自哪些模式和應滿足哪些條件?!纠?-2】用戶需要用到成績子模式F(SNO,SNAME,CNO,GRADE)。子模式F對應的數(shù)據(jù)來源于表S和表SC,構造時應滿足它們的SNO值相等。
第十五頁,共一百零三頁,2022年,8月28日(3)存儲模式存儲模式描述了關系是如何在物理存儲設備上存儲的。關系存儲時的基本組織方式是文件。
第十六頁,共一百零三頁,2022年,8月28日3.1.2關系操作基本的關系操作關系操作采用集合操作方式,即操作的對象和結構都是集合。關系模型中常用的關系操作包括:
(1)傳統(tǒng)的集合運算:并、交、差和廣義笛卡爾積。
(2)專門的關系運算:選擇、投影、連接、除。
(3)有關的數(shù)據(jù)操作:查詢、插入、刪除、修改。第十七頁,共一百零三頁,2022年,8月28日關系操作的特點
是集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一集合(set-at-time)的方式。第十八頁,共一百零三頁,2022年,8月28日關系數(shù)據(jù)庫語言的分類關系代數(shù)語言用對關系的運算來表達查詢要求代表:ISBL關系演算語言:用謂詞來表達查詢要求元組關系演算語言謂詞變元的基本對象是元組變量代表:APLHA,QUEL域關系演算語言謂詞變元的基本對象是域變量代表:QBE具有關系代數(shù)和關系演算雙重特點的語言代表:SQL(StructuredQueryLanguage)第十九頁,共一百零三頁,2022年,8月28日3.2關系模型的完整性規(guī)則3.2.1關系的三類完整性約束3.2.2實體完整性3.2.3參照完整性3.2.4用戶定義的完整性第二十頁,共一百零三頁,2022年,8月28日3.2.1關系的三類完整性約束實體完整性和參照完整性:
關系模型必須滿足的完整性約束條件稱為關系的兩個不變性,應該由關系系統(tǒng)自動支持用戶定義的完整性:
應用領域需要遵循的約束條件,體現(xiàn)了具體領域中的語義約束第二十一頁,共一百零三頁,2022年,8月28日3.2.2實體完整性實體完整性規(guī)則(EntityIntegrity)若屬性A是基本關系R的主屬性,則屬性A不能取空值例:在學生關系S中,“學號”為主碼,則它不能取空值。如選課關系SC中,“學號”與“課程號”為主碼,則兩個屬性都不能取空值。
第二十二頁,共一百零三頁,2022年,8月28日實體完整性(續(xù))實體完整性規(guī)則的說明(1)實體完整性規(guī)則是針對基本關系而言的。一個基本表通常對應現(xiàn)實世界的一個實體集。(2)現(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。(3)關系模型中以主碼作為唯一性標識。(4)主碼中的屬性即主屬性不能取空值。主屬性取空值,就說明存在某個不可標識的實體,即存在不可區(qū)分的實體,這與第(2)點相矛盾,因此這個規(guī)則稱為實體完整性第二十三頁,共一百零三頁,2022年,8月28日3.2.3參照完整性在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此可能存在著關系與關系間的引用。例1學生實體、系別實體學生(學號,姓名,性別,系別號,年齡)系別(系別號,系名)主碼主碼學生關系引用了系別關系的主碼“系別號”。系別關系中的“系別號”值必須是確實存在的系的系別號,即系別關系中有該系別的記錄。第二十四頁,共一百零三頁,2022年,8月28日3.2.3參照完整性(續(xù))參照完整性規(guī)則 若屬性(或屬性組)F是基本關系R的外碼它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值第二十五頁,共一百零三頁,2022年,8月28日參照完整性(續(xù))[例]:學生關系中每個元組的“系別號”屬性只取兩類值:(1)空值,表示尚未給該學生分配系(2)非空值,這時該值必須是系別關系中某個元組的“系別號”值,表示該學生不可能分配一個不存在的系第二十六頁,共一百零三頁,2022年,8月28日3.2.4用戶定義的完整性針對某一具體關系數(shù)據(jù)庫的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求關系模型應提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應用程序承擔這一功能第二十七頁,共一百零三頁,2022年,8月28日3.2.4用戶定義的完整性(續(xù))例:
課程(課程號,課程名,學分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值{1,2,3,4}第二十八頁,共一百零三頁,2022年,8月28日集合運算符∪-∩×并差交笛卡爾積比較運算符>≥<≤=<>大于大于等于小于小于等于等于不等于運算符含義運算符含義表關系代數(shù)運算符
3.3關系代數(shù)的基本運算第二十九頁,共一百零三頁,2022年,8月28日專門的關系運算符σπ
÷選擇投影連接除邏輯運算符∧∨非與或運算符含義運算符含義表關系代數(shù)運算符(續(xù))
3.3關系代數(shù)的基本運算第三十頁,共一百零三頁,2022年,8月28日3.3關系代數(shù)的基本運算
傳統(tǒng)的集合運算
專門的關系運算第三十一頁,共一百零三頁,2022年,8月28日3.3.1傳統(tǒng)的集合運算首先給定兩個關系R和S,分別表示參加運動會的跳高運動員和跳遠運動員的學生信息,如表3-3表示關系R,表3-4表示關系S。姓名系性別李麗計算機女王強數(shù)學男張剛物理男姓名系性別陳芳外語女李麗計算機女趙銘網絡工程男張剛物理男表3-3(關系R)跳高運動員表3-4(關系S)跳遠運動員第三十二頁,共一百零三頁,2022年,8月28日1.并運算(Union)R和S具有相同的目n(即兩個關系都有n個屬性)相應的屬性取自同一個域R∪S
仍為n目關系,由屬于R或屬于S的元組組成
R∪S={t|t
R∨tS}第三十三頁,共一百零三頁,2022年,8月28日1.并運算(Union)姓名系性別李麗計算機女王強數(shù)學男張剛物理男陳芳外語女趙銘網絡工程男表3-5R∪S實例:R∪S的結果為:參加了跳高項目或跳遠項目的學生的集合
第三十四頁,共一百零三頁,2022年,8月28日2.差運算(Difference)R和S具有相同的目n相應的屬性取自同一個域R-S
仍為n目關系,由屬于R而不屬于S的所有元組組成
R-S={t|tR∧tS}第三十五頁,共一百零三頁,2022年,8月28日2.差運算(Difference)R-S的結果為:參加跳高比賽而沒有參加跳遠比賽的學生集合姓名系性別王強數(shù)學男表3-6R-S第三十六頁,共一百零三頁,2022年,8月28日3.交運算(Intersection)R和S具有相同的目n相應的屬性取自同一個域R∩S仍為n目關系,由既屬于R又屬于S的元組組成
R∩S={t|t
R∧tS} R∩S=R–(R-S)第三十七頁,共一百零三頁,2022年,8月28日3.交運算(Intersection)R∩S的結果為:既參加了跳高比賽又參加了跳遠比賽的學生集合姓名系性別李麗計算機女張剛物理男表3-7R∩S第三十八頁,共一百零三頁,2022年,8月28日4.廣義笛卡爾積(CartesianProduct)
R:n目關系,k1個元組
S:m目關系,k2個元組
R×S
列:(n+m)列元組的集合元組的前n列是關系R的一個元組后m列是關系S的一個元組行:k1×k2個元組R×S={tr
ts|tr
R∧tsS}第三十九頁,共一百零三頁,2022年,8月28日4.廣義笛卡爾積(CartesianProduct)R.姓名R.系R.性別S.姓名S.系S.性別李麗計算機女陳芳外語女李麗計算機女李麗計算機女李麗計算機女趙銘網絡工程男李麗計算機女張剛物理男王強數(shù)學男陳芳外語女王強數(shù)學男李麗計算機女王強數(shù)學男趙銘網絡工程男王強數(shù)學男張剛物理男張剛物理男陳芳外語女張剛物理男李麗計算機女張剛物理男趙銘網絡工程男張剛物理男張剛物理男表3-8R×S第四十頁,共一百零三頁,2022年,8月28日3.3.2專門的關系運算選擇投影連接除第四十一頁,共一百零三頁,2022年,8月28日學生-課程關系數(shù)據(jù)庫
學號姓名性別年齡系別110201陳芳女20外語110202李麗女19計算機110203趙銘男20網絡工程110204張剛男18計算機學號課程號成績110201185110202275110203290110201388110204476課程號課程名學分1排球
32籃球23網球34乒乓球25足球36羽毛球2表3-9(a)學生表(S)
表3-9(b)課程表(C)
表3-9(c)選修關系表(SC)第四十二頁,共一百零三頁,2022年,8月28日1.選擇(Selection)
1)選擇又稱為限制(Restriction)2)選擇運算符的含義在關系R中選擇滿足給定條件的諸元組
σF(R)={t|tR∧F(t)='真'}F:選擇條件,是一個邏輯表達式,基本形式為:
X1θY1第四十三頁,共一百零三頁,2022年,8月28日選擇(續(xù))3)選擇運算是從關系R中選取使邏輯表達式F為真的元組,是從行的角度進行的運算σ第四十四頁,共一百零三頁,2022年,8月28日選擇(續(xù))【例3-5】查詢全體女生的元組。
σ性別=‘女’(學生表)或σ3=‘女’(學生表)結果:學號姓名性別年齡系別110201陳芳女20外語110202李麗女19計算機第四十五頁,共一百零三頁,2022年,8月28日選擇(續(xù))【例3-6】查詢年齡小于20歲學生的元組。
σ年齡<20(學生表)或σ4<20(學生表)
結果:
學號姓名性別年齡系別110202李麗女19計算機110204張剛男18計算機第四十六頁,共一百零三頁,2022年,8月28日2.投影(Projection)
1)投影運算符的含義從R中選擇出若干屬性列組成新的關系
πA(R)={t[A]|tR} A:R中的屬性列
第四十七頁,共一百零三頁,2022年,8月28日2.投影(Projection)
2)投影操作主要是從列的角度進行運算但投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組(避免重復行)π第四十八頁,共一百零三頁,2022年,8月28日投影(續(xù))【例3-7】查詢學生關系在學生姓名和性別兩個屬性上的投影Π姓名,性別(學生表)或Π2,3(學生表)結果:姓名性別陳芳女李麗女趙銘男張剛男第四十九頁,共一百零三頁,2022年,8月28日投影(續(xù))【例3-8】查詢學生關系中有哪些系。系別外語計算機網絡工程
結果如表3-11(b)所示。學生關系原來有四個元組,而投影結果取消了重復的信息系元組,因此只有三個元組。表3-11(b)第五十頁,共一百零三頁,2022年,8月28日3.連接(Join)
1)連接也稱為θ連接2)連接運算的含義從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運算符
連接運算從R和S的廣義笛卡爾積R×S中選?。≧關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系θ的元組
AθBtrts第五十一頁,共一百零三頁,2022年,8月28日
連接(續(xù))
3)兩類常用連接運算等值連接(equijoin)什么是等值連接θ為“=”的連接運算稱為等值連接等值連接的含義從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:
RS={|tr
R∧tsS∧tr[A]=ts[B]}A=Btrts第五十二頁,共一百零三頁,2022年,8月28日
連接(續(xù))
自然連接(Naturaljoin)
自然連接是一種特殊的等值連接兩個關系中進行比較的分量必須是相同的屬性組在結果中把重復的屬性列去掉自然連接的含義
R和S具有相同的屬性組B
R
S={|trR∧tsS∧tr[B]=ts[B]}trts第五十三頁,共一百零三頁,2022年,8月28日連接(續(xù))4)一般的連接操作是從行的角度進行運算。
自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。
AθBRS第五十四頁,共一百零三頁,2022年,8月28日連接(續(xù))【例3-9】設關系R﹑S分別為表3-12(a)(b)所示,求:
(1)(2)(3)RSABCa1b14a1b26a2b35a2b412BCDb143b257b31010b492b352表3-12(a)
表3-12(b)第五十五頁,共一百零三頁,2022年,8月28日連接(續(xù))一般連接的結果如下:
AR.BR.CS.BS.CDa1b14b257a1b14b31010a1b26b257a1b26b31010a2b35b31010第五十六頁,共一百零三頁,2022年,8月28日連接(續(xù))等值連接RS的結果如下:R.B=S.B
AR.BR.CS.BS.CDa1b14b143a1b26b257a2b35b31010a2b35b352a2b412b492第五十七頁,共一百零三頁,2022年,8月28日連接(續(xù))
自然連接R
S的結果如下:
ABCDa1b143a2b352第五十八頁,共一百零三頁,2022年,8月28日4.除(Division)象集Zx
給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:
Zx={t[Z]|tR,t[X]=x}
它表示R中屬性組X上值為x的諸元組在Z上分量的集合。第五十九頁,共一百零三頁,2022年,8月28日4.除(Division)x1在R中的象集
Zx1
={Z1,Z2,Z3},x2在R中的象集
Zx2
={Z2,Z3},x3在R中的象集
Zx3={Z1,Z3}象集舉例第六十頁,共一百零三頁,2022年,8月28日4.除(Division)
給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在
X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合,記作:
R÷S={tr[X]|tr
R∧πY(S)
Yx}Yx:x在R中的象集,x=tr[X]第六十一頁,共一百零三頁,2022年,8月28日除(續(xù))2)除操作是同時從行和列角度進行運算
÷RS第六十二頁,共一百零三頁,2022年,8月28日除(續(xù))[例6]設關系R、S分別為下圖的(a)和(b),R÷S的結果為圖(c)第六十三頁,共一百零三頁,2022年,8月28日分析在關系R中,A可以取四個值{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)上的投影為
{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}第六十四頁,共一百零三頁,2022年,8月28日關系代數(shù)的擴充運算改名廣義投影賦值外連接外部并半連接聚集第六十五頁,共一百零三頁,2022年,8月28日1.改名(Rename)改名也稱重命名,是關系代數(shù)中一種常用的附加操作功能。改名運算的形式為:
ρs(A1,A2,…,An)(R),表示將關系R重命名為S,R中的屬性依次重命名為A1,A2,…,An。如果只是希望將關系R改名成S而其屬性名稱保持不變,則此時改名運算可表示成為:ρs(R)。第六十六頁,共一百零三頁,2022年,8月28日1.改名(Rename)設給定關系R(A,B,C)和S(B,C,D),則R×S的屬性應寫成A、R.B、R.C、S.B、S.C、D,可以通過改名運算使其屬性更為清晰,如將R×S寫成R×ρs(X,Y,D)(S),則屬性為A、B、C、X、Y、D。第六十七頁,共一百零三頁,2022年,8月28日2.廣義投影(GeneralizedProjection)廣義投影是投影運算的擴展。該運算允許在投影列表中使用算術函數(shù)來對投影進行擴展,其形式為:
ΠF1,F2,…,FK(R)
其中R為關系,F(xiàn)1,F2,…,FK是涉及關系R的屬性和常量的算術表達式。第六十八頁,共一百零三頁,2022年,8月28日2.廣義投影(GeneralizedProjection)【例3-11】給定職工關系
Employee(eno,name,department,age,sex,pay)
如要將年齡為40歲以上的職工工資上調10%,則可使用廣義投影表示為:
Πeno,name,department,age,sex,pay*1.1(σage40(Employee))第六十九頁,共一百零三頁,2022年,8月28日3.賦值(Assignment)
賦值運算的形式為:S←R,表示將關系R的結果賦值給關系S,在后續(xù)運算中,S可以代表R進行運算。在關系代數(shù)的運算中,可以通過給臨時關系變量賦值,將一個比較復雜的關系代數(shù)表達式分開書寫成若干個簡單的表達式。
第七十頁,共一百零三頁,2022年,8月28日3.賦值(Assignment)【例3-12】在關系Course中增添一門新課:
(9,藝術體操,2),可用賦值操作表示為:
Course←Course∪{9,藝術體操,2}
設學號為110203的學生因故退學,請在關系Student和SC中將其相關記錄刪除,可表示為:
Student←Student-(σsno=′110203′(Student))SC←SC-(σsno=′110203′(SC))第七十一頁,共一百零三頁,2022年,8月28日4.外連接(OuterJoin)外連接如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(Null),這種連接就叫做外連接(OUTERJOIN)。左外連接如果只把左邊關系R中要舍棄的元組保留就叫做左外連接(LEFTOUTERJOIN或LEFTJOIN)右外連接如果只把右邊關系S中要舍棄的元組保留就叫做右外連接(RIGHTOUTERJOIN或RIGHTJOIN)。第七十二頁,共一百零三頁,2022年,8月28日4.外連接(OuterJoin)ABCabcbbfcadBCDbcdbceadbefg【例3-13】如表3-15(a)、(b)所示,給定關系R和S,則二者的自然連接、左外連接、右外連接和全外連接分別如表3-15(c)、(d)、(e)、(f)所示。ABCDabcdabcecadb(a)關系R
(b)關系S(c)自然連接第七十三頁,共一百零三頁,2022年,8月28日4.外連接(OuterJoin)ABCDabcdabcecadbbbfnullABCDabcdabcecadbnullefgABCDabcdabcecadbbbfnullnullefg(d)左外連接
(e)右外連接
(f)全外連接
第七十四頁,共一百零三頁,2022年,8月28日5.外部并(OuterUnion)外部并是并運算的擴展。外部并就是針對這一問題提出的一種擴展運算:設關系R和S的關系模式不同,則R和S的外部并是由R和S的所有屬性組成(公共屬性只取一次)的一種新關系,記為R∪S,該關系的元組由屬于R或S的所有元組組成,同時元組在新增加的屬性上填充空值(null)。
第七十五頁,共一百零三頁,2022年,8月28日5.外部并(OuterUnion)【例3-14】表3-15中關系R和S的外部并運算結果如表3-16所示。ABCDabcnullbbfnullcadnullnullbcdnullbcenulladbnullefg表3-16關系代數(shù)外部并運算結果
第七十六頁,共一百零三頁,2022年,8月28日6.半連接(Semi-join)半連接是建立在自然連接基礎上的一種擴展運算。該運算的作用是從關系R中篩選出與關系S進行自然連接運算可以匹配的元組集合,記作R?S,其形式化定義為:
R?S=ΠR(R?S)即關系R和S的半連接是R和S的自然連接在R的所有屬性上的投影。顯然半連接不滿足交換律,即R?S≠S?R。第七十七頁,共一百零三頁,2022年,8月28日6.半連接(Semi-join)【例3-15】表3-15中關系R和S的半連接運算結果如表3-17(a)、(b)所示。ABCabccadBCDbcdbceadb(a)R?S
(b)S?R
第七十八頁,共一百零三頁,2022年,8月28日7.聚集(Aggregate)聚集運算是指輸入一個值的集合,然后根據(jù)該值的集合得到一個單一的值作為結果。常用的聚集運算有求最大值max、最小值min、平均值avg、求和sum和計數(shù)count等。第七十九頁,共一百零三頁,2022年,8月28日7.聚集(Aggregate)【例3-16】設有職工關系
Employee(eno,name,department,age,sex,pay)
進行以下查詢。(1)計算男職工的平均年齡,則用聚集運算表示為:
avgage(σsex=′男′(Employee))(2)計算女職工的最高工資,則用聚集運算表示為:
maxpay(σsex=′女′(Employee))第八十頁,共一百零三頁,2022年,8月28日3.3.4關系代數(shù)表達式及其應用實例【例3-17】設教務管理數(shù)據(jù)庫中有三個關系:學生關系S(SNO,SNAME,AGE,SEX)
選課關系SC(SNO,CNO,GRADE)
課程關系C(CNO,CNAME,TEACHER)第八十一頁,共一百零三頁,2022年,8月28日3.3.4關系代數(shù)表達式及其應用實例下面用關系代數(shù)表達式表達每個查詢語句。(1)檢索學習課程號為C2的學生學號與成績。ΠSNO,GRADE(σCNO=′C2′(SC))表達式中也可以不寫屬性名,而寫上屬性列的序號,如下面表達式:Π1,3(σCNO=′C2′(SC))
(2)檢索學習課程號為C2的學生學號與姓名?!荢NO,
SNAME(σCNO=′C2′(S?SC))第八十二頁,共一百零三頁,2022年,8月28日3.3.4關系代數(shù)表達式及其應用實例(3)檢索選修課程名為排球的學生學號與姓名。
ΠSNO,
SNAME(σCNAME=′排球′(S?SC?C))(4)檢索選修課程號為C1或C3的學生學號。
ΠSNO(σCNO=′C1′∨CNO=′C3′(SC))(5)檢索至少選修課程號為C1和C3的學生學號。
Π1(σ1=4∧2=′C1′∧5=′C3′(SC×SC))
這里(SC×SC)表示關系SC自身相乘的笛卡兒積操作。(6)檢索不學C1課的學生姓名與年齡。
ΠSNAME,AGE(S)-ΠSNAME,AGE(σCNO=‵C1‵(S?SC))第八十三頁,共一百零三頁,2022年,8月28日3.3.4關系代數(shù)表達式及其應用實例
(7)檢索學習全部課程的學生姓名。編寫這個查詢語句的關系代數(shù)表達式過程如下:學生選課情況可用操作ΠSNO,CNO(SC)表示;全部課程可用操作ΠCNO(C)表示;學了全部課程的學生學號可用除法操作表示,操作結果是學號SNO的集合。
ΠSNO,CNO(SC)÷ΠCNO(C)
從SNO求學生姓名SNAME,可以用自然聯(lián)接和投影操作組合而成:ΠSNAME(S?(ΠSNO,CNO(SC)÷ΠCNO(C)))第八十四頁,共一百零三頁,2022年,8月28日3.3.4關系代數(shù)表達式及其應用實例
(8)檢索所學課程包含學生S1所學課程的學生學號。
學生選課情況可用操作∏SNO,CNO(SC)表示;學生S1所學課程可用操作
ΠCNO(σSNO=‵S1‵(SC))表示;所學課程包含學生S1所學課程的學生學號,可以用除法操作求得:
ΠSNO,CNO(SC)÷ΠCNO(σSNO=‵S1‵(SC))第八十五頁,共一百零三頁,2022年,8月28日3.4關系演算元組關系演算:以元組變量作為謂詞變元的基本對象元組關系演算語言ALPHA
域關系演算:以域變量作為謂詞變元的基本對象域關系演算語言QBE第八十六頁,共一百零三頁,2022年,8月28日3.4.1元組關系演算
在元組關系演算中,元組關系演算表達式簡稱為元組表達式,其一般形式為
{t|P(t)}
式中,t是元組變量,表示一個元數(shù)固定的元組。t必須是P(t)中唯一的自由元組變量。P是公式,可以看成程序設計語言中的條件表達式。第八十七頁,共一百零三頁,2022年,8月28日1.原子公式(Atoms)
元組表達式中的公式由原子公式組成,原子公式有下列三種形式。
(1)R(t):R是關系名,t是元組變量。
R(t)表示這樣一個命題:“t是關系R的一個元組”。
(2)t[i]θC或Cθt[i]t[i]表示元組變量t的第i個分量,C是常量,θ為算術比較運算符。
t[i]θC或Cθt[i]表示這樣一個命題:“元組t的第t個分量與C之間滿足θ運算”。例如,t[2]=5,表示“元組t的第2個分量的值等于5”。
(3)t[i]θu[j]t,u是兩個元組變量。t[i]θu[j]表示這樣一個命題:“元組t的第i個分量與元組u的第j個分量之間滿足θ運算”。例如,t[2]<u[4],表示“元組t第2個分量必須小于元組u的第4個分量”。
第八十八頁,共一百零三頁,2022年,8月28日1.原子公式(Atoms)自由變量在一個公式中,如果沒有對元組變量使用存在量詞或全稱量詞,那么這些元組變量稱為自由元組變量。上述原子公式中所出現(xiàn)的元組變量,在自身關系的范圍內均為自由變量。約束變量若在一個公式中對元組變量使用了存在量詞或全稱量詞,則稱這些元組變量為約束變量。第八十九頁,共一百零三頁,2022年,8月28日2.公式(Formulas)(1)每個原子公式是一個公式。其中的元組變量是自由變量。(2)設P1和P2是公式,那么下列4項也是公式。P1表示命題:“若P1為真,則﹁P1為假;若P1為假,則﹁P1為真”。P1∧P2表示命題:“若P1,P2同時為真,則P1∧P2亦為真;否則,P1∧P2為假”。P1∨P2表示命題:“若P1,P2之中有一個為真或兩個均為真,則P1∨P2為真;否則,P1∨P2為假”。P1=>P2表示命題:“若P1為真同時P2為假,則P1=>P2為假;否則P1=>P2為真”。公式中的元組變量性質(指自由性或約束性)將與P1和P2保持一致。第九十頁,共一百零三頁,2022年,8月28日2.公式(Formulas)(3)設P1是公式,t是P1中的元組變量,那么下列兩項也是公式。(t)(P1)表示命題:“若有一個t使P1為真,則(t)(P1)為真;否則,(t)(P1)為假”。(t)是一個量詞,其含義為“存在這樣的t”或“至少有這樣一個t”。元組變量t在P1中是自由的,在(t)(P1)中是約束的。P1中其他元組變量的自由或約束性質在(t)(P1)中沒有改變。(t)(P1)表示命題:“對所有的t,使P1都為真,則(t)(P1)為真;否則,(t)(P1)為假”。(t)也是一個量詞,其含義為“對所有的t”或“對任意一個t”。元組變量t在P1中是自由的,在(t)(P1)中是約束的。P1中其他元組變量的自由或約束性質在(t)(P1)中沒有改變。第九十一頁,共一百零三頁,2022年,8月28日2.公式(Formulas)(4)在公式中,各種運算符的優(yōu)先級從高到低依次為:θ,和,,∧和∨,=>。加括號時,括號中的運算優(yōu)先。(5)所有公式均按上述的規(guī)則經有限次復合求得,除此之外的都不是公式。第九十二頁,共一百零三頁,2022年,8月28日3.公式等價變換
根據(jù)數(shù)理邏輯的謂詞演算規(guī)則,公式可做等價變換,下面是三個常用的等價變換。
(1)P1∧P2等價于(P1∨P2)P1∨P2等價于
(P1∧P2)(2)P1=>P2等價于
P1∨P2(3)(t)(P1(t))等價于(t)(P1(t))(t)(P1(t))等價于(t)(P1(t))第九十三頁,共一百零三頁,2022年,8月28日4.元組關系演算與關系代數(shù)的等價性(1)并操作(∪):R∪S={t|R(t)∨S(t)}(2)差操作(-):
R-S={t|R(t)∧S(t)}(3)笛卡爾乘積(×):R×S={t(m+n)|(u(m))(v(n))(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧…t[m]=u[m]∧t[m+1]=v[1]∧t[m+2]=v[2]∧…∧t[m+n]=v[n])}式中,R是m目關系,S是n目關系,t(m+n)表示t的目數(shù)為m+n。第九十四頁,共一百零三頁,2022年,8月28日4.元組關系演算與關系代數(shù)的等價性(4)投影(Π):Πi1,i2,…,ik(R)={t(k)|(u)R(u)∧t[1]=u[i1]∧t[2]=u[i2]∧…t[k]=u[ik])}(5)選擇(σ):σF(R)={t|R(t)∧F′}其中,F(xiàn)′是F在元組演算中等價的表示形式。第九十五頁,共一百零三頁,2022年,8月28日5.元組關系演算舉例【例3-19】設有一個學生-課程關系數(shù)據(jù)庫,包括學生關系(S)、課程關系(C)和選修關系(SC),用元組關系演算完成下列問題的查詢:(1)學號為1105054209的學生因故退學,刪除其相關記錄。(2)在關系C中增加一門新課程(C9,網球,5,36,2)。(3)檢索計算機系的全體學生。(4)檢索年齡大于19歲的男生。(5)給出所有課程的名稱和學時。(6)檢索選修課程號為C5的學生學號和成績及其姓名。(7)檢索未選修“羽毛球”課程的學生的學號和姓名。(8)檢索選修課程號為C1或C3的學生的學號和姓名。(9)檢索同時選修課程號為C1和C3的學生的姓名。(10)檢索選修全部課程的學生的姓名。(11)檢索選修課程包含學生1105054105選修的課程的學生的學號,或選修課程不包含學生1105054105選修的課程的學生的姓名。第九十六頁,共一百零三頁,2022年,8月28日3.4.2域關系演算域關系演算類似于元組關系演算。域演算表達式的一般形式為:
{t1t2…tk|p(t1t2…tk)}其中,t1t2…tk為元組變量t的各個分量,統(tǒng)稱為域變量;P是一個關于自由域變量t1t2…tk的公式。
{t1t2…tk|p(t1t2…tk)}表示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多版本并發(fā)控制-洞察及研究
- 情緒調節(jié)與神經生物學機制-洞察及研究
- 沖壓工操作安全模擬考核試卷含答案
- 飛機外勤彈射救生工道德競賽考核試卷含答案
- 船閘及升船機運行員安全管理競賽考核試卷含答案
- 2026中國金融出版社有限公司校園招聘4人筆試考試參考試題及答案解析
- 拖拉機涂裝加工生產線操作調整工風險識別模擬考核試卷含答案
- 高壓電器及元件裝配工安全理論評優(yōu)考核試卷含答案
- 家用音頻產品維修工風險評估能力考核試卷含答案
- 2026年湖南婁底衛(wèi)生專業(yè)技術資格考試中醫(yī)針灸學主治醫(yī)師(相關專業(yè)知識)模擬練習題及答案解析
- 1688采購合同范本
- 購買鐵精粉居間合同范本
- GB/T 29730-2025冷熱水用分集水器
- 污水廠安全知識培訓
- (2025年標準)存單轉讓協(xié)議書
- 醫(yī)學科研誠信專項培訓
- 電力通信培訓課件
- 第五版FMEA控制程序文件編制
- 藥物致癌性試驗必要性指導原則
- 軟骨肉瘤護理查房
- 高級生物化學知識要點詳解
評論
0/150
提交評論