數據庫系統原理教程_第1頁
數據庫系統原理教程_第2頁
數據庫系統原理教程_第3頁
數據庫系統原理教程_第4頁
數據庫系統原理教程_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

數據庫系統原理教程第1頁,共49頁,2023年,2月20日,星期六應用數學方法來處理數據庫數據關系模型的提出

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

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

關系數據庫概述關系數據庫系統是支持關系模型的數據庫系統關系模型的三個組成部分:關系數據結構關系操作集合完整性約束

3第3頁,共49頁,2023年,2月20日,星期六1.單一的數據結構-表

“二維表”

2.關系操作集合操作方式

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

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

由關系系統自動支持6第6頁,共49頁,2023年,2月20日,星期六1.關系

1)域(Domain)

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

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

2.2

關系數據結構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的基數8第8頁,共49頁,2023年,2月20日,星期六例如給出三個域:

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

3)關系(relation)

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

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

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

關系第13頁,共49頁,2023年,2月20日,星期六課程號Cno課程名Cname先行課Cpno學分Ccredit1數據庫542數學23信息系統144操作系統635數據結構746數據處理27PASCAL語言64課程Course

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

第一范式(1NF,1normalform)

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

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

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

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

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

可簡記為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關系模式學生(學號,姓名,性別,年齡,所在系)的一個“值”第20頁,共49頁,2023年,2月20日,星期六3.關系數據庫

在關系模型中,實體以及實體間的聯系都是用關系來表示的。在一個給定的應用領域中,所有實體及實體之間聯系的關系的集合構成一個關系數據庫。關系數據庫的型和值關系數據庫的型(也稱為關系數據庫模式)

包括域的定義以及這些域上定義的若干關系模式的集合關系數據庫的值

關系模式集合在某一時刻對應的關系的集合第21頁,共49頁,2023年,2月20日,星期六2.3

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

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

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

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

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

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

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

元組t中相應于屬性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日,星期六

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

RUS={t|tRVtS)

2.差(Difference)

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

設關系R和關系S具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域,則可以定義并、差、交運算如下:第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專門的關系運算1.選擇(selection)

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

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

X1

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

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

選擇運算是從關系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關系Student例2:查詢信息系的名叫王名的學生Sname=‘王名’Sdept=‘IS’(Student)第36頁,共49頁,2023年,2月20日,星期六2.投影(projection)

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

其中A為R中的屬性列(設有K列)結果是包含K個列的關系,其它的列被刪除了。由于關系是集合,故結果中消除了重復的行。第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上度數相等且可比的屬性組。是比較運算符。連接運算從A和B的廣義笛卡爾積A×B中選取(R關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系的元組。

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

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

RS39第39頁,共49頁,2023年,2月20日,星期六自然連接操作示例RelationsR,S:AB12412CDaababB13123DaaabbERAB11112CDaaaabESRS第40頁,共49頁,2023年,2月20日,星期六4.除(division)給定關系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值的集合。當中首次出現了關于集合的比較。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

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

評論

0/150

提交評論