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

下載本文檔

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

文檔簡介

2.1關系數(shù)據(jù)庫的基本概念2.2

關系模型及其描述2.3

關系代數(shù)2.4關系演算第二章

關系數(shù)據(jù)庫本章小結2.1關系數(shù)據(jù)庫的基本概念

1、關系及其性質

(1)域

定義2.1:

域是一組具有相同數(shù)據(jù)類型的值的集合。

例:在關系中用域來表示屬性的取值范圍域中所包含的值的個數(shù)稱域的基數(shù)(用m表示)例:D1={A,2,3,…,Q,K}M1=13

D2={數(shù)據(jù)庫原理,面向對象數(shù)據(jù)庫技術}M2=22.1關系數(shù)據(jù)庫的基本概念

(2)笛卡爾積

定義2.2:給定一組域D1,…,Dn(可有相同的域)。其笛卡爾積為:

D1×D2×…×Dn={(d1,d2,…,dn)

|

di∈Di,i=1,2…,n}n元組di為分量例:

笛卡兒積也是一個集合

其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-Tuple),或簡稱為元組。元素中的每一個值di叫作一個分量(Component)。

若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為:m=∏mi

i=1n定義2.3D1×D2×…×Dn的有意義的子集稱為在域D1,D2,…,Dn上的關系,記為R(D1,D2,…,Dn)

。其中:R為關系的名;n為關系的度(目);r∈R

表示r是R中的元組。

子集元素是關系中的元組;關系中的元組個數(shù)是關系的基數(shù);

同樣可以把關系看作是一個二維表:

每一行對應一個元組;表的每一列對應一個域,每個域起一個名字——稱為屬性;2.1關系數(shù)據(jù)庫的基本概念

(3)關系例例:設D1=男人集合(MAN)={王強、李東、張兵

}

D2=女人集合(WOMAN)={趙紅、吳芳

}

D3=兒童集合(CHILD)={王一、李一、李二

}(1)求上面三個集合的笛卡兒積MWC王強趙紅王一王強趙紅李一王強趙紅李二王強吳芳王一王強吳芳李一王強吳芳李二李東趙紅王一李東趙紅李一李東趙紅李二李東吳芳王一李東吳芳李一李東吳芳李二張兵趙紅王一張兵趙紅李一張兵趙紅李二張兵吳芳王一張兵吳芳李一張兵吳芳李二李二吳芳李東李一吳芳李東王一趙紅王強CHILDWOMANMANFamily(2)構造一個家庭關系,可表示為:

FAMILY(MAN,WOMAN,CHILD)2.1關系數(shù)據(jù)庫的基本概念若關系R整個屬性的集合是R的候選碼,則該候選碼為全碼。一個關系有多個候選碼時,選定其中的一個作為主碼。關系R的某一屬性組X不是R的碼,但是是是其它某一關系的碼,稱X為R的外碼。主碼(primarykey)外碼(foreignkey)全碼(allkey)值能唯一標識一個元組的屬性組,且不含多余屬性,稱該屬性組為候選碼。候選碼(candidatekey)(4)關系中常用術語候選碼主碼外碼全碼2.1關系數(shù)據(jù)庫的基本概念2.1關系數(shù)據(jù)庫的基本概念S(Sno,Cardno,Dno,Sname,Sage,…)D(Dno,Dname,Location)候選碼主碼主碼外碼9801

01959801

02809802

01889802

03

92980302

SnoCnoGrade

80……PUR(Cno,Pno,Sno)全碼參照關系被參照關系2.1關系數(shù)據(jù)庫的基本概念

(5)關系的性質

①每列的值為同一類型。

②每列具有不同的屬性名(可同域)

③任意兩元組不能完全相同。

④行的次序可以互換。

⑤列的次序可以互換。

⑥分量值是原子的。

+5學號姓名年齡、網(wǎng)蟲不允許元組分量值屬性名關系的類型:基本關系(基表)查詢表視圖表2.1關系數(shù)據(jù)庫的基本概念

2、關系模式與關系數(shù)據(jù)庫

定義2.4:關系的描述稱關系模式,其表示為:R(U,D,Dom,F(xiàn))關系模式可簡記為關系的屬性名表。

R(U)=R(A1,A2,A3,….An)

例:學生(學號,姓名,總成績)域名集屬性名集屬性間的依賴關系集屬性向域的映像集關系模式就是關系的框架(表框架)它是對關系結構的描述在關系模型中,實體以及實體間的聯(lián)系都是用關系來表示。在一個給定的現(xiàn)實世界領域中,相應于所有實體及實體之間的聯(lián)系的關系的集合構成一個關系數(shù)據(jù)庫。

關系數(shù)據(jù)庫也有型和值之分。關系數(shù)據(jù)庫的型也稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述,是關系模式的集合。關系數(shù)據(jù)庫的值也稱為關系數(shù)據(jù)庫,是關系的集合。關系數(shù)據(jù)庫模式與關系數(shù)據(jù)庫通常統(tǒng)稱為關系數(shù)據(jù)庫。關系數(shù)據(jù)庫2.1關系數(shù)據(jù)庫的基本概念2.2關系模型及其描述1.關系模型的特點及組成

關系模型的特點:結構簡單,表達力強

語言的一體化非過程化的操作堅實的數(shù)學基礎操作效率較低

關系模型的組成:關系數(shù)據(jù)結構關系數(shù)據(jù)操作關系完整性約束

2.關系模型的數(shù)據(jù)操作

(1)數(shù)據(jù)查詢

(2)數(shù)據(jù)插入

(3)數(shù)據(jù)刪除

(4)數(shù)據(jù)修改

3.

關系的完整性三類完整性約束:實體完整性參照完整性用戶定義的完整性說明:

①實體完整性規(guī)則是對基本關系的約束和限定。

②實體具有唯一性標識—主碼。

③主碼屬性不能取空值。2.2關系模型及其描述

(1)

實體完整性規(guī)則2.1

實體完整性規(guī)則:若屬性A是基本關系R的主碼屬性,則屬性A不能取空值。不變性由關系系統(tǒng)自動支持是應用領域需要遵循的約束條件數(shù)據(jù)完整性控制過程?2.2關系模型及其描述

(2)

參照完整性引用關系:關系中的某屬性的值需要參照另一關系的屬性來取值。例1:學生(學號,姓名,性別,專業(yè)號,年齡)

專業(yè)(專業(yè)號,專業(yè)名)

例2:學生(學號,姓名,性別,專業(yè)號,年齡,班長)引用引用

2.2關系模型及其描述

定義2.5:設:基本關系R、S(可為同一關系)。若F是R的一個(組)屬性,但不是R的碼。如果F與S的主碼K相對應,則稱F是R的外碼。并稱R為參照關系,S為被參照關系(目標關系)。說明:S的主碼K和R的外碼F必須定義在同一個(或一組)域上。

例1:學生(學號,姓名,性別,專業(yè)號,年齡)

專業(yè)(專業(yè)號,專業(yè)名)引用被參照關系參照關系外碼

參照完整性規(guī)則定義了外碼與主碼之間的引用規(guī)則。

2.2關系模型及其描述

規(guī)則2.2

參照完整性規(guī)則

若屬性(組)F是R的外碼它與S的主碼K相對應,則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。

例1:學生(學號,姓名,性別,專業(yè)號,年齡)

關系中每個元組的專業(yè)號取值:

①空值(未給該學生分配專業(yè));

②非空值(是專業(yè)關系中某個元組的專業(yè)號值)。2.2關系模型及其描述

例2:職工EMP(EMP#,ENAME,JOB,DEPT#)

部門DEPT(DEPT#,DNAME,LOC)

則:EMP中的DEPT#為空或為DEPT中的DEPT#的值

(3)

用戶定義的完整性

用戶自定義完整性是針對某一具體數(shù)據(jù)的約束條件,反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求,由應用環(huán)境決定。例:屬性的取值范圍屬性的非空限制2.3關系代數(shù)關系數(shù)據(jù)語言的分類

(1)關系代數(shù)語言

用對關系的運算來表達查詢要求方式的語言。(2)關系演算語言用謂詞來表達查詢要求方式的語言。

①元組關系演算語言

②域關系演算語言(3)結構化查詢語言(SQL)

2.3關系代數(shù)關系代數(shù)具有關系代數(shù)和關系演算雙重特點關系演算:元組演算、域演算域演算關系數(shù)據(jù)庫標準語言SQL用關系運算來表達查詢,以ISBL為代表用謂詞公式來表達查詢元組演算(以行為變量),以ALPHA為代表域演算(以列為變量),以QBE為代表元組演算關系查詢語言關系代數(shù)語言:查詢操作是以集合操作作為基礎的語言關系演算語言:查詢操作是以謂詞演算作為基礎的語言

關系查詢語言是一種比Pascal、C等程序設計語言更高級的語言。

Pascal、C、關系代數(shù)語言屬于過程性語言,在編程時必須給出獲得結果的操作步驟。而關系演算語言屬于非過程性語言,編程時只需要指出需要什么信息,不必給出具體的操作步驟。干什么?怎么干?干什么?2.3關系代數(shù)2.3關系代數(shù)1.集合運算

關系代數(shù)是一種抽象的查詢語言。它以關系為運算對象,通過對關系進行“組合”或“分割”,得到所需的數(shù)據(jù)集合—關系。分類:集合運算(并、交、差;廣義笛卡爾積)關系運算(投影、選擇、連接和除運算)

設:t為元組變量;R、S為同類關系(同元、相應屬性同域);下列運算結果為同類關系:

(1)并運算:RUS={t|(t∈R)∨(t∈S)}

(2)差運算:R-S={t|(t∈R)∧(tS)}

(3)交運算:R∩S={t|(t∈R)∧(t∈S)}RS2.3關系代數(shù)

R1-R2

A1A2A3

b3b

d3b

R2

A1A2A3

a3c

b2

d

c2d

e5f

g6f

R1

A1A2A3

b2d

b3b

c2d

d3b

關系運算示例R1∩R2

A1A2A3

b2d

c2dR1∪R2

A1A2A3

b2d

b3b

c2d

d3b

a3c

e5f

g6f

2.3關系代數(shù)

(4)廣義笛卡爾積:R、S可為不同類關系,則結果為不同類關系:

R×S={trts|(tr∈R)∧(ts∈S)}連接為m+n目關系

m目關系

n目關系S

A2A3

2d

3b

R

A1A2A3

b2d

b3b

c2d

d3b

2.3關系代數(shù)元組的前n列是關系R的一個元組后m列是關系S的一個元組R×SR

.

A1R

.

A2R

.A3

S

.

A2S

.

A3

b2d2d

b2d3b

b3b2d

b3b3b

c2d2d

c2d3b

d3b2d

d3b3b

2.3關系代數(shù)記號設t為R的元組變量,設:R(A1,A2,…An)=R(U)t[Ai](Ai為屬性):R在屬性集Ai上的所有值。t[A](A為屬性集),R在屬性集A上的所有值。例:t[學號]--R中學號上的值

t[學號,姓名]學號姓名年齡t2.3關系代數(shù)

2.專門的關系運算(1)選擇是行上的選擇,產(chǎn)生同類關系。

σ

F(R)={t|(t∈R)∧F(t)=true}}含義:由R中滿足F條件的元組組成。其中:F由屬性名(值)、比較符、邏輯運算符組成。例:σ

A2>5

∨A3≠“f”(R)

或:選擇運算是從行的角度進行的運算R

A1A2A3

a3f

b2

d

c2d

e6f

g6f

σ[2]>5∨[3]≠“f”

(R)A1A2A3

b2d

c2d

e6f

g6f√√√√

σ[2]>5∨[3]≠“f”

(R)σ2.3關系代數(shù)

(2)投影運算是列上的選擇,產(chǎn)生不同類關系。

ΠA(R)={t[A]|(t∈R)}含義:R中取屬性名表A中指定的列,消除重復元組。

例:ΠA3,A2(R)

A3A2

f3

d2

f63,2ΠAA(R)R

A1A2A3

a3f

b2

d

c2d

e6f

g6f

2.3關系代數(shù)投影操作主要是從列的角度進行運算π用關系代數(shù)表示查詢:例:查選2號課程的學生記錄。

例:成績在90分以上的學生號。9801

1959801

2909802

188980223

9298032

SnoCnoGrade

80……SC表解:σCno=‘2’(SC)解:ΠSno(σGrade≥90(SC))√√2.3關系代數(shù)

(3)連接運算:

①一般連接它從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組。

R?

S={trts|(tr∈R)∧(ts∈S)∧tr[A]

θ

ts[B]}

AθB

比較運算符①②含義:從RXS中選取R關系在A屬性組上的值與S關系在B屬性組上值滿足θ關系的元組。2.3關系代數(shù)

②等值連接:θ為“=”的連接。

什么是等值連接θ為“=”的連接運算稱為等值連接等值連接的含義從關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧tsS∧tr[A]=ts[B]}A=Btrts

AθBRSp73例2.3關系代數(shù)

自然連接

設R、S有同名屬性Bi(i=1,2….k)R

S={trts|(tr∈R)∧(ts∈S)∧tr[B]

=ts[B]}p74例其中B是R和S的公共屬性,并且在形成的新關系中要去掉重復的屬性。2.3關系代數(shù)——連接舉例ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS2.3關系代數(shù)——連接舉例

R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E2.3關系代數(shù)——連接舉例

等值連接R

S

R.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b322.3關系代數(shù)——連接舉例

自然連接R

S

ABCEa1b153a1b267a2b3810a2b3822.3關系代數(shù)——連接舉例等值連接與自然連接的區(qū)別:

(1)自然連接一定是等值連接,但等值連接不一定是自然連接。因為自然連接要求相等的分量必須是公共屬性,而等值連接相等的分量不一定是公共屬性。(2)等值連接不把重復的屬性去掉,而自然連接要把重復屬性去掉。注意若R、S無公共屬性,RS=?

2.3關系代數(shù)象集(ImageSet)關系R(X,Z),X,Z是屬性組,x是X上的取值,定義x在R中的象集為Zx={t[Z]|tRt[X]=x}

從R中選出在X上取值為x的元組,去掉X上的分量,只留Z上的分量XZ張軍同學所選修的全部課程x=張軍Zx姓名課程張軍物理王紅數(shù)學張軍數(shù)學課程數(shù)學物理(4)除運算

2.3關系代數(shù)

做法:逐個考慮選課關系SC中的元組r,求r在姓名SN上的分量x,再求x在選課關系中的象集課程Cx,若Cx包含了所有的課程C,則x是滿足條件的一個元組{x|x=r[SN]rSC

CxC}選修全部課程的學生全部課程x同學所選修的全部課程除定義R(X,Y)S(Y)={tr[x]|trRY(S)Yx}其中Yx為x在R中的象集,x=tr[x]除運算如何得到選修了全部課程的學生?

2.3關系代數(shù)物理數(shù)學課程=物理王紅數(shù)學張軍數(shù)學王紅物理張軍課程姓名王紅張軍姓名沒有選修全部課程的學生所有學生選修全部課程=數(shù)學張軍數(shù)學王紅物理張軍課程姓名物理王紅數(shù)學張軍數(shù)學王紅物理張軍課程姓名姓名王紅姓名王紅張軍姓名王紅=姓名張軍選修了全部課程的學生

2.3關系代數(shù)示例求同時選修了001和002號課程的學生號

方案1:∏S#,C#(SC)C#=001

C#=002(C)

方案2:∏S#(SCC#=001

C#=002(C))

哪一個正確?

2.3關系代數(shù)ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR

AB(R)S

AB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=ABabbcedABbc-=2.3關系代數(shù)(綜合舉例)

學生-課程數(shù)據(jù)庫:S(sno,sname,sex,age,dept)C(cno,cname,credit,pcno)SC(sno,cno,grade)

目標A條件F來源R2.3關系代數(shù)(綜合舉例)學號Sno姓名Sname性別sex年齡age所在系dept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS

Student2.3關系代數(shù)(綜合舉例)Course課程號課程名先行課學分CnoCnamepcnocredit1數(shù)據(jù)庫542數(shù)學

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

27PASCAL語言642.3關系代數(shù)(綜合舉例)SC學號課程號成績SnoCnoGrade95001192950012859500138895002290950023802.3關系代數(shù)(綜合舉例)例1:查不選002號課程的學生姓名與年齡。Cno≠’002’?Πsname,age(S)-Πsname,age(S∞σcno=‘002’

(SC))

例2:查詢至少選修了兩門課程的學生學號。Πsno(σ[1]=[4]∧[2]≠[5](SC×SC))2.3關系代數(shù)(綜合舉例)①②

目標A1、A2例3:查所選課程包含了學生210101所選全部課程的學生號和姓名。(Πsno,cno(SC)

÷Πcno

(σsno=210101(SC)))Πsno,sname(

S)∞

例4:查詢選修了全部課程的學生學號與姓名。Πsno,sname(

S)∞

(Πsno,cno(SC)

÷Πcno((C)))2.3關系代數(shù)(綜合舉例)[例5]

查詢信息系(IS系)全體學生

σdept

='IS'(Student)

或σ5='IS'(Student)結果:SnoSnamesexagedept95002劉晨女19IS95004張立男19IS2.3關系代數(shù)(綜合舉例)[例6]

查詢年齡小于20歲的學生

σage<20(Student)

或σ4<20(Student)

結果:

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

2.3關系代數(shù)(綜合舉例)[例7]

查詢學生的姓名和所在系 即求Student關系上學生姓名和所在系兩個屬性上的投影

πSname,dept(Student)

或π2,5(Student)結果:Snamedept李勇CS劉晨IS王敏MA張立IS2.3關系代數(shù)(綜合舉例)以學生-課程數(shù)據(jù)庫為例(P.59)[例8]

查詢至少選修1號課程和3號課程的學生號碼

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

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

Cno

1

32.3關系代數(shù)(綜合舉例)例8續(xù)πSno.Cno(SC)

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

πCno(K)={1,3}

于是:πSno.Cno(SC)÷K={95001}SnoCno9500119500129500139500229500232.3關系代數(shù)(綜合舉例)[例9]

查詢選修了2號課程的學生的學號。πSno(σCno='2'(SC))={95001,95002}

[例10]查詢選修了全部課程的學生號碼和姓名。

πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)2.3關系代數(shù)(綜合舉例)[例11]

查詢至少選修了一門其直接先行課為5號課程的課程的學生姓名。

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

πSno,Sname(Student))

2.3關系代數(shù)(小結)關系代數(shù)五種基本運算:并、差、笛卡爾積、投影、選擇非基本運算用基本運算的表示

1.交

R∩S=R-(R-S)2.連接

R?S=σ[i]θ[m+j](R×S)(設R為m元、S為n元關系)

iθjR?S=Πi1,i2,…im(σR.A1=S.A1…R.Ak=S.Ak(R×S))

其中:A1,A2,…,Ak為R、S的公共屬性。

i1,i2,…im為從R與S的屬性集中去掉

S.A1,S.A2,…S.Ak后剩余的屬性。2.3關系代數(shù)

3.除

設關系R(X,Y),S(Y,Z),X、Y、Z為屬性集R÷S的計算過程如下:①T=ΠX(R) ②W=(T×ΠY(S))-R(計算T×S中不在R的元組)③V=ΠX(W)④R÷S=T–V即R÷S≡ΠX(R)-ΠX((ΠX(R)×ΠY(S))–R)P75例2.3關系代數(shù)

5種基本運算的作用

1.關系的屬性指定

ΠA1,A2,…,An(R)2.關系的元組選擇

σF(R)3.兩個關系的歸并

R1×R24.關系中元組的插入

R∪R'5.關系中元組的刪除

R-R'2.3關系代數(shù)3.擴充的關系運算

(1)廣義投影

ΠF1,…Fn(R),其中,F(xiàn)1,…Fn是涉及R中常量和屬性的算術表達式。例:Πsno,sname,sex,age=20(σsno=‘201901’(Student))

(2)賦值

R<-S:將關系S賦予R。例:Course<-Course∪{099,電子商務,2,003}(并)

Student<-Student-(σsno=‘201908’(Student))

(刪除)

2.3關系代數(shù)(3)外連接為避免自然連接時因失配而發(fā)生的信息丟失,可以假定往參與連接的一方表中附加一個取值全為空值的行,它和參與連接的另一方表中的任何一個未匹配上的元組都能匹配,稱之為外連接外連接=自然連接+失配的元組外連接的形式:左外連接、右外連接、全外連接左外連接=自然連接+左側表中失配的元組右外連接=自然連接+右側表中失配的元組全外連接=自然連接+兩側表中失配的元組2.3關系代數(shù)

(4)半連接R和S的自然連接只在關系R或關系S的屬性集上的投影,稱為半連接。R和S的右外連接記為R?S。R和S的半連接記為S?R。(5)聚集根據(jù)關系中的一組值經(jīng)統(tǒng)計、計算得到一個值作為結果。常用聚集函數(shù):max、min、avg、sum、count。形式:G聚集函數(shù)名(屬性)(關系)2.3關系代數(shù)例:求男同學的平均年齡。

G

avg(age)(σsex=‘男’(Student))

例:計算年齡不小于20歲的同學人數(shù)。

Gcount(sno)(σage≥20(Student))例:數(shù)據(jù)庫課程的平均分數(shù)。

Gavg(grade)(Πcno(σcname=‘數(shù)據(jù)庫’(Course))?SC)

(6)外部并由R和S中的所有屬性組成(公共屬性只取一次),其元組由屬于R或屬于S的元組組成,且元組在新增加的屬性填上空值。2.3關系代數(shù)(7)重命名①ρx(E):其含義為給一個關系表達式賦予名字,返回表達式E的結果,并把名字x賦給E。②ρx(A1,A2,……,An)(E):其含義為返回表達式E的結果,并把名字x賦給E,同時將各屬性更名為A1,A2,……,An。例:設關系R(姓名,課程,成績),求數(shù)學成績比王紅同學高的學生。

∏S.姓名((課程=數(shù)學姓名=王紅(R))?(

課程=數(shù)學S(R)))R.成績<S.成績

2.4關系演算關系演算:以謂詞演算為基礎表示的關系運算。關系演算分類元組關系演算域關系演算1.

元組關系演算用{t|ф(t)}表示關系。

命題公式元組變量表示所有使得ф為真的元組組成的集合。2.4關系演算-元組演算(1)元組關系演算中的原子公式

R(t)t—元組變量R—關系名

R(t)表示:t是關系R的一個元組。

關系R可表示為:{t|R(t)}

t[i]θC

或Cθt[i]C—常量

表示:元組t的第i個分量與常量C之間滿足θ關系。

t[i]θu[j]

其中:t,u–元組變量θ–算術比較符

t[i]–t的第i個分量

u[j]–u的第j個分量

t[i]θu[j]表示:元組t的第i個分量與元組u的第j個分量之間滿足θ關系。2.4關系演算-元組演算

(2)公式的遞歸定義

①每個原子公式是公式。

②若ф1和ф2是公式,則ф1、ф1∨ф2、ф1∧ф2、ф1->ф2也是公式。③若ф是公式,則(t)(ф)、(t)(ф)也是公式。

④有限次使用上述3條規(guī)則得到的公式都是元組關系演算表達式。公式中各種運算符的優(yōu)先級:算術運算符、量詞()、邏輯運算符(

∧∨->)高低括號優(yōu)先關系演算表達式關系代數(shù)表達式●用關系演算表達式表達五種基本運算:R∪S={t|R(t)∨S(t)}R-S={t|R(t)∧┓S(t)}R×S={t(n+m)|(u(n))(v(m))(R(u)∧S(v)∧t[1]=u[1]∧…∧t[n]=u[n]∧t[n+1]=v[1]∧…∧t[n+m]=v[m])}σF(R)={t|R(t)∧F}πi1,i2,…,ik(R)={t(k)|(u)(R(u)∧t[1]=u[i1]∧…∧t[k]=u[ik])}2.4關系演算<->關系代數(shù)關系演算表達式關系代數(shù)表達式例1查詢信息系(IS)全體學生σF(R)={t|R(t)∧F}SIS={t|Student(t)∧t[5]=‘IS’}例2查詢年齡小于20歲的學生S20={t|Student(t)∧t[4]<20}2.4關系演算<->關系代數(shù)關系演算表達式關系代數(shù)表達式例3查詢學生的姓名和所在系S1={t(2)|(u)(Student(u)∧t[1]=u[2]∧t[2]=u[5])}πi1,i2,…,ik(R)={t(k)|(u)(R(u)∧t[1]=u[i1]∧…∧t[k]=u[ik])}2.4關系演算<->關系代數(shù)2.4關系演算-元組演算例1:設有關系R和S,請寫出下列元組演算表達式的結果。ABC123456789ABC123346569RSR1={t|S(t)∧t[1]>2}R2={t|R(t)∧S(t)}R3={t|(u)(S(t)∧R(u)∧t[3]<u[2])}R4={t|(u)(R(t)∧S(u)∧t[3]>u[1])}

2.4關系演算-元組演算R5={t|(u)(v)(R(u)∧S(v)∧u[1]>v[2]∧t[1]=u[2]∧t[2]=v[3]∧t[3]=u[1])}例2:設R和S都是二元關系,將∏1,4(σ[2]=[3](R×S))轉換成元組演算表達式。

{t|(u)(v)(R(u)∧S(v)∧u[2]=v[1]∧t[1]=u[1]∧t[2]=v[2])}2.4關系演算-元組演算ABC346969ABC456789ABC123346ABC456789R1R2R3R42.4關系演算-元組演算R5:t[1]=u[2]∧t[2]=v[3]∧t[3]=u[1])u[1]v[2]1*24476u[1]u[2]u[3]v[1]v[2]v[3]456123789123789346789569R5:2.4關系演算-域演算2.域關系演算以域變量作為謂詞變元的基本對象。用{t1,t2,…,tk|ф(t1,t2,…,tk)}表示關系。

t1,t2,…,tk是元組變量t的各個域分量。(1)域演算中的原子公式

R(t1,t2,…,tk)

表示:由分量t1,t2,…,tk組成的元組屬于R。

tiθuj

表示:元組變量t的第i個分量與元組u的第j個分量間滿足θ關系。

tiθC或Cθti

表示:元組變量t的第i個分量與常量C間滿足θ關系。(2)公式的遞歸定義與元組演算定義類似。2.4關系演算-域演算例:設有關系R、S、W,試寫出下列域演算表達式的結果。ABC123456789ABC123346569DE7548RWSR1={xyz|R(xyz)∧x<5∧y>3}R2={xyz|R(xyz)∨S(xyz)∧y=8}R3={xyz|(u)(v)(R(zxu)∧w(yv)∧u>v)}

2.4關系演算-域演算R1:R2:ABC456ABC123456789u=R.c3*69v=W.E58R3:

xyzzxuyv4567578975789482.4關系演算安全運算不產(chǎn)生無限關系和無窮驗證的運算。安全表達式安全運算的表達式。安全限制安全運算所采取的措施。

注意關系代數(shù)運算總是安全的。關系演算則可能出現(xiàn)無限關系和無窮驗證問題,3.關系演算的安全性例:{t|R(t)}這是一個無限關系。要使關系演算是安全的,只要定義一個安全約束有限集合,該有限集是表達式中涉及到的關系中的值的集合。經(jīng)過安全限制后的表達式其運算是安全的。關系代數(shù)和關系演算所依據(jù)的基礎理論是相同的,故可進行相互轉換。已證明,關系代數(shù)、安全的元組演算、安全的域演算在關系的表達能力上是等價的。

2.4域關系演算語言QBE

一種典型的域關系演算語言 由M.M.Zloof提出

1978年在IBM370上得以實現(xiàn)

QBE也指此關系數(shù)據(jù)庫管理系統(tǒng)QBE:QueryByExample

基于屏幕表格的查詢語言查詢要求:以填寫表格的方式構造查詢用示例元素(域變量)來表示查詢結果可能的情況查詢結果:以表格形式顯示QBE操作框架關系名屬性名操作命令元組屬性值或查詢條件或操作命令QBE操作框架——檢索操作(1)用戶提出要求;(2)屏幕顯示空白表格;

(3)用戶在最左邊一欄輸入要查詢的關系名,例如Student;StudentQBE操作框架——檢索操作(4)系統(tǒng)顯示該關系的屬性名

(5)用戶在上面構造查詢要求

StudentSnoSnameSsexSageSdept

P.T

AO.C

StudentSnoSnameSsexSageSdept

QBE操作框架——檢索操作(6)屏幕顯示查詢結果StudentSnoSnameSsexSageSdept

李勇張立

C

QBE操作框架——構造查詢的幾個要素示例元素即域變量一定要加下劃線示例元素是這個域中可能的一個值,它不必是查詢結果中的元素打印操作符P.

指定查詢結果所含屬性列查詢條件不用加下劃線可使用比較運算符>,≥,<,≤,=和≠其中=可以省略排序要求QBE簡單查詢[例1]查詢?nèi)w學生的全部數(shù)據(jù)。StudentSnoSnameSsexSageSdept

P.95001P.李勇P.男P.20P.CSQBE簡單查詢

顯示全部數(shù)據(jù)也可以簡單地把P.操作符作用在關系名上。StudentSnoSnameSsexSageSdept

P.

QBE條件查詢(1)簡單條件

[例2]求信息系全體學生的姓名。StudentSnoSnameSsexSageSdept

P.李勇

ISQBE條件查詢(續(xù))

[例3]求年齡大于19歲的學生的學號。StudentSnoSnameSsexSageSdept

P.95001

>19QBE條件查詢(與條件)[例4]求

溫馨提示

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

評論

0/150

提交評論