第2章關系數(shù)據(jù)庫課件_第1頁
第2章關系數(shù)據(jù)庫課件_第2頁
第2章關系數(shù)據(jù)庫課件_第3頁
第2章關系數(shù)據(jù)庫課件_第4頁
第2章關系數(shù)據(jù)庫課件_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

信息工程學院GIS教研室數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第二章關系數(shù)據(jù)庫(續(xù))6/8/20231AnIntroductiontoDatabaseSystem第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)6/8/20232AnIntroductiontoDatabaseSystem2.4

關系代數(shù)

概述

傳統(tǒng)的集合運算專門的關系運算6/8/20233AnIntroductiontoDatabaseSystem概述1.關系代數(shù)2.運算的三要素3.關系代數(shù)運算的三個要素4.關系代數(shù)運算的分類5.表示記號6/8/20234AnIntroductiontoDatabaseSystem概述1.關系代數(shù) 一種抽象的查詢語言 用對關系的運算來表達查詢6/8/20235AnIntroductiontoDatabaseSystem概述(續(xù))2.關系代數(shù)運算的三個要素運算對象:關系運算結(jié)果:關系運算符:四類6/8/20236AnIntroductiontoDatabaseSystem概述(續(xù))集合運算符將關系看成元組的集合運算是從關系的“水平”方向即行的角度來進行專門的關系運算符不僅涉及行而且涉及列算術(shù)比較符輔助專門的關系運算符進行操作邏輯運算符輔助專門的關系運算符進行操作6/8/20237AnIntroductiontoDatabaseSystem集合運算符∪-∩×并差交廣義笛卡爾積比較運算符>≥<≤=≠大于大于等于小于小于等于等于不等于運算符含義運算符含義表2.4關系代數(shù)運算符

概述(續(xù))6/8/20238AnIntroductiontoDatabaseSystem專門的關系運算符σπ

÷選擇投影連接除邏輯運算符∧∨非與或運算符含義運算符含義表2.4關系代數(shù)運算符(續(xù))

概述(續(xù))6/8/20239AnIntroductiontoDatabaseSystem概述(續(xù))4.關系代數(shù)運算的分類 傳統(tǒng)的集合運算并、差、交、廣義笛卡爾積 專門的關系運算選擇、投影、連接、除6/8/202310AnIntroductiontoDatabaseSystem概述(續(xù))5.表示記號

(1)R,tR,t[Ai]

設關系模式為R(A1,A2,…,An)它的一個關系設為R。tR表示t是R的一個元組t[Ai]則表示元組t中相應于屬性Ai的一個分量

6/8/202311AnIntroductiontoDatabaseSystem2.4

關系代數(shù)

概述

傳統(tǒng)的集合運算

專門的關系運算6/8/202312AnIntroductiontoDatabaseSystem2.4.1傳統(tǒng)的集合運算并差交廣義笛卡爾積6/8/202313AnIntroductiontoDatabaseSystem1.并(Union)R和S具有相同的目n(即兩個關系都有n個屬性)相應的屬性取自同一個域R∪S

仍為n目關系,由屬于R或?qū)儆赟的元組組成

R∪S={t|t

R∨tS}6/8/202314AnIntroductiontoDatabaseSystem并(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

6/8/202315AnIntroductiontoDatabaseSystem2.差(Difference)R和S具有相同的目n相應的屬性取自同一個域R-S

仍為n目關系,由屬于R而不屬于S的所有元組組成

R-S={t|tR∧tS}6/8/202316AnIntroductiontoDatabaseSystem差(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

6/8/202317AnIntroductiontoDatabaseSystem3.交(Intersection)R和S具有相同的目n相應的屬性取自同一個域R∩S仍為n目關系,由既屬于R又屬于S的元組組成

R∩S={t|t

R∧tS} R∩S=R

–(R-S)6/8/202318AnIntroductiontoDatabaseSystem交(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

6/8/202319AnIntroductiontoDatabaseSystem4.廣義笛卡爾積(ExtendedCartesianProduct)Rn目關系,k1個元組Sm目關系,k2個元組R×S

列:(n+m)列的元組的集合元組的前n列是關系R的一個元組后m列是關系S的一個元組行:k1×k2個元組R×S={tr

ts|tr

R∧tsS}6/8/202320AnIntroductiontoDatabaseSystem廣義笛卡爾積(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c16/8/202321AnIntroductiontoDatabaseSystem2.4

關系代數(shù)概述傳統(tǒng)的集合運算專門的關系運算6/8/202322AnIntroductiontoDatabaseSystem2.4.2專門的關系運算選擇投影連接除6/8/202323AnIntroductiontoDatabaseSystem1.選擇(Selection)1)選擇又稱為限制(Restriction)2)選擇運算符的含義在關系R中選擇滿足給定條件的諸元組

σF(R)={t|tR∧F(t)='真'}F:選擇條件,是一個邏輯表達式,基本形式為:

[(]

X1θY1[)][φ[(]X2θY2[)]]…θ:比較運算符(>,≥,<,≤,=或<>)X1,Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替;φ:邏輯運算符(∧或∨)[]:表示任選項…:表示上述格式可以重復下去6/8/202324AnIntroductiontoDatabaseSystem選擇(續(xù))3)選擇運算是從行的角度進行的運算4)舉例 設有一個學生-課程數(shù)據(jù)庫,包括學生關系Student、課程關系Course和選修關系SC。σ6/8/202325AnIntroductiontoDatabaseSystem選擇(續(xù))學號Sno姓名Sname性別Ssex年齡Sage95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)

Student例1例2例4例3例9所在系Sdept6/8/202326AnIntroductiontoDatabaseSystem選擇(續(xù))(b)Course課程號課程名先行課學分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學

23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理

27PASCAL語言64例96/8/202327AnIntroductiontoDatabaseSystem選擇(續(xù))

(c)SC學號課程號成績SnoCnoGrade9500119295001285950013889500229095002380例7例96/8/202328AnIntroductiontoDatabaseSystem選擇(續(xù))[例1]查詢信息系(IS系)全體學生

σSdept

='IS'(Student)

或σ5='IS'(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS6/8/202329AnIntroductiontoDatabaseSystem選擇(續(xù))[例2]查詢年齡小于20歲的學生

σSage<20(Student)

或σ4<20(Student)

結(jié)果:

SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS

6/8/202330AnIntroductiontoDatabaseSystem2.投影(Projection)1)投影運算符的含義從R中選擇出若干屬性列組成新的關系

πA(R)={t[A]|tR} A:R中的屬性列

6/8/202331AnIntroductiontoDatabaseSystem2.投影(Projection)2)投影操作主要是從列的角度進行運算但投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組(避免重復行)π6/8/202332AnIntroductiontoDatabaseSystem投影(續(xù))3)舉例[例3]查詢學生的姓名和所在系 即求Student關系上學生姓名和所在系兩個屬性上的投影

πSname,Sdept(Student)

或π2,5(Student)結(jié)果:6/8/202333AnIntroductiontoDatabaseSystem投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立IS6/8/202334AnIntroductiontoDatabaseSystem投影(續(xù))[例4]查詢學生關系Student中都有哪些系

πSdept(Student)

結(jié)果:SdeptCSISMA6/8/202335AnIntroductiontoDatabaseSystem3.連接(Join)1)連接也稱為θ連接2)連接運算的含義從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組

RS={tr

ts|tr

R∧ts

S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運算符

連接運算從R和S的廣義笛卡爾積R×S中選?。≧關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系的元組。

AθB6/8/202336AnIntroductiontoDatabaseSystem連接(續(xù))3)兩類常用連接運算等值連接(equijoin)什么是等值連接θ為“=”的連接運算稱為等值連接

等值連接的含義從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧ts

S∧tr[A]=ts[B]}A=Btr

ts6/8/202337AnIntroductiontoDatabaseSystem連接(續(xù))自然連接(Naturaljoin)

什么是自然連接自然連接是一種特殊的等值連接兩個關系中進行比較的分量必須是相同的屬性組在結(jié)果中把重復的屬性列去掉自然連接的含義

R和S具有相同的屬性組B

R

S={|tr

R∧ts

S∧tr[B]=ts[B]}tr

ts6/8/202338AnIntroductiontoDatabaseSystem連接(續(xù))4)一般的連接操作是從行的角度進行運算。 自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。

AθBRS6/8/202339AnIntroductiontoDatabaseSystem連接(續(xù))5)舉例

[例5]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS6/8/202340AnIntroductiontoDatabaseSystem連接(續(xù))R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E6/8/202341AnIntroductiontoDatabaseSystem連接(續(xù))

等值連接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b326/8/202342AnIntroductiontoDatabaseSystem連接(續(xù))自然連接R

S

ABCEa1b153a1b267a2b3810a2b3826/8/202343AnIntroductiontoDatabaseSystem4)象集Z給定一個關系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|tR,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。6/8/202344AnIntroductiontoDatabaseSystem4)象集ZABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS6/8/202345AnIntroductiontoDatabaseSystem4.除(Division)給定關系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上投影的集合。

R÷S={tr

[X]|tr

R∧πY(S)

Yx}

Yx:x在R中的象集,x=tr[X]6/8/202346AnIntroductiontoDatabaseSystem除(續(xù))2)除操作是同時從行和列角度進行運算

3)舉例

[例6](p62)÷RS6/8/202347AnIntroductiontoDatabaseSystem除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1R÷S6/8/202348AnIntroductiontoDatabaseSystem分析:在關系R中,A可以取四個值{a1,a2,a3,a4}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}6/8/202349AnIntroductiontoDatabaseSystem5.綜合舉例以學生-課程數(shù)據(jù)庫為例(P.59)[例7]查詢至少選修1號課程和3號課程的學生號碼

首先建立一個臨時關系K:

然后求:πSno.Cno(SC)÷K

Cno

1

36/8/202350AnIntroductiontoDatabaseSystem綜合舉例(續(xù))例7續(xù)πSno.Cno(SC)

95001象集{1,2,3} 95002象集{2,3}

πCno(K)={1,3}

于是:πSno.Cno(SC)÷K={95001}SnoCno9500119500129500139500229500236/8/202351AnIntroductiontoDatabaseSystem綜合舉例(續(xù))[例8]查詢選修了2號課程的學生的學號。

πSno(σCno='2'(SC))={95001,95002}

6/8/202352AnIntroductiontoDatabaseSystem綜合舉例(續(xù))[例9]查詢至少選修了一門其直接先行課為5號課程的課程的學生姓名。

πSname(σCpno='5'(CourseSCStudent))或

πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname

(πSno

(σCpno='5'(Course)SC)

πSno,Sname

(Student))

6/8/202353AnIntroductiontoDatabaseSystem綜合舉例(續(xù))[例10]查詢選修了全部課程的學生號碼和姓名。

πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)

6/8/202354AnIntroductiontoDatabaseSystem小結(jié)l

關系代數(shù)運算 關系代數(shù)運算 并、差、交、笛卡爾積、投影、選擇、連接、除 基本運算 并、差、笛卡爾積、投影、選擇 交、連接、除 可以用5種基本運算來表達引進它們并不增加語言的能力,但可以簡化表達6/8/202355AnIntroductiontoDatabaseSystem小結(jié)(續(xù))l

關系代數(shù)表達式關系代數(shù)運算經(jīng)有限次復合后形成的式子l

典型關系代數(shù)語言ISBL(InformationSystemBaseLanguage)由IBMUnitedKingdom研究中心研制用于PRTV(PeterleeRelationalTestVehicle)實驗系統(tǒng)6/8/202356AnIntroductiontoDatabaseSystem第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)6/8/202357AnIntroductiontoDatabaseSystem2.5關系演算關系演算以數(shù)理邏輯中的謂詞演算為基礎種類:按謂詞變元不同分類1.元組關系演算:以元組變量作為謂詞變元的基本對象元組關系演算語言ALPHA2.域關系演算:以域變量作為謂詞變元的基本對象域關系演算語言QBE6/8/202358AnIntroductiontoDatabaseSystem2.5.1元組關系演算語言ALPHA由E.F.Codd提出INGRES所用的QUEL語言是參照ALPHA語言研制的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROP6/8/202359AnIntroductiontoDatabaseSystem一、檢索操作

語句格式:

GET

工作空間名

[(定額)](表達式1)

[:操作條件][DOWN/UP表達式2]

定額:規(guī)定檢索的元組個數(shù)格式:數(shù)字表達式1:指定語句的操作對象格式:關系名|關系名.屬性名|元組變量.屬性名|集函數(shù)[,…]操作條件:將操作結(jié)果限定在滿足條件的元組中格式:邏輯表達式表達式2:指定排序方式格式:關系名.屬性名|元組變量.屬性名[,…]6/8/202360AnIntroductiontoDatabaseSystem檢索操作(續(xù))(1)簡單檢索(即不帶條件的檢索)(2)限定的檢索(即帶條件的檢索)(3)帶排序的檢索(4)帶定額的檢索(5)用元組變量的檢索(6)用存在量詞的檢索6/8/202361AnIntroductiontoDatabaseSystem檢索操作(續(xù))(7)帶有多個關系的表達式的檢索(8)用全稱量詞的檢索(9)用兩種量詞的檢索(10)用蘊函(Implication)的檢索(11)集函數(shù)6/8/202362AnIntroductiontoDatabaseSystem(1)簡單檢索

GET

工作空間名(表達式1)[例1]查詢所有被選修的課程號碼。

GETW(SC.Cno)

[例2]查詢所有學生的數(shù)據(jù)。

GETW(Student)6/8/202363AnIntroductiontoDatabaseSystem(2)限定的檢索格式

GET

工作空間名(表達式1):操作條件[例3]查詢信息系(IS)中年齡小于20歲的學生的學號和年齡。

GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<206/8/202364AnIntroductiontoDatabaseSystem(3)帶排序的檢索格式

GET

工作空間名(表達式1)[:操作條件]DOWN/UP表達式2

[例4]查詢計算機科學系(CS)學生的學號、年齡,結(jié)果按年齡降序排序。

GETW(Student.Sno,Student.Sage):

Student.Sdept='CS‘DOWNStudent.Sage6/8/202365AnIntroductiontoDatabaseSystem(4)帶定額的檢索

格式

:GET

工作空間名(定額)(表達式1)

[:操作條件][DOWN/UP

表達式2][例5]取出一個信息系學生的學號。

GETW(1)(Student.Sno):

Student.Sdept='IS'

[例6]查詢信息系年齡最大的三個學生的學號及其年齡,結(jié)果按年齡降序排序。

GETW(3)(Student.Sno,Student.Sage):

Student.Sdept='IS'DOWNStudent.Sage6/8/202366AnIntroductiontoDatabaseSystem(5)用元組變量的檢索元組變量的含義表示可以在某一關系范圍內(nèi)變化(也稱為范圍變量RangeVariable)元組變量的用途①簡化關系名:設一個較短名字的元組變量來代替較長的關系名。②操作條件中使用量詞時必須用元組變量。定義元組變量格式:RANGE關系名變量名一個關系可以設多個元組變量6/8/202367AnIntroductiontoDatabaseSystem(6)用存在量詞的檢索[例8]查詢選修2號課程的學生名字。

RANGESCX

GETW(Student.Sname):X(X.Sno=Student.Sno∧X.Cno='2')[例9]查詢選修了這樣課程的學生學號,其直接先行課是6號課程。

RANGECourseCXGETW(SC.Sno):

CX(CX.Cno=SC.Cno∧CX.Pcno='6')6/8/202368AnIntroductiontoDatabaseSystem用存在量詞的檢索(續(xù))[例10]查詢至少選修一門其先行課為6號課程的學生名字

RANGECourseCXSCSCX GETW(Student.Sname):SCX(SCX.Sno=Student.Sno∧

CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))

前束范式形式:

GETW(Student.Sname):

SCXCX(SCX.Sno=Student.Sno∧

CX.Cno=SCX.Cno∧CX.Pcno='6')6/8/202369AnIntroductiontoDatabaseSystem(7)帶有多個關系的表達式的檢索

[例11]查詢成績?yōu)?0分以上的學生名字與課程名字。

RANGESCSCXGETW(Student.Sname,Course.Cname):

SCX(SCX.Grade≥90∧

SCX.Sno=Student.Sno∧

Course.Cno=SCX.Cno)6/8/202370AnIntroductiontoDatabaseSystem(8)用全稱量詞的檢索

[例12]查詢不選1號課程的學生名字。

RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量詞表示:

RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')6/8/202371AnIntroductiontoDatabaseSystem(9)用兩種量詞的檢索[例13]查詢選修了全部課程的學生姓名。

RANGECourseCXSCSCXGETW(Student.Sname):CXSCX (SCX.Sno=Student.Sno∧

SCX.Cno=CX.Cno)6/8/202372AnIntroductiontoDatabaseSystem(10)用蘊函(Implication)的檢索

[例14]查詢最少選修了95002學生所選課程的學生學號。

RANGECouseCXSCSCXSCSCYGETW(Student.Sno):CX(SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno) SCY(SCY.Sno=Student.Sno∧ SCY.Cno=CX.Cno))6/8/202373AnIntroductiontoDatabaseSystem(11)集函數(shù)常用集函數(shù)(Aggregationfunction)或內(nèi)部函數(shù)(Build-infunction)函數(shù)名功能COUNT對元組計數(shù)TOTAL求總和MAX求最大值MIN求最小值AVG求平均值6/8/202374AnIntroductiontoDatabaseSystem集函數(shù)(續(xù))[例15]查詢學生所在系的數(shù)目。

GETW(COUNT(Student.Sdept))COUNT函數(shù)在計數(shù)時會自動排除重復值。

[例16]查詢信息系學生的平均年齡GETW(AVG(Student.Sage):

Student.Sdept='IS’)

6/8/202375AnIntroductiontoDatabaseSystem二、更新操作(1)修改操作(2)插入操作(3)刪除操作6/8/202376AnIntroductiontoDatabaseSystem(1)修改操作步驟①用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中HOLD

工作空間名(表達式1)[:操作條件]HOLD語句是帶上并發(fā)控制的GET語句②用宿主語言修改工作空間中元組的屬性③用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中

UPDATE

工作空間名6/8/202377AnIntroductiontoDatabaseSystem修改操作(續(xù))

[例17]把95007學生從計算機科學系轉(zhuǎn)到信息系。HOLDW(S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論