關系數據庫課件_第1頁
關系數據庫課件_第2頁
關系數據庫課件_第3頁
關系數據庫課件_第4頁
關系數據庫課件_第5頁
已閱讀5頁,還剩83頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

關係資料庫關係資料庫IBM公司的E.F.CODD,1970ARelationalModelforSharedDataBanks,CommunicationoftheACM關係資料庫的奠基人(關係資料庫之父)20世紀70年代末,IBM公司SanJose實驗室,SystemR3.1關係模型的基本概念一、數學定義域(Domain):一組具有相同類型的值的集合。例整數、自然數、負數、{0,1}、{男,女}一、數學定義笛卡爾積(CartesianProduct)

給定一組域D1,D2,…,Dn

,D1,D2,…,Dn的笛卡爾積為:

D1XD2X…XDn={(d1,d2,…,

dn)|di

∈Di

,i=1,2,…,n}

其中每個元素(d1,d2,…,

dn)稱一個n-元組,簡稱元組,元組中的每一個值di

稱為元組的一個分量。若Di(i=1,2,…,n)為有限集合,其基數為mi(i=1,2,…,n),則D1XD2X…XDn

的基數為:n

m=mi

i=1例:一個笛卡爾積給出三個域:

D1=姓名集合(NAME)={王易,趙爾,張珊}

基數3

D2=性別集合(SEX)={男,女}基數2

D3=年齡集合(AGE)={18,19,20}基數3D1XD2XD3的笛卡爾積:

——

表示為一個二維表

基數m=3*2*3=18什麼是關係?關係(relation)笛卡爾積D1X

D2X…X

Dn

的任意一個子集稱為在域D1,D2,…,Dn上的一個n元關係。通常用R(D1,D2,…,Dn)表示,其中R為關係的名字,n為關係的目或度。構造一個學生關係:

STUDENT(NAME,SEX,AGE)關係名STUDENT屬性名選取有意義的子集看成為一個二維表關鍵字(碼)關係中的基本名詞元組Tuple——關係的一行屬性Attribute——關係的一列碼(key)——又稱關鍵字,分為候選碼、主碼候選碼CandidateKey一個關係中能夠唯一標識一個元組的屬性(組)稱為候選碼。主碼PrimaryKey若關係中有多個候選碼,選定其中一個為主碼。主屬性,非主屬性全碼外碼(外部碼)——又稱外部關鍵字一個屬性組不是所在關係的碼,卻是其他關係的碼,則稱為該關係的外碼。關係舉例倉庫號城市面積WH1北京500WH2上海450WH3廣州200WH4重慶300部件號部件名稱P1顯示卡P2聲卡P3CPUP4記憶體條倉庫號部件號數量WH1P1100WH2P2120WH3P3180WH4P4200倉庫部件庫存關係的性質關係中的列是同質的;每一列(稱為屬性)必須有不同的名字(屬性名),但不同的列可以取自相同的域;列的次序可以任意交換;行的次序可以任意交換;任意兩個元組不能完全相同;每個分量必須是不可分的資料項目;每個關係都有一個唯一標識它的各個元組的主碼(屬性組)。

關係模式(1)

對關係的描述,即二維表的表框架。形式化的表示為:

R(U,D,DOM,F)關係名屬性名集合功能變數名稱集合屬性到域的映象集合屬性間數據的依賴關係集合關係模式(2)關係模式簡記為:

R(U)或R(A1,A2,…,An)

其中Ai為屬性名,功能變數名稱及屬性到域的映象常直接說明為屬性的類型和長度。

注意:關係模式是型,關係是它的值(關係模式在某個時刻的內容,即元組的集合)。關係模式是靜態的、穩定的關係的值是動態的、隨時間變化的關係資料庫對應於一個關係模型的所有關係的集合。注意區分:型—資料庫描述(若干關係模式),資料庫的內涵,靜態值—資料庫內容若干關係),資料庫的外延,動態二、關係模型

關係模型由關係數據結構、關係操作集合和完整性約束三部分組成。關係數據結構

——

單一的數據結構,即無論實體還是實體之間的聯繫均由關係(二維表)表示。關係操作

——

集合操作方式,即操作對象和結果均為集合。

常用的關係操作包括兩大部分:

選擇、投影、連接、除、並、交、差等查詢操作;增、刪、改等更新操作。關係操作關係操作的基本內容數據查詢、數據更新(維護)和數據控制關係操作能力有兩種表示方式:

代數方式——

關係代數

邏輯方式——

關係演算關係操作的特點集合操作一體化高度非過程化

兩種方式表達能力上完全等價用關係代數表示的關係操作(查詢)θ選擇(θSelect)投影(Project)θ連接(θJoin)除(Divide)並(Union)交(Intersection)差(Setdifference)特點:集合操作(對象、結果均為集合)一次一集合方式關係模型的三類完整性提供豐富的完整性控制機制,允許定義三類完整性。實體完整性:主屬性不能取空值;保證實體的唯一性、可區分性

參照完整性:外碼的值只能是:或者取空值,或者等於相應關係中某個元組的主碼值;

用戶定義的完整性:具體應用所涉及的數據必須滿足的語義要求。前兩類由關係系統自動支持實體完整性EntityIntegrity基本關係關係DB中有基本關係、查詢表、視圖表等關係,基本關係是實際存在的表,是實際存儲數據的邏輯表示。查詢表、視圖表是虛表,不對應實際存儲的數據。實體完整性說明(針對基本關係)一個基本關係通常對應現實世界的一個實體集。現實世界中實體是可區分的,即他們具有某種唯一性標識。關係模型中由主碼作為唯一性標識。主碼(主屬性)不能取空值(不知道、無意義的值,NULL)。參照完整性ReferentialIntegrity

參照完整性:外碼的值只能是,或者取空值,或者等於相應關係中某個元組的主碼值;基本關係R中有屬性組F基本關係S主碼為Ks,F與Ks相對應(F稱為R的外部碼)對於R中每個元組,其在F上的值必須為:或為空值(null)或等於S中某個元組的主碼值參照完整性舉例職工關係與部門關係職工關係EMPLOYEE(ID,NAME,DEPT#)部門關係DEPARTMENT(DEPT#,DEPTNAME)科室關係與病人關係科室關係KS(KSBM,KSMC)病人關係BR(BRNO,BRXM,KSBM,…)教師關係與部門關係教師關係TEACHER(TNO,NAME,AGE,DNO,…)部門關係DEPT(DNO,DNAME,…)用戶定義的完整性

用戶定義的完整性:具體應用所涉及的數據必須滿足的語義要求。是針對某一具體資料庫的約束條件,由應用環境決定。例:學生關係中:年齡職工關係中:年齡、工資等3.2關係數據語言關係資料庫使用的語言一般都具有定義、查詢、更新、控制一體化的特點。關係數據語言既可以嵌入主語言,又可以作為獨立的互動式語言使用。關係數據語言是非過程化語言,其核心部分為查詢,又稱為查詢語言。關係數據語言按表達查詢的方式不同,分為兩大類:

代數式語言——

簡稱關係代數

用關係的運算來表達查詢的語言。

演算式語言——簡稱關係演算

用所查元組應滿足的謂詞來表達查詢的語言。關係演算簡介關係演算元組演算式語言

如:ALPHA域演算式語言

如:QBE對象為元組變數對象為域變數按謂詞變元的基本對象分為:SQL——

關係資料庫標準語言SQL——

關係資料庫標準語言

StructuredQueryLanguage

即:結構化查詢語言,介於關係代數和關係演算之間。功能完善。DBMS中實現,可以交互、嵌入式運行關係代數、關係演算、SQL三者是等價的3.3關係代數關係代數是一種抽象的查詢語言是關係數據操縱語言的一種傳統表達方式,它用對關係的運算來表達查詢。

注意:關係代數的運算對象和運算結果都是關係。

IBM研製的查詢語言ISBL(InformationSystemBaseLanguage)是關係代數的具體實現。關係代數關係運算分兩類:

–傳統的集合運算將關係看成元組的集合,從行(元組)的角度進行。

–專門的關係運算特殊運算,從行、列(屬性)的角度進行。一、傳統的集合運算二目運算設關係R、S有相同的目n(即兩個關係都有n個屬性),且相應屬性取自同一個域,可定義三種運算:

1.並(Union)R∪S={t|t∈R∨t∈S}2.差(Difference)R–S={t|t∈R∧t∈S}3.交(Intersection)R∩S={t|t∈R∧t∈S}R∪SR–SR∩S元組的連串4.廣義笛卡爾積

設R、S分別為n目和m目關係,則R、S的廣義笛卡爾積是一個(n+m)列的元組集合。

RXS={tr

ts|tr

∈R

ts

∈S}即:元組tr={tr1,tr2,

,trn}∈R

元組ts={ts1,ts2,

,tsm}∈S

元組⌒

tr

ts={tr1,…

,trn

,ts1,…

,tsm}∈RXS

若R有K1

個元組,S有

K2

個元組則RXS有K1*K2

個元組。

RSRXS例:一個廣義笛卡爾積二、專門的關係運算幾個符號和概念1.設關係模式R(A1,A2,…,An)的一個關係為R。

t∈R:表示t是R的一個元組;

t[Ai]或t.Ai:表示元組t中相應於屬性Ai的一個分量。2.若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik

是A1,A2,…,An中的一部分,則稱A為屬性組或屬性列或域列。

—A

:{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}

後剩餘的屬性組。

t[A]=(t[Ai1],t[Ai2],…,t[Aik]):表示t在屬性組A上各分量的集合。3.設R為n目關係,S為m目關係且

r∈R,s∈S即:r={r1,r2,…,rn},s={s1,s2,…,sm}

rs={r1,r2,…,rn,s1,s2,…,sm}

稱元組的連串。4.給定一個關係R(X,Y),X和Y為屬性組定義當t[X]

=x時,x在R中的象集為:

Yx

={t[Y]|t∈R,t[X]=x}即:表示R中屬性組X上值為x的各元組在Y上分量的集合。語義;s1的成績單SC例:

關係模式SC(SNo,CNo,G)

令X={SNo},Y={CNo,G}

設有關係SC

當x=s1時,s1在SC中的象集:

Ys1={(c1,A),(c2,B),(c4,B)}

例:學生-課程關係數據模型學生S課程C選課mn學生(S)課程(C)學生選課(SC)例:學生-課程關係資料庫(1)SC例:學生-課程關係資料庫(2)SC專門的關係運算(續)幾種運算選擇(selection)投影(projection)連接(join)選擇(selection)選擇(selection)——從關係中選擇滿足條件的元組,即選擇行。

F(R)={t|t∈R∧F(t)=‘true’}其中R:關係名,

:選擇運算符,F:邏輯運算式(條件)

F由邏輯運算符、比較運算符和屬性名、常量、簡單函數等組成。其中屬性名可以用列序號代替從行的角度運算

解:

SD=‘CS’∧SA‘20’(S)

3=‘CS’∧4‘20’(S)例:查找CS系20歲以上的學生。投影(projection)投影(projection)

——從關係中選擇若干屬性列組成新的關係,即選擇列

A(R)={t[A]|t

R

}

其中R關係名、

投影運算、A為R中的屬性組

從列的角度運算例:關係S在SN,SD上的投影解:

SN,SD(S)

2,3(S)連接(join)/

連接連接(join)又稱

連接(/

)

——從兩個關係的廣義笛卡爾積中選取滿足條件的元組R

S={tr

ts|tr

∈R∧

ts

∈S∧

tr[A]

ts

[B]}

AB

其中:R:關係名、

:連接運算、

:比較運算符

A、B分別為R、S上目數相等且可比的屬性組

兩種重要且常用的連接等值連接——

為“=”的連接運算自然連接——一種特殊的等值連接R

S={tr

ts[B]|

tr

∈R∧

ts

∈S∧

tr[B]=ts[B]}

要求:

R、S有相同的屬性組B;(等值連接為可比的屬性組)

連接後去掉重複的屬性組。(等值連接不必去掉)RSB<D例:連接運算RSR×S例:等值連接RSR×SRSC=D例:自然連接RSR×SRSC=CRS

Yx={t[Y]|t∈R,t[X]=x}除法(division)

除法(division)

給定關係R(X,Y)與關係S(Y,Z),其中X,Y,Z為屬性組或單屬性。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。

R

S={t[X]|t∈R∧

Yx

∏Y(S)}

其中Yx為

x在R中的象集,x=t[X]

除法結果——

R中滿足下列條件的元組在X屬性組上的投影。條件:元組在X上分量值x的象集Yx

包含S在Y上投影的集合例:除法運算Ra1的象集a3的象集a2的象集a4的象集SR

SXYZY綜合題例(1)

給出“資料庫”課程的成績單(包括學生姓名和成績)。分析:涉及C涉及S

先選出課程號

CN=‘DB’(C)--------

涉及SC

與SC自然連接,投影選出學生號和相應成績

Sno,G(

SC

)-----------

DB課程成績單綜合題例(1)續

再與S自然連接,投影得出成績單

SN,G(S

SN,G(S

Sno,G(SC

CN=‘DB’(C)))另解

SN,G(

Sno,SN

(S)

Sno,G(SC

CN=‘DB’(C)))

SN,G(

S

SC

CN=‘DB’(C))綜合題例(2)

給出選修“數據結構”課程的學生號。分析:涉及C

先選出課程號

Cno(

CN=‘DS’(C))-----------

涉及SC

用SC和

做除法運算,得出學生號

Sno,Cno

(SC)

Cno

(

CN=‘DS’(C))XYY另解

Sno(

Cno(

CN=‘DS’(C))SC)

Sno(

Cno(

CN=‘DS’(C))

Sno,Cno(SC))五種基本的關係運算並∪差-笛卡爾積×投影π選擇σ交、連接、除均可以用這五種基本運算表達3.4關係演算關係演算以數理邏輯中的謂詞演算為基礎,按謂詞變元的不同分為元組關係演算和域關係演算。

注意:關係代數用“規定對關係的運算”來達到查詢的要求關係演算通過“規定查詢的結果應滿足的條件”來表達查詢要求。關係演算語言ALPHA——

一種典型的元組關係演算語言由E.F.Codd

提出,但未具體實現;

INGRES關係資料庫所用的QUEL語言參照它研製。QBE

——

一個很有特色的域關係演算語言M.M.Zloof

提出,1978年在IBM370上實現,相應的資料庫管理系統也稱為QBE。元組關係演算語言ALPHA基本概念引入元組變數,分為自由變數和約束變數,其變化範圍為某一命名關係謂詞演算公式,表達查詢得到的元組應滿足的條件基本語句格式:

操作語句工作空間名(目標表):操作條件操作符:GET,PUT,DELETE,HOLD,UPDATE,DROP用戶與系統的通訊區字母表示指出操作結果通常為關係名和屬性名邏輯運算式表達查詢條件可以為空、排序、加定額等ALPHA—

檢索操作(1)查找CS系20歲以上的學生的姓名和年齡。

GETW(S.SN,S.SA):S.SD=‘CS’∧.SA≥20查找CS系年齡最小的兩個學生的資訊。(定額/排序)

GETW(2)(S):S.SD=‘CS’UPS.SAALPHA—

檢索操作(2)用元組變數的檢索

元組變數是在某一關係範圍內變化的,故又稱範圍變數。用途:(1)用以簡化關係名;

(2)操作條件中使用量詞時,必須用元組變數。謂詞演算中的量詞分為:

存在量詞

x

、全稱量詞x

含義:

xP(x)——

至少存在一個x,使得P(x)為真。

xP(x)——

對所有的x,P(x)均為真。

ALPHA—

檢索操作(3)查找選修課程C2的學生號。

設學生選課關係名為Student-Course

通過元組變數X的引入可以簡化關係名的書寫

RANGEStudent-CourseX

GETW(X.Sno):X.Cno=‘C2’

關係代數表示:(∏Sno(

Cno=‘c2’(SC)))ALPHA—

檢索操作(4)查找選修課程C2的學生姓名。涉及SC涉及S

考慮在哪個關係上設定元組變數?

——通常選問題中可以明確限制的元組

RANGESCXGETW(S.SN):

X(X.Cno=‘C2’∧X.Sno=S.Sno)

關係代數表示

∏SN(S

Cno=‘c2’(SC))

∏SN(S∏Sno(

Cno=‘c2’(SC)))ALPHA—

檢索操作(5)查找成績為A的學生姓名和課程名。涉及SC涉及CRANGESCSCx

GETW(S.SN,C.CN):

SCx(SCx.G=‘A’∧

SCx.Sno=S.Sno

SCx.Cno=C.Cno

)涉及S關係代數表示

SN,CN(

G=‘A’(SC)

SC)ALPHA—

檢索操作(6)查找沒有選修C2課程的學生姓名和系名。涉及SC涉及SRANGESCSCx

GETW(S.SN,S.SD):

SCx

(SCx.Sno

S.Sno

SCx.Cno

‘C2’)

操作條件等價於:

SCx(SCx.Sno

=S.Sno

SCx.Cno

=‘C2’)

沒有選修任何課程的Sno沒有選修C2課程的Sno關係代數表示∏SN,SD(S-S∏Sno(

Cno=‘c2’(SC)))∏SN,SD(S∏Sno(

Cno≠‘c2’(SC)))錯誤!遺漏S中未選課學生。ALPHA—

檢索操作(7)查找選修全部課程的學生姓名和系名。涉及SC涉及SRANGECCx

SCSCx

GETW(S.SN,S.SD):

Cx

SCx(SCx.Sno=

S.Sno

SCx.Cno=Cx.Cno)

涉及C對C中所有的課程元組都(至少)存在一個SCx關係代數表示∏Cno(C):全部課程號∏Sno,Cno(SC)÷∏Cno(C):選修全部課程的學生學號∏SN,SD(S(∏Sno,Cno(SC)÷∏Cno(C)))

選修全部課程的學生學號姓名、系名ALPHA—

檢索操作(8)

為方便用戶在查詢中做簡單計算,提供若干庫函數:

COUNT、TOTAL、MAX、MIN、AVG等等。查出選修課程C2的學生人數。

GETW(COUNT(SC.Sno)):SC.Cno=‘C2’查出電腦科學系學生的平均年齡。

GETW(AVG(S.SA)):S.SD=‘CS’

ALPHA—

檢索操作(9)查出選修課程C2的學生平均成績。

GETW(AVG(SC.G)):SC.Cno=‘C2’查出選修課程C2的學生最高成績。

GETW(MAX(SC.G)):SC.Cno=‘C2’查出學生S1的總成績。

GETW(SUM(SC.G)):SC.SNO=‘S1’ALPHA—

更新操作將學生S1從CS系轉入IS系。

HOLDW(S.Sno,S.SD):S.Sno=‘S1’MOVE‘IS’TOW.SDUPDATEW在SC中插入選課元組(S4,C2,A)。

MOVE‘S4’TOW.Sno

MOVE‘C2’TOW.Cno

MOVE‘A’TOW.GPUTW(SC)域關係演算語言QBEQBE—

QueryByExample(通過例子進行查詢)

一種很有特色的域關係演算語言即:關係演算中謂詞變元的基本對象是域變數

一種高度非過程化的基於螢幕表格的查詢語言即:用填寫表格的方式構造查詢要求

由M.M.Zloof

提出,78年在IBM370上實現,相應的資料庫管理系統也稱為QBE。QBE的主要特點:

(1)基於圖形的語言;(2)通過例子進行查詢;(3)提供二維語法。QBE的操作框架關係名屬性名操作命令元組屬性值或查詢條件QBE的操作步驟用戶提出要求;螢幕顯示空白表格;用戶填寫關係名;螢幕顯示該關係的各個屬性;用戶填寫查詢要求;螢幕顯示查詢結果。SSnoSNSDSAP.李CS操作符P.Print李示例元素(域變數)QBE—

檢索操作(2)查找CS系或年齡小於20歲的學生號。P.S2CSP.S4<20P.S2CS

S2<20查找CS系且年齡小於20歲的學生號‘與’運算用相同示例‘或’運算用不同示例QBE—

檢索操作(3)查找選修C1或C2課程的學生號。P.S2C2

S4C1P.S2C1

S2C2查找選修C1和C2兩門課程的學生號。‘與’運算用相同示例‘或’運算用不同示例QBE—

檢索操作(1)查找CS系全體學生的資訊。P.CS操作符P.Print查詢條件‘=’可省略查找CS系(且)年齡大於19

溫馨提示

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

評論

0/150

提交評論