资源描述
Access2013,数据库技术及应用,第,2,章 关系数据库基础知识,关系模型与关系数据库,关系操作,关系完整性,关系规范化理论,本章主要内容,本章技能目标,了解关系模型的相关知识,掌握关系完整性的概念,了解关系的传统运算和代数运算,掌握关系演算,掌握关系的规范化理论,2.1,关系模型与关系数据库,2,.2,关系操作,2,.3,关系完整性,2,.4,关系规范化理论,2.1,关系模型与关系数据库,关系,模型,的,概念,是,IBM,公司的研究员,博士提出,的,,并,由此,确定,了关系数据库的理论基础,。关系数据库,(Relation Database),理论日臻完善,,并已,成为商用的主流数据库系统,如,Oracle,、,Sybase,、,SQL Server,、,DB2,和,Visual FoxPro,等都是著名的关系模型数据库管理系统,。,2.1.1,关系模型,2,.1.2,关系模型的基本概念,2,.1.3,关系的性质,关系模型,2.1.1,关系模型,关系模型由关系数据结构、关系数据操作和关系数据完整性约束组成。,1.,关系数据结构,关系模型的数据结构是一种二维表格结构。在关系模型中,现实世界的实体与实体之间的联系均用二维表格,表示。,关系模型,2.,关系数据操作,常用的关系操作包括查询、插入、删除和修改,。,关系操作用三种不同的方式描述:关系代数、关系演算和结构化查询语言。,3.,关系数据完整性约束,关系数据完整性约束是为保证数据库中数据的正确性、有效性和相容性,对关系模型中的数据及其联系提出的某种约束条件或规则的集合。,关系模型的基本概念,1.,术语,(1),关系:,一张没有重复行、重复列的二维表,(2),关系模式,关系名,(,属性,1,属性,2,属性,3,属性,n),例如:学生,(,学号,姓名,性别,出生日期,政治面貌,籍贯,班级代码,),(3),记录,:,二维,表中,的每,一行,,又称行,(Row),或元组,(Tuple),(4),属性:,二维表中的一,列,(5),域,:,属性的取值,范围,(6),分量,:,元组中的一个,属性,关系模型的基本概念,(7),键或码,:,关系中能惟一区分、确定不同元组的属性或属性组合的某个,属性,(8),候选键或候选码:,关系中能够成为关键字的属性或属性组合可能不是惟一的,(9),主键或主码:,在候选关键字中选定一个作为关键字,(10),非主属性或非键属性:,关系中不组成码的属性,(11),外部键或外键:,关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,(12),从表与主表:,以外键为主键的表称为主表,(,主键表,),,外键所在的表称为从表,(,外键表,),关系模型的基本概念,2.,关系与二维表的区别,关系是一种规范化了的二维表中行的集合,即,关系,对表,作,了种种限制。关系应满足如下性质,:,关系中的每一属性都是不可再分的基本,属性,。,表中各列分量取自同一个,域,。,各,列,被,指定一个相异的名字,。,表,中各行相异,不允许重复。,行、列次序均无关,关系模型的基本概念,3.,关系数据库,关系数据库,(Relation Database),主要是由若干个依照关系模型设计的数据表文件的集合。一张二维表称为一个数据表,数据表包括数据及数据间的关系。,一个关系数据库由若干个数据表、视图、存储过程等组成,而数据表又由若干个记录组成,每一个记录是由若干个以字段属性加以分类的数据项组成的。,在关系数据库中,每一个数据表都具有相对的独立性,这一独立性的惟一标志是数据表的名字,称为表文件名。,在关系数据库中,有些数据表之间是具有相关性的。,关系模型的基本概念,4.,关系模型的优缺点,(1),关系模型的优点,关系模型是以集合论和数理逻辑作为其理论,基础,。,无论实体还是实体间的联系都用关系来,表示,。,概念单一,其数据结构简单、清晰,,易于,理解。,关系模型的存取路径对用户,透明。,(2),关系模型,的缺点,查询效率往往不如非关系数据模型,必须对用户的查询请求进行优化,采用静态数据模型,关系的性质,关系具有以下性质:,1,.,关系中不允许出现完全相同的元组或记录。,2.,关系元组的顺序可任意交换。,3.,关系中属性的顺序也可任意交换。,4.,关系中各个属性必须有不同的名字。,5.,关系中每一字段必须是不可分的数据项。,2.2,关系操作,关系数据模型提供了一系列操作的定义,这些操作称为关系操作。关系操作采用集合操作方式,即操作的对象和结果都是集合。常用的关系操作有两类:一是查询操作,包括选择、投影、连接、并、交、差、除;二是增、删、改操作,。,2,.2.1,关系代数,2,.2.2,传统的集合运算,2.2.3,专门的关系运算,2.2.1,关系代数,关系代数,语言是用对关系的集合运算来表达查询要求的方式,是基于关系代数的操作语言。关系代数的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影和连接,。,基本运算符,2.2.2,传统的集合运算,传统的集合运算包括,4,种:,并,(,),、交,(,),、差,(-),和广义笛卡儿积,(,),。,1.,并,(Union),如果,R,和,S,都是关系,那么由属于,R,或属于,S,的元组,(,记录,),组成的新关系称为,R,和,S,的并,记为,R,S,:,其属性与关系,R,或关系,S,相同,由属于,R,或,S,的元组组成。,R,S,的运算,结,果,R,S,R,S,2.2.2,传统的集合运算,2.,交,(Intersection),如果,R,和,S,都是关系,那么由属于,R,和,属于,S,的元组,(,记录,),组成的新关系称为,R,和,S,的,交,,,记为,R,S,:,其,属性与关系,R,或关系,S,相同,由既属于,R,又属于,S,的元组组成。,S,R,R,S,R,S,的运算结果,2.2.2,传统的集合运算,3.,差,(Difference),如果,R,和,S,都是关系,那么由属于,R,而不,属于,S,的元组,(,记录,),组成的新关系称为,R,和,S,的,差,,,记为,R-S,:,其,属性与关系,R,或关系,S,相同,由属于,R,而不属于,S,的所有元组组成。,R,S,R,-,S,R-S,的运算结果,2.2.2,传统的集合运算,4.,广义笛卡尔积,两个分别有,n,个属性和,m,个属性的关系,R,和,S,的广义笛卡儿积是一个,(n+m),个属性的元组的集合。元组的前,n,个属性是关系,R,的一个元组,后,m,个属性是关系,S,的一个元组。若,R,有,k,1,个元组,,S,有,k,2,个元组,则关系,R,和,S,的广义笛卡儿积有,k,1,k,2,个元组,记作,R,S,:,2.2.3,专门的关系运算,在关系数据库中查询用户所需数据时,需要对关系进行一定的关系运算。关系运算主要有选择、投影和连接及除等,4,种,其中连接分连接和自然连接,。引入,几个,记号,:,2.2.3,专门的关系运算,1.,选择,(Selection),从关系,R,中选择满足指定条件的元组,它是一种对表进行横向的操作。通常把选择运算记作,:,为选择运算符,,c,为,逻辑表达式,。,2.2.3,专门的关系运算,2.,投影,(Projection),投影是从关系,R,中选择出若干属性,(,字段,),组成新关系的一种运算,是一种竖向的操作。投影运算是一种针对表内容的列运算。,关系,R,上的投影是从,R,中选择出若干属性列组成新的关系,记作,:,其中,A,为,R,中的属性,列,。,2.2.3,专门的关系运算,3.,连接,连接有,连接,、等值连接和自然连接。,(1),连接,连接是从关系,R,和关系,S,的笛卡儿积中选取属性值满足某一关系的元组。记作,:,其中,A,和,B,分别为,R,和,S,上度数相等且可比的属性组,是比较运算符。连接运算从,R,和,S,的广义笛卡儿积,R,S,中选取,(R,关系,),在,A,属性组上的值与,(S,关系,),在,B,属性组上值满足比较关系的元组。,2.2.3,专门的关系运算,(2),等值,连接,为“,=,”的连接运算称为等值连接。它是从关系,R,与,S,的广义笛卡儿积中选取,A,、,B,属性值相等的那些元组。等值连接可记为:,(3),自然连接,自然连接是一种特殊连接。在连接运算中,以字段值对应相等条件进行的连接操作称为等值连接。自然连接是去掉重复属性的等值连接。它是对行和列同时进行运算。若关系,R,和关系,S,具有相同的属性组,B,,则关系,R,和,S,的自然连接可用下式表示:,2.2.3,专门的关系运算,4,.,除,(Division),设有关系,R(X,Y),和,S(Y,Z),,其中,X,、,Y,、,Z,为单个属性或属性组,,R,中的,Y,与中的,Y,出自相同的域集。则,R,S,得到一个新的关系,P(X),,,P(X),是由中某些,X,属性值构成,其中的任一值所对应的一组,Y,值都包含在关系,S,在,Y,上的投影。记作:,2.3,关系完整性,关系的完整性约束是为保证数据库中数据的正确性和兼容性对关系模型提出的某种约束条件或规则。完整性通常包括实体完整性、参照完整性和,、域完整性和,用户定义完整性,4,种。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件。,1.,实体完整性,实体完整性规则是指关系的主关键字不能取“空值”,。,2.,参照完整性,参照完整性规则指的是若属性,(,或属性组,)F,是基本关系,R,的外键,它与基本关系,S,的主键相对应,(,基本关系,R,和,S,不一定是不同的关系,),,则对于,R,中每个元组在,F,上的值必须为:或者取空值,(F,的每个属性值均为空值,),,或者等于,S,中某个元组的主键值。,2.3,关系完整性,3.,域完整性,域完整性规则是指要求表中列的数据必须具有正确的数据类型、格式以及有效的数据范围。,4.,用户定义完整性,用户定义的完整性,(User-defined Integrity),就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,2.4,关系规范化理论,2.4.1,问题的提出,2.4.2,函数依赖,2.4.3,关系模式的规范化,2.4.4,关系规范化的实际应用,2.4.1,问题的提出,1.,关系模式中可能存在的异常,【,例,】,设有学生及选课关系,Student,,如,表所,示。,Student,中具有以下属性:学号、院系名称、系主任、课程号、教师、成绩,于是得到这样一组属性:,U=,学号,院系名称,系主任,课程号,教师,成绩,。,学号,院系名称,系主任,课程号,教师,成绩,05010031,计算机系,程宽,062308,张然,89,05010032,计算机系,程宽,062308,黎明,68,05010033,计算机系,程宽,062308,张明,70,06010001,经济与管理工程系,谢苏,221032,张然,68,06010010,经济与管理工程系,谢苏,221032,王子,72,06030200,机电工程系,邱会仁,241302,张然,68,2.4.1,问题的提出,学生选课关系,Student,的数据模式,Student(U,F,),。,U=,学号,院系名称,系主任,课程号,教师,成绩,F=(,学号,课程号,),成绩,院系名称系主任,课程号教师,学号院系名称,学号系主任,,存在如下问题:,(1,),数据冗余,(2),删除异常,(3),插入异常,2.,关系模式中存在异常的原因,存在一些不好的数据依赖。,解决方法:利用关系数据库规范化理论,对关系模式进行分解,2.4.2,函数依赖,数据依赖是通过一个关系中属性间值的相等与否体现出数据间的相互关系,。,现在人们已经提出了多种类型的数据依赖,其中最重要的数据依赖是函数依赖,(Functional Dependency,,,FD),和多值依赖,(Multivalued Dpendency,,,MVD),。,数据依赖,是指数据之间存在的各种关系,比如外键就是一种依赖。数据冗余的产生和数据依赖有着密切的关系。,在数据依赖中,函数依赖是最基本的一种依赖。实际上,它是键概念的推广,。,2.4.2,函数依赖,1.,函数依赖的定义,在,数据依赖中,函数依赖是最基本的一种依赖。实际上,它是键概念的推广,。,2.4.2,函数依赖,在,数据依赖中,函数依赖是最基本的一种依赖。实际上,它是键概念的推广,。,2.4.3,关系模式的规范化,1.,规范化的作用,数据依赖引起的主要问题是操作异常,解决的办法是进行关系模式的合理分解,也就是对关系模式进行规范化,(Normalization),。,规范化的目的:,(1),消除异常,(2),方便用户使用,简化检索操作,(3),加强数据独立性,(4),使关系模式灵活,更容易使用非过程化的高级查询语言,(3),更容易进行各种查询统计工作,2.4.3,关系模式的规范化,2.,规范化的标准,范式,(Normal Form,,,NF),:是指关系模式规范形式。,关系模式需要满足规范化条件,不同程度的条件称为不同的范式。,于,19711972,年系统地提出了,1NF,、,2NF,、,3NF,概念,讨论了规范化的问题。,1974,年,Codd,和,Boyce,共同提出了,BCNF,。,1976,年,Fagin,提出了,4NF,,以后又有人提出了,5NF,。,2.4.3,关系模式的规范化,第一范式,(1NF),定义,:,设,R,是一个关系模式。如果,R,的每一个属性的值域都是不可再分的数据项,即关系中的每一属性都是原子的,则称该关系模式为第一范式,记作,1NF,。,第一范式是对关系模式的最低要求。不满足第一范式的数据库模式不能称为关系数据库。,不满足第一范式的关系称为非规范,关系,。,学生信息,课程号,成绩,学号,院系代码,系主任,04010010,01,苏云,255430,89,03070120,04,王楠,255341,68,03070120,04,王楠,255430,70,学号,院系代码,系主任,课程号,成绩,04010010,01,苏云,255430,89,03070120,04,王楠,255341,68,03070120,04,王楠,255430,70,2.4.3,关系模式的规范化,第,二,范式,(2NF,),定义,:,设,R,是一个关系模式。如果,R,是第一范式,且,R,中每一个非键属性完全函数依赖于,R,的键,则称该关系模式为第二范式,记为,2NF,。,第二范式消除了非主属性对关键字的部分依赖。即满足,2NF,的关系,其非主属性完全函数依赖于关键字。,2NF,存在以下问题:,(1),插入,异常,(2),删除,异常,(3),冗余,(4),更新异常,2.4.3,关系模式的规范化,第,三,范式,(3NF,),定义,:,设,R,是一个关系模式。如果,R,是,2NF,,且它的任何一个非键属性都不传递依赖于,R,的任一候选键,则称该模式为第三范式,记为,3NF,。,例,:,求,关系模式,R(,学号,姓名,班级号,班级人数,),的范式级别。,解:,因为,R,中的各属性都是原子的,所以,R,1NF,。,从,R,中可以看出,学号为主键,它是一个单一属性,因此在,R,中不存在部分函数依赖,所以,R,2NF,。,在,R,中由于有学号,班级号,班级号,班级人数,它构成了学号,班级人数这一传递依赖,故,R,不满足第,3,范式的要求。,结论:,R,2NF,2.4.3,关系模式的规范化,4.BC,范式,(BCNF),定义,:,在一个关系模式的所有非平凡函数依赖中,如果所有决定于都含有码,(,即起决定因素的超码,),,则此关系模式属于,BCNF,。,由,BCNF,的定义可以得到结论,一个满足,BCNF,的关系模式具有以下三个性质:,(1),所有,非主属性对每个候选码都是完全函数依赖。,(2),所有,的主属性对每一个不包含它的候选码,也是完全函数依赖的。,(3),没有,任何属性完全函数依赖于非码的任何一组属性。,由于,R,属于,BCNF,,按定义排除了任何属性对候选码的传递依赖与部分依赖,所以,R,属于,3NF,。但是若,R,属于,3NF,,则,R,未必属于,BCNF,。,2.4.3,关系模式的规范化,【例】,求,A1(,学号,课程号,成绩,),的范式级别。,解:,对于关系模式,A1(,学号,课程号,成绩,),,它只有一个主关键字,(,学号,课程号,),,并且没有任何属性对,(,学号,课程号,),部分函数依赖或传递函数依赖,所以,A1,3NF,。另外,,A1,中,(,学号,课程号,),是惟一的决定因素,所以,A1,BCNF,。,2.4.4,关系规范化的实际应用,规范化的实质是概念的单一化。如下图。,小结,本章介绍了关系数据库基础知识,主要内容有,:,关系数据库的一些基本概念,包括,:关系、关系模式、记录、域、分量、关键字,(Key),或码、候选关键字或候选码、主关键字,(Primary Key),或主码、非主属性或非码属性、外部关键字或外键、从表与主表的概念;关系模型的结构、关系模型的数据结构、关系模型的特点及关系模型的优缺点,。,2.,关系操作,常用的关系操作有两类:一是查询操作,包括选择、投影、连接、并、交、差、除;二是增、删、改操作。表达,(,或描述,),关系,小结,操作,的关系数据语言可以分为如下,3,类:关系代数语言、关系演算语言和介于关系代数和关系演算之间的结构化查询语言,SQL,。关系代数的基本运算有两类:一类是传统的集合运算,包括并、差、交;另一类是专门的关系运算,包括选择、投影和连接,。,3.,关系,关系的完整性约束是为保证数据库中数据的正确性和兼容性对关系模型提出的某种约束条件或规则。完整性通常包括实体完整性、参照完整性和用户定义完整性,3,种。其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件。关系只有遵循,了,这些规则,才能确保关系在实际使用中与设计者的期望相符,。,小结,4,.,关系规范化的基本,理论,函数依赖和范式。解决关系模型中存在的大量数据冗余、数据操纵中容易出现问题的方法是对关系模式进行规范化,逐步消除数据依赖中不合适的部分,使数据库模式中的各关系模式达到某种程度的分离。,
展开阅读全文