第04章 关系模型和关系运算理论_第1页
第04章 关系模型和关系运算理论_第2页
第04章 关系模型和关系运算理论_第3页
第04章 关系模型和关系运算理论_第4页
第04章 关系模型和关系运算理论_第5页
已阅读5页,还剩186页未读 继续免费阅读

下载本文档

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

文档简介

1,第4章关系数据库,2,本章中的重要概念(1),(1)基本概念关系模型,关键代码(主键和外键),关系的定义和属性,三种类型的完整性规则,从er模型到关系模型的转换规则,过程语言和非过程语言。(2)关系代数的五个基本运算、四个组合运算和七个扩展运算。本章中的关键概念(2)和(3)原子公式的定义以及元组关系演算和域关系演算的公式。关系演算的安全性和等价性。(4)关系代数表达式等价和等价转换规则的优化以及初始化优化算法。(5)关系逻辑谓词、原子、规则和查询、规则的安全性以及使用规则来模拟关系代数表达式。本章首先介绍了关系模型的基本概念。然后介绍了关系运算的三种理论:关系代数、关系演算和关系逻辑。5、关系模型和关系运算理论,4.1关系模型的基本概念4.2关系代数4.3关系演算,6、4.1关系模型的基本概念,返回,系统而严格地提出关系模型的是美国IBM公司的E.F.Codd在1970年提出的关系数据模型E.F. Codd,“Arrelational AlmodelofDataForlargeSharedDataBanks”,CommunicationoftheACM,1970。之后,提出了关系代数和关系演算的概念。第一、第二和第三种关系范式是在1972年提出的。关系的BC范式是在1974年提出的。7.关系数据库简介。20世纪80年代以后,关系数据库系统成为最重要和最流行的数据库系统。8.介绍关系数据库,典型的实验系统系统,典型的商业系统,关系数据库系统是一个支持关系模型的数据库系统。关系数据结构是关系数据模型的组成部分。关系数据结构基于聚合关系完整性约束。10,1。关系数据结构、单一数据结构与现实世界相关的实体以及实体之间的各种关系都使用关系来表示数据的逻辑结构二维表。从用户的角度来看,关系模型中数据的逻辑结构是一个二维表。11,2。关系操作集,1)普通关系操作,2)关系操作的特征,3)关系数据语言的类型,4)关系数据语言的特征,12,关系操作集(续),1)普通关系操作查询选择、投影、连接、划分、并、交、差数据更新、插入、删除和修改的表达能力是最重要的部分,13,关系操作集(续),2)关系操作的特征集操作模式,即操作的对象和结果都是集合。非关系数据模型的数据操作模式:一次记录一个文件系统的数据操作模式,14,关系操作集(续),3)关系数据语言类型关系代数语言使用对关系的操作来表达查询需求典型代表:ISBL,15,关系操作集(续), 关系数据语言的类型(续)关系演算语言:用谓词表达查询要求的关系演算语言的谓词参数的基本对象是元组变量的典型表示:APL HA,QUL域关系演算语言的谓词参数的基本对象是域变量的典型表示:QBE是具有关系代数和关系演算双重特征的语言的典型表示:SQL,16,关系操作集(续)。 4)关系数据语言的特点关系语言是一种高度非过程性的语言访问路径选择。数据库管理系统的优化机制用于完成数据操作。用户可以将数据操作嵌入到高级语言中。关系代数、元组关系演算和领域关系演算这三种语言在表达能力上是完全等价的。17,3。关系的三种完整性约束。实体完整性通常由关系系统自动支持。早期的系统不支持引用完整性。目前,大规模系统可以自动支持用户定义的完整性,以反映应用领域中要遵循的约束。它反映了特定领域的语义约束。在.之后示例:整数实数在某个值范围的整数之间某个值范围的日期之间指定长度的字符串集 男性,女性 ,21,2。笛卡儿积,1)笛卡儿积给定一组定义域,D2 D1,Dn,这些域可以相同。D1的笛卡儿积,d2,Dn是:D1D2.DN=(D1,D2,DN) | Didi,I=1,2,所有域中所有值的组合不能重复,22,笛卡尔乘积(续)。给出了三个域作为例子:=SUPERVISOR=张, D2=SPECIALTY=计算机专业,信息专业 D3=Postgradate=李勇,刘晨,王敏 D3,的笛卡儿积,D3是:D1D2D3=(张,计算机专业,李勇),(张,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘毅,计算机专业,李计算机专业,刘晨),(刘一,计算机专业,王敏),(刘一,信息专业,李勇),(刘一,信息专业,刘晨),(刘一,信息专业,王敏),23,笛卡儿积(续),2)元组每个元素(d1,d2,dn)在笛卡儿积中称为n元组或简单的元组。3)笛卡尔乘积元素(d1,d2,dn)称为组件。如果di (I=1,2,n)是一个有限集合,它的基数是m1(I=1,2,n),则d1d2的基数m.dn是:在上面的例子中,基数223=12,即D1D2Dn有223=12个元组,25,笛卡尔乘积(续),5)笛卡尔乘积可以表示为二维表。表中的每一行对应一个元组,表中的每一列对应一个字段。在上面的例子中,12个元组可以被列成一个二维表,26,27,3。关系,1)关系D1D2Dn的子集.Dn被称为D2 D1域上的关系,dn,表示为R(D1、D2、关系名n:关系的目的或程度,28,关系(续),注:关系是笛卡尔乘积的有限子集。无限关系在数据库系统中毫无意义。由于笛卡尔乘积不满足交换定律,即(d1,d2,(d2,d1,dn)但该关系满足交换定律,即(d1,d2,di,dj,dn)=(d1,d2,dj,di,dn)(i,j=1,2,n)解决方案:在关系的每一列中添加一个属性名以取消关系元组的排序,29,关系(续),例如,在表2.1的笛卡儿积中,取出有意义的元组来构建关系关系:思爱普(SUPERVISOR,SPECIALITY,Postgradate)关系名,属性名假设:导师和专业:1:1,导师和研究生:1:n因此:思爱普关系可以包含三个元组(张,信息专业,李勇),(张,信息专业,刘晨),(刘一,信息王敏),30,关系(续),2)元组关系中的每个元素都是关系中的一个元组,通常用三个单位关系和二元关系来表示。当n=1时,这种关系称为单位关系。 当n=2时,该关系称为二进制关系。关系(续)和关系(4)的表示关系也是二维表,表的每一行对应一个元组,表的每一列对应一个字段。属性关系中的不同列可以对应于同一字段。为了区分它们,每个列都必须有一个名为attribute的名称。n项关系必须有n个属性。如果关系中属性组的值唯一标识一个元组,则该属性组被称为候选代码。在最简单的情况下,候选代码只包含一个属性。在最极端的情况下称为全键,关系模式的所有属性组都是该关系模式的候选码,称为全键、34、关系(续)、码(续)主码。如果一个关系有多个候选代码,则所选主键主代码的属性称为主属性。不包含在任何候选代码中的属性称为非关键属性)、35、35、关系(续)、7)三种关系基本关系(基本表或基本表)的实际存在是实际存储数据的逻辑表示。对应于查询表的查询结果的表视图表是从基本表或其他视图表中导出的。它是一个虚拟表,并不对应于实际存储的数据,36,8)基本关系的性质。(1)色谱柱是同质的。每列中的组件都是相同类型的数据,不同的列可以来自同一个字段。(2)同一字段中的每一列被称为具有不同属性的属性。必须给出不同的属性名,37。基本关系的性质(续)。在上面的例子中,只能给出两个字段:PERSON)=张、李勇、刘晨。王敏专业)=计算机专业。信息专业思爱普关系的导师属性和毕业生属性都取自人的领域。为了避免混淆,这两个属性必须被赋予不同的属性名,而不是直接使用域名。例如,名为SUPERVISOR-PERSONE(或SUPERVISOR)的:导师属性和名为PROGREST-PERSONE(或postgrade)的38属性、基本关系的性质(续)、3、列的顺序与列的顺序无关,遵循这种性质的数据库产品(如ORACLE)可以任意交换。当添加新属性时,它总是被插入到最后一列,但是也有许多关系数据库产品不遵循这个属性。例如,FoxPro仍然区分属性顺序,39,基本关系的性质(续),并且任何两个元组不能完全相同,这是由笛卡尔乘积的性质决定的,但是许多关系数据库产品不遵循这个性质。例如,甲骨文,富士康,等等。除非用户明确定义了相应的约束,否则它们都允许关系表中存在两个相同的元组。40,基本关系的性质(续),(5)行的顺序与行的顺序无关。遵循这种性质的数据库产品(如ORACLE)可以任意交换。当插入一个元组时,它总是被插入到最后一行,但是也有许多关系数据库产品不遵循这一特性。例如,FoxPro仍然区分元组的顺序,(41),基本关系的性质(续),以及(6)组件必须取原子值。每个组件必须是一个不可分割的数据项。这是最基本的规范条件之一,42,4.1.2关系模式,1。什么是关系模式2。定义关系模式3。关系模式和关系,43,1。什么是关系模式,关系模式是一种类型关系或值关系模式,它是一组描述关系的结构属性、一组域属性和构成属性的域属性之间的映射关系、域之间的元组语义以及一组完整性约束属性之间的数据依赖关系。44,2。定义一个关系模式,它可以被形式化地表达为:关系名U形成关系的属性名集D属性集U。属性集中的属性来自域dom属性到属性之间的数据依赖集的域映射集。45.定义关系模式(续)。示例:名导师和研究生来自同一个领域的人,采用不同的属性名称,并在模式中定义属性到领域的映射。也就是说,它们来自哪个领域:DOM(主管-人)=DOM(职位-人)=人,46。定义关系模式(续)。关系模式通常可以简单地写成R(U)或R(A1,A2,关系名A1,A2,属性名注释:域名和属性到域的映射通常被直接描述为属性类型,长度,47,3。关系模式和关系。关系模式描述关系。静态和稳定的关系模式描述了给定时刻关系的状态或内容。动态和时变的关系模式和关系通常被统称为由上下文区分的关系。48,4.1.3关系数据库,1。关系数据库,2。关系数据库的类型和值,49,1。关系数据库。在给定的应用领域中,所有实体和实体之间的关系集合形成一个50,2。关系数据库的类型和值。关系数据库也有类型和值。o型关系模型中有三种类型的完整性约束:实体完整性引用完整性用户定义的完整性实体完整性和引用完整性是关系模型必须满足的完整性约束。它们被称为关系的两个不变量,应该由关系系统自动支持。52,1。实体完整性,实体完整性规则(实体完整性)如果属性A是基本关系R的主要属性,则属性A不能取空值。例如,思爱普(SUPERVISOR,SPECIALITY,PROGRAMIST)研究生属性是主要代码(假设研究生不会有相同的名字),它不能接受空值。53、实体完整性(续)。关系模型必须遵守实体完整性规则(1)实体完整性规则的原因是为了基本关系。基本表通常对应于现实世界中的实体集或多对多关系。(2)现实世界中的实体和实体之间的联系是可区分的,即它们具有某种独特的标识。(3)相应地,主代码被用作关系模型中的唯一标识符。54,实体完整性(续),关系模型必须符合实体完整性规则的原因(续)(4)主代码中的属性,即主属性,不能为空。空值是“未知”或“无意义”的值。主属性的空值表示存在不可识别的实体,即不可识别的实体,这与点(2)不一致。因此,这个规则被称为实体完整性。55,实体完整性(续)。请注意,实体完整性规则规定基本关系的所有主要属性不能为空。对于选修课程(学生编号、课程编号、年级)“学生编号、课程编号”作为主要代码,两个属性都不能为空。56,2。参照完整性,1)。关系之间的引用2)。外部代码3)。参照完整性规则,57,1)。关系、实体和实体之间的关系之间的引用由关系模型中的关系来描述,因此关系和关系之间可能存在引用。示例1学生实体、专业实体和一对多联系学生(学生编号、姓名、性别、专业编号、年龄)专业(专业编号、专业名称)、58学生(学生编号、姓名、性别、专业编号、年龄)专业(专业编号、专业名称)、59关系参考(续)、示例2学生、课程、多对多联系学生(学生编号、姓名、性别、专业编号、年龄)课程(课程编

温馨提示

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

最新文档

评论

0/150

提交评论