资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
*1第2章关系数据库基本原理n 1*2本章内容n 2.1关系数据库基本概述n 2.2关系代数的基本原理n 2.3关系模式的分解n 2.4关系模型的完整性约束n 2.5数据库的设计方法n 2*32.1关系数据库概述n关系数据库所谓关系数据库,其数据组织的逻辑结构一定是采用关系数据模型,即使用二维表格方式描述实体及其相互间的关系,然后把这种逻辑关系采用一定方式向物理结构映射,并存储在某种设备上。作为数据库应用的开发人员,一般只把焦点集中在数据的逻辑结构上,数据的逻辑结构向物理结构的映射,是数据库管理系统自动完成的。部门编 号部门名称员工编号员工姓名性别住址D001总经 理办E001钱达理男东风 路78号D001总经 理办E002东方牧男五一北路25号D002市场部E003郭文斌男公司集体宿舍D003销售部E004肖海燕女公司集体宿舍D004仓储 部E005张明华男韶山北路55号表2-1 关系模型示例n 关系数据模型 数据模型的任务是描述现实世界中的实体及其联系。关系数据模型就是采用一个有序数组描述实体及其属性,用这种有序数组的集合描述一个实体集合,而采用定义在两个集合上的关系反映不同实体间的联系。n 3*4*52.1关系数据库概述2元组二维表的每一行在关系中称为元组(Tuple)。一行描述了现实世界中的一个实体,或者描述了不同实体间的一种联系。3属性二维表的每一列在关系中称为属性(Attribute),每个属性都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域。4关键字关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。关键字又称为键或码(Key)。n 5*62.1关系数据库概述5外部关键字如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键(ForeignKey)。在关系数据库中,用外部关键字表示两个表间的联系。n 6*72.1关系数据库概述n 关系数据库基本特征有坚实的理论基础数据结构简单、易于理解对用户提供了较全面的操作支持得到了众多开发商的支持n 7*82.2关系代数的基本原理关系数据库的理论基础是集合论中的关系,本节使用数学语言对关系进行形式描述。本节的内容很抽象,但它是理解关系数据模型的基础。n 关系的数学定义1集合集合没有严格的形式定义,一般说来,集合是与某一研究过程相关的一类对象的整体,这些对象称为集合的元素。2元组几个元素组成的一个有序组称为一个元组,通常元组用圆括号括起来的一些元素表示,元素间使用逗号分隔。例如(3,5,6)和(E001,钱达理,男,东风路78号)是元组的例子。在关系数据库中,可以把一个表的每一行看作一个元组。n 8*92.2关系代数的基本原理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关系关系是一个集合,其组成元素是元组而不是组成元组的元素。n 9*102.2关系代数的基本原理n 关系运算一种数据模型既要提供描述现实世界的数据结构,也要提供提供对数据的操作运算手段。在关系数据库中就是要提供对二维表格进行运算的机制。1并设A、B同为n元关系,则A、B的并也是一个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的元组。n 10*112.2关系代数的基本原理例2-1设A=(湖南,长沙),(河北,石家庄),(陕西,西安),B=(湖北,武汉),(广东,广州),(广东,深圳),(陕西,西安),求AB、AB、A-B。显然,A、B是表示城市和所在省的关系。AB=(湖南,长沙),(河北,石家庄),(陕西,西安),(湖北,武汉),(广东,广州),(广东,深圳)AB=(陕西,西安)A-B=(湖南,长沙),(河北,石家庄)n 11*122.2关系代数的基本原理4连接设A是一个包含m个元组的k1元关系,B是一个包含n个元组的k2元关系,则A、B的连接是一个包含mn个元组的k1+k2元关系,记作AB。5投影设R=R(A1,A2,An)是一个n元关系,i1,i2,im是1,2,n的一个子集,并且i1i2im,定义:称(R)是R在上的一个投影。6选择设R=(a1,a2,an)是一个n元关系,S是关于(a1,a2,an)的一个条件,R中所有满足S条件的元组组成的子关系S(R),称为R的一个选择。n 12*132.2关系代数的基本原理例2-2设R1=R1(姓名,性别)=(钱达理,男),(东方牧,男),R2=R2(所在单位,住址)=(总经理办,东风路78号),(销售部,五一北路25号),求(1)R=R1R2。(2)R在(姓名,所在单位,住址)的投影。(3)根据表2-1,求R关系的一个选择。解:(1)R=(钱达理,男,总经理办,东风路78号),(钱达理,男,销售部,五一北路25号),(东方牧,男,总经理办,东风路78号),(东方牧,男,销售部,五一北路25号)。R是一个包含4个元组的4元关系。(2)根据投影的定义,只需对上面得到的R关系的每个元组删掉性别属性即可,所以(R)=(钱达理,总经理办,东风路78号),(钱达理,销售部,五一北路25号),(东方牧,总经理办,东风路78号),(东方牧,销售部,五一北路25号)(3)根据表2-1,钱达理是总经理办的,住在东风路78号,东方牧也是总经理办的,住在五一北路25号,R关系中只有一个元组反映的情况正确,其余元组数据错误,应删掉,根据该条件(即符合表2-1的描述)所得到的一个选择是:R(S)=(钱达理,总经理办,东风路78号)n 13*14 设计数据库重要的环节是设计一个二维表的表头及其约束条件,也就是其关系模式,设计过程中既要考虑所提供的信息能否全面支持应用系统所要求的功能,也要考虑处理数据的方便,更能快速的进行信息的删除、插入、更新等操作。2.3关系模式的分解n 引例:表2-2关系模型存在如下3方面的问题。插入异常删除异常数据冗余与更新异常供应商代码供应商名称联系人商品名称订货 数量单价S001 华科电子有限公司施宾彬笔记本计算机109800.00S001 华科电子有限公司施宾彬激光打印机52800.00S002 湘江计算机外设公司方胜力笔记本计算机510200.00S003 韦力电子实业公司周昌 喷墨打印机5480.00S003 韦力电子实业公司周昌 交换机28500.00表 2-2 一个不好的关系模式n 14*152.3关系模式的分解要解决上述3个问题,需要把表2-2进行分解,表中前3列独立建立一个表,指定供应商代码作为关键字,并删除相同的行;后3列独立,引入供应商代码列作为外键,并增加一个订货日期列,供应商代码和订货日期的组合作为第2个表的关键字。经过这样处理后,上述异常问题就完全解决了。n 15*162.3关系模式的分解n函数依赖的基本概念定义1:设一个关系为R(U),X和Y为属性集U上的子集,若对于X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,记作XY,称X为决定因素。例如:设一个职工关系为(职工号,姓名,性别,年龄,职务),职工号用来标识每个职工,选作为该关系的主码。对于该关系中每个职工的职工号,都对应着姓名属性中的唯一值,即该职工的姓名,或者说一个职工的姓名由其职工号唯一确定,所以称职工号函数决定姓名,或称姓名函数依赖于职工号,记作“职工号姓名”,职工号为该函数依赖的决定因素。同理,当一名职工的职工号被确定之后,它所对应的性别、年龄、职务等属性值就被唯一确定下来了,所以职工号函数决定性别、年龄、职务等描述职工特征的每个属性,可以分别记作为“职工号性别”、“职工号年龄”、“职工号职务”。n 16*172.3关系模式的分解定义2:设一个关系为R(U),X和Y为属性集U上的子集,若存在XY,同时X的一个真子集X也能够函数决定Y,即存在XY,则称XY的函数依赖为部分函数依赖,或者说,X部分函数决定Y,Y部分函数依赖于X;否则若在X中不存在一个真子集X,使得X也能够函数决定Y,则称X完全函数决定Y,或Y完全函数依赖于X。XY的部分函数依赖也称为局部函数依赖。n 17*182.3关系模式的分解例如:在上面介绍的职工关系中,职工号同其他每个属性之间的函数依赖都是完全函数依赖,因为职工号是一个单属性决定因素,它不可能再包含其他任何属性,也就不可能存在真子集函数决定其他每个属性的情况存在。另外,如“(职工号,性别)”的值虽然能够函数决定相应职工的年龄,但其中的真子集职工号就能够函数决定其年龄,所以(职工号,性别)到年龄之间的函数依赖为部分函数依赖。即在“(职工号,性别)年龄”的函数依赖中存在着“职工号年龄”的函数依赖。定义3设X,Y,Z是关系模式R的不同属性集,若XY(并且YX不成立),YZ,称X传递决定Z,或称Z传递函数依赖于X。n 18*192.3关系模式的分解n关系的规范化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的一个属性,若Ai属于R的某个候选关键属性,称Ai是R的主属性,否则,称Ai为非主属性。n 19*202.3关系模式的分解2.第1范式对关系模式的规范化要求分成从低到高不同的层次,分别称为第1范式、第2范式、第3范式、Boyce-Codd范式、第4范式和第5范式。定义6当关系模式R的所有属性都不能分解为更基本的数据单位时,称R是满足第1范式的,简记为1NF。例如,如果关于员工的关系中有一个工资属性,而工资又由更基本的两个数据项基本工资和岗位工资组成,则这个员工的关系模式就不满足1NF。满足第1范式的关系模式还会存在插入、删除、修改异常的现象,要消除这些异常,还要满足更高层次的规范化要求。n 20*212.3关系模式的分解3.第2范式定义7如果关系模式R满足第1范式,并且R的所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第2范式,简记为2NF。R=R(读者编号,工作单位,图书编号,借阅日期,归还日期)满足1范式如果进一步假设,每个读者只能借阅同一种书号的图书一次,(读者编号,图书编号)就是一个一个候选关键属性,则“工作单位”部分函数依赖于该候选关键属性。不满足2范式,更新异常。4.第3范式定义8设R是一个满足第1范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第3范式,简记为3NF。定理若关系模式R符合3NF条件,则R一定符合2NF条件。n 21*222.3关系模式的分解5.Boyce-Codd范式定义9设R是一个关系模式,若R的每一个函数依赖关系的左部都是R的一个候选关键字,称R满足Boyce-Codd范式,简记为BCNF。可以证明,BCNF是比3NF更强的规范(证明略),即符合BCNF条件的关系模式一定符合3NF条件,但反过来却不成立。n 22*232.3关系模式的分解n 关系的分解1.关系模式分解的一般问题所谓关系模式的分解,就是对原有关系在不同的属性上进行投影,从而将原有关系分解为两个或两个以上的含有较少属性的多个关系。2.3NF分解(1)如果R不满足1N
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号