数据库原理与应用-关系数据库理论_第1页
数据库原理与应用-关系数据库理论_第2页
数据库原理与应用-关系数据库理论_第3页
数据库原理与应用-关系数据库理论_第4页
数据库原理与应用-关系数据库理论_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

第三章

关系数据库理论回顾什么是数据库、数据库管理系统、数据库系统?数据库系统的三层结构、三级模式结构、两级映射、数据独立性在数据库系统中,对现实世界客观对象的抽象过程中,可建立哪三层模型?数据模型的三要素是什么?2回顾概念模型实体、属性、域、关键字、实体型、实体集、联系数据模型层次、网状、关系模型组成要素数据结构、数据操作、完整性约束3案例:教务管理在一个学校中,每个系(DEPT)分为若干个专业(SP),而每个专业只属于一个系。系与教师(TEACHER)、专业与学生(STUDENT)、专业与课程(COURSE)之间的联系也都类似。学生选修课程,每个学生可选多门课程、每门课程可由多个学生进修。学生选修课程后需要考试,得到一个成绩。4层次数据模型的数据结构

层次模型有且只有一个结点没有双亲结点,这个结点称为根结点根以外的其它结点有且只有一个双亲结点5例:层次数据模型6层次模型的优缺点优点层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多查询子女结点必须通过双亲结点层次命令趋于程序化7网状数据模型的数据结构

网状模型满足下面两个条件允许一个以上的结点无双亲;一个结点可以有多于一个的双亲。8例:网状数据模型9例:网状数据模型10网状模型的优缺点优点能够更为直接地描述现实世界,如一个结点可有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用11我们面对的数据12我们面对的数据13内容一、关系模型概述二、关系代数三、关系演算14关系模型概述系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式15关系数据结构关系模型建立在集合代数的基础上关系关系模式关系数据库:在某一应用领域中,所有实体集及实体之间联系所形成的关系的集合就构成了一个关系数据库。单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。16二维表17张山男19张山女19张山男20张山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20域(Domain)域是一组具有相同数据类型的值的集合。例如:整数实数介于某个取值范围的整数长度指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期18张山男19张山女19张山男20张山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20笛卡尔积(CartesianProduct)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。分量(Component)笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。19例:笛卡尔积设D1为学生集合={张山,李斯,王武};D2为性别集合={男,女};D3为年龄集合={19,20}请用二维表的形式表示D1×D2×D3张山男19张山女19张山男20张山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女2020笛卡尔积基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:21关系(Relation)满足一定语义的D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为

R(D1,D2,…,Dn)其中:R:关系名n:关系的目或度(Degree)22例:关系设D1为学生集合={张山,李斯,王武};

D2为性别集合={男,女};D3为年龄集合={19,20}请用二维表的形式表示关系:学生张山男19张山女19张山男20张山女20李斯男19李斯女19李斯男20李斯女20王武男19王武女19王武男20王武女20张山女19李斯男20王武男1923关系模型的相关概念实体属性域关键字(码)实体型实体集概念模型关系模型关系属性域候选键(码)关系模式关系实例24属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。25学生(学号,姓名,性别,年龄)候选键候选键(Candidatekey)关系中能唯一标志一个元组的最小属性集。例如:学生(学号,姓名,性别,年龄)26每一个关系都至少存在一个候选键。若一个关系有多个候选键,可选择其中的一个作为主键。包含候选键的属性集称为超键。若关系只有一个候选键,且这个候选键包含了关系的所有属性,称该候选键为全键。例:候选键课程C教员T参考书B选用章节物理李勇普通物理学1,2,3,4,7物理李勇光学原理2,3物理王军普通物理学1,2,3,4,8物理王军光学原理3数学刘勇数学分析1,2,3,4,7数学刘勇微分方程2,3数学刘勇高等代数3,4,7数学张平数学分析1,2,3,4,7数学张平微分方程2,3数学张平高等代数3,4,7计算数学张平数学分析1,2,3,4,5………………主属性(PrimeAttribute):构成候选码的每个属性称为主属性。不包含在任何候选键中的属性称为非主属性或非码属性。27例:学生选课学生实体和课程实体分别用关系“学生”和“课程”来表示,它们之间的联系用关系“选课”来表示。

学生(学号,姓名,性别,出生时间,所在系)

课程(课程编号,课程名,先修课程号)选课(学号,课程编号,成绩)28学生选课数据库实例29外键(ForeignKey,外码)若关系R的一个属性(集)F与关系S的主键Ks对应,即关系R中的某个元组的F上的分量值也是关系S中某个元组的Ks上的分量值,则称该属性(集)F为关系R的外键。R为参照关系(引用关系),S为被参照关系或目标关系。关系R和关系S可以是同一个关系。目标关系的主键Ks和参照关系R的外码F的命名可以不同,但必须定义在同一(或同一组)域上。30关系模式关系的描述称为关系模式

(RelationSchema)。

R(U,D,Dom,F)R:关系名U:组成该关系的属性集合D:属性组U中属性所来自的域Dom:属性向域的映像的集合F:属性间数据的依赖关系集合关系模式通常可以简记为 R(U)或R(A1,A2,…,An)31例:关系模式学生(学号,姓名,性别,年龄,民族,政治面貌)R:学生;U={学号,姓名,性别,年龄,民族,政治面貌}D={整数,字符串}dom(学号)=dom(年龄)=整数dom(姓名)=dom(性别)=dom(民族)=字符串dom(政治面貌)=字符串32关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系33关系的性质元组个数有限性元组的唯一性元组的次序无关性属性名唯一性属性的次序无关性元组分量的原子性分量值域同一性34关系的三类完整性约束实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持35关系的三类完整性约束36实体完整性实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值注意实体完整性规则规定基本关系的所有主属性都不能取空值例如:选修(学号,课程号,成绩)中“学号、课程号”为主码,则两个属性都不能取空值。37参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。38例:参照完整性规则学生(学号,姓名,性别,系编号,年龄)系(系编号,系名称,办公地点)学生关系中每个元组的“系编号”属性只取下面两类值:空值,表示尚未给该学生分配系非空值,这时该值必须是系关系中某个元组的“系编号”值,表示该学生不可能分配到一个不存在的系中39例:用户定义的完整性例: 课程(课程号,课程名,学分)“课程号”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3}40用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。41常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分42关系数据语言的种类关系代数语言

用对关系的运算来表达查询要求典型代表:ISBL关系演算语言:用谓词来表达查询要求元组关系演算语言域关系演算语言具有关系代数和关系演算双重特点的语言典型代表:SQL43关系代数一种抽象的查询语言,用对关系的运算来表达查询要求为关系模型操作提供了一个形式化的基础,可作为衡量另一种关系模型语言表达能力的尺度。用在RDBMS中,作为实现和优化查询的基础44关系代数的三个要素运算对象:代表关系的变量或代表关系实例的常量运算结果:关系运算符:传统的集合运算:在元组的粒度上运算,包括并、差、交、广义笛卡尔积专门的关系运算:可在元组与属性列的粒度上运算,包括投影、选择、连接、除(比较运算符、逻辑运算符)45关系代数的运算符46表示记号已知:R(A1,A2,…,An),若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分R,关系设为Rt

R,表示t是R的一个元组t[Ai],表示元组t中相应于属性Ai的一个分量

A,称为属性列或域列t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。47传统的集合运算R和S:具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域并运算(Union)R∪S

仍为n目关系,由属于R或属于S的元组组成

R∪S={t|t

R∨t

S}差运算(Difference)

R-S

仍为n目关系,由属于R而不属于S的所有元组组成

R-S={t|t

R∧t

S}交运算(Intersection)R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧t

S} R∩S=R–(R-S)48并运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

49差运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

50交运算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

51广义笛卡尔积R,n目关系,k1个元组S,m目关系,k2个元组R×S

列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={tr

ts|tr

R∧ts

S}元组的连接。是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。52广义笛卡尔积ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c153选择运算(Selection)在关系R中选择满足给定条件的诸元组

σF(R)={t|t

R∧F(t)='真'}F:选择条件,是一个逻辑表达式选择运算是从行的角度进行的运算σ54例:学生选课学号Sno姓名Sname性别Ssex年龄Sage系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS(a)Student课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学

23信息系统144操作系统635数据结构746数据处理

27PASCAL语言64(b)Course学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380(c)SC55例:选择运算查询信息系(IS系)全体学生

σSdept

='IS'(Student)SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS56例:选择运算查询年龄小于20岁的学生

σSage

<20(Student)SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS

57投影运算(Projection)从R中选择出若干属性列组成新的关系

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

R} A:R中的属性列

投影操作主要是从列的角度进行运算π58例:投影运算查询学生的姓名和所在系πSname,Sdept(Student)SnameSdept李勇CS刘晨IS王敏MA张立IS59例:投影运算查询学生关系Student中都有哪些系πSdept(Student)SdeptCSISMA60连接运算(Join)连接也称为θ连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组

RS={trts|tr

R∧ts

S∧tr[A]θts[B]}

AθB

AθBRS61两类常用连接运算等值连接,从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

RS={|tr

R∧ts

S∧tr[A]=ts[B]}自然连接,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。R

S={|tr

R∧ts

S∧tr[B]=ts[B]}A=Btrtstrts62例:连接运算

R

S和等值连接R

SABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSC<ER.B=S.B

63例:连接运算R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E64例:连接运算等值连接R

SR.B=S.BAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCEa1b153a1b267a2b3810a2b382自然连接R

S

65象集Z给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:

Zx={t[Z]|t

R,t[X]=x}

它表示R中属性组X上值为x的诸元组在Z上分量的集合。66例:象集ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSa1的象集为{(b1,c2),(b2,c3),(b2,c1)}a2的象集为{(b3,c7),(b2,c3)}a3的象集为{(b4,c6)}a4的象集为{(b6,c6)}67除运算(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|tr

R∧πY(S)

Yx} 68除运算除操作是同时从行和列角度进行运算

÷RS69例:除运算ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSR÷S=?{a1}R÷SAa170例:关系代数综合举例查询至少选修1号课程和3号课程的学生号码

温馨提示

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

评论

0/150

提交评论