版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章
關(guān)系和關(guān)系模型主要內(nèi)容:數(shù)據(jù)模型關(guān)系和關(guān)系模式鍵關(guān)系的更新數(shù)據(jù)模型的組成要素:
數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)的完整性基本的數(shù)據(jù)模型分類:
層次、網(wǎng)狀、關(guān)系數(shù)據(jù)模型、面向?qū)ο髷?shù)據(jù)模型1.1數(shù)據(jù)模型
1.1.1數(shù)據(jù)模型的組成要素
(l)數(shù)據(jù)結(jié)構(gòu):用于描述數(shù)據(jù)的靜態(tài)結(jié)構(gòu),包括應(yīng)用所涉及的對象類和對象類所具有的特性以及它們之間的聯(lián)系。(2)數(shù)據(jù)操作:是施加在對象上的一組操作,是對系統(tǒng)動(dòng)態(tài)特性的描述。
(3)數(shù)據(jù)的完整性:是對數(shù)據(jù)靜態(tài)和動(dòng)態(tài)特征性的限制,是一組完整性規(guī)則的集合。完整性規(guī)則是用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。1.層次模型有且僅有一個(gè)結(jié)點(diǎn)無雙親,稱為根結(jié)點(diǎn);其它結(jié)點(diǎn)有且僅有一個(gè)雙親。
層次模型的數(shù)據(jù)結(jié)構(gòu)是一棵樹。1.1.2基本數(shù)據(jù)模型分類
大學(xué)組織機(jī)構(gòu)的層次模型
2.網(wǎng)狀模型
允許一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親;多個(gè)結(jié)點(diǎn)無雙親結(jié)點(diǎn)。班級(jí)課程學(xué)生基本結(jié)構(gòu)是二維表,一張表稱為一個(gè)關(guān)系。與層次和網(wǎng)狀模型比較,關(guān)系模型有下列優(yōu)點(diǎn):數(shù)據(jù)結(jié)構(gòu)單一;建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上;將數(shù)據(jù)定義和數(shù)據(jù)操縱統(tǒng)一在一種語言中,使用方便,易學(xué)易用。
由于關(guān)系模型具有許多優(yōu)點(diǎn),因而在80年代之后的商品化數(shù)據(jù)庫系統(tǒng)幾乎都是關(guān)系型的。所以關(guān)系數(shù)據(jù)庫是本課程的主要研究內(nèi)容之一。
3.關(guān)系數(shù)據(jù)模型9020042
陸川
2004029020041
劉敏
2004019020031
李麗
200302
9020031
王鳴
200301
班級(jí)
姓名
學(xué)號(hào)
(a)學(xué)生關(guān)系
9020042
數(shù)
據(jù)
庫
計(jì)算機(jī)
曹巖
9020041
人工智能
計(jì)算機(jī)
馬小路
9020032英語
外
語
趙
偉
9020031
計(jì)算數(shù)學(xué)
數(shù)
學(xué)
吳云峰
班級(jí)
課程
系別
教師姓名
(b)教師開課關(guān)系
可以表示復(fù)雜對象;模塊化的結(jié)構(gòu),便于管理;具有定義抽象數(shù)據(jù)類型的能力。面向?qū)ο蟮臄?shù)據(jù)模型是新一代數(shù)據(jù)庫系統(tǒng)的基礎(chǔ),是數(shù)據(jù)庫技術(shù)發(fā)展的方向。
4.面向?qū)ο髷?shù)據(jù)模型1.2關(guān)系和關(guān)系模式1.2.1關(guān)系
在關(guān)系模型中唯一的數(shù)據(jù)結(jié)構(gòu)是關(guān)系,一個(gè)關(guān)系對應(yīng)一張二維表。域
:具有相同數(shù)據(jù)類型的值的集合。定義1(笛卡爾積):D1,D2,...,Dn的笛卡爾積為:
D1D2...Dn={(d1,d2,...,dn)diDi,i=1,2,...,n}。其中每一個(gè)元素(d1,d2,...,dn)叫做一個(gè)n元組(n-tuple),元素中第i個(gè)值di叫做第i個(gè)分量。例:設(shè)D1={1,2,3},D2={a,b}D1D2={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}實(shí)際上,如D1—學(xué)生集(50個(gè)),如D2—班級(jí)集(2個(gè)),
D1D2有多少元素?意義?定義2(關(guān)系):集合D1,D2,...,Dn笛卡爾積的任一個(gè)子集稱該集合上的一個(gè)關(guān)系(Relation)。其中,集合D1,D2,...,Dn是關(guān)系中元組的取值范圍,稱關(guān)系的域(domain),這些域是有限的非空集合,n叫做關(guān)系的度(degree)。關(guān)系的基本概念關(guān)系(Relation)二維表,關(guān)系用關(guān)系名標(biāo)識(shí),如關(guān)系r。元組(Tuple)表中的行,一般用變量t表示。屬性(Attribute)表中的一列,如列Ai,dom[Ai]表示屬性Ai的域
鍵(Key,碼)可以唯一地確定一個(gè)元組的屬性組。關(guān)系舉例:火車時(shí)刻表dom(NUMBER)={565,523,532,K95,K96}dom(FROM)=dom(TO)={BeiJing,XuZhou,…,ShenZhen}dom(DEPARTS)=dom(ARRIVES)=一組時(shí)間。表1火車時(shí)刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS
FROMNUMBER
TOXuZhou關(guān)系的性質(zhì)(關(guān)系數(shù)據(jù)庫中對關(guān)系的限定)
1.每一列中的值是同類型的數(shù)據(jù),來自同一個(gè)域。2.不同的列可以有相同的域,每一列稱為屬性,用屬性名標(biāo)識(shí)。3.列的順序是無關(guān)緊要的。4.任意二個(gè)元組不能完全相同。(相同元組稱重復(fù)組)5.行的順序是無關(guān)緊要的。6.關(guān)系中的每個(gè)分量都是原子值,是不可分的數(shù)據(jù)項(xiàng)。
1.2.2關(guān)系模式
關(guān)系模式一般表示為:關(guān)系名(屬性1、……屬性n)
如:R(A1,A2,…,An)。用U表示關(guān)系R的屬性集合U=A1∪A2∪…∪An,
模式R上的一個(gè)關(guān)系r是從U到D的映象。元組t∈r,t的分量用t[Ai]表示.t[Ai]∈Di例:在學(xué)生關(guān)系模式S(SNO,SNAME,AGE,SEX,CNO)中,當(dāng)CNO=1,就可以一班學(xué)生的列表,即一個(gè)具體的關(guān)系;當(dāng)CNO=2,就可以二班學(xué)生的列表,即另一個(gè)具體的關(guān)系。
定義(關(guān)系數(shù)據(jù)庫模式):
設(shè)屬性集U和U的屬性所關(guān)聯(lián)的域?yàn)镈,U上的關(guān)系數(shù)據(jù)庫模式R是R1,R2,…,Rp
的集合,即:R={R1,R2,…,Rp}
,且U
=R1∪R2∪…∪Rp。比如:R1為學(xué)生關(guān)系:S(Sno,Sname,Sbirth,Dept,Class,Rno)R2為班級(jí)關(guān)系:C(Class,Pname,Dept,Cnum,Cyear)R3為系關(guān)系:D(Dept,Dno,Office,Dnum)R4為學(xué)生會(huì)關(guān)系:M(Mname,Myear,Maddr,Mnum)關(guān)系數(shù)據(jù)庫:一個(gè)關(guān)系數(shù)據(jù)庫模式R對應(yīng)的所有關(guān)系集合
{r1,r2,…,rp}稱為關(guān)系數(shù)據(jù)庫模式R上的一個(gè)關(guān)系數(shù)據(jù)庫d.
關(guān)系模式和關(guān)系的區(qū)別和聯(lián)系:關(guān)系模式:對一類實(shí)體特征的結(jié)構(gòu)性描述,即對關(guān)系的結(jié)構(gòu)性描述,該描述一般包括關(guān)系名、屬性名、屬性域的類型和長度,屬性之間固有的依賴聯(lián)系等。關(guān)系模式和關(guān)系的區(qū)別和聯(lián)系:關(guān)系模式描述的是關(guān)系的靜態(tài)結(jié)構(gòu)信息,是對一個(gè)關(guān)系的“型”的描述,是相對固定的。關(guān)系是在關(guān)系模式約束之下的若干實(shí)體的集合,實(shí)體的數(shù)量是隨時(shí)間變化的,但這種變化必定在關(guān)系模式的約束范圍內(nèi)。
一般用大寫字母表述關(guān)系的結(jié)構(gòu),比如R,用小寫字母一個(gè)具體的關(guān)系值,如r.
1.3
鍵(Key)和關(guān)系的完整性
1.鍵設(shè)關(guān)系模式R(U),KU,r是R上的任一關(guān)系,若對r中的任意二個(gè)不同的元組t1、t2滿足:(1)t1[K]t2[K];
(2)若KK而t1[K]t2[K]不成立。稱K是R的鍵。若僅條件(1)成立,K是R的超鍵。有鍵的定義得出:鍵是能唯一標(biāo)示元組的最小屬性集。在上面火車時(shí)刻表的例子中,NUMBER是一個(gè)鍵。
2.主鍵、隱含鍵、候選鍵、超鍵主鍵:有的關(guān)系具有多于一個(gè)鍵,這種情況下指派其中一個(gè)鍵為主鍵,簡稱為關(guān)系的鍵。用帶下劃線的屬性表示。例如:TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)隱含鍵:未被制定的鍵稱隱含鍵,也稱替補(bǔ)鍵。候選鍵:主鍵和隱含鍵統(tǒng)稱為候選鍵。超鍵:在上面鍵的定義中,若條件(2)不成立,稱K為R的超鍵。例如:NUMBER、FROM是一個(gè)超鍵。3.關(guān)系的完整性
(1)關(guān)系模型的三要素:
數(shù)據(jù)結(jié)構(gòu)
關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)為單一的關(guān)系,它表示了實(shí)體和實(shí)體間的聯(lián)系。關(guān)系操作
關(guān)系操作關(guān)系代數(shù):布爾運(yùn)算、專門關(guān)系運(yùn)算;關(guān)系演算:關(guān)系元組演算、域演算。完整性約束
實(shí)體完整性、參照完整性、用戶定義的完整性。
實(shí)體完整性
關(guān)系中鍵屬性的值不能取空值。
例如:學(xué)生關(guān)系S(SNO,SNAME,AGE,SEX,CNO)
參照完整性
是關(guān)系間引用所遵循的規(guī)則,與外鍵有關(guān)。
用戶定義的完整性
數(shù)據(jù)間應(yīng)滿足的語義約束關(guān)系,由用戶定義,由系統(tǒng)檢查。(2)完整性約束
下下頁
外鍵:
設(shè)F是關(guān)系R的一個(gè)或一組屬性,但不是R的鍵。若F是另一個(gè)關(guān)系S的鍵,則稱F是關(guān)系R的外鍵。
R為參照關(guān)系,S為被參照關(guān)系。
例如:參照關(guān)系學(xué)生關(guān)系S(SNO,SNAME,AGE,SEX,CNO)班級(jí)關(guān)系C(CNO,CMN)---被參照關(guān)系
參照完整性規(guī)則關(guān)系R中外鍵的值或者為空值,或者為被參照關(guān)系中主鍵的值。建立表結(jié)構(gòu)和完整性約束
補(bǔ)充:SQL語言簡介
SQL是英文StructuredQueryLanguage的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言將數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能集于一體,可以獨(dú)立完成數(shù)據(jù)庫生命周期中的全部活動(dòng).
SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL語言標(biāo)準(zhǔn)。基本的SQL語句包括Select、Insert、Update、Delete、Create、Drop,它們可以被用來完成幾乎所有的數(shù)據(jù)庫操作。很多數(shù)據(jù)庫根據(jù)不同的需要對SQL語句進(jìn)行了再開發(fā)和擴(kuò)展。
SQL的基本語句
1.創(chuàng)建新表
create
tabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
例:CREATETABLEC
(CNONUMBER(6),
CMNCHAR(10))2.選擇select*fromtable1where范圍例:SELECTSNO,SNAMEFROMSWHERECNO=2002013.插入insertintotable1(field1,field2)values(value1,value2)例:INSERTINTOSVALUES(909901,‘李利’,21,‘男’,200205);4.刪除deletefromtable1where范圍例:DELETEFROMSWHERESNO=20100162;5.更新(修改)updatetable1setfield1=value1where范圍例:UPDATESSETSage=23WHERESno=‘20100162’
完成核心功能SQL語言只用9個(gè)動(dòng)詞,并且它的表達(dá)接近英語句子,所以比較簡單、易學(xué)。
SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對數(shù)據(jù)庫進(jìn)行操作;作為嵌入式語言,SQL語句能夠嵌入到高級(jí)語言,比如:C、PL/1、FORTRAN。
CREATETABLES
(SNONUMBER(4),
SNAMECHAR(10)NOTNULL,
AGENUMBER(3), SEXCHAR(1), CNONUMBER(6),
CONSTRAINTSK1PRIMARYKEY(SNO),
CONSTRAINTSK2FOREIGNKEY(CNO)REFERENCESC(CNO)),
CONSTRAINTSK3CHECK(AGEIN(16,45)));CREATETABLEC
(CNONUMBER(6),
CMNCHAR(10),
CONSTRAINTCKPRIMARYKEY(CNO));1.4關(guān)系的更新—插入、刪除、修改
1.插入
對關(guān)系r(A1,A2,…,An),插入操作形式為:
ADD(r;A1=d1,A2=d2,…An=dn)ADD(r;d1,d2,…,dn)
例:ADD(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205)插入操作的有效檢查: (1).描述的元組是否符合所指定的關(guān)系模式; (2).元組的某些值是否屬于對應(yīng)的域; (3).元組的鍵是否已在關(guān)系中存在。
例:用SQL語言實(shí)現(xiàn)在學(xué)生關(guān)系S中插入一個(gè)元組。
INSERTINTOSVALUES(909901,‘李利’,21,‘男’,200205);
2.刪除
對關(guān)系r(A1,A2,…,An),刪除操作形式為:
DEL(r;A1=d1,A2=d2,…An=dn)DEL(r;d1,d2,…dn);若K=B1B2…Bm,DEL(r;B1=k1,B2=k2,…Bm=km)例:DEL(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205)刪除操作的檢查:如果被刪除元組在關(guān)系中不存在,這個(gè)關(guān)系將保持不變,但需給出一個(gè)出錯(cuò)提示。**刪去最后一個(gè)元組不受限制,即允許是空關(guān)系。
實(shí)際上,為了識(shí)別被刪除的元組并不需要所有元組的信息,只需要制定鍵的值就足夠了。比如:刪除學(xué)號(hào)為909901的學(xué)生元組
DELETEFROMSWHERESNO=909901;
3.修改
修改元組的部分值。對關(guān)系r(A1,A2,…,An),若屬性集{C1,C2,…,Cp}{A1,A2,…An},則修改操作形式為:
CH(r;A1=d1,A2=d2,…An=dn;C1=e1,C2=e2,…,Cp=ep)如果K={B1,B2,…Bm}為鍵,則可簡化為:
CH(r;B1=k1,B2=k2,…Bm=km;C1=e1,C2=e2;…Cp=ep)例:CH(S;SNO=909901;CLASSNO=200203)修改操作可用刪除操作后跟一個(gè)插入操作實(shí)現(xiàn)。對插入和刪除操作的限制可運(yùn)用到修改操作中。例:施加一系列操作于火車時(shí)刻表1.ADD(train;33,TianJin,ShangHai,17:20,10:36);2.ADD(train;Y15,BeiJing,TianJin,10:05,12:43);3.DEL(train;523);4.CH(train;NUMBER=532;DEPARTS=22:45,ARRIVES=10:42)。火車時(shí)刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS
FROMNUMBER
TOXuZhou練習(xí)2.建立一個(gè)關(guān)于系、學(xué)生、班級(jí)、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫。學(xué)生:學(xué)號(hào)、姓名、出生年月、系名、班號(hào)、宿舍區(qū)。班級(jí):班號(hào)、專業(yè)名、系名、人數(shù)、入校年份。系:系名、系號(hào)、系辦公地點(diǎn)、人數(shù)。學(xué)會(huì):學(xué)會(huì)名、成立年份、辦公地點(diǎn)、人數(shù)。語義如下:一個(gè)系有若干專業(yè),每個(gè)專業(yè)每年只招一個(gè)班,每個(gè)班有若干學(xué)生。一個(gè)系的學(xué)生住在同一宿舍區(qū)。每個(gè)學(xué)生可參加若干學(xué)會(huì),每個(gè)學(xué)會(huì)有若干學(xué)生。學(xué)生參加某學(xué)會(huì)有一個(gè)入會(huì)年份。請給出關(guān)系模式,指出各關(guān)系模式的候選鍵和外鍵。練習(xí)解答解:(1)關(guān)系模式如下:學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班級(jí):C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
學(xué)會(huì):M(Mname,Myear,Maddr,Mnum)(2)各關(guān)系模式的候選鍵、外部鍵如下:
A、學(xué)生S候選鍵:Sno;外部鍵:Dept、Class;
B、班級(jí)C候選鍵:Class;外部鍵:Dept;
C、系D候選鍵:Dept或Dno;無外部鍵;
D、學(xué)會(huì)M候選鍵:Mname;無外部鍵。課后練習(xí):如何用SQL來創(chuàng)建該數(shù)據(jù)庫?(建議沒有學(xué)過數(shù)據(jù)庫的同學(xué)在自學(xué)SQL后練習(xí)一下)第二章
關(guān)系運(yùn)算本章的主要內(nèi)容:布爾運(yùn)算選擇投影連接除2.1布爾運(yùn)算
關(guān)系可以看做元組的集合,那么集合的并、交、差等布爾運(yùn)算算都可以用到關(guān)系中。關(guān)系的布爾運(yùn)算包括:并、交、差、廣義笛卡爾積、補(bǔ)、有效補(bǔ)。同類關(guān)系:若R和S是同類關(guān)系,則滿足如下條件:(1)R和S具有相同的度;(2)R和S的對應(yīng)屬性定義在同一個(gè)域上。同類關(guān)系也稱相容運(yùn)算,布爾運(yùn)算大多是在同類關(guān)系中進(jìn)行。并(Union)關(guān)系R和S的并其結(jié)果由屬于R或?qū)儆赟的所有元組組成,其結(jié)果為一個(gè)新關(guān)系。記為:
Q=R∪S={t|t∈R或t∈S}
交(Intersection)
關(guān)系R和S的交其結(jié)果由既屬于R又屬于S的所有元組組成。記為:
Q=R∩S={t|t∈R且t∈S}
差(Difference)
關(guān)系R和S的差由屬于R但不屬于S的所有元組組成。記為:
Q=R-S={t|t∈R但tS}例子:R∪S
ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S
c1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S
例子:R-S
c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b2a1CBAc1b2a2c2b3a1c2b2a1CBARSR∩S
例子:R∩
S
例:并運(yùn)算的SQL實(shí)現(xiàn)查詢200201班的學(xué)生和年齡超過23歲的學(xué)生姓名。SELECTSNO,SNAMEFROMSWHERECNO=200201UNIONSELECTSNO,SNAME FROMSWHEREAGE>23;*INTERSECT(交)、MINUS(差)
廣義笛卡爾積關(guān)系R和S的笛卡爾積為R中所有元組和S中所有元組的串接。結(jié)果關(guān)系的屬性個(gè)數(shù):k1+k2
其中k1和k2分別為R和S的屬性數(shù)結(jié)果關(guān)系的元組數(shù):
m×n
,
其中m、n分別為R和S的元組數(shù)。
R和S的笛卡爾積記為:
Q=R×S={t|t
=trts,tr∈R且ts∈S}廣義笛卡爾積的例子:ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.CR.BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a1有學(xué)生關(guān)系S(Sno,Sname,Sage)和選課關(guān)系SC(Sno,Cno,Grade)SELECTS.*,SC.*FROMS,SC例:廣義笛卡爾積的SQL實(shí)現(xiàn)
補(bǔ)(Complement)
關(guān)系模式R(A1,A2,…,An),R上的關(guān)系r。
補(bǔ)運(yùn)算:設(shè)dom(R)表示模式R上的所有元組的集合,則關(guān)系r的補(bǔ)為:
r=dom(R)-r
例:設(shè)R(A,B),dom(A)={a1,a2,,a3},dom(B)={b1,b2}R上的關(guān)系r和r的補(bǔ)r如下所示。
r=(AB)
r=(AB)a1b1a2b2a1b2a3b1
a2b1a3b2例:設(shè)R(A,B,C),dom(A)={a1,a2},dom(B)=整數(shù)的集合,
dom(C)={c1,c2}。求r的補(bǔ)。
r=(ABC)
a11
c1a12
c2a21
c1a22
c1a23
c2
r=adom(R,r)-r
adom(R,r)為模式R上的所有屬性對應(yīng)關(guān)系r的有效值域組成的所有元組的集合。由于adom(R,r)是有限的,則r的有效補(bǔ)r總是一個(gè)關(guān)系。~~
有效補(bǔ)
關(guān)系模式R(A1,A2,…,An),屬性Ai的有效值域:
adom(Ai,r)={d|d∈Di,存在t∈r且t[Ai]=d}定義r的有效補(bǔ)為:例:設(shè)R(A,B,C),dom(A)={a1,a2},dom(B)=整數(shù)的集合,
dom(C)={c1,c2}。R上的關(guān)系r和r的有效補(bǔ)如下。~~
r=(ABC)r=(ABC)a11
c1a11
c2
a12
c2a12
c1
a21
c1a13
c1
a22
c1
a13
c2
a23
c2
a21
c2
a22
c2
a23
c1
思考:在關(guān)系模式R(A1,A2,…,An)中,若每個(gè)屬性Ai的值域都有限,任一關(guān)系r的補(bǔ)和有效補(bǔ)是否一致?
例:設(shè)R(A,B),dom(A)={a1,a2,,a3},dom(B)={b1,b2}。
R上的關(guān)系r和r的補(bǔ)r及r的有效補(bǔ)r
如下所示。
r=(AB)r
=(AB)
r=(AB)a1b1a2b2a2b2a1b2a3b1
a2b1a3b2
~~有效補(bǔ)的應(yīng)用:當(dāng)關(guān)系元組數(shù)比其有效補(bǔ)元組數(shù)多得多時(shí),有效補(bǔ)可作為數(shù)據(jù)壓縮手段。例如:學(xué)生選課,一個(gè)班有50個(gè)學(xué)生選數(shù)據(jù)庫課,3個(gè)學(xué)生不選,則存儲(chǔ)選修了數(shù)據(jù)庫課的學(xué)生可用存儲(chǔ)其有效補(bǔ)實(shí)現(xiàn)。練習(xí)
1.設(shè)R(A,B,C),dom(A)={a1,a2},dom(B)={b1,b2,b3},
dom(C)={c1,c2}
r(ABC)a2b3c1
a2b1c1
a2b2c1
a1b1c1求:r的補(bǔ)和有效補(bǔ)從關(guān)系中選擇在指定屬性上有確定值的關(guān)系的子集。表示為:
A=a(r)={tt∈r且t[A]=a}。
選擇運(yùn)算是選擇關(guān)系中行的子集,即選擇滿足條件元組。例:在下面關(guān)系train中求:
FROM=’beijing’(train);DEPARTS=’16:55’(train)
2.2選擇(Select)
(2)可分配σA=a(rθs)=σA=a(r)θσA=a(s)其中θ=∩、∪或-,且r和s是同類關(guān)系。
廣義選擇:
Aa(r)={t|tr且t[A]a}
其中為、、、、、。選擇運(yùn)算的特性設(shè)r(R)是一個(gè)關(guān)系,A和B為R的屬性。
(1)可交換
σA=a(σB=b(r))=σB=b(σA=a(r))。例:學(xué)生關(guān)系中,A=2011年入學(xué), B=信息學(xué)院
2.3投影(Project)投影是選取關(guān)系中列的子集。設(shè)模式R上關(guān)系r,X是R上屬性的子集,r到X上的投影r表示為:
r(X)=x(r)={t[X]|t∈r}。
投影的結(jié)果不是原來的關(guān)系,是X中幾列屬性。
**如果X中不包含R的鍵,則選取的列中會(huì)出現(xiàn)重復(fù)元組,r(X)中應(yīng)不包含重復(fù)元組。例:Sno,Sname(S);Cno(S)投影的特性:
投影的串接給定關(guān)系r(R),且YXR,則:Y(X(r))=Y(r)對一串投影而言,若X1X2
…
XmR,則:X1(X2(…(Xm(r))…))=X1(r)
投影和選擇的可交換性
設(shè)r是R上的一個(gè)關(guān)系,A∈X,XR,則下式成立:
X(A=a(r))=A=a(X(r))SELECTSNO,SNAMEFROMSWHERECNO=200401投影選擇檢索200401班學(xué)生的姓名。如果R∩S=Φ,則r
s為關(guān)系r和s的笛卡爾積:r×s。2.4.1
自然連接(NaturalJoin)
自然連接是在兩個(gè)關(guān)系共同屬性上的等值連接。設(shè)有關(guān)系r(R)和s(S),屬性A是關(guān)系模式R和S的公共屬性,
r與s的自然連接可用下式表示:
rs={t|t=trts[A]tr∈r,ts∈s&tr=t[R]
&ts=t[S]&tr[A]=ts[A]}
它表示r中元組和S中元組的串接,而且它們的公共屬性值只出現(xiàn)一次。2.4連接(Join)ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS例子:求R和S自然連接ABCEa1b153a1b267a2b3810a2b382自然連接R
S
連接運(yùn)算:有學(xué)生關(guān)系S和課程關(guān)系C.SELECTSNO,SNAME,S.CNO,CMNFROMS,CWHERES.CNO=C.CNO
連接運(yùn)算可模擬選擇運(yùn)算設(shè)關(guān)系r(R),A∈R,a∈dom(A)。設(shè)s(A)只含一個(gè)分量A
A=a(r)可表示為:
rs
A=a1(r)∪A=a2(r)∪…∪A=ak(r)表示為:rs
連接運(yùn)算的可交換和可結(jié)合性
qr=rq (qr)s=q(rs)
A
.
a
連接對并、交、差的可分配性(r∪r)s=(rs)∪(rs)
連接的上述性質(zhì)在查詢優(yōu)化中是很有用的,在第7章分布式數(shù)據(jù)庫的查詢優(yōu)化中要用到。連接的特性:
A
.
a1a2
…ak
多元連接
可連接:
設(shè)關(guān)系s1(S1),s2(S2),…,sm(Sm),t1,t2,…,tm為元組序列,且ti∈Si,1≤i≤m。又R=S1∪S2∪…∪Sm。若在r(R)上存在一個(gè)元組t,使得ti=t[Si],1≤i≤m,則稱元組序列t1,t2,…,tm在R上是可連接的。完全連接:設(shè)關(guān)系序列s1(S1),s2(S2),…,sm(Sm),如果對關(guān)系Si(1≤i≤m)中的每個(gè)元組都是可連接序列中的成員,則稱s1s2
…sm為完全連接。完全連接的例子:
s1(AB)
s2(BC)
s3(AC)
a1b1b1c2a1c2a1b2b2c1a2c2a2b1
s1
s2
s3=(ABC)a1b1c2a2b1c2
a1c1加入a1
b2c12.4.2θ_連接(Theta_Join)θ_連接:設(shè)r(R)和s(S)為兩個(gè)關(guān)系,且A∈R,B∈S,dom(A)=dom(B),r和s在A和B上的θ_連接寫作:
r[AθB]s設(shè)Q=R∪S,則θ_連接可用下式表示:
q[Q]={t|tq,trr&tss&t[R]=tr&t[S]=ts&t[A]θt[B]}其中θ為比較符:、、、、、示例ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS例子:RSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
[C<E]AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值連接R
S[R.B=S.B]ABCEa1b153a1b267a2b3810a2b382自然連接R
S學(xué)生關(guān)系S(SNO,SNAME,AGE,SEX,DEPTNO)專業(yè)系DEPT(DEPTNO,DNAME)
選擇運(yùn)算:SNAME=‘LiMing’
(S);投影運(yùn)算:SNO,SNAME,DEPTNO(S);
連接運(yùn)算:
SDEPT
示例:
思考:在第一章的建立數(shù)據(jù)庫例子中,如何通過學(xué)號(hào)查該學(xué)生的入學(xué)年份和所學(xué)專業(yè)?如何通過系號(hào)查該系同學(xué)所住的宿舍區(qū)?如何通過學(xué)號(hào)查該學(xué)生所在系的的辦公地點(diǎn)?
建立一個(gè)關(guān)于系、學(xué)生、班級(jí)、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫。學(xué)生:學(xué)號(hào)、姓名、出生年月、系名、班號(hào)、宿舍區(qū)。班級(jí):班號(hào)、專業(yè)名、系名、人數(shù)、入校年份。系:系名、系號(hào)、系辦公地點(diǎn)、人數(shù)。學(xué)會(huì):學(xué)會(huì)名、成立年份、辦公地點(diǎn)、人數(shù)。學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班級(jí):C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
學(xué)會(huì):M(Mname,Myear,Maddr,Mnum)2.5除法(Division)
即:對每一元組ts∈s都存在一元組tr∈r,使得tr[R']=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度照明燈具采購合同范本模板3篇
- 2024版全新充電場地租賃合同
- 2024版車輛鈑金修復(fù)與噴漆服務(wù)承包協(xié)議版
- 2025年度技師學(xué)院實(shí)訓(xùn)基地建設(shè)與合作合同3篇
- 二零二五年度創(chuàng)新離婚協(xié)議范本:法律文書版本2篇
- 2025版高級(jí)家教專業(yè)能力培養(yǎng)協(xié)議2篇
- 人力資源管理之招募與甄選
- 二零二五年度個(gè)人向企業(yè)借款用于購買藝術(shù)品合同3篇
- 2025年度新能源研發(fā)與居間協(xié)議3篇
- 二零二五年度安置房項(xiàng)目配套設(shè)施移交合同2篇
- 2024年銷售員工年度工作總結(jié)
- 人工智能 課件 第五章 機(jī)器學(xué)習(xí)
- 2024-2025學(xué)年上學(xué)期杭州初中英語八年級(jí)期末試卷
- 【MOOC】人因工程學(xué)-東北大學(xué) 中國大學(xué)慕課MOOC答案
- 中考數(shù)學(xué)復(fù)習(xí)第二章方程(組)與不等式(組)第三節(jié)分式方程及其應(yīng)用課件
- 中國慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 水肥一體化智能種植管理技術(shù)實(shí)施方案
- 《中華人民共和國學(xué)前教育法》專題培訓(xùn)
- 帶狀皰疹后神經(jīng)痛的診治課件教案
- 《房產(chǎn)稅法》課件
- 產(chǎn)品質(zhì)量培訓(xùn)
評(píng)論
0/150
提交評(píng)論