數據庫原理與應用 課件 第2章 關系運算理論_第1頁
數據庫原理與應用 課件 第2章 關系運算理論_第2頁
數據庫原理與應用 課件 第2章 關系運算理論_第3頁
數據庫原理與應用 課件 第2章 關系運算理論_第4頁
數據庫原理與應用 課件 第2章 關系運算理論_第5頁
已閱讀5頁,還剩105頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章關系運算理論主要內容2.1關系數據結構2.2關系數據操作2.3關系的完整性2.4傳統的集合運算2.5專門的關系運算2.6綜合實例2.7本章小結2.1關系數據結構第2章關系運算理論2.1關系數據結構2.1.1關系的定義1.域(Domain)域是一組具有相同數據類型的值的集合。例如:整數、實數、介于某個取值范圍的日期。2.笛卡兒積(CartesianProduct)給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}42.1關系數據結構(1)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。(2)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。(3)基數(CardinalNumber)若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:

(即為元組的個數)。(4)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。5例如,給出3個域:D1:院系集合DEPARTMENT={計算機系,日語系}D2:班級集合CLASS={1班,2班}D3:學生集合STUDENT={張三,李四,王五}其中(計算機系,1班,張三)、(計算機系,2班,李四)等都是元組,計算機系、1班、2班、張三、李四等都是分量。該笛卡爾積的基數為2×2×3=12。即D1×D2×D3共有12個元組。這12個元組可列成一張二維表,如表2.1所示。62.1關系數據結構73.關系(Relation)

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,

表示為:R(D1,D2,…,Dn);

R為關系名,n為關系的目或度(Degree)。(1)元組

關系中的每個元素是關系中的元組,通常用t表示。(2)單元關系與二元關系

當n=1時,稱該關系為單元關系(Unaryrelation)。

當n=2時,稱該關系為二元關系(Binaryrelation)。82.1關系數據結構(3)關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。如表2.2所示。其中表2.2是在表2.1的笛卡爾積中取出有意義的元組,形成的一個子集。(4)屬性關系中不同列可以對應相同的域,為了加以區分,必須對每一個列起一個名字,稱為屬性(Attribute)。92.1關系數據結構(5)碼①候選碼(Candidatekey)若關系中的某一屬性組的值能唯一地標識一個元組,而其任何真子集都不能再標識一個元組,則稱該屬性組為候選碼,在最簡單的情況下,候選碼只包含一個屬性。例如,存在一個學生關系,包括學號、姓名、年齡、身份證號四個屬性,其中學號可以唯一地標識一個學生元組,身份證號也可以唯一地標識一個學生元組,所以學號和身份證號可以作為學生關系的候選碼。102.1關系數據結構②全碼(All-key)在最極端的情況下,關系的所有屬性組是這個關系的候選碼,稱為全碼(All-key)。例如,存在一個音樂會關系,包括演奏者、音樂作品、觀眾三個屬性,其中三個屬性組合在一起才可以唯一地標識一個音樂會元組,所以關系的所有屬性組是這個關系的候選碼,即為全碼。112.1關系數據結構③主碼(Primarykey)若一個關系有多個候選碼,則選定其中一個為主碼或主鍵(Primarykey)。例如,在學生關系中,根據具體情況,學號可以更好地標識一個學生元組,所以學號作為學生關系的主碼。當然身份證號也可以作為學生關系的主碼。122.1關系數據結構④主屬性(Primeattribute)與非主屬性(Non-keyattribute)候選碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何候選碼中的屬性稱為非主屬性(Non-keyattribute)。例如,在學生關系中,學號和身份證號為主屬性,姓名和年齡為

非主屬性。132.1關系數據結構2.1.2關系的性質(1)列是同質的(Homogeneous),即每一列中的分量是同一類型的數據,來自同一個域。(2)不同的列可出自同一個域,其中的每一列稱為一個屬性,不同的屬性要給予不同的屬性名。(3)列的順序無所謂,即列的次序可以任意交換。在許多實際關系數據庫產品中,增加新屬性時,永遠是插至最后一列。142.1關系數據結構2.1.2關系的性質(4)任意兩個元組的候選碼不能相同。(5)行的順序無所謂,行的次序可以任意交換。在許多實際關系數據庫產品中,插入一個元組時永遠插至最后一行。(6)分量必須取原子值,即每一個分量都必須是不可分的數據項。這是規范條件中最基本的一條。152.1關系數據結構16關系性質1——同質的列學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二張三10172003119無10172004李四21981/2/28李小四17關系性質2—不同的屬性名學號姓名性別年齡姓名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四曾用名18關系性質3—屬性無序學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四學號姓名曾用名性別年齡10172001陳一陳小一男1710172002姚二姚小二女2010172003張三張小三女1910172004李四李小四男2219關系性質4—元組的候選碼不重復學號姓名性別年齡曾用名10172001陳一男17陳小一10172002姚二女20姚小二10172003張三女19張小三10172004李四男22李小四10172001王五男22王小五20關系性質5—元組無序學號姓名性別年齡10172001陳一男1710172002姚二女2010172003張三女1910172004李四男22學號姓名性別年齡10172004李四男2210172001陳一男1710172003張三女1910172002姚二女2021關系性質6—分量是原子系別名稱高級職稱人數教授人數副教授人數計算機系日語系751210系別名稱教授人數副教授人數計算機系日語系751210非規范化關系規范化關系2.1.3關系模式關系模式是對關系的描述。關系模式在形式上可以表示為:R(U,D,DOM,F)其中R為關系名,U為組成該關系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F為屬性間的數據依賴關系集合。222.1關系數據結構2.1.3關系模式1.關系模式的表示關系模式通常可以簡記為:R(U)或R(A1,A2,…,An

)其中R為關系名,A1,A2,…,An為屬性名。而域名及屬性向域的映像常常直接說明為屬性的類型、長度。232.1關系數據結構2.1.3關系模式2.關系模式與關系關系模式是對關系的描述,關系模式是靜態的、穩定的;關系是關系模式在某一時刻的狀態或內容,關系是動態的、隨時間不斷變化的;關系模式和關系往往統稱為關系,通過上下文加以區別。242.1關系數據結構2.1.4關系數據庫在關系模型中,實體以及實體間的聯系都是用關系來表示的。在一個給定的應用領域中,所有實體及實體之間聯系的關系的集合(也可以簡單地理解為表的集合)構成一個關系數據庫。252.1關系數據結構2.2關系數據操作第2章關系運算理論2.2.1關系的基本操作關系模型中常用的關系操作包括查詢操作和插入、刪除、修改操作兩大部分。關系的查詢表達能力很強,是關系操作中最主要的部分。查詢操作可以分為:選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Except)和笛卡兒積等。其中,選擇、投影、并、差、笛卡兒積是五種基本操作,其他操作是可以用基本操作來定義和導出的。272.2關系數據操作2.2關系數據操作2.2.2關系操作的特點關系操作的特點是集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一集合的方式,這里提到的“一個集合”也可以理解為“一個關系”或“一個二維表”。相應地,非關系數據模型的數據操作方式稱為一次一記錄的方式。282.2.3關系數據語言(1)關系數據語言按照完成的功能可分為三類:數據定義語言

(DDL)、數據操縱語言(DML)和數據控制語言(DCL)。(2)關系數據語言按照查詢方式的不同可分為三類:關系代數

語言(如ISBL)、關系演算語言(如APLHA)、具有關系

代數與關系演算雙重特點的語言(如SQL)。292.2關系數據操作2.3關系的完整性第2章關系運算理論2.3關系的完整性2.3.1完整性約束的分類關系模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。(1)實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系數據庫DBMS自動支持。(2)用戶自定義的完整性是應用領域需要遵循的約束條件,體現了具體領域中的語義約束。312.3.2實體完整性1.實體完整性規則

若屬性A是基本關系R的主屬性,則屬性A不能取空值。2.實體完整性的必要性(1)實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集或一個多對多聯系。2.3關系的完整性(2)現實世界中的實體和實體間的聯系都是可區分的,即它們具有某種唯一性標識。相應地,關系模型中以主碼作為唯一性標識。(3)主碼中的屬性即主屬性不能取空值。空值就是“不知道”或“無意義”的值。主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾。2.3關系的完整性2.3.2實體完整性3.實體完整性規則規定:基本關系的所有主屬性都不能取空值。例如:學生實體中“學號”是主碼,則“學號”不能取空值;課程實體中“課程號”是主碼,則“課程號”不能取空值;學生選課關系——選修表(學號,課程號,成績)中,“學號、課程號”是主碼,則“學號”和“課程號”兩個屬性都不能取空值。342.3關系的完整性35學號姓名性別年齡所在系10172001101720021017200310172004陳一姚二張三李四男女女男17201922計算機系計算機系計算機系日語系例如:學生(學號,姓名,性別,年齡,系別),“學號”不能取空值;課程(課程號,課程名,學分),“課程號”不能取空值。36課程號課程名學分C1C2C3C4mathsenglishjapanesedatabase3543選課(學號,課程號,成績)中,“學號”和“課程號”兩個屬性都不能取空值。37學號課程號成績10172001101720011017200210172002C1C2C2C4949688762.3.3參照完整性1.關系間的引用現實世界中的實體之間往往存在著某種聯系,在關系模型中實體及實體間的聯系都是用關系來描述的。這樣就自然存在著關系與關系間的引用。例如:學生、課程、學生與課程之間的多對多聯系可以用如下三個關系表示:

學生(學號,姓名,性別,年齡,院系)

課程(課程號,課程名,學分)

選修(學號,課程號,成績)這三個關系(或三張表)之間存在著屬性的引用,即選修關系引用

了學生關系的主碼“學號”和課程關系的主碼“課程號”。382.3關系的完整性2.3.3參照完整性2.外碼設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼KS相對應,則稱F是基本關系R的外碼,基本關系R稱為參照關系(ReferencingRelation),基本關系S稱為被參照關系(ReferencedRelation)或目標關系(TargetRelation)。在上例中,選修關系中的“學號”屬性與學生關系的主碼“學號”相對應;選修關系的“課程號”屬性與課程關系的主碼“課程號”相對應,因此“學號”和“課程號”屬性分別是選修關系的外碼。這里學生關系和課程關系均為被參照關系,選修關系為參照關系。392.3關系的完整性2.3.3參照完整性3.參照完整性規則若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼KS相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或取空值(F的每個屬性值均為空值);或等于S中某個元組的主碼值。402.3關系的完整性2.3.3參照完整性3.參照完整性規則結合實例,按照參照完整性規則,“學號”和“課程號”屬性也可以取兩類值:空值或目標關系中已經存在的值。但由于“學號”和“課程號”是選修關系中的主屬性,按照實體完整性規則,它們均不能取空值,并且選修關系中的“學號”和“課程號”屬性實際上只能取相應被參照關系中已經存在的主碼值。412.3關系的完整性42學生(學號,姓名,性別,專業號,年齡,班長)專業(專業號,專業名)1)學生關系中的專業號參照專業關系中的專業號,專業號的值可以是:

(1)空值--表示尚未給學生分配專業(2)非空值--值必須取專業關系中專業號的值2)學生關系中的班長與學號之間存在引用關系,班長的取值可以是:(1)空值---表示該班級未選班長(2)非空值---值必須取同一關系的學號43職工號部門編號姓名…980198029803980498050101020203張三李四王五趙六錢七部門編號部門名稱…01020304財務部人事部公關部技術部職工表(R2)部門表(R1)主鍵外鍵2.3.4用戶定義完整性實體完整性與參照完整性是由系統自動支持的,這是關系模型所要

求的。除此之外,不同的關系數據庫系統根據其應用環境的不同,

往往需要一些特殊的約束條件,這就是用戶定義的完整性約束條件。(1)用戶定義完整性規則是針對某一具體關系數據庫的約束條件,

反映某一具體應用所涉及的數據必須滿足的語義要求。(2)關系模型應提供定義和檢驗這類完整性的機制,以便用統一的

系統的方法處理它們,而不要由應用程序承擔這一功能。442.3關系的完整性45(1)對屬性的類型約束年齡只能取整數,姓名的字符串長度最大為20。(2)對屬性的非空約束學生的姓名不允許為空。(3)對屬性值的取值范圍進行約束學生成績在0—100之間,在職職工的工資不低于1000元等。46(4)對同一關系的不同元組進行約束不允許出現兩個不同的用戶擁有相同的賬號昵稱。(5)對同一關系的各屬性進行約束職工工資=職工工齡*工齡工資+職務工資+………2.4傳統的集合運算第2章關系運算理論2.4傳統的集合運算關系代數的運算對象和結果均為關系。關系代數用到的運算符包括:集合運算符、專門的關系運算符、比較運算符和邏輯運算符,如表2.3所示。482.4.1并運算例題2.1在校學生關系R和休學學生關系S,其中關系R與關系S都有四個屬性(學號,姓名,性別,狀態),若要取得所有學生關

系T,則關系T由屬于在校學生關系R和休學學生關系S的所有元組

組成(即為集合并運算),并且得到的關系T仍然有四個屬性

(學號,姓名,性別,狀態)。如表2.4、表2.5、表2.6所示。492.4傳統的集合運算50例如:ABC123456789ABC7894565112RSR∪S的結果為:ABC1234567895112并運算2.4.2差運算例題2.2有本店商品關系R和不合格商品關系S,其中關系R與關系S都有三個屬性(品牌,名稱,廠家),若要找出本店內合格的

商品關系T,則關系T由屬于本店商品關系R而不屬于不合格商品

關系S的元組組成(即為集合差運算),并且得到的關系T仍然

有三個屬性(品牌,名稱,廠家)。如表2.7、表2.8、表2.9所示。522.4傳統的集合運算53例如:ABC123456789ABC7894565112RSR-S的結果為:ABC123差運算2.4.3交運算例題2.3在上例中,若要找出本店內不合格的商品關系T,則關系T由既屬于本店商品關系R又屬于不合格商品關系S的元組組成(即為集合交運算),并且得到的關系T仍然有三個屬性(品牌,名

稱,廠家)。如表2.10所示。552.4傳統的集合運算5657S-RR-SR∩SR∩S=R-(R-S)

R∩S=S-(S-R)交運算58例如:ABC123456789ABC7894565112RSR∩S的結果為:ABC456789交運算2.4.4廣義笛卡爾積例題2.4

現有學生關系R和必修課程關系S,其中關系R有兩個屬性(學號、姓名),關系S有三個屬性(課程號、課程名、學分),每個學生必須學習所有必修課程,要求形成選課關系T。由學生選修課程形成的選課關系必須包括學生關系R的屬性和必修課程關系S的屬性,即關系T包括學號,姓名,課程號,課程名和學分五個屬性,由于學生關系R中兩個元組選修的課程都對應著必修課程關系S中的三個元組,所以,選課關系T共有六個元組,則得到的關系T由五個屬性和六個元組組成(即為笛卡爾積運算)。如表2.11、表2.12、表2.13所示。592.4傳統的集合運算6061兩個分別為n目和m目的關系R和S的廣義笛卡兒積是一個(n+m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡兒積有k1×k2個元組。記作:ABCabcbceedcCDcdefRSABR.CS.CDabccdabcefbcecdbceefedccdedcefR×S結果為:R×S結果中元組的個數(即基數,行數)=R和S中行數之積;屬性的個數(即元數,列數)=R和S中列數之和。2.5專門的關系運算第2章關系運算理論64選擇σ

、投影π

、連接、求商÷

(運算不僅涉及行而且涉及列)專門的關系運算:2.5專門的關系運算2.5.1選擇運算設有一個學生—課程數據庫。學生關系包括學號、姓名、性別、年齡和院系五個屬性,課程關系包括課程號、課程名和學分三個屬性,選修關系包括學號、課程號和成績三個屬性。關系模式表示如下:student(sno,sname,sex,age,dept)course(cno,cname,credit)sc(sno,cno,grade)65662.5.1選擇運算例題2.5查詢計算機系全體學生的信息。由student關系中滿足dept=“計算機系”這一條件的元組組成(即為選擇運算)。結果如表2.17所示。672.5專門的關系運算2.5.1選擇運算由此可見,選擇運算實際上是從關系R中選取使邏輯表達式值為真的元組。這是從行的角度進行的運算。如圖2.2所示。

圖2.2選擇操作選擇又稱為限制(Restriction)。它是在關系R中選擇滿足給定條件的諸元組,記作:其中F表示選擇條件,它是一個邏輯表達式,取邏輯值“真”或“假”。682.5專門的關系運算2.5專門的關系運算例題2.6查詢年齡小于20歲的學生。

σAge<20(student)或σ4<20(student)結果如表2.18所示。692.5專門的關系運算2.5.2投影運算例題2.7查詢學生的學號和姓名。由student關系中的學號屬性列和姓名屬性列組成的新關系(即為投影運算)。結果如表2.19所示。說明:形成的新關系不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現重復行,應取消這些完全相同的行。702.5專門的關系運算2.5.2投影運算由此可見,投影操作是從列的角度進行的運算。如圖2.3所示。關系R上的投影是從R中選擇出若干屬性列組成新的關系。記作:

其中A為R中的屬性列。712.5專門的關系運算例題2.8查詢學生關系student中都有哪些院系,即查詢關系student在院系屬性上的投影。

πDept(student)

結果如表2.20所示。說明:student關系原來有四個元組,而投影結果取消了重復的計算機系元組,因此只有兩個元組。722.5專門的關系運算2.5.3連接運算連接也稱為θ連接。它是從兩個關系的笛卡兒積中選取屬性間滿足一定條件的元組。記作:其中A和B分別為R和S上度數相等且可比的屬性組。θ是比較運算符。連接運算從R和S的廣義笛卡爾積RS中選取(R關系)在A

屬性組上的值與(S關系)在B屬性組上值滿足比較關系θ的元組。732.5專門的關系運算2.5.3連接運算連接運算中有兩種最為重要也最為常用的連接,一種是等值連接(Equal-Join),一種是自然連接(Natural-Join)。θ為“=”的連接運算稱為等值連接。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組,即等值連接為:742.5專門的關系運算2.5.3連接運算自然連接(Natural-join)是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。即若R和S具有相同的屬性組B,U為R和S的全體屬性集合,則自然連接可記作:752.5專門的關系運算2.5.3連接運算一般的連接操作是從行的角度進行運算。但自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。如圖2.4所示。

圖2.4連接操作7677ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS78R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310C<E79

等值連接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b3280

自然連接R

SABCEa1b153a1b267a2b3810a2b38281

外連接R

S:如果把舍棄的元組也保存在結果關系中,而在其他屬性上填空值(NULL)ABCEa1b153a1b267a2b3810a2b382a2b412NULLNULLb5NULL282

左外連接R

S:如果只把左邊關系R中要舍棄的元組保留就叫做左外連接。ABCEa1b153a1b267a2b3810a2b382a2b412NULL83

右外連接R

S:如果只把右邊關系S中要舍棄的元組保留就叫做右外連接ABCEa1b153a1b267a2b3810a2b382NULLb5NULL2ABCabcdbcbbfcadBCDbcdbceadbRSAR.BR.CS.BS.CDabcbcdabcbcedbcbcddbcbcecadadbRS等值聯接3=2RS1=1AR.BR.CS.BS.CDbbfbcdbbfbceabcadbABCabcdbcbbfcadBCDbcdbceadbRSABCDabcdabcedbcddbcecadbRS自然聯接2.5專門的關系運算2.5.4除運算為敘述上的方便先引入幾個概念。(1)元組的分量(2)象集(ImageSet)8687(1)元組的分量設關系模式為R(A1,A2,……An),它的一個關系為Rt∈R表示t是R的一個元組t[Ai]

則表示元組t中相應于屬性Ai的一個分量。A1A2…Ai…An………………at1at2at3atiatn………………元組t分量t[Ai]88元組的分量舉例2如:關系模式SSNOSNAME

SSEXSCSRQ……99001……99058張三……龐兵男……男1980……1979………………t

:(99058,龐兵,男,1979,……)t[SNAME]=龐兵,表示元組t在姓名SNAME上的分量為“龐兵”。89屬性列/域列舉例姓名學號性別出生日期身份證號籍貫………………張玫200101女1987.1.3210211870103980遼寧劉清200102女1988.4.9370602880409222山東田亮200103男1988.10.6101234881006301河北………………A元組tt[A]=(劉清,200102,女)是元組t在屬性列A上諸分量的集合90(2)象集Zx(ImagesSet)給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}它表示R中屬性組X上值為x的諸元組在Z上分量的集合。91象集舉例1x1在R中的象集

Zx1

={Z1,Z2,Z3},x2在R中的象集

Zx2

={Z2,Z3},x3在R中的象集

Zx3={Z1,Z3}x1Z1x1Z2x1Z3x2Z2x2Z3x3Z1x3Z3R92象集舉例2學號課程號成績200102025720010201782001010389………選課SCXZxt[Z]t[Z]則Zx={(02,57),(01,78)}93象集舉例3例如:學生-課程數據庫中的選修關系S-Ct[X]=t[SNO]=x=99001象集:Zx={(001,85),(003,90)}t[X]=t[CNO]=x=001象集:Zx={(99001,85),(99002,75)}SNOCNOGrade990010018599001003909900200175990020028094學號姓名性別年齡籍貫200103張力女17河北200102王紅女18上海200101馬闖男19北京200104劉樹男19廣州學生Xx則Zx={(200103,張力,河北)}Zt[Z]象集舉例4

2.5專門的關系運算2.5.4除運算給定關系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上投影的集合。

記作:其中Yx為x在R中的象集,x=tr[X]952.5專門的關系運算2.5.4除運算除操作是同時從行和列角度進行運算。如圖2.6所示。

962.5專門的關系運算2.5.4除運算因此,求R÷S的操作步驟如下:(1)將R中屬性分為兩個集合X和Y,

R(X,Y),其中Y就是S中的前半部分屬性的集合,S(Y,Z)。(2)若X的某個值x的象集YxYx={t[Y]∣t∈R∧t[X]=x}包含S表中t[Y]的所有元組,則將x放入結果集中。9798ABCa1b1c2a2

b3c7a3b4c6a1

b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2XYYZ例:R÷SRS(1)當x=(a1)時其象集為X可以取值為{a1,a2,a3,a4}BCb1c2b2c3b2c199(2)當x=(a2)時(3)當x=(a3)時(4)當x=(a4)時其象集為其象集為其象集為BCb3c7b2c3BCb4c6BCb6c6

B

C

b1c2b2c1b2c3S在(B,C)Y上的投影為R÷S的結果為:Aa1X2.5專門的關系運算除運算如圖2.7所示。設關系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論