[计算机软件及应用]第11章 关系数据库基本原理

上传人:tia****nde 文档编号:70677041 上传时间:2019-01-17 格式:PPT 页数:59 大小:584.81KB
返回 下载 相关 举报
[计算机软件及应用]第11章 关系数据库基本原理_第1页
第1页 / 共59页
[计算机软件及应用]第11章 关系数据库基本原理_第2页
第2页 / 共59页
[计算机软件及应用]第11章 关系数据库基本原理_第3页
第3页 / 共59页
[计算机软件及应用]第11章 关系数据库基本原理_第4页
第4页 / 共59页
[计算机软件及应用]第11章 关系数据库基本原理_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《[计算机软件及应用]第11章 关系数据库基本原理》由会员分享,可在线阅读,更多相关《[计算机软件及应用]第11章 关系数据库基本原理(59页珍藏版)》请在金锄头文库上搜索。

1、1,第11章 关系数据库基本原理,2,本章内容,11.1 关系运算 11.2 关系规范化 11.3 数据库的设计方法,3,11.1 关系运算,关系数据库基本概念 定义:关系数据库就是一些相关的二维表和其他数据库对象的集合。 在这个定义中明确,关系数据库中的所有信息都存储在二维表格中;一个关系数据库可能包含多个表;除了这种二维表外,关系数据库还包含一些其他对象,如视图等。 关系模型的基本概念: 1关系 一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。,4,2元组 二维表的每一行在关系中称为元组(Tuple)。一行描述了现实世界中的一个实体,或者描

2、述了不同实体间的一种联系。 3属性 二维表的每一列在关系中称为属性(Attribute),每个属性都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域。 4关键字 关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。,5,5外部关键字 如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键(Foreign Key)。在关系数据库中,用外部关键字表示两个表间的联系。,6,关系模型的完整性约束,实体完整性 所谓实体完整性,就是一个关系模型中的所有元组都是惟一的,没有

3、两个完全相同的元组,也就是一个二维表中没有两个完全相同行,也称为行完整性。 域完整性 域完整性就是对表中列数据的规范,也称列完整性,用于限制列的数据类型、格式以及取值范围。 参照完整性 当一个数据表中有外部关键字(即该列是另外一个表的关键字)时,外部关键字列的所有值,都必须出现在其所对应的表中,这就是参照完整性的含义 。 用户定义完整性,7,关系的数学定义 1集合 集合没有严格的形式定义,一般说来,集合是与某一研究过程相关的一类对象的整体,这些对象称为集合的元素。 2元组 几个元素组成的一个有序组称为一个元组,通常元组用圆括号括起来的一些元素表示,元素间使用逗号分隔。 例如(3,5,6)和(E

4、001,钱达理,男,东风路78号)是元组的例子。 在关系数据库中,可以把一个表的每一行看作一个元组。,8,3集合的笛卡尔乘积 设A1、A2、An为任意集合,A1、A2、An的笛卡尔乘积记做:A1A2An,并且定义D= A1A2An =(a1,a2,an)|aiAi,i=1,2,n,其中(a1,a2,an)是一个元组,它的每个元素ai取自对应的集合Ai。 例如,设A=1,2,B=a,b,则AB=(1,a),(1,b),(2,a),(2,b)。 4关系 关系是一个集合,其组成元素是元组而不是组成元组的元素。,9,关系运算 对二维表格进行运算的机制。 1并 设A、B同为n元关系,则A、B的并也是一个

5、n元关系,记作AB。 2交 设A、B同为n元关系,则A、B的交也是一个n元关系,记作AB。AB包含了所有同属于A、B的元组。 3差 设A、B同为n元关系,则A、B的差也是一个n元关系,记作A-B。A-B包含了所有属于A但不属于B的元组。,10,传统的集合运算,并 交 差 广义笛卡尔积,11,1. 并(Union),R和S 具有相同的属性个数 相应的属性取自同一个域 RS 由属于R或属于S的元组组成 RS = t|t Rt S ,12,并(续),R,S,RS,13,2. 交(Intersection),R和S 具有相同的属性个数 相应的属性取自同一个域 RS 由既属于R又属于S的元组组成 RS

6、= t|t Rt S ,14,交 (续),R,S,R S,交,15,3. 差(Difference),R和S 具有相同的属性个数 相应的属性取自同一个域 R - S 由属于R而不属于S的所有元组组成 R -S = t|tRtS ,16,差(续),R,S,R-S,17,4. 广义笛卡尔积(Extended Cartesian Product),R n目关系,k1个元组 S m目关系,k2个元组 RS 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组 RS = tr ts |tr R tsS ,18,广义笛卡尔积 (续),R,S,R S,1

7、9,专门的关系运算,选择 投影 连接 除,20,1. 选择(Selection),选择针对单个关系中的数据进行操作,属于一元运算符,是指从关系中选择若干行。 例如,可以使用选择操作符()从学生关系S中选择出那些年龄大于19岁的学生。该查询可以用如下的表达式来表示: Sage19(S) 查询表达式中的下标“Sage19”给出的是选择条件,只有符合该条件的元组才可以被返回到结果中。,21,1. 选择(续),22,1. 选择(续),选择操作符通过指定选择条件对某个关系进行查询,查询的结果产生了一个新的关系。 这两个关系具有相同的关系模式。 新关系是被操作关系中满足条件的元组,是被操作关系的一个子集。

8、,23,1. 选择(续),对关系R的选择操作记作: F(R) = t|tRF(t)= 真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。,24,2. 投影(Projection),投影操作()是指从关系中选择若干列。 例如,可以使用投影操作符()从学生关系S中找出所有学生的名字和年龄。该查询可以用如下的表达式来表示: Sname,Sage(S) 查询表达式中的下标“Sname, Sage”指出需要返回的列的名字,其他的列在结果关系中被去掉了。,25,2. 投影 (续),26,2.投影(续),对关系R的投影操作记作: A(

9、R) = tA | t R 其中A为R中需要保留的属性组,tA是从元组t生成的新元组,新元组是从元组t中去掉不包含在属性组A中的属性。,27,2.投影(续),关系代数表达式的运算结果总是一个关系。 既然这样,可以通过组合各种不同的关系表达式来定义新的关系 例如,假设想要找出年龄大于19岁的学生的名字和年龄,则可以将前面的两个查询组合起来,表达式如下: Sname,Sage(Sage19(S) 该查询首先在关系S上进行选择操作,然后再做投影操作。,28,3. 连接(Join),连接运算的含义 从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S 其中条件的一般形式是AB,= =,=, ,A

10、是关系R中的属性或者是一个常数,B是关系S中的属性或者是一个常数,A和B必须是同一个定义域(相同的类型)。还可以用逻辑运算符和上面的一般形式构成更复杂的条件。,29,3. 连接(续),两类常用连接运算 (1)等值连接(equijoin) 什么是等值连接 当条件AB中的为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,30,3. 连接(续),自然连接(Natural join) 什么是自然连接 自然连接是一种特殊的等值连接 它要求关系R中的属性A和关系S中的属性B名字相同 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B

11、,31,3. 连接(续),一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,32,3. 连接(续),等值连接举例,33,3. 连接(续),34,3. 连接(续),自然连接举例,35,11.2 关系规范化,引例:表2-2关系模型存在如下3方面的问题。 插入异常 删除异常 数据冗余与更新异常,表 2-2 一个不好的关系模式,36,要解决上述3个问题,需要把表2-2进行分解,表中前3列独立建立一个表,指定供应商代码作为关键字,并删除相同的行;后3列独立,引入供应商代码列作为外键,并增加一个订货日期列,供应商代码和订货日期的组合作为第2个表的关键字。经过

12、这样处理后,上述异常问题就完全解决了。,37,函数依赖的基本概念 定义1 设RR(A1,A2,An)是一个关系模式(A1,A2,An是R的属性),X A1,A2,An ,Y A1,A2,An ,即X和Y是R的属性子集,T1、T2是R的两个任意元组,即T1T1(A1,A2,An),T2T2(A1,A2,An),如果当T1(X)T2(X)成立时,总有T1(Y)T2(Y),则称X决定Y,或称Y函数依赖于X。记为:XY。,38,定义2 R,X,Y如定义1所设,如果XY成立,但对X的任意真子集X1,都有X1Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。 定义3 设X,Y,Z是关系模式R的不

13、同属性集,若XY(并且YX不成立),YZ,称X传递决定Z,或称Z传递函数依赖于X。,39,1. 主属性与非主属性 候选关键属性和关键属性 定义4 设关系模式R(A1,A2,An),A1,A2,An是R的属性,X是R的一个属性集,如果 X(A1,A2,An), 对于X的任意真子集X1,X1(A1,A2,An)都不成立, 则称属性集X是关系模式R的一个候选关键属性。 如果关系模式R只有一个候选关键属性,称这惟一的候选关键属性为关键属性,否则,应从多个候选关键属性中指定一个作为关键属性。 习惯上把候选关键属性称为候选关键字,关键属性称为关键字。 主属性和非主属性 定义5 设Ai是关系模式R的一个属性

14、,若Ai属于R的某个候选关键属性,称Ai是R的主属性,否则,称Ai为非主属性。,40,2. 第1范式 对关系模式的规范化要求分成从低到高不同的层次,分别称为第1范式、第2范式、第3范式、Boyce-Codd范式、第4范式和第5范式。 定义6 当关系模式R的所有属性都不能分解为更基本的数据单位时,称R是满足第1范式的,简记为1NF。 例如,如果关于员工的关系中有一个工资属性,而工资又由更基本的两个数据项基本工资和岗位工资组成,则这个员工的关系模式就不满足1NF。,41,3. 第2范式 定义7 如果关系模式R满足第1范式,并且R的所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第2范式,简

15、记为2NF。 4. 第3范式 定义8 设R是一个满足第1范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第3范式,简记为3NF。 定理 若关系模式R符合3NF条件,则R一定符合2NF条件。,42,5. Boyce-Codd范式 定义9 设R是一个关系模式,若R的每一个函数依赖关系的左部都是R的一个候选关键字,称R满足Boyce-Codd范式,简记为BCNF。 可以证明,BCNF是比3NF更强的规范(证明略),即符合BCNF条件的关系模式一定符合3NF条件,但反过来却不成立。,43,关系的分解 1. 关系模式分解的一般问题 所谓关系模式的分解,就是对原有

16、关系在不同的属性上进行投影,从而将原有关系分解为两个或两个以上的含有较少属性的多个关系。 2. 3NF分解 (1)如果R不满足1NF条件,先对其分解,使其满足1NF。 对R进行1NF分解的方法不是采用投影,而是直接将其复合属性进行分解,用分解后的基本属性集取代原来的属性,以获得1NF。,44,例2-3 将R(员工号,姓名,工资)进行分解,使其满足1NF条件。 假定R的工资属性由基本工资和岗位工资组成,直接用属性集(基本工资,岗位工资)取代工资属性,得到新关系R_NEW(员工号,姓名,基本工资,岗位工资),R_NEW满足1NF。 (2)R符合1NF条件但不符合2NF条件时,分解R使其满足2NF。,45,11.3 数据库的设计方法,数据库设计过程 数据库设计过程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号