




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
?第二章關(guān)系數(shù)據(jù)庫第二章關(guān)系數(shù)據(jù)庫基本內(nèi)容:
2.1關(guān)系模型概述
2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)
2.3關(guān)系的完整性(重點(diǎn))
2.4關(guān)系代數(shù)(重點(diǎn))
2.5關(guān)系演算(了解)
2.6關(guān)系系統(tǒng)(補(bǔ)充)
基本要求:1.掌握關(guān)系模型的三要素,在此基礎(chǔ)上理解關(guān)系數(shù)據(jù)庫管理系統(tǒng)2.關(guān)系代數(shù)運(yùn)算是本章的重點(diǎn)和難點(diǎn),要求熟練使用關(guān)系代數(shù)的有關(guān)操作完成查詢功能
本節(jié)概述一.關(guān)系數(shù)據(jù)庫的發(fā)展關(guān)系理論是建立在集合代數(shù)理論基礎(chǔ)上的,有著堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)。E.F.Codd于70年代初提出關(guān)系數(shù)據(jù)理論,他因此獲得1981年的ACM圖靈獎(jiǎng)。早期代表系統(tǒng)
SystemR:由IBM研制;INGRES:由加州Berkeley分校研制。目前主流的商業(yè)數(shù)據(jù)庫系統(tǒng)
Oracle,Informix,Sybase,SQLServer,DB2。
Access,F(xiàn)oxpro,F(xiàn)oxbase。本節(jié)概述二、關(guān)系數(shù)據(jù)庫系統(tǒng)的特點(diǎn)優(yōu)點(diǎn)(1)數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單---規(guī)范化二維表格(2)用戶使用方便---不需了解內(nèi)部結(jié)構(gòu)(3)功能強(qiáng)大---直接構(gòu)造復(fù)雜的數(shù)學(xué)模型(4)數(shù)據(jù)獨(dú)立性高---關(guān)系數(shù)據(jù)庫系統(tǒng)的組織、使用不涉及物理存放因素、過程性因素(5)理論基礎(chǔ)深---理論引導(dǎo)產(chǎn)品,基于邏輯與代數(shù)缺點(diǎn):查詢效率偏低等一、邏輯數(shù)據(jù)模型是用戶從數(shù)據(jù)庫所看到的數(shù)據(jù)模型與DBMS有關(guān)層次、網(wǎng)狀、關(guān)系、面向?qū)ο?.1關(guān)系模型
2.1關(guān)系模型概念模型中關(guān)系理論中關(guān)系DB中某些軟件中實(shí)體集EntitySet關(guān)系Relation表Table表(或DB文件)實(shí)體Entity元組Tuple行Row記錄Record屬性Attribute屬性Attribute列Col字段Field主碼PrimaryKey主碼PrimaryKey關(guān)鍵字PrimaryKey關(guān)鍵字PrimaryKey與關(guān)系模型有關(guān)的術(shù)語對(duì)照表
1.數(shù)據(jù)結(jié)構(gòu)兩維的扁平2.數(shù)據(jù)操作關(guān)系代數(shù)語言關(guān)系演算語言(元組和域)SQL語言
3.數(shù)據(jù)的完整性實(shí)體完整性參照完整性用戶定義的完整性現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系表示關(guān)系數(shù)據(jù)庫是表的集合二、關(guān)系數(shù)據(jù)模型三要素2.1關(guān)系模型1.域(Domain)域---一組值的集合,這組值具有相同的數(shù)據(jù)類型。如整數(shù)的集合、字符串的集合、全體學(xué)生的集合。一、關(guān)系的基本概念2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)2.笛卡爾積(CartesianProduct)一組域D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}笛卡爾積的每個(gè)元素(d1,d2,…,dn)稱作一個(gè)n-元組(n-tuple)。元組的每一個(gè)值di叫做一個(gè)分量(component)。若Di的基數(shù)為mi,則笛卡爾積的基數(shù)為2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)例1
設(shè)
D1為教師集合(T)={t1,t2} D2為學(xué)生集合(S)={s1,s2,s3} D3為課程集合(C)={c1,c2}
則D1×D2×D3是個(gè)三元組集合元組個(gè)數(shù)為2×3×2
是所有可能的(教師,學(xué)生,課程)元組集合。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)TSCt1s1c1t1s1c2t1s2c1………t2s3c22.2關(guān)系數(shù)據(jù)結(jié)構(gòu)笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組表中的每列對(duì)應(yīng)一個(gè)域。事實(shí)上,每個(gè)域都可被認(rèn)為是具有同一類型的信息或數(shù)據(jù),當(dāng)我們認(rèn)為多個(gè)域間有一定關(guān)系時(shí),就可以笛卡爾積的方法,將它們以關(guān)系的形式建立一張二維表,以表示這些域的關(guān)系。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)如給出三個(gè)域:D1=導(dǎo)師集合SUPERVISOR={張青,劉逸}D2=專業(yè)集合SPECIALITY={計(jì)算機(jī),信息}D3=研究生集合POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)D1×D2×D3={(張青,計(jì)算機(jī),李勇),(張青,計(jì)算機(jī),劉晨),(張青,計(jì)算機(jī),王敏),(張青,信息,李勇),(張青,信息,劉晨),(張青,信息,王敏),(劉逸,計(jì)算機(jī),李勇),(劉逸,計(jì)算機(jī),劉晨),(劉逸,計(jì)算機(jī),王敏),(劉逸,信息,李勇),(劉逸,信息,劉晨),(劉逸,信息,王敏)}
該笛卡爾積的基數(shù)為:2×2×3=12,也即D1×D2×D3有12個(gè)元組,可組成一張二維表2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)SUPERVISORSPECIALITYPOSTGRADUATE張青計(jì)算機(jī)李勇
張青計(jì)算機(jī)劉晨張青計(jì)算機(jī)王敏張青信息
李勇張青信息
劉晨張青信息
王敏劉逸
計(jì)算機(jī)李勇劉逸
計(jì)算機(jī)劉晨
劉逸
計(jì)算機(jī)王敏劉逸
信息
李勇劉逸
信息
劉晨劉逸
信息
王敏3.關(guān)系笛卡爾積D1×D2×…×Dn的子集叫做:
在域D1,D2,…,Dn上的關(guān)系,用R(D1,D2,…,Dn)表示。R是關(guān)系的名字,n是關(guān)系的度或目。關(guān)系是笛卡爾積中有意義的子集。關(guān)系也可以表示為二維表。
2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)
關(guān)系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元組屬性2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)SnoSnameSexSagesdept95001張三男25CS95002李四女24CS96101王五男23MA96001趙六男23CS關(guān)系(表)屬性(列、字段)元組(行、記錄)域(string,{男,女})關(guān)系Student(sno,sname,sex,sage,sdept)2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)(1)關(guān)系中的幾個(gè)基本概念①候選碼(CandidateKey)若關(guān)系中某一個(gè)屬性組,能唯一標(biāo)識(shí)一個(gè)元組,則稱該屬性為候選碼。如Student中Sno,或Sname
如SC中的(S#,C#)。②主碼(PrimaryKey)進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),從一個(gè)關(guān)系的多個(gè)候選碼中選定一個(gè)作為主碼。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)③主屬性
任何一個(gè)候選碼中的屬性稱作主屬性。④非碼屬性不包含在任何候選碼中的屬性稱為非碼屬性⑤全碼關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)(2)關(guān)系的類型基本表:是關(guān)系數(shù)據(jù)庫中實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示視圖表:是由基本表或其他視圖表導(dǎo)出的表,是數(shù)據(jù)虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)查詢表:是查詢結(jié)果表或查詢中生成的臨時(shí)表2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)①列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域(列同型)②不同的列可出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。③列的順序無所謂,即列的次序可以任意交換。④任意兩個(gè)元組不能完全相同(行相異)。⑤行的順序無所謂,即行的次序可以任意交換。⑥分量必須取原子值,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。(3)關(guān)系的性質(zhì)2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)
(4)關(guān)系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系實(shí)體集、聯(lián)系都表示成關(guān)系。學(xué)生課程選修屬于系DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,CREDIT)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)TEACH(P#,C#)教師教授工作2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的描述稱作關(guān)系模式關(guān)系名(R)關(guān)系中的屬性名(U)屬性向域的映象(dom)屬性間的數(shù)據(jù)依賴關(guān)系(F)它可以形式化地表示為:
R(U,D,dom,F)
二、關(guān)系模式2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)通??梢院?jiǎn)記為:R(U)或R(A1,A2,…,An)
其中R為關(guān)系名,A1,A2,…,An為屬性名。某一時(shí)刻對(duì)應(yīng)某個(gè)關(guān)系模式的內(nèi)容(元組的集合)稱作關(guān)系。關(guān)系模式是型,是穩(wěn)定的。關(guān)系是某一時(shí)刻的值,是隨時(shí)間不斷變化的。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)其型是關(guān)系模式的集合,即數(shù)據(jù)庫描述,稱作數(shù)據(jù)庫的內(nèi)涵(Intension)其值是某一時(shí)刻關(guān)系的集合,稱作數(shù)據(jù)庫的外延(Extension)。三、關(guān)系數(shù)據(jù)庫
分清關(guān)系數(shù)據(jù)庫型和值的概念,數(shù)據(jù)庫與數(shù)據(jù)模型的關(guān)系。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)
一、關(guān)系的三類完整性約束1.實(shí)體完整性規(guī)則
----若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值空值---“不知道”或“不存在”包括(重復(fù),無值,無意義)思考:意義??2.3關(guān)系的完整性
關(guān)系對(duì)應(yīng)到現(xiàn)實(shí)世界中的實(shí)體集,元組對(duì)應(yīng)到實(shí)體,實(shí)體是相互可區(qū)分的,通過主碼來唯一標(biāo)識(shí),若主碼為空,則出現(xiàn)不可標(biāo)識(shí)的實(shí)體,這是不容許的。2.3關(guān)系的完整性如:Student(Sno,Sname,Sdept,Ssex,Sage)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)2.3關(guān)系的完整性2、參照完整性(1)外碼定義
設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼(ForeignKey)基本關(guān)系R----為參照關(guān)系基本關(guān)系S----被參照關(guān)系或目標(biāo)關(guān)系。2.3關(guān)系的完整性例1、學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)外碼參照關(guān)系被參照關(guān)系(目標(biāo)關(guān)系)2.3關(guān)系的完整性
例2:指出下表中的參照關(guān)系和被參照關(guān)系Student(Sno,Sname,Sdept,Ssex,Sage)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)分析:Sno是SC的外碼,與Student的主碼對(duì)應(yīng)
Cno是SC的外碼,與Course的主碼對(duì)應(yīng)所以:SC是參照關(guān)系,Student和Course都是被參照關(guān)系)2.3關(guān)系的完整性
除了兩個(gè)或兩個(gè)以上的關(guān)系可以相互引用,同一關(guān)系的內(nèi)部屬性之間也可能存在引用關(guān)系例3
學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng))2.3關(guān)系的完整性思考:外碼可以取空值嗎?如:思考1:職工(職工號(hào),職工名,部門號(hào),職稱)部門(部門號(hào),部門名)思考2:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)2.3關(guān)系的完整性思考3:Student(Sno,Sname,Sdept,Ssex,Sage)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)2.參照完整性規(guī)則
若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:
l
或者取空值(F的每個(gè)屬性值均為空值);
l或者等于S中某個(gè)元組的主碼值2.3關(guān)系的完整性對(duì)于例1,學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只能取下面兩類值:
(1)空值,表示尚未給該學(xué)生分配專業(yè)
(2)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配到一個(gè)不存在的專業(yè)中。即被參照關(guān)系“專業(yè)”中一定存在一個(gè)元組,它的主碼值等于該參照關(guān)系“學(xué)生”中的外碼值。
2.3關(guān)系的完整性對(duì)于例2,Student(Sno,Sname,Sdept,Ssex,Sage)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)
按照參照完整性規(guī)則,“學(xué)號(hào)”和“課程號(hào)”屬性也可以取兩類值:空值或目標(biāo)關(guān)系中已經(jīng)存在的值。但由于“學(xué)號(hào)”和“課程號(hào)”是選修關(guān)系中的主屬性,按照實(shí)體完整性規(guī)則,它們均不能取空值。所以選修關(guān)系中的“學(xué)號(hào)”和“課程號(hào)”屬性實(shí)際上只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值。
2.3關(guān)系的完整性3.用戶定義的完整性(域完整性,語義完整性)
用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,如某個(gè)屬性必須取唯一值,某些屬性值之間應(yīng)滿足的函數(shù)依賴。如Sno要求是8位整數(shù),Ssex要求取值為“男”或“女”,成績(jī)的取值必須在0~100之間。2.3關(guān)系的完整性二、完整性規(guī)則檢查關(guān)系模型應(yīng)提供定義和檢驗(yàn)這些完整性。為維持DB中數(shù)據(jù)的完整性,在對(duì)關(guān)系DB執(zhí)行插入、刪除、修改等操作時(shí)應(yīng)檢查是否滿足完整性規(guī)則2.3關(guān)系的完整性第二章關(guān)系數(shù)據(jù)庫基本內(nèi)容:
2.1關(guān)系模型概述
2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)
2.3關(guān)系的完整性(重點(diǎn))
2.4關(guān)系代數(shù)(重點(diǎn))
2.5關(guān)系演算(了解)
2.6關(guān)系系統(tǒng)(補(bǔ)充)
一、關(guān)系操作1.關(guān)系操作的特點(diǎn)關(guān)系操作是集合操作,操作的對(duì)象及結(jié)果都是集合,是一次一集合(Set-at-a-time)的方式。而非關(guān)系型的數(shù)據(jù)操作方式是一次一記錄(Record-at-a-time)。第四節(jié)關(guān)系代數(shù)2.關(guān)系操作的類型關(guān)系代數(shù)關(guān)系演算
SQL
第四節(jié)關(guān)系代數(shù)
(2)關(guān)系演算元組關(guān)系演算域關(guān)系演算二、關(guān)系數(shù)據(jù)語言概述1.抽象的查詢語言(1)關(guān)系代數(shù)集合運(yùn)算關(guān)系運(yùn)算第四節(jié)關(guān)系代數(shù)2.具體系統(tǒng)中的實(shí)際語言SQL:介于關(guān)系代數(shù)和關(guān)系演算之間,由IBM公司在研制SystemR時(shí)提出的。QUEL:基于Codd提出的元組關(guān)系演算語言ALPHA,在INGRES上實(shí)現(xiàn)。QBE:基于域關(guān)系演算,由IBM公司研制。第四節(jié)關(guān)系操作三、關(guān)系代數(shù)(重點(diǎn))關(guān)系代數(shù)用到的運(yùn)算符
集合運(yùn)算合符∪―∩
專門關(guān)系運(yùn)算符σΠ
÷
比較運(yùn)算符>≥<≤=≠
邏輯運(yùn)算符┐∧∨第四節(jié)關(guān)系代數(shù)
關(guān)系代數(shù)的兩類運(yùn)算(1)傳統(tǒng)的集合運(yùn)算并、差、交、廣義笛卡兒積(2)專門的關(guān)系運(yùn)算選擇、投影、連接、除等第四節(jié)關(guān)系代數(shù)R
S<一>傳統(tǒng)的集合運(yùn)算1.并(Union)
設(shè)關(guān)系R和關(guān)系S具有相同的目n(有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成。其結(jié)果關(guān)系仍為n目關(guān)系。記作:
R∪S={t|t∈R∨t∈S}
RS第四節(jié)關(guān)系代數(shù)例1
RSABCABCa1b1c1a1b2c2a1b2c2a1b3c2a2b2c1a2b2c1
R∪SABCa1b1c1a1b2c2a2b2c1a1b3c2第四節(jié)關(guān)系代數(shù)例2
在職職工表R離退休職工表S工號(hào)姓名性別狀態(tài)工號(hào)姓名性別狀態(tài)
11張名男19李雨女016馬力男125王飛男032于曉女1
思考:則總職工表用?表示
第四節(jié)關(guān)系代數(shù)2、交運(yùn)算(Intersection)
所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合。R
S={r|r
R
r
S}R
S第四節(jié)關(guān)系代數(shù)例3
RSABCABCa1b1c1a1b2c2a1b2c2a1b3c2a2b2c1
a2b2c1
R∩S
ABCa1b2c2a2b2c1第四節(jié)關(guān)系代數(shù)3、差運(yùn)算所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合R
S={r|r
R
r
S}R
S思考:交運(yùn)算能否通過差運(yùn)算來重寫?R
S=R
(R
S)第四節(jié)關(guān)系代數(shù)例4
RSABCABCa1b1c1a1b2c2a1b2c2a1b3c2a2b2c1a2b2c1
R-SABCa1b1c1第四節(jié)關(guān)系代數(shù)例5
本店商品表R不合格商品表S品牌名稱廠家品牌名稱廠家1011奶粉安徽
1011奶粉安徽1026白糖北京
2911火腿西安1016白糖青島
1018白糖張店則:(1)本店合格商品?
R-S(2)本店不合格商品
R∩S第四節(jié)關(guān)系操作4、廣義笛卡爾積(ExtendedCartesianProduct)
設(shè)R為n目關(guān)系,S為m目關(guān)系,則R和S的廣義笛卡爾積是一個(gè)(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。記作:
第四節(jié)關(guān)系代數(shù)若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1×k2個(gè)元組第四節(jié)關(guān)系代數(shù)例6
RSABCABCa1b1c1a1b2c2a1b2c2a1b3c2a2b2c1a2b2c1
則R×SABCABC
a1b1c1
a1b2c2
a1b1c1
a1b3c2
a1b1c1
a2b2c1
a1b2c2
a1b2c2
a1b2c2
a1b3c2
a1b2c2
a2b2c1
a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1
例7
現(xiàn)有學(xué)生表R,必修課程表S,要求每個(gè)學(xué)生必須學(xué)習(xí)每門必修課,形成開課表學(xué)生表R必修課程表S學(xué)號(hào)姓名課程號(hào)課程名學(xué)分0406001王小紅C601數(shù)據(jù)庫40406002張大衛(wèi)C602操作系統(tǒng)4C606計(jì)算方法3
請(qǐng)寫出開課表第四節(jié)關(guān)系代數(shù)<二>專門的關(guān)系運(yùn)算相關(guān)概念
(1)設(shè)關(guān)系模式為R(A1,A2,…,An)。它的一個(gè)關(guān)系設(shè)為R:Student(No,Name,Sex,Pno,age)t∈R表示t是R的一個(gè)元組。
t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量。如:t1張三男521
則t[age]=21,t[No]=1第四節(jié)關(guān)系代數(shù)(2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。A={No,Name,age}┐A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。(3)t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。如:t[A]={1,張三,21}第四節(jié)關(guān)系代數(shù)(4)R為n目關(guān)系,S為m目關(guān)系。tr∈R,ts∈S,稱trts為元組的連接(串接)。它是一個(gè)(n+m)列的元組,前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。
第四節(jié)關(guān)系代數(shù)(5)給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。定義,當(dāng)t[X]=x時(shí),x在R中的象集為:
Zx={t[Z]|t∈R,t[X]=x}
它表示R中屬性組X上值為x的諸元組在Z上分量的集合。
第四節(jié)關(guān)系代數(shù)
例8:設(shè)RSABCBCD
a1
b1c2b1c2d1a2b3c7b2c1d1a3b4c6b2c3d2
a1
b2c3a4b6c6a2b2c3
a1
b2c1令X=A,Z={B,C},則a1的象集為:{(b1,c2),(b2,c3),(b2,c1)}1.選擇運(yùn)算
--在關(guān)系R中選擇滿足給定條件的元組(從行角度)。
F(R)={t|tR,F(t)=‘真’}F是選擇的條件,
tR,F(xiàn)(t)要么為真要么為假。F的形式:由邏輯運(yùn)算符連接算術(shù)表達(dá)式而成。
邏輯表達(dá)式:,, 算術(shù)表達(dá)式:XY X,Y是屬性名、常量、或簡(jiǎn)單函數(shù)。 是比較算符,{,,,,,≠}第四節(jié)關(guān)系代數(shù)例9、設(shè)有一個(gè)學(xué)生-課程關(guān)系數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。
Student(Sno,Sname,Ssex,Sdep,Sage)
SnoSnameSsexSdepSage99001張三男CS1999002李明男FS2099003王蘭女IS2199006劉民男CS1999008肖華女IS20第四節(jié)關(guān)系代數(shù)Course(Cno,Cname,Cpno,Credit)
課程號(hào)課程名先修課學(xué)分
CnoCnameCpnoCredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL64
第四節(jié)關(guān)系代數(shù)SC(Sno
,
Cno,Grade)
學(xué)號(hào)課程號(hào)成績(jī)
SnoCnoGrade99001001929900100285990010038899002002909900200380
第四節(jié)關(guān)系代數(shù)
①查找年齡大于20歲的學(xué)生元組(記錄)σSage>20(Stduent)={(99003王蘭IS21)}②σ(Sage=19)∧(Sdept=‘CS’)(Stduent)={(99001張三CS19),(99006劉民CS19)}第四節(jié)關(guān)系代數(shù)③查詢信息系(IS系)全體學(xué)生σSdept='IS'(Student)或σ4='IS'(Student)結(jié)果為:
SnoSnameSsexSdeptSage
99003王蘭女IS2199008肖華女IS20第四節(jié)關(guān)系代數(shù)2.投影運(yùn)算
從關(guān)系R中取若干列組成新的關(guān)系(從列的角度)。
A(R)={t[A]|tR},AR注意投影的結(jié)果中要去掉相同的行。cbcfedcbaCBABCbcef
R
B,C(R)第四節(jié)關(guān)系代數(shù)例10
查詢學(xué)生關(guān)系Student在學(xué)生姓名和所在系兩個(gè)屬性上的投影。
Sname,Sdept(Student)或2,5(Student)第四節(jié)關(guān)系代數(shù)
查詢結(jié)果為:
SnameSdept
張三CS
李明FS
王蘭IS
劉民CS
肖華IS
第四節(jié)關(guān)系代數(shù)投影一般要和選擇結(jié)合起來使用例11查詢“99001”同學(xué)所選修的課程號(hào)?
自己寫出來---Cno(
Sno=‘99001’
(SC))第四節(jié)關(guān)系代數(shù)例12求選修了“001”號(hào)或“002”號(hào)課程的學(xué)生號(hào)。方案1:∏Sno
(
Cno=‘001’∨
Cno=‘002’(SC))方案2:∏Sno
(Cno=‘001’
(SC))∪∏Sno
(Cno=‘002’(SC))第四節(jié)關(guān)系代數(shù)例13求選修了“001”號(hào)而沒有選“002”號(hào)課程的學(xué)號(hào)。∏Sno
(Cno=‘001’
(SC))-∏Sno
(Cno=‘002’(SC))第四節(jié)關(guān)系代數(shù)例14求選修了001號(hào)和002號(hào)課程的學(xué)生號(hào)。∏Sno(
Cno=‘001’(SC))∩∏Sno(
Cno=‘002’(SC))第四節(jié)關(guān)系代數(shù)Student(Sno,Sname,Ssex,Sdep,Sage)
學(xué)號(hào)姓名性別系別年齡
SnoSnameSsexSdepSage99001張三男CS1999002李明男FS2099003王蘭女IS2199006劉民男CS1999008肖華女IS20SC(Sno,Cno,Grade)學(xué)號(hào)課程號(hào)成績(jī)
SnoCnoGrade99001001929900100285990010038899002002909900200380查詢張三所選修課程的成績(jī)?第四節(jié)關(guān)系代數(shù)Student
╳sc(Sno,Sname,Ssex,Sdep,Sage
學(xué)號(hào)姓名性別系別年齡
SnoSnameSsexSdepSage
99001
張三男CS19
99001
張三男CS19
99001
張三男CS1999001張三男CS1999001張三男CS19
99002李明男FS20…………………,Sno,Cno,Grade)學(xué)號(hào)課程號(hào)成績(jī)
SnoCnoGrade
9900100192
9900100285
9900100388990020029099002003809900100192………..第四節(jié)關(guān)系代數(shù)思考:如何通過廣義笛卡爾積表示上面的查詢?張三所選修課程的成績(jī)??
sname=‘張三‘且??
(student╳sc)第四節(jié)關(guān)系代數(shù)3.
連接從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組。RS={trts|tr
R
ts
S
tr[A]
ts[B]}
A,B為R和S上度數(shù)相等且可比的屬性列。為算術(shù)比較符A
B第四節(jié)關(guān)系代數(shù)如:rxs
A=C(rxs)
AB
11112222CD
1010201010102010EaabbaabbABCDE
122
102020aabAB
12rCD
10102010Eaabbs=rsA=C第四節(jié)關(guān)系代數(shù)連接987654321CBADE3162ABCDE123311236245662
RSB<D
R
S第四節(jié)關(guān)系操作兩類重要連接(1)等值連接RS={trts|tr
R
ts
S
tr[A]=ts[B]}
A=B第四節(jié)關(guān)系操作=
tr[A]=ts[B](R×S)
θ為“=”的連接運(yùn)算稱為等值連接。它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接為:
RS={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}A=B
第四節(jié)關(guān)系操作(2)自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,則自然連接可記作:RS={trts|tr∈R∧ts∈S∧tr[B]=ts[B]}在連接運(yùn)算中,同名屬性一般都是外關(guān)鍵字(外碼)Student(Sno,Sname,Ssex,Sdep,Sage)SC(Sno,Cno,Grade)
第四節(jié)關(guān)系代數(shù)987654321CBACD3162
R
SABCD12314562
RS第四節(jié)關(guān)系代數(shù)AB
12412CD
aababrB13123DaaabbE
s
11112
aaaab
ABCDErs第四節(jié)關(guān)系代數(shù)Student(Sno,Sname,Ssex,Sdep,Sage)
學(xué)號(hào)姓名性別系別年齡
SnoSnameSsexSdepSage99001張三男CS1999002李明男FS2099003王蘭女IS2199006劉民男CS1999008肖華女IS20SC(Sno,Cno,Grade)學(xué)號(hào)課程號(hào)成績(jī)
SnoCnoGrade
9900100192
9900100285
990010038899002002909900200380上面例子:查詢張三所選修課程的成績(jī)?第四節(jié)關(guān)系代數(shù)上例:求張三所選修的課程成績(jī)∏grade(
Sname=‘張三’(
Student
Sc))第四節(jié)關(guān)系代數(shù)自然連接與等值連接的區(qū)別和聯(lián)系(1)自然連接一定是等值連接,但等值連接不一定是自然連接(2)等值連接要求相等的分量,不一定是公共屬性;而自然連接要求相等的分量一定是公共屬性(3)等值連接不把重復(fù)的屬性去掉,而自然連接要把重復(fù)的屬性去掉第四節(jié)關(guān)系代數(shù)例15:
RSABCBCD123232456563789985則RSRS[3]=[2]ABCBCDABCD12323212324565634563第四節(jié)關(guān)系代數(shù)4.除運(yùn)算
關(guān)系R(X,Z),X,Z是屬性組,x是X上的取值,定義x在R中的象集為Zx={t[Z]|t
Rt[X]=x}
從R中選出在X上取值為x的元組,去掉X上的分量,只留Z上的分量。XZ劉軍同學(xué)所選修的全部課程如何得到選修了全部課程的學(xué)生?x=劉軍Zx姓名課程劉軍物理王紅數(shù)學(xué)劉軍數(shù)學(xué)課程數(shù)學(xué)物理第四節(jié)關(guān)系代數(shù)課程數(shù)學(xué)物理RS做法:逐個(gè)考慮選課關(guān)系中的元組r,求r在姓名上的分量x,再求x在選課關(guān)系中的象集課程x,若課程x包含了所有的課程,則x是滿足條件的一個(gè)元組。姓名課程劉軍物理王紅數(shù)學(xué)劉軍數(shù)學(xué)王紅物理第四節(jié)關(guān)系操作
除(Division)定義
給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X)P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:R÷S={tr[X]|tr∈R∧Yx
Πy(S)}其中Yx為x在R中的象集,x=tr[X]。
第四節(jié)關(guān)系操作
課程數(shù)學(xué)物理=姓名課程劉軍物理王紅數(shù)學(xué)劉軍數(shù)學(xué)王紅物理姓名劉軍王紅選修了全部課程的學(xué)生RRS第四節(jié)關(guān)系操作
除操作是同時(shí)從行和列考慮的.
解法要點(diǎn):
①建立臨時(shí)關(guān)系
②求像集例16:查詢至少選修1號(hào)課程和3號(hào)課程的學(xué)生號(hào)碼第四節(jié)關(guān)系操作
SC(SnoCnoGrade)學(xué)號(hào)課程號(hào)成績(jī)
SnoCnoGrade9900119299001285990013889900229099002380第四節(jié)關(guān)系操作先求ΠSno,Cno=SnoCno990011990012990013990022990023再做臨時(shí)關(guān)系K=Cno13
結(jié)果為:
ΠSno,Cno÷k={99001}第四節(jié)關(guān)系操作先求ΠSno,Cno=SnoCno990011990012990013990022990023再做臨時(shí)關(guān)系K=Cno13
結(jié)果為:
ΠSno,Cno÷k={99001}第四節(jié)關(guān)系操作例17:
設(shè)RSABCBCDa1b1c2b1c2d1a2b3c7b2c1d1a3b4c6b2c3d2a1b2c3a4b6c6a2b2c3a1b2c1令X=A,Y={B,C},Z=D,則a1的象集為:{(b1,c2),(b2,c3),(b2,c1)}a2的象集為:{(b3,c7),(b2,c3)}a3的象集為:{(b4,c6)}a4的象集為:{(b6,c6)}R÷SAa1
1、設(shè)有以下三個(gè)關(guān)系
S(學(xué)號(hào),姓名,年齡,性別,籍貫)
C(課程號(hào),課程名,教師姓名,辦公室)
SC(學(xué)號(hào),課程號(hào),成績(jī))(1)
檢索選修操作系統(tǒng)的學(xué)生姓名、課程號(hào)和成績(jī)。
請(qǐng)給出其關(guān)系代數(shù)表示(2)檢索籍貫為上海的學(xué)生的學(xué)生姓名、學(xué)號(hào)和選修的課程號(hào)
四.關(guān)系代數(shù)查詢實(shí)例第四節(jié)關(guān)系操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 婁底phc管樁施工方案
- 藥物質(zhì)量檢測(cè)技術(shù)知識(shí)考試題庫含答案
- 辦公區(qū)地毯更換施工方案
- 管道索跨專項(xiàng)施工方案
- 2025年打麻藥技能考試題及答案
- 2025年服裝品質(zhì)考試題目及答案
- 挖掘機(jī)司機(jī)考試考試題庫及答案
- 2025高壓電工資格考試復(fù)審題庫及答案
- 質(zhì)量、環(huán)境管理體系內(nèi)部審核報(bào)告范本
- 乳業(yè)公司內(nèi)部管理制度
- 2025-2030年礦山機(jī)械行業(yè)市場(chǎng)深度分析及前景趨勢(shì)與投資研究報(bào)告
- 乙酰輔酶A酰基轉(zhuǎn)移酶2:解析糖尿病心肌病潛在關(guān)聯(lián)與機(jī)制的新視角
- 機(jī)械制造技術(shù)課程設(shè)計(jì)-齒輪軸加工工藝及夾具設(shè)計(jì)
- 尾礦庫閉庫治理安全工程施工組織設(shè)計(jì)
- 聚丙烯(PP)項(xiàng)目可行性研究報(bào)告
- 2025年農(nóng)學(xué)專業(yè)國(guó)家考試試卷及答案
- 2025年第十屆“學(xué)憲法、講憲法”網(wǎng)絡(luò)知識(shí)競(jìng)賽題庫(含答案)
- 控股公司安全管理制度
- 《慢性傷口治療與護(hù)理》課件
- 大一鐵道概論試題及答案
評(píng)論
0/150
提交評(píng)論