收藏 分销(赏)

计算机软件及应用关系数据库基本原理.pptx

上传人:a199****6536 文档编号:11038358 上传时间:2025-06-26 格式:PPTX 页数:58 大小:340.13KB 下载积分:14 金币
下载 相关 举报
计算机软件及应用关系数据库基本原理.pptx_第1页
第1页 / 共58页
计算机软件及应用关系数据库基本原理.pptx_第2页
第2页 / 共58页


点击查看更多>>
资源描述
,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,1,本章内容,11.1,关系运算,11.2,关系规范化,11.3,数据库的设计方法,2,11.1,关系运算,关系数据库基本概念,定义:,关系数据库就是一些相关的二维表和其他数据库对象的集合,。,在这个定义中明确,关系数据库中的所有信息都存储在二维表格中;一个关系数据库可能包含多个表;除了这种二维表外,关系数据库还包含一些其他对象,如视图等。,关系模型的基本概念,:,1,关系,一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名,。,3,2,元组,二维表的每一行在关系中称为元组,(Tuple),。一行描述了现实世界中的一个实体,或者描述了不同实体间的一种联系。,3,属性,二维表的每一列在关系中称为属性,(Attribute),,每个属性都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域,。,4,关键字,关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。关键字又称为键或码,(Key),。,4,5,外部关键字,如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键,(Foreign Key),。在关系数据库中,用外部关键字表示两个表间的联系,。,5,关系模型的完整性约束,实体完整性,所谓实体完整性,就是一个关系模型中的所有元组都是惟一的,没有两个完全相同的元组,也就是一个二维表中没有两个完全相同行,也称为行完整性,。,域完整性,域完整性就是对表中列数据的规范,也称列完整性,用于限制列的数据类型、格式以及取值范围,。,参照完整性,当一个数据表中有外部关键字,(,即该列是另外一个表的关键字,),时,外部关键字列的所有值,都必须出现在其所对应的表中,,这就是参照完整性的含义。,用户定义完整性,6,关系的数学定义,1,集合,集合没有严格的形式定义,一般说来,集合是与某一研究过程相关的一类对象的整体,这些对象称为集合的元素。,2,元组,几个元素组成的一个有序组称为一个元组,通常元组用圆括号括起来的一些元素表示,元素间使用逗号分隔。,例如,(3,,,5,,,6),和,(E001,钱达理,男,东风路,78,号,),是元组的例子。,在关系数据库中,可以把一个表的每一行看作一个元组。,7,3,集合的笛卡尔乘积,设,A1,、,A2,、,、,An,为任意集合,,A1,、,A2,、,、,An,的笛卡尔乘积记做:,A1A2,An,并且定义,D=A1A2,An=(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,关系,关系是一个集合,其组成元素是元组而不是组成元组的元素。,8,关系运算,对二维表格进行运算的机制。,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,的元组。,9,传统的集合运算,并,交,差,广义笛卡尔积,10,1.,并(,Union,),R,和,S,具有相同的属性个数,相应的属性取自同一个域,R,S,由属于,R,或属于,S,的元组组成,R,S,=,t,|,t,R,t,S,11,并,(,续,),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,12,2.,交(,Intersection,),R,和,S,具有相同的属性个数,相应的属性取自同一个域,R,S,由既属于,R,又属于,S,的元组组成,R,S,=,t,|,t,R,t,S,13,交,(,续,),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,交,14,3.,差(,Difference,),R,和,S,具有相同的属性个数,相应的属性取自同一个域,R-S,由属于,R,而不属于,S,的所有元组组成,R,-,S,=,t,|,t,R,t,S,15,差,(,续,),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,-,S,16,4.,广义笛卡尔积(,Extended Cartesian Product,),R,n,目关系,,k,1,个元组,S,m,目关系,,k,2,个元组,R,S,列:(,n,+,m,)列的元组的集合,元组的前,n,列是关系,R,的一个元组,后,m,列是关系,S,的一个元组,行:,k,1,k,2,个元组,R,S,=,t,r,t,s,|,t,r,R,t,s,S,17,广义笛卡尔积,(,续,),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,a1,b1,c1,a1,b1,c1,a1,b2,c2,a1,b2,c2,a1,b2,c2,a2,b2,c1,a2,b2,c1,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,18,专门的关系运算,选择,投影,连接,除,19,1.,选择(,Selection,),选择针对单个关系中的数据进行操作,属于一元运算符,是指从关系中选择若干行。,例如,可以使用选择操作符(,)从学生关系,S,中选择出那些年龄大于,19,岁的学生。该查询可以用如下的表达式来表示:,Sage19,(S),查询表达式中的下标“,Sage19”,给出的是选择条件,只有符合该条件的元组才可以被返回到结果中。,20,1.,选择,(,续,),21,1.,选择,(,续,),选择操作符,通过指定选择条件对某个关系进行查询,查询的结果产生了一个新的关系。,这两个关系具有相同的关系模式。,新关系是被操作关系中满足条件的元组,是被操作关系的一个子集。,22,1.,选择,(,续,),对关系,R,的选择操作记作:,F,(,R,)=,t,|,t,R,F,(,t,)=,真,其中,F,表示选择条件,它是一个逻辑表达式,取逻辑值,“,真,”,或,“,假,”,。选择运算实际上是从关系,R,中选取使逻辑表达式,F,为真的元组。,23,2.,投影(,Projection,),投影操作(,)是指从关系中选择若干列。,例如,可以使用投影操作符(,)从学生关系,S,中找出所有学生的名字和年龄。该查询可以用如下的表达式来表示:,Sname,Sage,(S),查询表达式中的下标,“,Sname,Sage,”,指出需要返回的列的名字,其他的列在结果关系中被去掉了。,24,2.,投影,(,续,),25,2.,投影(续),对关系,R,的投影操作记作:,A,(,R,)=,t,A,|,t,R,其中,A,为,R,中需要保留的属性组,,t,A,是从元组,t,生成的新元组,新元组是从元组,t,中去掉不包含在属性组,A,中的属性。,26,2.,投影(续),关系代数表达式的运算结果总是一个关系。,既然这样,可以通过组合各种不同的关系表达式来定义新的关系,例如,假设想要找出年龄大于,19,岁的学生的名字和年龄,则可以将前面的两个查询组合起来,表达式如下:,Sname,Sage,(,Sage19,(S),该查询首先在关系,S,上进行选择操作,然后再做投影操作。,27,3.,连接(,Join,),连接运算的含义,从两个关系的笛卡尔积中选取属性间满足一定条件的元组,R S,其中条件的一般形式是,AB,,,=,,,,,=,,,,,=,,,,,A,是关系,R,中的属性或者是一个常数,,B,是关系,S,中的属性或者是一个常数,,A,和,B,必须是同一个定义域(相同的类型)。还可以用逻辑运算符和上面的一般形式构成更复杂的条件。,条件,28,3.,连接,(,续,),两类常用连接运算,(,1,)等值连接(,equijoin,),什么是等值连接,当条件,AB,中的,为,“,”,的连接运算称为等值连接,等值连接的含义,从关系,R,与,S,的广义笛卡尔积中选取,A,、,B,属性值相等的那些元组,29,3.,连接,(,续,),自然连接(,Natural join,),什么是自然连接,自然连接是一种特殊的等值连接,它要求关系,R,中的属性,A,和关系,S,中的属性,B,名字相同,在结果中把重复的属性列去掉,自然连接的含义,R,和,S,具有相同的属性组,B,30,3.,连接,(,续,),一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,31,3.,连接,(,续,),等值连接举例,32,3.,连接,(,续,),33,3.,连接,(,续,),自然连接举例,34,11.2,关系规范化,引例:表,2-2,关系模型存在如下,3,方面的问题。,插入异常,删除异常,数据冗余与更新异常,供应商代码,供应商名称,联系人,商品名称,订货数量,单价,S001,华科电子有限公司,施宾彬,笔记本计算机,10,9800.00,S001,华科电子有限公司,施宾彬,激光打印机,5,2800.00,S002,湘江计算机外设公司,方胜力,笔记本计算机,5,10200.00,S003,韦力电子实业公司,周昌,喷墨打印机,5,480.00,S003,韦力电子实业公司,周昌,交换机,2,8500.00,表,2-2,一个不好的关系模式,35,要解决上述,3,个问题,需要把表,2-2,进行分解,表中前,3,列独立建立一个表,指定供应商代码作为关键字,并删除相同的行;后,3,列独立,引入供应商代码列作为外键,并增加一个订货日期列,供应商代码和订货日期的组合作为第,2,个表的关键字。经过这样处理后,上述异常问题就完全解决了。,36,函数依赖的基本概念,定义,1,设,R,R(A1,A2,An),是一个关系模式,(A1,A2,An,是,R,的属性,),,,X A1,A2,An,,,Y A1,A2,An,,即,X,和,Y,是,R,的属性子集,,T1,、,T2,是,R,的两个任意元组,即,T1,T1(A1,A2,An),,,T2,T2(A1,A2,An),,如果当,T1(X),T2(X),成立时,总有,T1(Y),T2(Y),,则称,X,决定,Y,,或称,Y,函数依赖于,X,。记为:,XY,。,37,定义,2,R,,,X,,,Y,如定义,1,所设,如果,XY,成立,但对,X,的任意真子集,X1,,都有,X1Y,不成立,称,Y,完全函数依赖于,X,,否则,称,Y,部分函数依赖于,X,。,定义,3,设,X,,,Y,,,Z,是关系模式,R,的不同属性集,若,XY(,并且,YX,不成立,),,,YZ,,称,X,传递决定,Z,,或称,Z,传递函数依赖于,X,。,38,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,为非主属性。,39,2.,第,1,范式,对关系模式的规范化要求分成从低到高不同的层次,分别称为,第,1,范式、第,2,范式、第,3,范式、,Boyce-Codd,范式、第,4,范式和第,5,范式,。,定义,6,当关系模式,R,的所有属性都不能分解为更基本的数据单位时,称,R,是满足第,1,范式的,简记为,1NF,。,例如,如果关于员工的关系中有一个工资属性,而工资又由更基本的两个数据项基本工资和岗位工资组成,则这个员工的关系模式就不满足,1NF,。,40,3.,第,2,范式,定义,7,如果关系模式,R,满足第,1,范式,并且,R,的所有非主属性都完全依赖于,R,的每一个候选关键属性,称,R,满足第,2,范式,简记为,2NF,。,4.,第,3,范式,定义,8,设,R,是一个满足第,1,范式条件的关系模式,,X,是,R,的任意属性集,如果,X,非传递依赖于,R,的任意一个候选关键字,称,R,满足第,3,范式,简记为,3NF,。,定理,若关系模式,R,符合,3NF,条件,则,R,一定符合,2NF,条件,。,41,5.Boyce-Codd,范式,定义,9,设,R,是一个关系模式,若,R,的每一个函数依赖关系的左部都是,R,的一个候选关键字,称,R,满足,Boyce-Codd,范式,简记为,BCNF,。,可以证明,,BCNF,是比,3NF,更强的规范,(,证明略,),,即符合,BCNF,条件的关系模式一定符合,3NF,条件,但反过来却不成立。,42,关系的分解,1.,关系模式分解的一般问题,所谓关系模式的分解,就是对原有关系在不同的属性上进行投影,从而将原有关系分解为两个或两个以上的含有较少属性的多个关系。,2.3NF,分解,(1),如果,R,不满足,1NF,条件,先对其分解,使其满足,1NF,。,对,R,进行,1NF,分解的方法不是采用投影,而是直接将其复合属性进行分解,用分解后的基本属性集取代原来的属性,以获得,1NF,。,43,例,2-3,将,R(,员工号,姓名,工资,),进行分解,使其满足,1NF,条件。,假定,R,的工资属性由基本工资和岗位工资组成,直接用属性集,(,基本工资,岗位工资,),取代工资属性,得到新关系,R_NEW(,员工号,姓名,基本工资,岗位工资,),,,R_NEW,满足,1NF,。,(2)R,符合,1NF,条件但不符合,2NF,条件时,分解,R,使其满足,2NF,。,44,11.3,数据库的设计方法,数据库设计过程,数据库设计过程一般包括:,(1),需求分析,(2),概念设计,(3),逻辑设计,(4),物理设计,(5),实施与维护,45,E-R,模型及其到关系模型的转化,E,-,R,模型,关系模型,对问题进行分析,转化,图,2-2 E-R,模型到关系模型的转化过程,1,独立实体到关系模型的转化,一个独立实体转化为一个关系模型,(,即一张关系表,),,实体码转化为关系表的关键属性,其他属性转化为关系表的属性,注意根据实际对象属性情况确定关系属性的取值域。,46,例:例如对于图,2-3,所示的学生实体,应将其转化为关系:,学生,(,学号,姓名,民族,籍贯,),其中下划线标注的属性表示关键字。,学 生,学 号,民 族,籍 贯,姓 名,图,2-3,学生实体的,E-R,图,47,2,1:1,联系到关系模型的转化,1,1,经 理,公 司,领 导,姓 名,住 址,出生年月,电 话,民 族,名 称,电 话,类 型,注册地,图,2-4 1:1,联系到关系模型的转化,48,对图,2-4,模型转化为关系模型:,经理,(,姓名,民族,住址,出生年月,电话,名称,),公司,(,名称,注册地,类型,电话,姓名,),其中名称和姓名分别是,“,公司,”,和,“,经理,”,两个关系模式的关键字,在,“,经理,”,和,“,公司,”,两个关系中,为了表明两者间的联系,各自增加了对方的关键字作为外部关键字,49,3,1:n,联系到关系模型的转化,要转化,1:n,联系,需要在,n,方,(,即,1,对多关系的多方,),实体表中增加一个属性,将对方的关键字作为外部关键字处理即可。,1,n,学 生,班 级,属 于,姓 名,学 号,民 族,出生年月,名 称,班 号,系,年 级,专 业,图,2-5 1:n,关系到关系模型的转化,50,如图,2-5,所示,,“,班级,”,与,“,学生,”,的联系是,1:n,的联系,学生方是,n,方,对图,2-5,进行转化,得到关系模型:,学生,(,学号,姓名,民族,出生年月,班号,),班级,(,班号,名称,年级,系,专业,),在学生表中增加,“,班级,”,中的关键字,“,班号,”,作为外部关键字。,51,4,m:n,联系到关系模型的转化,一个,m:n,联系要单独建立一个关系模式,分别用两个实体的关键字作为外部关键字。,学 习,m,n,学 生,学 号,姓 名,出生年月,民 族,课程号,课程名,学时数,课程,成绩,图,2-6 m:n,关系到关系模型的转化,52,图,2-6,描述的学生与课程的联系是,m:n,联系,将,E-R,图转化为,3,个关系:,学生,(,学号,,姓名,民族,出生年月,),课程,(,课程号,,课程名,学时数,),学习,(,学号,,,课程号,,成绩,),53,数据库设计实例,1,问题概述,销售公司,商品,供应商,客户,采购订单,销售订单,库存文件,图,2-8,某销售公司业务流程图,54,该系统数据模型包含的数据实体有:,(1),供应商,(Supplier),:为该公司提供商品的公司。,(2),商品,(Goods),:该公司经营的商品。,(3),客户,(Customer),:该公司提供服务的厂家。,(4),员工,(Employee),:该公司的员工。,(5),运输商,(Transporter),:为该公司提供运输服务的公司。,(6),销售订单,(Sell_Order),:该公司与用户签定的销售合同。,(7),采购订单,(Purchase_Order),:该公司与供应商签定的采购合同。,55,员工,销售订单,商品,采购订单,供应商,运输商,客户,图,2-9,数据实体之间的关系,56,2,数据实体的,E-R,图,这个实例包含的数据实体较多,联系较复杂,如果用一般的,E-R,图描述,幅面会比较大,对于这种问题,常常用一种,E-R,图的变形图来描述。在这种变形图中,实体及其属性用一个矩形框描述,实体名称标注在矩形框的顶部,实体关键字用*标出,并紧跟在实体名称后面,实体属性依次标注。实体间的联系省略菱形框,只用连线,并在连线的两端标注联系类型。,57,3,数据表设计示例,以员工、销售订单、商品以及部门,4,个数据实体及其相互间的联系为例,说明这种转换过程。,(1),“,员工,”,实体到关系模式的转换,从图,2-10,和图,2-11,中看出,,“,员工,”,实体有,9,个属性,,Employee_ID,是其关键属性,该实体与,“,销售订单,”,实体间有一个,1:n,的联系。此外,与,“,部门,”,实体间有一个,n:1,的联系,为描述这种联系,需要增加一个外部关键字,Department_ID,,转换结果见表,2-8,。,58,(2),“,销售订单,”,实体到关系模式的转换,“,销售订单,”,实体包含,Order_ID1,等,7,个属性,还与,“,客户,”,等,4,个实体具有,n:1,的联系,为描述这种联系,需要增加,4,个外部关键字,(,实体中已列出了这,4,个外部关键字,),。转换结果见表,2-9,。,(3),“,商品,”,实体到关系模式的转换,“,商品,”,实体包含,6,个属性,关键属性是,“,商品代码,(Goods_ID),”,,,“,商品,”,实体与,“,销售订单,”,实体及,“,采购订单,”,实体间有,1:n,的联系,与,“,商品规格,”,实体有,n:1,的联系。转换结果见表,2-10,。,(4),“,部门,”,实体到关系模式的转换,“,部门,”,实体有,4,个属性,并且与,“,员工,”,实体有,1:n,的联系,转换结果见表,2-11,。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服