




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章關(guān)系數(shù)據(jù)庫 2.1關(guān)系模型的基本概念 2.2關(guān)系代數(shù)和關(guān)系演算 2.3關(guān)系的完整性
2.1關(guān)系模型的基本概念2.1.1數(shù)學定義 2.1.2關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.1.1數(shù)學定義(1)
1.域定義2.1域是一組具有相同數(shù)據(jù)類型的值的集合。2.笛卡兒積定義2.2給定一組域Dl,D2,…,Dn,Dl,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…dn)|di∈Di,i=1,2,…,n}其中,每一個元素(d1,d2,…,dn)叫作一個元組,元素中的每一個值di叫作一個分量。3.關(guān)系定義2.3Dl×D2×…×Dn的子集叫作在域Dl,D2,…,Dn上的關(guān)系,用R(Dl,D2,…,Dn)來表示。2.1.1數(shù)學定義(2)
4.關(guān)系的性質(zhì)(1)列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。(2)不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。(3)列的順序無要求,即列的次序可以任意交換。(4)任意兩個元組不能完全相同。(5)行的順序無要求,即行的次序可以任意交換。(6)分量必須取原子值,即每一個分量都必須是不可再分的數(shù)據(jù)項。2.2關(guān)系代數(shù)和關(guān)系演算2.2.1傳統(tǒng)的集合運算 2.2.2專門的關(guān)系運算2.2.3關(guān)系演算
2.2.1傳統(tǒng)的集合運算(1)
傳統(tǒng)的集合運算是二目運算,包括并、交、差和廣義笛卡兒積4種運算。1.并關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成,其結(jié)果關(guān)系仍為n目關(guān)系。記作R∪S。2.交關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,其結(jié)果關(guān)系仍為n目關(guān)系。記作R∩S。3.差關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成。其結(jié)果關(guān)系仍為n目關(guān)系。記作R-S。4.廣義笛卡兒積兩個分別為n目和m目的關(guān)系R和S的廣義笛卡兒積是一個(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有A1個元組,S有A2個元組,則關(guān)系R和關(guān)系S的廣義笛卡兒積有Al×A2個元組,記作R×S。2.2.1傳統(tǒng)的集合運算(2)
【例2-2】有關(guān)系R、S,如(a)、(b)所示,則R∪S、R∩S、R-S、R×S的結(jié)果分別為(c)、(d)、(e)、(f)所示。
(f)2.2.1傳統(tǒng)的集合運算(3)2.2.2專門的關(guān)系運算(1-1)專門的關(guān)系運算包括選擇、投影、連接和除等。1.選擇選擇是在關(guān)系R中選擇滿足給定條件的諸元組,記作:
σF(R)={t|t∈R∧F(t)='真'}其中F表示選擇條件,它是一個邏輯表達式,取邏輯值“真”或“假”。因此,選擇運算實際上是從關(guān)系R中選取使邏輯表達式F為真的元組。這是從行的角度進行的運算。設(shè)有一個學生-課程關(guān)系數(shù)據(jù)庫,包括學生關(guān)系S、課程關(guān)系C和選修關(guān)系SC,對這3個關(guān)系進行運算。2.2.2專門的關(guān)系運算(1-2)
2.2.2專門的關(guān)系運算(1-3)
【例2-3】查詢數(shù)學系學生的信息。sSD=’數(shù)學系’(S)或s5=’數(shù)學系’(S)結(jié)果如表2-6所示。
表2-6查詢數(shù)學系學生的信息學號S#姓名SN性別SS年齡SA所在系SD000102王博女19數(shù)學系020101范偉男19數(shù)學系2.2.2專門的關(guān)系運算(1-4)
【例2-4】查詢年齡小于20的學生的信息。sSA<20(S)或s4<20(S)結(jié)果如表2-7所示。表2-7查詢年齡小于20的學生的信息學號S#姓名SN性別SS年齡SA所在系SD000101李晨男18信息系000102王博女19數(shù)學系010101劉思思女18信息系020101范偉男19數(shù)學系2.2.2專門的關(guān)系運算(2-1)2.投影關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作:ПA(R)={t[A]|t∈R}
其中,A為R中的屬性列。投影操作是從列的角度進行的運算。投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。【例2-5】查詢學生的學號和姓名。ПS#,SN(S)或П1,2(S)結(jié)果如表2-8所示。表2-8查詢學生的學號和姓名學號S#姓名SN000101李晨000102王博010101劉思思010102王國美020101范偉2.2.2專門的關(guān)系運算(2-2)【例2-6】查詢學生的所在系,即查詢學生關(guān)系S在所在系屬性上的投影。?SD(S)或?5(S)結(jié)果如表2-9所示。表2-9查詢結(jié)果所在系SD信息系數(shù)學系物理系2.2.2專門的關(guān)系運算(3-1)3.連接它是從兩個關(guān)系的笛卡兒積中選取屬性間滿足一定條件的元組。
={trts|tr∈R∧ts∈S∧tr[A]θts[B]}連接運算從R和S的笛卡兒積R×S中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上的值滿足比較關(guān)系θ的元組。θ為“=”的連接運算稱為等值連接。
={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}若A、B是相同的屬性組,就可以在結(jié)果中把重復(fù)的屬性去掉。這種在相同的屬性組間進行比較并去掉了重復(fù)的屬性的等值連接稱為自然連接。
={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}2.2.2專門的關(guān)系運算(3-2)2.2.2專門的關(guān)系運算(4-1)4.除R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影。(1)關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組(R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集)。(2)元組在X上分量值x的象集Yx包含S在Y上的投影。除操作是同時從行和列角度進行運算的。2.2.2專門的關(guān)系運算(4-2)【例2-8】R(A,B,C)和S(B,C,D)兩個關(guān)系如表2-13所示,求R÷S。R
S
ABC
BCDa1b1c2
b1c2d1a2b3c7
b2c1d1a3b4c6
b2c3d2a1b2c3
(b)
a4b6c6
a2b2c3
a1b2c1
(a)表2-13
關(guān)系表R和S2.2.2專門的關(guān)系運算(4-3)則R÷S運算如下: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}除運算結(jié)果如表2-14所示。Aa1
表2-14
除運算結(jié)果2.2.2專門的關(guān)系運算(5)可以使用選擇、投影、連接和除4種操作來編輯復(fù)雜的查詢。以前面的學生-課程數(shù)據(jù)庫中的3個表為例,舉例說明它們的綜合用法。【例2-9】查詢選修了2號課程的學生的學號。【例2-10】查詢選修了3號課程的學生的姓名。
【例2-11】查詢選修了數(shù)學課的學生的姓名和成績。
∏SN,G(σCN='數(shù)學'
)2.2.3關(guān)系演算(1-1)
關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。1元組關(guān)系演算語言—ALPHA元組關(guān)系演算以元組變量作為謂詞變元的基本對象。操作語句工作空間名(表達式):操作條件其中操作語句主要有GET、PUT、HOLD、UPDATE、DELETE和DROP六條語句。表達式用于指定語句的操作對象,它可以是關(guān)系名或?qū)傩悦?,一條語句可以同時操作多個關(guān)系或多個屬性。2.2.3關(guān)系演算(1-2)仍以學生—課程數(shù)據(jù)庫中的3個表為例。1.檢索操作檢索操作用GET語句實現(xiàn)。(1)簡單檢索(即不帶條件的檢索)?!纠?-12】查詢所有學生的姓名。GETW(S.SN)【例2-13】查詢所有學生的信息。GETW(S)(2)帶條件的檢索?!纠?-14】查詢信息系學生的學號和年齡。GETW(S.S#,S.SA):S.SD='信息系'【例2-15】查詢數(shù)學系年齡小于20的學生的姓名和年齡。GETW(S.SN,S.SA):S.SD='數(shù)學系'∧S.SA<202.2.3關(guān)系演算(1-3)(3)帶排序的檢索?!纠?-16】查詢計算機科學系學生的學號、姓名,并按年齡降序排序。GETW(S.S#,S.SN):S.SD='計算機科學系'DOWNS.SA(4)指定元組個數(shù)的檢索【例2-17】取出一個數(shù)學系學生的姓名。 GETW(1)(S.SN):S.SD='數(shù)學系'【例2-18】查詢信息系年齡最大的3個學生的學號及其年齡。GETW(3)(S.S#,S.SA):S.SD='信息系'DOWNS.SA2.更新操作(1)插入操作。插入操作用PUT語句實現(xiàn),其步驟如下:①
用宿主語言在工作空間中建立新元組。②
用PUT語句把該元組存入指定的關(guān)系中。2.2.3關(guān)系演算(1-4)【例2-19】插入一學號為020302、姓名為劉青的18歲女生到計算機系。MOVE020302TOW.S#MOVE'劉青'TOW.SNMOVE'女'TOW.SSMOVE18TOW.SAMOVE'計算機系'TOW.SDPUTW(S)
(2)刪除操作。刪除操作用DELETE語句實現(xiàn)。其步驟如下:①用HOLD語句把要刪除的元組從數(shù)據(jù)庫中讀到工作空間中。②用DELETE語句刪除該元組?!纠?-20】刪除學號為020302的學生。HOLDW(S):S.S#='020302'DELETEW【例2-21】刪除全部學生。HOLDW(S)DELETEW(3)修改操作。2.2.3關(guān)系演算(1-5)①用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中。②用宿主語言修改工作空間中元組的屬性。③用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中?!纠?-22】將020101的姓名改為孟偉。HOLDW(S.S#,S.SN):S.S#='020101'MOVE'孟偉'TOW.SNUPDATEW
【例2-23】將020101的學號改為030201。HOLDW(S):S.S#='020101'DELETEWMOVE'030201'TOW.S#MOVE'孟偉'TOW.SNMOVE'男'TOW.SSMOVE'19'TOW.SAMOVE'數(shù)學系'TOW.SDPUTW(S)2.2.3關(guān)系演算(2-1)2域關(guān)系演算語言QBE域關(guān)系演算以元組變量的分量,即域變量作為謂詞變元的基本對象。QBE(QueryByExample)用示例元素來表示查詢結(jié)果可能的例子。下面仍以學生—課程數(shù)據(jù)庫為例,說明QBE的用法。1.檢索操作(1)簡單查詢?!纠?-24】查詢?nèi)w學生的姓名。操作步驟如下:①用戶提出要求。②屏幕顯示空白表格
2.2.3關(guān)系演算(2-2)③用戶在最左邊一欄輸入關(guān)系名S
④顯示該關(guān)系的欄名SS#SNSSSASD
⑤
用戶構(gòu)造查詢要求SS#SNSSSASD
P.T
這里T是示例元素,即域變量。QBE要求示例元素下面一定要加下劃線?!癙.”是操作符,表示打?。≒rint),就是顯示。示例元素是這個域中可能的一個值,它不必是查詢結(jié)果中的元素。2.2.3關(guān)系演算(2-3)⑥
屏幕顯示查詢結(jié)果SS#SNSSSASD
李晨王博劉思思王國美
2.2.3關(guān)系演算(2-4)【例2-25】查詢?nèi)w學生的信息SS#SNSSSASD
P.000101P.李晨P.男P.18P.信息系顯示全部數(shù)據(jù)也可以簡單地把“P.”操作符作用在關(guān)系名上。SS#SNSSSASDP.
(2)條件查詢?!纠?-26】求信息系全體學生的姓名SS#SNSSSASD
P.李晨
信息系信息系是查詢條件,不必加橫線。2.2.3關(guān)系演算(2-5)【例2-28】查詢數(shù)學系或者年齡大于19歲的學生的學號。SS#SNSSSASD
P.000101P.000102
>19
數(shù)學系(3)查詢結(jié)果排序。【例2-29】查詢信息系學生的姓名,要求查詢結(jié)果按年齡升序排序,對年齡相同的學生按性別降序排序。SS#SNSSSASD
P.李晨DO(2)AO(1)信息系2.2.3關(guān)系演算(2-7)2.更新操作(1)插入操作。插入操作符為“I.”,新插入的元組必須具有碼值,其他屬性值可以為空?!纠?-30】把學號為000103,姓名張?zhí)m,年齡17歲的信息系女生插入表S.SS#SNSSSASDI.000103張?zhí)m女17信息系(2)刪除操作。
刪除操作符為“D.”?!纠?-31】刪除學號為000103的學生.SS#SNSSSASDD.000103
2.2.3關(guān)系演算(2-8)(3)修改操作。修改操作符為“U.”。關(guān)系的主碼不允許修改,如果需要修改某個元組的主碼,需首先刪除該元組,然后再插入新的主碼的元組。【例2-32】把000101的年齡改為19歲。SS#SNSSSASD
000101
U.19
SS#SNSSSASDU.000101
19
或【例2-33】把所有學生的年齡增加1歲。SS#SNSSSASD
U.000101000101
XX+12.3關(guān)系的完整性2.3.1實體完整性 2.3.2參照完整性 2.3.3用戶定義的完整性2.3.1實體完整性規(guī)則2.1實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。例如,在學生關(guān)系S(S#,SN,SS,SA,SD)中,S#屬性為主碼,則S#不能取空值。實體完整性規(guī)則規(guī)定,基本關(guān)系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。例如,學生選課關(guān)系SC(S#,C#,G),(S#,C#)為主碼,則S#和C#兩屬性都不能取空值。2.3.2參照完整性現(xiàn)實世界中的實體之間往往存在某種聯(lián)系,在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的。這樣就自然存在著關(guān)系與關(guān)系間的引用。學生(學號,姓名,性別,年齡,所在系)課程(課程號,課程名,學分)選修(學號,課程號,成績)這三個關(guān)系之間存在著屬性的引用,即選修關(guān)系引用了學生關(guān)系的主碼“學號”和課程關(guān)系的主碼“課程號”選修關(guān)系中的學號值必須是確實存在的學生的學號,即學生關(guān)系中有該學生的記錄。選修關(guān)系中的課程號值也必須是確實存在的課程號,即課程關(guān)系中有該課程的記錄。不僅兩個或兩個以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部屬性間也可能存在引用關(guān)系。2.3.2參照完
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年遼源職業(yè)技術(shù)學院高職單招職業(yè)適應(yīng)性測試歷年(2019-2024年)真題考點試卷含答案解析
- 2025年貴陽護理職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年計算機二級考試問答題解析技巧試題及答案
- 2025年初級會計師考試內(nèi)容詳解試題及答案
- 人力資源管理的社會化影響及實踐試題及答案
- 2025年常見會計錯誤分析試題及答案
- 2025年育嬰師考試社會認可度試題及答案
- 2025年西昌民族幼兒師范高等??茖W校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年育嬰師心理健康指導(dǎo)的實踐應(yīng)用試題及答案
- 信息系統(tǒng)項目管理師考試考點新規(guī)試題及答案
- 手術(shù)室中的緊急事件處理和救助措施
- 華為經(jīng)營管理-華為經(jīng)營管理華為的IPD(6版)
- 土地經(jīng)濟學(黑龍江聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下東北農(nóng)業(yè)大學
- 全國水利ABC證判斷題五
- 大鼓校本課程綱要
- 中建臨建工程施工方案完整版
- 梁長虹解讀碘對比劑使用指南第二(呼和浩特)
- 口腔檢查-口腔一般檢查方法(口腔科課件)
- 日間手術(shù)管理信息系統(tǒng)建設(shè)方案
- 電機原理及拖動第4版習題及答案匯總(邊春元)第1-9章
- 印刷合作合同
評論
0/150
提交評論