版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章關系數據庫 2.1關系模型的基本概念 2.2關系代數和關系演算 2.3關系的完整性
2.1關系模型的基本概念2.1.1數學定義 2.1.2關系數據結構 2.1.1數學定義(1)
1.域定義2.1域是一組具有相同數據類型的值的集合。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.關系定義2.3Dl×D2×…×Dn的子集叫作在域Dl,D2,…,Dn上的關系,用R(Dl,D2,…,Dn)來表示。2.1.1數學定義(2)
4.關系的性質(1)列是同質的,即每一列中的分量是同一類型的數據,來自同一個域。(2)不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。(3)列的順序無要求,即列的次序可以任意交換。(4)任意兩個元組不能完全相同。(5)行的順序無要求,即行的次序可以任意交換。(6)分量必須取原子值,即每一個分量都必須是不可再分的數據項。2.2關系代數和關系演算2.2.1傳統(tǒng)的集合運算 2.2.2專門的關系運算2.2.3關系演算
2.2.1傳統(tǒng)的集合運算(1)
傳統(tǒng)的集合運算是二目運算,包括并、交、差和廣義笛卡兒積4種運算。1.并關系R與關系S的并由屬于R或屬于S的元組組成,其結果關系仍為n目關系。記作R∪S。2.交關系R與關系S的交由既屬于R又屬于S的元組組成,其結果關系仍為n目關系。記作R∩S。3.差關系R與關系S的差由屬于R而不屬于S的所有元組組成。其結果關系仍為n目關系。記作R-S。4.廣義笛卡兒積兩個分別為n目和m目的關系R和S的廣義笛卡兒積是一個(n+m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有A1個元組,S有A2個元組,則關系R和關系S的廣義笛卡兒積有Al×A2個元組,記作R×S。2.2.1傳統(tǒng)的集合運算(2)
【例2-2】有關系R、S,如(a)、(b)所示,則R∪S、R∩S、R-S、R×S的結果分別為(c)、(d)、(e)、(f)所示。
(f)2.2.1傳統(tǒng)的集合運算(3)2.2.2專門的關系運算(1-1)專門的關系運算包括選擇、投影、連接和除等。1.選擇選擇是在關系R中選擇滿足給定條件的諸元組,記作:
σF(R)={t|t∈R∧F(t)='真'}其中F表示選擇條件,它是一個邏輯表達式,取邏輯值“真”或“假”。因此,選擇運算實際上是從關系R中選取使邏輯表達式F為真的元組。這是從行的角度進行的運算。設有一個學生-課程關系數據庫,包括學生關系S、課程關系C和選修關系SC,對這3個關系進行運算。2.2.2專門的關系運算(1-2)
2.2.2專門的關系運算(1-3)
【例2-3】查詢數學系學生的信息。sSD=’數學系’(S)或s5=’數學系’(S)結果如表2-6所示。
表2-6查詢數學系學生的信息學號S#姓名SN性別SS年齡SA所在系SD000102王博女19數學系020101范偉男19數學系2.2.2專門的關系運算(1-4)
【例2-4】查詢年齡小于20的學生的信息。sSA<20(S)或s4<20(S)結果如表2-7所示。表2-7查詢年齡小于20的學生的信息學號S#姓名SN性別SS年齡SA所在系SD000101李晨男18信息系000102王博女19數學系010101劉思思女18信息系020101范偉男19數學系2.2.2專門的關系運算(2-1)2.投影關系R上的投影是從R中選擇出若干屬性列組成新的關系。記作:ПA(R)={t[A]|t∈R}
其中,A為R中的屬性列。投影操作是從列的角度進行的運算。投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現重復行,應取消這些完全相同的行?!纠?-5】查詢學生的學號和姓名。ПS#,SN(S)或П1,2(S)結果如表2-8所示。表2-8查詢學生的學號和姓名學號S#姓名SN000101李晨000102王博010101劉思思010102王國美020101范偉2.2.2專門的關系運算(2-2)【例2-6】查詢學生的所在系,即查詢學生關系S在所在系屬性上的投影。?SD(S)或?5(S)結果如表2-9所示。表2-9查詢結果所在系SD信息系數學系物理系2.2.2專門的關系運算(3-1)3.連接它是從兩個關系的笛卡兒積中選取屬性間滿足一定條件的元組。
={trts|tr∈R∧ts∈S∧tr[A]θts[B]}連接運算從R和S的笛卡兒積R×S中選?。≧關系)在A屬性組上的值與(S關系)在B屬性組上的值滿足比較關系θ的元組。θ為“=”的連接運算稱為等值連接。
={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}若A、B是相同的屬性組,就可以在結果中把重復的屬性去掉。這種在相同的屬性組間進行比較并去掉了重復的屬性的等值連接稱為自然連接。
={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}2.2.2專門的關系運算(3-2)2.2.2專門的關系運算(4-1)4.除R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性列上的投影。(1)關系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組(R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集)。(2)元組在X上分量值x的象集Yx包含S在Y上的投影。除操作是同時從行和列角度進行運算的。2.2.2專門的關系運算(4-2)【例2-8】R(A,B,C)和S(B,C,D)兩個關系如表2-13所示,求R÷S。R
S
ABC
BCDa1b1c2
b1c2d1a2b3c7
b2c1d1a3b4c6
b2c3d2a1b2c3
(b)
a4b6c6
a2b2c3
a1b2c1
(a)表2-13
關系表R和S2.2.2專門的關系運算(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}除運算結果如表2-14所示。Aa1
表2-14
除運算結果2.2.2專門的關系運算(5)可以使用選擇、投影、連接和除4種操作來編輯復雜的查詢。以前面的學生-課程數據庫中的3個表為例,舉例說明它們的綜合用法?!纠?-9】查詢選修了2號課程的學生的學號?!纠?-10】查詢選修了3號課程的學生的姓名。
【例2-11】查詢選修了數學課的學生的姓名和成績。
∏SN,G(σCN='數學'
)2.2.3關系演算(1-1)
關系演算是以數理邏輯中的謂詞演算為基礎的。按謂詞變元的不同,關系演算可分為元組關系演算和域關系演算。1元組關系演算語言—ALPHA元組關系演算以元組變量作為謂詞變元的基本對象。操作語句工作空間名(表達式):操作條件其中操作語句主要有GET、PUT、HOLD、UPDATE、DELETE和DROP六條語句。表達式用于指定語句的操作對象,它可以是關系名或屬性名,一條語句可以同時操作多個關系或多個屬性。2.2.3關系演算(1-2)仍以學生—課程數據庫中的3個表為例。1.檢索操作檢索操作用GET語句實現。(1)簡單檢索(即不帶條件的檢索)?!纠?-12】查詢所有學生的姓名。GETW(S.SN)【例2-13】查詢所有學生的信息。GETW(S)(2)帶條件的檢索。【例2-14】查詢信息系學生的學號和年齡。GETW(S.S#,S.SA):S.SD='信息系'【例2-15】查詢數學系年齡小于20的學生的姓名和年齡。GETW(S.SN,S.SA):S.SD='數學系'∧S.SA<202.2.3關系演算(1-3)(3)帶排序的檢索?!纠?-16】查詢計算機科學系學生的學號、姓名,并按年齡降序排序。GETW(S.S#,S.SN):S.SD='計算機科學系'DOWNS.SA(4)指定元組個數的檢索【例2-17】取出一個數學系學生的姓名。 GETW(1)(S.SN):S.SD='數學系'【例2-18】查詢信息系年齡最大的3個學生的學號及其年齡。GETW(3)(S.S#,S.SA):S.SD='信息系'DOWNS.SA2.更新操作(1)插入操作。插入操作用PUT語句實現,其步驟如下:①
用宿主語言在工作空間中建立新元組。②
用PUT語句把該元組存入指定的關系中。2.2.3關系演算(1-4)【例2-19】插入一學號為020302、姓名為劉青的18歲女生到計算機系。MOVE020302TOW.S#MOVE'劉青'TOW.SNMOVE'女'TOW.SSMOVE18TOW.SAMOVE'計算機系'TOW.SDPUTW(S)
(2)刪除操作。刪除操作用DELETE語句實現。其步驟如下:①用HOLD語句把要刪除的元組從數據庫中讀到工作空間中。②用DELETE語句刪除該元組。【例2-20】刪除學號為020302的學生。HOLDW(S):S.S#='020302'DELETEW【例2-21】刪除全部學生。HOLDW(S)DELETEW(3)修改操作。2.2.3關系演算(1-5)①用HOLD語句將要修改的元組從數據庫中讀到工作空間中。②用宿主語言修改工作空間中元組的屬性。③用UPDATE語句將修改后的元組送回數據庫中?!纠?-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'數學系'TOW.SDPUTW(S)2.2.3關系演算(2-1)2域關系演算語言QBE域關系演算以元組變量的分量,即域變量作為謂詞變元的基本對象。QBE(QueryByExample)用示例元素來表示查詢結果可能的例子。下面仍以學生—課程數據庫為例,說明QBE的用法。1.檢索操作(1)簡單查詢?!纠?-24】查詢全體學生的姓名。操作步驟如下:①用戶提出要求。②屏幕顯示空白表格
2.2.3關系演算(2-2)③用戶在最左邊一欄輸入關系名S
④顯示該關系的欄名SS#SNSSSASD
⑤
用戶構造查詢要求SS#SNSSSASD
P.T
這里T是示例元素,即域變量。QBE要求示例元素下面一定要加下劃線?!癙.”是操作符,表示打?。≒rint),就是顯示。示例元素是這個域中可能的一個值,它不必是查詢結果中的元素。2.2.3關系演算(2-3)⑥
屏幕顯示查詢結果SS#SNSSSASD
李晨王博劉思思王國美
2.2.3關系演算(2-4)【例2-25】查詢全體學生的信息SS#SNSSSASD
P.000101P.李晨P.男P.18P.信息系顯示全部數據也可以簡單地把“P.”操作符作用在關系名上。SS#SNSSSASDP.
(2)條件查詢。【例2-26】求信息系全體學生的姓名SS#SNSSSASD
P.李晨
信息系信息系是查詢條件,不必加橫線。2.2.3關系演算(2-5)【例2-28】查詢數學系或者年齡大于19歲的學生的學號。SS#SNSSSASD
P.000101P.000102
>19
數學系(3)查詢結果排序?!纠?-29】查詢信息系學生的姓名,要求查詢結果按年齡升序排序,對年齡相同的學生按性別降序排序。SS#SNSSSASD
P.李晨DO(2)AO(1)信息系2.2.3關系演算(2-7)2.更新操作(1)插入操作。插入操作符為“I.”,新插入的元組必須具有碼值,其他屬性值可以為空。【例2-30】把學號為000103,姓名張?zhí)m,年齡17歲的信息系女生插入表S.SS#SNSSSASDI.000103張?zhí)m女17信息系(2)刪除操作。
刪除操作符為“D.”?!纠?-31】刪除學號為000103的學生.SS#SNSSSASDD.000103
2.2.3關系演算(2-8)(3)修改操作。修改操作符為“U.”。關系的主碼不允許修改,如果需要修改某個元組的主碼,需首先刪除該元組,然后再插入新的主碼的元組?!纠?-32】把000101的年齡改為19歲。SS#SNSSSASD
000101
U.19
SS#SNSSSASDU.000101
19
或【例2-33】把所有學生的年齡增加1歲。SS#SNSSSASD
U.000101000101
XX+12.3關系的完整性2.3.1實體完整性 2.3.2參照完整性 2.3.3用戶定義的完整性2.3.1實體完整性規(guī)則2.1實體完整性規(guī)則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。例如,在學生關系S(S#,SN,SS,SA,SD)中,S#屬性為主碼,則S#不能取空值。實體完整性規(guī)則規(guī)定,基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。例如,學生選課關系SC(S#,C#,G),(S#,C#)為主碼,則S#和C#兩屬性都不能取空值。2.3.2參照完整性現實世界中的實體之間往往存在某種聯系,在關系模型中實體及實體間的聯系都是用關系來描述的。這樣就自然存在著關系與關系間的引用。學生(學號,姓名,性別,年齡,所在系)課程(課程號,課程名,學分)選修(學號,課程號,成績)這三個關系之間存在著屬性的引用,即選修關系引用了學生關系的主碼“學號”和課程關系的主碼“課程號”選修關系中的學號值必須是確實存在的學生的學號,即學生關系中有該學生的記錄。選修關系中的課程號值也必須是確實存在的課程號,即課程關系中有該課程的記錄。不僅兩個或兩個以上的關系間可以存在引用關系,同一關系內部屬性間也可能存在引用關系。2.3.2參照完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年采購合同:電子產品批量采購及技術支持
- 2024版特種物品運輸協(xié)議3篇
- 2024年版企業(yè)租車服務協(xié)議規(guī)范化文件版B版
- 2024慶陽房屋租賃及租后維護服務合同3篇
- 2024年私募股權投資基金投融資合作協(xié)議3篇
- 2024年美甲行業(yè)勞動合同樣本
- 2024年度藝術品寄賣代理委托協(xié)議(含投資咨詢)3篇
- 2024年版建筑總承包協(xié)議解除條款明細一
- 2024年綿陽地區(qū)標準房屋租賃協(xié)議格式版B版
- 2025年度智能家居產品形象拍攝合作協(xié)議3篇
- 常見酸和堿說課課件
- 2023-2024學年湖北省利川市小學語文六年級期末通關測試題詳細參考答案解析
- 礦大畢業(yè)設計-固定式帶式輸送機設計
- 高考地理一輪復習課件+湖泊的水文特征
- 熱動復習題材料熱力學與動力學
- GB/T 19405.1-2003表面安裝技術第1部分:表面安裝元器件(SMDS)規(guī)范的標準方法
- GB/T 13275-1991一般用途離心通風機技術條件
- 彈塑性力學(浙江大學課件)
- 千年菩提路解說詞
- 濰柴天然氣發(fā)動機維修手冊
- 配氣機構的設計
評論
0/150
提交評論