数据库系统原理教程_第1页
数据库系统原理教程_第2页
数据库系统原理教程_第3页
数据库系统原理教程_第4页
数据库系统原理教程_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理教程第一页,共四十九页,编辑于2023年,星期三应用数学方法来处理数据库数据关系模型的提出

70年代E.F.Codd(81年ACM图灵奖)关系数据库是目前最重要、最流行的数据库

Oracle,DB2,SQLServer,Sybase,Infomix,Ingres,Access,FoxPro,FoxBASE,MySQL…关系数据库的主流地位2第二页,共四十九页,编辑于2023年,星期三2.1

关系数据库概述关系数据库系统是支持关系模型的数据库系统关系模型的三个组成部分:关系数据结构关系操作集合完整性约束

3第三页,共四十九页,编辑于2023年,星期三1.单一的数据结构-表

“二维表”

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

set-at-a-timevs.record-at-time常用的关系操作:查询(选择、投影、连接、除、并、交、差)增加、删除、修改操作。第四页,共四十九页,编辑于2023年,星期三关系语言是一种高度非过程化的语言元组关系演算语言域关系演算语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言(如SQL)关系数据语言表达能力完全等价5第五页,共四十九页,编辑于2023年,星期三3.完整性约束

实体完整性参照完整性用户定义的完整性

由关系系统自动支持6第六页,共四十九页,编辑于2023年,星期三1.关系

1)域(Domain)

定义2.1:域是一组具有相同数据类型的值的集合。

例如,自然数、整数、实数、长度小于25字节的字符串集合、大于等于0且小于等于100的正整数等

2.2

关系数据结构7第七页,共四十九页,编辑于2023年,星期三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第八页,共四十九页,编辑于2023年,星期三例如给出三个域:

D1=导师集合SUPERVISOR={张清玫,刘逸}D2=专业集合SPECIALITY={计算机专业,信息专业}D3=研究生集合POSTGRADUATE={李勇,刘晨,王名}这对应一张二维表,表的行数则D1,D2,D3的笛卡尔积为D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王名),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王名),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王名)}第九页,共四十九页,编辑于2023年,星期三第十页,共四十九页,编辑于2023年,星期三

3)关系(relation)

定义2.3:D1×D2×…×Dn的子集称为在域D1,D2,…,Dn的关系,用R(D1,D2,…,Dn)表示。这里R表示关系的名字,n是关系的目或度(Degree)。当n=1时,称为单元关系;n=2时,称为二元关系。关系也是一个二维表

表的每行对应一个元组,表的每列对应一个域。为区别来自相同域的不同列,引入属性(attribute)11第十一页,共四十九页,编辑于2023年,星期三几个概念:候选码,主码,主属性,非码属性,全码关系的三种类型:基本关系(称为基本表或基表)查询表视图表

12第十二页,共四十九页,编辑于2023年,星期三学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王名女18MA95004张立男19IS学生Student

关系第十三页,共四十九页,编辑于2023年,星期三课程号Cno课程名Cname先行课Cpno学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64课程Course

关系第十四页,共四十九页,编辑于2023年,星期三学号Sno课程号Cno成绩Grade9500119295001285950013889500229095002380选修SC关系第十五页,共四十九页,编辑于2023年,星期三基本关系的性质:列是同质的不同的列可出自同一域,要给予不同的属性名列的顺序无所谓无相同元组行的顺序无所谓分量必须取原子值,即分量不可再分

第一范式(1NF,1normalform)

16第十六页,共四十九页,编辑于2023年,星期三这是一张具体的表,即关系是“值”!如何描述这张表的“型”呢?学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王名女18MA95004张立男19IS第十七页,共四十九页,编辑于2023年,星期三2.关系模式关系模式是对关系的描述

要描述二维表(关系)的结构,要回答以下一些问题:它由哪些属性构成?这些属性来自哪些域?属性与域之间的映象关系?同时,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。关系模式应当刻划出这些完整性约束条件。

如“Sage<30”,“所在系是存在的”18第十八页,共四十九页,编辑于2023年,星期三

定义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第十九页,共四十九页,编辑于2023年,星期三学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王名女18MA95004张立男19IS关系模式学生(学号,姓名,性别,年龄,所在系)的一个“值”第二十页,共四十九页,编辑于2023年,星期三3.关系数据库

在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型和值关系数据库的型(也称为关系数据库模式)

包括域的定义以及这些域上定义的若干关系模式的集合关系数据库的值

关系模式集合在某一时刻对应的关系的集合第二十一页,共四十九页,编辑于2023年,星期三2.3

关系的完整性1.实体完整性(entityintegrity)

实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

例如:选修(学号,课程号,成绩)

中的学号和课程号22第二十二页,共四十九页,编辑于2023年,星期三例:选修(学号,课程号,成绩)中的学号值应该“有效”,即要是学生(学号,姓名,性别,专业号,年龄)中确实存在的一个学号值!对课程号也有同样的约束条件。课程号学生关系选修关系课程关系学号专业号专业关系2.参照完整性(referentialintegrity)23第二十三页,共四十九页,编辑于2023年,星期三定义:

设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码ks相对应,则称F是基本关系R的外码(foreignkey),并称基本关系R为参照关系(ReferencingRelation),基本关系S为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。关系R和S不一定是不同的关系。如:学生2(学号,姓名,性别,专业号,年龄,班长)中的班长也为外码,被参照关系为学生2本身。24第二十四页,共四十九页,编辑于2023年,星期三参照完整性规则:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:.或者取空值(F的每个属性值均为空值):.或者等于S中某个元组的主码值25第二十五页,共四十九页,编辑于2023年,星期三3.用户定义的完整性(user-definedintegrity)不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在0~100之间等。关系模型应提供定义和检验这类完整性的机制,以使用统一的系统的方法处理它们,而不要由应用程序承担这一功能。26第二十六页,共四十九页,编辑于2023年,星期三2.4

关系代数(RelationalAlgebra)关系代数用对关系的运算来表达查询。按运算符的不同,分为两类:1.传统的集合运算(交、并、差、广义笛卡儿积)2.专门的关系运算(选择、投影、连接、除)

27第二十七页,共四十九页,编辑于2023年,星期三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几个记号第二十八页,共四十九页,编辑于2023年,星期三

传统的集合运算是二元运算,包括并、差、交、广义笛卡尔积四种运算。1.并(Union)

RUS={t|tRVtS)

2.差(Difference)

R-S={t|tRtS)RSRUSRR-SS2.4.1传统的集合运算

设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下:第二十九页,共四十九页,编辑于2023年,星期三3.交(Intersection)

RS={t|tRtS)

4.广义笛卡儿积(extendedCartesianproduct)

R×S={|tr

Rts

S)RS(trts第三十页,共四十九页,编辑于2023年,星期三并操作示例

RelationsR,S:RS:AB121AB23RSAB1213第三十一页,共四十九页,编辑于2023年,星期三差操作示例RelationsR,S:R–S:AB121AB23RSAB11第三十二页,共四十九页,编辑于2023年,星期三笛卡尔积操作示例RelationsR,S:Rx

S:AB12CD10102010EaabbAB11112222CD1019201010102010EaabbaabbRS第三十三页,共四十九页,编辑于2023年,星期三2.4.2专门的关系运算1.选择(selection)

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

其中F表示选择条件,它是一个逻辑表达式

X1

Y1[X2Y1]为比较运算符(=,,>,.<.)

为逻辑运算符(and),(or),(not)

选择运算是从关系R中选取使F为真的元组--从行的角度进行的运算第三十四页,共四十九页,编辑于2023年,星期三选择操作示例RelationRABCDA=B^D>5(R)ABCD123710第三十五页,共四十九页,编辑于2023年,星期三例1:查询信息系(IS系)全体学生Sdept=‘IS’(Student)

5=‘IS’(Student)

学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王名女18MA95004张立男19IS关系Student例2:查询信息系的名叫王名的学生Sname=‘王名’Sdept=‘IS’(Student)第三十六页,共四十九页,编辑于2023年,星期三2.投影(projection)

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

其中A为R中的属性列(设有K列)结果是包含K个列的关系,其它的列被删除了。由于关系是集合,故结果中消除了重复的行。第三十七页,共四十九页,编辑于2023年,星期三投影操作示例RelationRABC102030401112AC1112=AC112

A,C(R)第三十八页,共四十九页,编辑于2023年,星期三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第三十九页,共四十九页,编辑于2023年,星期三自然连接操作示例RelationsR,S:AB12412CDaababB13123DaaabbERAB11112CDaaaabESRS第四十页,共四十九页,编辑于2023年,星期三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第四十一页,共四十九页,编辑于2023年,星期三除法操作示例RelationsR,S:R

S:BA12AB12311134612RS第四十二页,共四十九页,编辑于2023年,星期三43第四十三页,共四十九页,编辑于2023年,星期三综合举例例1.查询至少选修1号课程和3号课程的学生号码。

Sno,Cno(SC)K

临时关系KCno13例2.查询选修了2号课程的学生的学号。

Sno(Cno=‘2’(SC))44第四十四页,共四十九页,编辑于2023年,星期三例3.查询至少选修了一门其直接先行课为6号课程的学生姓名。例4.查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论