數(shù)據(jù)庫系統(tǒng)原理教程_第1頁
數(shù)據(jù)庫系統(tǒng)原理教程_第2頁
數(shù)據(jù)庫系統(tǒng)原理教程_第3頁
數(shù)據(jù)庫系統(tǒng)原理教程_第4頁
數(shù)據(jù)庫系統(tǒng)原理教程_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)原理教程第1頁,共49頁,2023年,2月20日,星期六應(yīng)用數(shù)學方法來處理數(shù)據(jù)庫數(shù)據(jù)關(guān)系模型的提出

70年代E.F.Codd(81年ACM圖靈獎)關(guān)系數(shù)據(jù)庫是目前最重要、最流行的數(shù)據(jù)庫

Oracle,DB2,SQLServer,Sybase,Infomix,Ingres,Access,FoxPro,FoxBASE,MySQL…關(guān)系數(shù)據(jù)庫的主流地位2第2頁,共49頁,2023年,2月20日,星期六2.1

關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)關(guān)系模型的三個組成部分:關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合完整性約束

3第3頁,共49頁,2023年,2月20日,星期六1.單一的數(shù)據(jù)結(jié)構(gòu)-表

“二維表”

2.關(guān)系操作集合操作方式

set-at-a-timevs.record-at-time常用的關(guān)系操作:查詢(選擇、投影、連接、除、并、交、差)增加、刪除、修改操作。第4頁,共49頁,2023年,2月20日,星期六關(guān)系語言是一種高度非過程化的語言元組關(guān)系演算語言域關(guān)系演算語言關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言(如SQL)關(guān)系數(shù)據(jù)語言表達能力完全等價5第5頁,共49頁,2023年,2月20日,星期六3.完整性約束

實體完整性參照完整性用戶定義的完整性

由關(guān)系系統(tǒng)自動支持6第6頁,共49頁,2023年,2月20日,星期六1.關(guān)系

1)域(Domain)

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

例如,自然數(shù)、整數(shù)、實數(shù)、長度小于25字節(jié)的字符串集合、大于等于0且小于等于100的正整數(shù)等

2.2

關(guān)系數(shù)據(jù)結(jié)構(gòu)7第7頁,共49頁,2023年,2月20日,星期六2)笛卡爾積(cartesianproduct)

定義2.2:給定一組域D1,D2,…Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:

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

Di

,i=1,…,n}

其中,(d1,d2,…,dn)稱為一個n元組(n-tuple)或元組,di稱為一個分量(component)。D1×D2×…×Dn的基數(shù)8第8頁,共49頁,2023年,2月20日,星期六例如給出三個域:

D1=導師集合SUPERVISOR={張清玫,劉逸}D2=專業(yè)集合SPECIALITY={計算機專業(yè),信息專業(yè)}D3=研究生集合POSTGRADUATE={李勇,劉晨,王名}這對應(yīng)一張二維表,表的行數(shù)則D1,D2,D3的笛卡爾積為D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),(張清玫,計算機專業(yè),王名),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王名),(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王名)}第9頁,共49頁,2023年,2月20日,星期六第10頁,共49頁,2023年,2月20日,星期六

3)關(guān)系(relation)

定義2.3:D1×D2×…×Dn的子集稱為在域D1,D2,…,Dn的關(guān)系,用R(D1,D2,…,Dn)表示。這里R表示關(guān)系的名字,n是關(guān)系的目或度(Degree)。當n=1時,稱為單元關(guān)系;n=2時,稱為二元關(guān)系。關(guān)系也是一個二維表

表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。為區(qū)別來自相同域的不同列,引入屬性(attribute)11第11頁,共49頁,2023年,2月20日,星期六幾個概念:候選碼,主碼,主屬性,非碼屬性,全碼關(guān)系的三種類型:基本關(guān)系(稱為基本表或基表)查詢表視圖表

12第12頁,共49頁,2023年,2月20日,星期六學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王名女18MA95004張立男19IS學生Student

關(guān)系第13頁,共49頁,2023年,2月20日,星期六課程號Cno課程名Cname先行課Cpno學分Ccredit1數(shù)據(jù)庫542數(shù)學23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言64課程Course

關(guān)系第14頁,共49頁,2023年,2月20日,星期六學號Sno課程號Cno成績Grade9500119295001285950013889500229095002380選修SC關(guān)系第15頁,共49頁,2023年,2月20日,星期六基本關(guān)系的性質(zhì):列是同質(zhì)的不同的列可出自同一域,要給予不同的屬性名列的順序無所謂無相同元組行的順序無所謂分量必須取原子值,即分量不可再分

第一范式(1NF,1normalform)

16第16頁,共49頁,2023年,2月20日,星期六這是一張具體的表,即關(guān)系是“值”!如何描述這張表的“型”呢?學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王名女18MA95004張立男19IS第17頁,共49頁,2023年,2月20日,星期六2.關(guān)系模式關(guān)系模式是對關(guān)系的描述

要描述二維表(關(guān)系)的結(jié)構(gòu),要回答以下一些問題:它由哪些屬性構(gòu)成?這些屬性來自哪些域?屬性與域之間的映象關(guān)系?同時,現(xiàn)實世界的許多已有事實限定了關(guān)系模式所有可能的關(guān)系必須滿足一定的完整性約束條件。關(guān)系模式應(yīng)當刻劃出這些完整性約束條件。

如“Sage<30”,“所在系是存在的”18第18頁,共49頁,2023年,2月20日,星期六

定義2.4關(guān)系的描述稱為關(guān)系模式(Relationschema)。它可以形式化地表示為:

R(U,D,DOM,F(xiàn))其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。

可簡記為R(A1,A2,…,An)例:學生(學號,姓名,性別,年齡,所在系)Student(Sno,Sname,Ssex,Sage,Sdept)19第19頁,共49頁,2023年,2月20日,星期六學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王名女18MA95004張立男19IS關(guān)系模式學生(學號,姓名,性別,年齡,所在系)的一個“值”第20頁,共49頁,2023年,2月20日,星期六3.關(guān)系數(shù)據(jù)庫

在關(guān)系模型中,實體以及實體間的聯(lián)系都是用關(guān)系來表示的。在一個給定的應(yīng)用領(lǐng)域中,所有實體及實體之間聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的型和值關(guān)系數(shù)據(jù)庫的型(也稱為關(guān)系數(shù)據(jù)庫模式)

包括域的定義以及這些域上定義的若干關(guān)系模式的集合關(guān)系數(shù)據(jù)庫的值

關(guān)系模式集合在某一時刻對應(yīng)的關(guān)系的集合第21頁,共49頁,2023年,2月20日,星期六2.3

關(guān)系的完整性1.實體完整性(entityintegrity)

實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。

例如:選修(學號,課程號,成績)

中的學號和課程號22第22頁,共49頁,2023年,2月20日,星期六例:選修(學號,課程號,成績)中的學號值應(yīng)該“有效”,即要是學生(學號,姓名,性別,專業(yè)號,年齡)中確實存在的一個學號值!對課程號也有同樣的約束條件。課程號學生關(guān)系選修關(guān)系課程關(guān)系學號專業(yè)號專業(yè)關(guān)系2.參照完整性(referentialintegrity)23第23頁,共49頁,2023年,2月20日,星期六定義:

設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼ks相對應(yīng),則稱F是基本關(guān)系R的外碼(foreignkey),并稱基本關(guān)系R為參照關(guān)系(ReferencingRelation),基本關(guān)系S為被參照關(guān)系(ReferencedRelation)或目標關(guān)系(TargetRelation)。關(guān)系R和S不一定是不同的關(guān)系。如:學生2(學號,姓名,性別,專業(yè)號,年齡,班長)中的班長也為外碼,被參照關(guān)系為學生2本身。24第24頁,共49頁,2023年,2月20日,星期六參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:.或者取空值(F的每個屬性值均為空值):.或者等于S中某個元組的主碼值25第25頁,共49頁,2023年,2月20日,星期六3.用戶定義的完整性(user-definedintegrity)不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如某個屬性必須取唯一值、某些屬性值之間應(yīng)滿足一定的函數(shù)關(guān)系、某個屬性的取值范圍在0~100之間等。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以使用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔這一功能。26第26頁,共49頁,2023年,2月20日,星期六2.4

關(guān)系代數(shù)(RelationalAlgebra)關(guān)系代數(shù)用對關(guān)系的運算來表達查詢。按運算符的不同,分為兩類:1.傳統(tǒng)的集合運算(交、并、差、廣義笛卡兒積)2.專門的關(guān)系運算(選擇、投影、連接、除)

27第27頁,共49頁,2023年,2月20日,星期六t[Ai]

元組t中相應(yīng)于屬性Ai的一個分量

t[A]

元組t在屬性列A上諸分量的集合

元組tr和ts的連接

Zx當t[X]=x時,x在R中的象集(imagesset)

Zx={t[Z]|tR,t[X]=x})n元組trm元組ts(m+n)元組trts(

trts幾個記號第28頁,共49頁,2023年,2月20日,星期六

傳統(tǒng)的集合運算是二元運算,包括并、差、交、廣義笛卡爾積四種運算。1.并(Union)

RUS={t|tRVtS)

2.差(Difference)

R-S={t|tRtS)RSRUSRR-SS2.4.1傳統(tǒng)的集合運算

設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域,則可以定義并、差、交運算如下:第29頁,共49頁,2023年,2月20日,星期六3.交(Intersection)

RS={t|tRtS)

4.廣義笛卡兒積(extendedCartesianproduct)

R×S={|tr

Rts

S)RS(trts第30頁,共49頁,2023年,2月20日,星期六并操作示例

RelationsR,S:RS:AB121AB23RSAB1213第31頁,共49頁,2023年,2月20日,星期六差操作示例RelationsR,S:R–S:AB121AB23RSAB11第32頁,共49頁,2023年,2月20日,星期六笛卡爾積操作示例RelationsR,S:Rx

S:AB12CD10102010EaabbAB11112222CD1019201010102010EaabbaabbRS第33頁,共49頁,2023年,2月20日,星期六2.4.2專門的關(guān)系運算1.選擇(selection)

F(R)={t|tRF(t)=“真”}

其中F表示選擇條件,它是一個邏輯表達式

X1

Y1[X2Y1]為比較運算符(=,,>,.<.)

為邏輯運算符(and),(or),(not)

選擇運算是從關(guān)系R中選取使F為真的元組--從行的角度進行的運算第34頁,共49頁,2023年,2月20日,星期六選擇操作示例RelationRABCDA=B^D>5(R)ABCD123710第35頁,共49頁,2023年,2月20日,星期六例1:查詢信息系(IS系)全體學生Sdept=‘IS’(Student)

5=‘IS’(Student)

學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王名女18MA95004張立男19IS關(guān)系Student例2:查詢信息系的名叫王名的學生Sname=‘王名’Sdept=‘IS’(Student)第36頁,共49頁,2023年,2月20日,星期六2.投影(projection)

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

其中A為R中的屬性列(設(shè)有K列)結(jié)果是包含K個列的關(guān)系,其它的列被刪除了。由于關(guān)系是集合,故結(jié)果中消除了重復的行。第37頁,共49頁,2023年,2月20日,星期六投影操作示例RelationRABC102030401112AC1112=AC112

A,C(R)第38頁,共49頁,2023年,2月20日,星期六3.連接(join)RS={|tr

Rts

Str[A]ts[B]}

(trtsAB其中A和B分別為R和S上度數(shù)相等且可比的屬性組。是比較運算符。連接運算從A和B的廣義笛卡爾積A×B中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。

兩種重要而常用的連接運算:等值連接(equi-join):為“=”自然連接(naturaljoin):一種特殊的等值連接,要求

1.A和B相同2.結(jié)果中除去重復屬性

RS39第39頁,共49頁,2023年,2月20日,星期六自然連接操作示例RelationsR,S:AB12412CDaababB13123DaaabbERAB11112CDaaaabESRS第40頁,共49頁,2023年,2月20日,星期六4.除(division)給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。RS是R中滿足下列條件的元組在X屬性上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:說明:Yx={y|tr∈R∧y=tr[Y]∧x=tr[X]}。Yx為x在R中的象集x=tr[X](即Yx為屬性X取值x)時,相應(yīng)的Y值的集合。當中首次出現(xiàn)了關(guān)于集合的比較。41第41頁,共49頁,2023年,2月20日,星期六除法操作示例RelationsR,S:R

S:BA12AB12311134612RS第42頁,共49頁,2023年,2月20日,星期六43第43頁,共49頁,2023年,2月20日,星期六綜合舉例例1.查詢至少選修1號課程和3號課程的學生號碼。

Sno,Cno(SC)K

臨時關(guān)系KCno13例2.查詢選修了2號課程的學生的學號。

Sno(Cno=‘2’(SC))44第44頁,共49頁,2023年,2月20日,星期六例3.查詢至少選修了一門其直接先行課為6號課程的學生姓名。例4

溫馨提示

  • 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

提交評論