第3章 关系数据库的基本理论.ppt
《第3章 关系数据库的基本理论.ppt》由会员分享,可在线阅读,更多相关《第3章 关系数据库的基本理论.ppt(62页珍藏版)》请在麦多课文档分享上搜索。
1、第3章 关系数据库的基本理论,冯万利,本章重要概念,(1) 基本概念关系数据模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。 (2 ) 关系代数五个基本操作,四个组合操作,七个扩充操作。 (3) 关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。,主要内容,3.1关系数据模型 3.1.1 关系模式 3.1.2 关系操作 3.2关系模型的完整性规则 3.2.1 关系的三类完整性约束 3.2.2 实体完整性 3.2.3 参照完整性 3.2.4 用户自定义完整性 3.3关系代数的基本运算 3.3.1 传统的集
2、合运算 3.3.2 专门的关系运算 3.3.3 关系代数表达式及其应用实例,*3.4关系演算 元组关系演算 域关系演算 3.5 查询优化 3.5.1 查询优化的一般策略 3.5.2 代数表达式的等价变换规则 3.5.3 优化算法,3.1关系数据模型,3.1.1 关系模式,每个关系都有一个模式,称为关系模式(Relation Schema),由一个关系名及它的所有属性名构成。 在关系模式中,字段称为属性,字段值称为属性值,记录类型称为关系模式。在图3.1中: 关系模式名是R 记录称为元组(tuple) 元组的集合称为关系(relation)或实例(instance) 一般用前面的大写英语字母A、
3、B、C、表示单个属性,用后面的大写字母、W、X、Y、Z表示属性集,用小写字母表示属性值。,数据库技术的术语 关系模型的术语,关系具有的特点, 关系(表)可以看成是由行和列交叉组成的二维表格。它表示的是一个实体集合。 表中一行称为一个元组,可用来表示实体集中的一个实体。 表中的列称为属性,给每一列起一个名称即属性名,表中的属性名不能相同。 列的取值范围称为域,同列具有相同的域,不同的列可有相同的域。 例如,SEX的取值范围是M(男),F(女),AGE为整数域。 表中任意两行(元组)不能相同。能惟一标识表中不同行的属性或属性组称为主键。,关系的性质,属性值是原子的,不可分解。 没有重复元组。 没有
4、行序。 理论上没有列序,但一般使用时都有列序。,关键码和表之间的联系,超键:在一个关系中,能惟一标识元组的属性或属性集称为关系的超键。 候选键:如果一个属性集能惟一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键。 主键:若一个关系中有多个候选键,则选其中的一个为关系的主键。 外键:若一个关系R中包含有另一个关系S的主键所对应的属性组F,则称F为R的外键。并称关系S为参照关系,关系R为依赖关系。,关系模式举例,例如,学生关系和系部关系分别为: 学生(SNO,SNAME,SEX,AGE,SDNO) 系部(SDNO,SDNAME,CHAIR) 学生关系的主键是SNO,系部关系的主键为
5、SDNO,在学生关系中,SDNO是它的外键。 更确切地说,SDNO是系部表的主键,将它作为外键放在学生表中,实现两个表之间的联系。 在关系数据库中,表与表之间的联系就是通过公共属性实现的。 我们约定,在主键的属性下面加下划线,在外键的属性下面加波浪线。,关系模式、关系子模式和存储模式,例3.1 下图是一个教学模型的实体联系图。实体类型“学生”的属性SNO、SNAME、SEX、AGE、SDEPT分别表示学生的学号、姓名、性别、年龄和学生所在系部;实体类型“课程”的属性CNO、CNAME、CDEPT、TNAME分别表示课程号、课程名、课程所属系和任课教师。学生用S表示,课程用C表示。S和C之间有M
6、:N的联系(一个学生可选多门课程,一门课程可以被多个学生选修),联系类型SC的属性成绩用GRADE表示。右图表示的实体联系图(ER图)。,关系模式是对关系的描述,它包括模式名,组成该关系的诸属性名、值域名和模式的集合。具体的关系称为实例。,关系模式,该图表示的学生情况的部分转换成相应的关系模式为: S(SNO,SNAME,SEX,AGE,SDPET)关系模式S描述了学生的数据结构,它是下表中学生实体的关系模式。其中SNO,CNO为关系SC的主键,SNO、CNO又分别为关系SC的两个外键。,学生关系实例如下表;选修关系实例如右表。,关系模式(9),课程关系实例如下表:,关系子模式,用户使用的数据
7、不直接来自关系模式中的数据,而是从若干关系模式中抽取满足一定条件的数据构成关系子模式。关系子模式是用户所需数据结构的描述,其中包括这些数据来自哪些模式和应满足哪些条件。 例3.2 用户需要用到成绩子模式G(SNO,SNAME,CNO,GRADE)。子模式G对应的数据来源于表S和表SC,构造时应满足它们的SNO值相等。子模式G的构造过程如下图所示。,关系子模式,一 一对应,描述关系是如何在物理存储设备上存储的。关系存储时的基本组织方式是文件。由于关系模式有键,因此存储一个关系可以用散列方法或索引方法实现。如果关系中元组数目较少(100以内),那么也可以用堆文件方式实现。此外,还可以对任意的属性集
8、建立辅助索引。,存储模式,关系模型中常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作。 查询操作又可以分为:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积等。 基本操作:选择、投影、并、差、笛卡尔积。 其他操作:可以用基本操作来定义和导出的。 关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称称为一次一集合(set-at-a-time)的方式。相应地,非关系数据模型的数据操作方式则为一次一纪录(
9、record-at-a-time)的方式。,3.1.2 关系操作,关系语言是一种高度非过程化的语言,用户不必请求DBA为其建立特殊的存取路径,存取路径的选择由RDBMS的优化机制来完成。,关系数据语言的分类,关系数据语言分为三类:关系代数、元组关系演算和域关系演算。该三种语言在表达能力上是完全等价的。,3.2 关系模型的完整性规则,主要内容,3.2.1 关系的三类完整性约束 3.2.2 实体完整性 3.2.3 参照完整性 3.2.4 用户定义完整性,关系模型的完整性规则,关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 实体完整性和参照完整性是关系模型必须满足的完整性约束
10、条件,被称作是关系的两个不变性,应该由关系系统自动支持。 用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,规则3.1 实体完整性(Entity Integrity)规则:若属性(指一个或一组属性)A是基本关系R的主属性。则A不能取空值。 例如: 在关系S(SNO,SNAME,SEX,AGE,SDPET)中,SNO这个属性为主码,则SNO不能取空值。,3.2.1 关系的三类完整性约束,实体完整性要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。,对于实体完整性规则几点说明, 实体完整性规则是针对基本关系而言的。一个基本关系
11、通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。 现实世界中的实体是可区分的,即它们具有某种唯一性标识。例如每个学生都是独立的个体,是不一样的。 关系模型中以主码作为唯一性标识。 主码中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第点相矛盾,因此这个规则称为实体完整性。,定义2.3 参照完整性规则的形式定义如下: 如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上述形式定义中,关系模式
12、R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。,参照完整性规则,由参照完整性建立了多表之间的对应关系,参照完整性规则举例,例2.1 下面各种情况说明了参照完整性规则在关系中如何实现的。 在关系数据库中有下列两个关系模式:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE) 据规则要求,关系SC中的S# 值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。 另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S# 值不允许空。,
13、设工厂数据库中有两个关系模式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D# ) 车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D# 值允许空。,参照完整性规则举例,参照完整性规则举例, 设课程之间有先修、后继联系。模式如下:R(C# ,CNAME,PC# ) 其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#.。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现。,
14、用户定义的完整性规则,在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在1530岁之间: CHECK(AGE BETWEEN 15 AND 30),3.3 关系代数的基本运算,主要内容,传统的集合运算 专门的关系运算 关系代数表达式及其应用实例,并(Union) 设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义如下: RSt | t
15、R tS,t是元组变量,R和S的元数相同。 差(Difference) 设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下: RS t | tR tS,R和S的元数相同。,传统的集合运算,举例,关系运算举例,交运算,交(intersection) 关系R和S的交是由属于R又属于S的元组构成的集合,记为RS,这里要求R和S定义在相同的关系模式上。形式定义如下: RSttR tS,R和S的元数相同。,例,R,S,R S,笛卡儿积运算,若R有m个元组,S有n个元组,则RS有mn个元组。,笛卡儿积(Cartesian Product)设关系R和S的元
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 基本理论 PPT
