第2章 关系数据库_第1页
第2章 关系数据库_第2页
第2章 关系数据库_第3页
第2章 关系数据库_第4页
第2章 关系数据库_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 关系数据库,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.1 关系模型 2.2 关系模式 2.3 关系代数 2.4 关系数据库规范化理论 小结,内 容,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.1 关系模型,2.1.1 关系数据结构 2.1.2 关系操作 2.1.3 完整性约束,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.1.1 关系数据结构,一个关系模型的逻辑结构是一张二维表,它由行和列组成。 关系:对应通常所说的二维表; 元组:表中的一行即为一个元组; 属性:表中的一列即为一个属性; 主关键字:表中的某个属性组,它可唯一确定一个元组; 域:

2、属性的取值范围; 分量:元组中的一个属性值; 关系模式:对关系的描述,一般表示为: 关系名(属性1,属性2,属性n) 在关系模型中,实体以及实体间的联系都是用关系来表示的。, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,学生登记表,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.1.2 关系操作,关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一个集合的方式。 非关系数据模型的数据操作则为一次一个记录的方式。 常用的关系操作包括: 选择、投影、连接、除、并、交、差等查询操作和增、删、改操作两部分。 查询的表达能力是其中最重要的部分。, ,数据库

3、原理与应用第2章 关系数据库东北财经大学 李红,关系模型中关系操纵能力早期是用代数方法或逻辑方法来表示,称为: 关系代数:用对关系的运算来表达查询要求的方式。 关系演算:用谓词来表达查询要求的方式。 关系演算按谓词基本对象是元组变量还是域变量分为: 元组关系演算、域关系演算,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价。 关系语言是一种高度非过程化的语言,用户不必请求数据管理员为他建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成。,数据库原理与应用第2章 关系数据库东北财经大学 李红,介于关系代数和关系演算之间

4、的语言称为:结构化查询语言SQL 。 SQL不仅具有丰富的查询功能,而且还具有数据定义和数据控制功能,是集查询、DDL和数据控制语言简称于一体的关系数据语言。 SQL充分体现了关系数据语言的特点和优点,是RDB的标准语言。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.1.3 关系的完整性约束,由于关系数据库中数据的不断更新,为了维护数据库中的数据与现实世界的一致性,必须对关系数据库加以约束,关系模型的完整性规则是对关系的某种约束条件。 关系模型中的完整性约束有:域完整性约束(Domain Integrity Constraint)、实体完整性约束(Entity Integrity

5、 Constraint)、参照完整性约束(Referential Integrity Constrain)和用户定义完整性约束。 其中实体完整性约束和参照完整性约束是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由DBMS自动支持。, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,在介绍各种完整性约束之前,先介绍几个相关的概念。 候选键(Candidate Key) 若关系中的某一属性组的值能惟一的标识一个元组,则称该属性组为候选键。 主属性(Primary Attribute) 若关系中的一个属性是构成某一个候选键的属性集中的一个属性,则称该属性为主属性。 主键

6、若一个关系中有多个候选键,则选定一个为主键。如表2-1学生登记表中的“学号”,就可以是一个主键。,数据库原理与应用第2章 关系数据库东北财经大学 李红, 外键(Foreign Key) 设F是基本关系R的一个或一组属性,但不是R的键(主键或候选键),如果F与基本关系S的主键K相对应,则称F是R的外键,并称R为参照关系,S为被参照关系。可以理解为:如果一个属性是所在关系之外的另一关系的主键,该属性就是它所在关系的外键。外键就是外部表的主键,如表2-2和表2-3所示。,数据库原理与应用第2章 关系数据库东北财经大学 李红,表2-2 学生登记表中“学号”为主键,表2-3 考试表中“学号”为外键,数据

7、库原理与应用第2章 关系数据库东北财经大学 李红,完整性约束: 1. 域完整性约束 2. 实体完整性约束 3. 参照完整性约束 4. 用户定义完整性约束,数据库原理与应用第2章 关系数据库东北财经大学 李红,1.域完整性约束,域完整性约束:关系中属性的值应是域中的值,并由语义决定其能否为空值(NULL)。 NULL是用来说明在数据库中某些属性值可能是未知的,或在某些场合下是不适应的一种标志。如在教师关系T中,对一个新调入的教师在未分配具体单位之前,属性“系部”一列可以取空值。 域完整性约束是最简单、最基本的约束。在当今的RDBMS中,一般都有域完整性约束检查功能。,数据库原理与应用第2章 关系

8、数据库东北财经大学 李红,2. 实体完整性约束,实体完整性约束:关系中的主键不能为空值。 因为关系中的每一行都代表一个实体,而任何实体都应是可以区分的,而从主键的定义我们知道,主键的值正是区分实体的惟一标识。如果主键值为空,则意味着实体是不可区分的,或者说主键失去了惟一标识元组的作用。 如表2-2学生登记表中,如果一个学生没有学号,由于“姓名”、“性别”、“年龄”、“班级号”都不能惟一标识每一个学生实体,所以,该学生登记表若要满足实体完整性,“学号”这一列必须不能有空值,数据库原理与应用第2章 关系数据库东北财经大学 李红,3. 参照完整性约束,参照完整性约束:关系的外键必须是另一个关系主键的

9、有效值,或者是空值。 如果关系的外键存在一个值,则这个值必须是另一个关系中主键的有效值。或者说,外键可以没有值,但不允许是一个无效值。 如表2-4和表2-5所示。如果考试表中的“学号”不是学生登记表的“学号”的值,则称考试表的数据违背了参照完整性。 表2-5中的学号011090就违背了参照完整性。, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,表2-4 学生登记表,表2-5 考试表,数据库原理与应用第2章 关系数据库东北财经大学 李红,参照完整性是不同关系之间或同一关系的不同元组之间的一种约束。在使用参照完整性约束时,有三点需要注意: 外键和相应的主键可以不同名,只要定义在相同的值

10、域上即可。 R和S也可以是同一个关系模式,表示了同一个关系中不同元组之间的联系。例如若表示学生的关系模式学生(学号、姓名、性别、年龄、班长学号),其主键是“学号”,而“班长学号”是外键,表示“班长学号”值一定是存在的某个“学号”的值,表示班长一定是某位同学,而不是别的人。 外键的值是否为空值,应视具体情况而定。若外键是其所在关系中主键中的成分时,则外键的值不允许为空值(如表2-5所示的考试表),否则允许为空值。,数据库原理与应用第2章 关系数据库东北财经大学 李红,4. 用户定义完整性约束,用户定义完整性约束:针对某一具体数据的约束条件,又应用环境决定。,数据库原理与应用第2章 关系数据库东北

11、财经大学 李红,由于不同的数据库系统所应用的环境不同,往往需要用户根据需要制定一些特殊的约束条件。用户按照实际的数据库运行环境要求,对关系中的数据定义约束条件,它反映的是某一具体应用所涉及的数据必须要满足的语义要求。 例如:考试表中“成绩”的取值范围是0100,学生登记表中“性别”的取值为“男”和“女”等,都是针对具体关系提出的完整性约束条件。 DBMS应该提供定义和检查这类完整性的机制,以便用统一的系统方法处理它们,不再由应用程序承担这项工作。,数据库原理与应用第2章 关系数据库东北财经大学 李红,总之,关系数据模型中存在完整性约束。为了保持数据库的一致性和正确性,必须使数据库中的数据满足完

12、整性约束。 至于完整性约束检查,哪些由DBMS负责,哪些由用户负责,完全取决于技术条件。 从发展趋势来看,DBMS将逐步扩大其完整性约束检查功能。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.2 关系模式,2.2.1 关系概念模式 2.2.2 关系内模式 2.2.3 关系外模式, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系模式是对关系的描述。 关系是关系模式在某一时刻的状态或内容。 关系模式是型,关系是它的值。 关系模式是静态的、稳定的,关系是动态的、随时间不断变化的,因为关系操作在不断地更新着DB中的数据。 RDB具有三级模式:概念模式、内模式、外模式。,数据

13、库原理与应用第2章 关系数据库东北财经大学 李红,2.2.1 关系概念模式,关系概念模式主要包括出现在DB中的每个关系的说明,它包括对关系名、属性名和属性取值范围(类型)的说明。 在关系数据模型中可不说明关系与关系间的联系。关系与关系间的联系是通过连接属性实现的。 例:有如下两个关系: 班级(班级号,班级名,人数) 学生(学号姓名,性别,年龄,班级号) 相应属性取值类型和宽度如下表所示。, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,班级与学生关系说明,分级图,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.2.2 关系内模式,从原理上讲,关系内模式与其他类型DBS的内模

14、式没有什么不同,RDB中的每个基本表都应对应一个存储文件。 基于主关键字进行直接存取,一般可根据主关键字建立相应索引。 在关系内模式中不用说明存储文件,存储文件的说明由RDBMS根据基本表的定义自动映射产生。 在关系内模式主要内容中要说明的是索引。, 分级图,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.2.3 关系外模式,外模式是概念模式的逻辑子集,是用户与DBS的接口,是对用户所用到的那部分数据的描述。 在RDB中,外模式被称作视图(VIEW)。, 分级图,数据库原理与应用第2章 关系数据库东北财经大学 李红,DB分级结构图,应用程序A,应用程序B,应用程序C,外模式,外模式,

15、模式,外模式/模式 映射,模式/内模式 映射,外模式/模式 映射,DBMS,用户,用户,用户,2.2.1 2.2.2 2.2.3,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.3 关系代数,2.3.1 传统的集合运算 2.3.2 特殊的关系运算, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系代数是一种抽象的查询语言,通过对关系的运算来表达查询,关系代数的运算对象和运算结果是关系。 关系代数的运算按运算符不同分为传统集合运算和特殊关系运算两类。 关系代数的作用如下:,模型化,查询,客观现实,关系型数据库模型,关系代数,请按键,数据库原理与应用第2章 关系数据库东北财经

16、大学 李红,2.3.1 传统的集合运算,1. 并运算 2. 交运算 3. 差运算 4. 笛卡尔积运算, ,数据库原理与应用第2章 关系数据库东北财经大学 李红,传统的集合运算是二元运算,它将关系看作是元组的集合,参与运算的关系具有相同的目(度),相应的属性取自同一个域,且两个关系具有相同的结构。 设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义: 并运算、交运算、差运算、笛卡尔积运算,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系R与关系S,数据库原理与应用第2章 关系数据库东北财经大学 李红,1. 并运算,是指将一个关系的元组加到另一个关系中,生成新的关系。 元

17、组在新的关系中出现的顺序是无关紧要的,但必须消除重复元组。 关系R和S的并运算记为RS。 为使操作有意义,关系在并运算上必须是兼容的,即关系R和关系S必须要有相同的属性,且在对应列中的属性必须是相同的域; 例:若一个关系中的第四个属性取自年龄域,则第二个关系的第四个属性也必须取自年龄域。,数据库原理与应用第2章 关系数据库东北财经大学 李红,R与S的并集及结果,数据库原理与应用第2章 关系数据库东北财经大学 李红,2. 交运算,是包含同时出现在第一和第二个关系中的元组的新关系。 这些关系也必须是在并运算上兼容的。 关系R和S的交运算记为RS。 R与S的交集及结果,数据库原理与应用第2章 关系数

18、据库东北财经大学 李红,3. 差运算,指包括在第一个关系中出现而在第二个关系中不出现的元组的新关系。 差运算使用的关系也必须是在并运算上兼容的。如在算术运算中那样,减法是有顺序的,R-S和S-R是不同的。 R与S的差及结果,数据库原理与应用第2章 关系数据库东北财经大学 李红,4. 笛卡尔积运算,一个关系中的每个元组和第二个关系的每个元组的连接。 关系R(含m个元组)和关系S(含n个元组)的积有mn个元组。 记为: RXS=(al,a2,am,b1,b2,bn)|(al,a2,am)R(b1,b2,bn)S,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系R与S笛卡尔积的结果,数据库

19、原理与应用第2章 关系数据库东北财经大学 李红,2.3.2 特殊的关系运算,1. 选择运算 2. 投影运算 3. 连接运算,数据库原理与应用第2章 关系数据库东北财经大学 李红,1. 选择运算,一元关系操作,按给定的选择条件选出符合条件的元组。 可表示为: 其中: 选择条件是逻辑表达式,取值为“真”或假”。,数据库原理与应用第2章 关系数据库东北财经大学 李红,例3:在学生关系中选择年龄为19岁的男生。 选择操作的结果:,数据库原理与应用第2章 关系数据库东北财经大学 李红,2. 投影运算,一元关系操作。选取关系的某些属性。 是对一个关系进行垂直分割,消去某些属性,并重新安排属性的顺序,再删去

20、重复的元组,生成一个新关系。 投影运算表示为: 其中,属性表是要选择的属性,各属性间用逗号间隔。,数据库原理与应用第2章 关系数据库东北财经大学 李红,例4:查询学生关系在学号、姓名、年龄三个属性上的投影,可表示为: 投影运算的结果:,数据库原理与应用第2章 关系数据库东北财经大学 李红,3. 连接运算,二元关系操作,以 符号表示。定义为: 从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 连接条件为两个关系中对应属性的比较,不一定同名,但域相同。 常用的连接运算: 等值连接:从两个关系(R、S)的笛卡尔积中选取属性(A、B)值相等的元组; 自然连接:特殊的等值连接,在等值连接中取消重复属

21、性。,数据库原理与应用第2章 关系数据库东北财经大学 李红,例5:对学生与考试关系进行等值连接、自然连接和迪卡尔积运算,结果为:,数据库原理与应用第2章 关系数据库东北财经大学 李红,连接与笛卡尔积的区别: 笛卡尔乘积包含两关系的所有元组的组合,连接只包含那些满足连接条件的元组的组合。 没有连接条件,即无条件连接,则连接变成笛卡尔乘积。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.4 关系数据库规范化理论,2.4.1 关系模式规范化的必要性 2.4.2 数值依赖 2.4.3 范式与规范化 2.4.4 关系分解原则,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系数据库是

22、以关系模型为基础的数据库,它利用关系描述现实世界。一个关系即可用来描述一个实体及其属性,也可用来描述实体间的一种联系。 关系模式是用来定义关系的,一个关系数据库包含一组关系,定义这组关系的关系模式的全体就构成了该数据库的模式。 关系数据库的设计归根到底是如何构造关系,即如何把具体的客观事物划分为几个关系,而每个关系又由哪些属性组成,就是要构造“好的”、“合适”的关系模式,它涉及一系列的理论与方法,形成了关系数据库的模式设计理论和技术。 由于合适的关系模式要符合一定的规范化要求,所以又称其为关系数据库的规范化理论。,数据库原理与应用第2章 关系数据库东北财经大学 李红,为了消除冗余和潜在的更新异

23、常,关系数据库的规范化理论为关系模式确定了多种范式。 所谓范式(Noranal Form)是指规范化的关系模式。由于规范化的程度不同,就产生了不同的范式。,数据库原理与应用第2章 关系数据库东北财经大学 李红,从1971年起,E.F.Codd相继提出了第一范式(1NF)、第二范式(2NF)、第三范式(3NF),Codd与Boyce合作提出了Boyce-Codd范式(BCNF)。在19761978年间,Fagin、Delobe以及Zaniolo又定义了第四范式。到目前为止,已经提出了第五范式(5NF)。 满足最基本规范化的关系模式叫第一范式,第一范式的关系模式再满足另外一些约束条件就产生了第二范

24、式、第三范式、BC范式等等。每种范式都规定了一些限制约束条件。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.4.1 关系模式规范化的必要性,1. 关系模式应满足的条件 2. 关系规范化可能出现的问题,数据库原理与应用第2章 关系数据库东北财经大学 李红,关系数据库的设计主要是关系模式的设计。 关系模式设计的好坏将直接影响到数据库设计的成败。 将关系模式规范化,使之达到较高的范式是设计好关系模式的唯一途径。否则,所设计的关系数据库会产生一系列的问题。,数据库原理与应用第2章 关系数据库东北财经大学 李红,1.关系模式应满足的条件,关系数据库是根据关系模式设计的。好的关系模式除了能满

25、足用户对信息存储和查询的基本要求外,还应当使它的数据库满足如下要求。 元组的每个分量必须是不可分的数据项 关系数据库特别强调,关系中的属性不能是组合属性,必须是基本项,并把这一要求规定为鉴别表格是否为“关系”的标准。如果表格结构的数据项都是基本项,则该表格为关系,它服从关系模式的第一范式,以后可以在此基础上进一步规范化。否则,如果表格结构中含有组合项,必须先使之转换为基本数据项。因为关系的一切数学理论都是基于关系服从于第一范式基础之上的。,数据库原理与应用第2章 关系数据库东北财经大学 李红, 数据库中的数据冗余应尽可能少 数据冗余大是指数据库中重复的数据过多。“数据冗余”是数据库最忌讳的毛病

26、,数据冗余会使数据库中的数据量巨增,系统负担过重,并浪费大量的存储空间。数据冗余还可能造成数据的不完整,增加数据维护的代价。数据冗余还会造成数据查询和统计的困难,并导致错误的结果。 尽管关系数据库是根据外键建立关系之间的连接运算的,外键数据是关系数据库不可消除的“数据冗余”,但在设计数据库时,应千方百计将数据冗余控制在最小的范围内,不必要的数据冗余应坚决消除。,数据库原理与应用第2章 关系数据库东北财经大学 李红, 关系数据库不能因为数据更新操作而引起数据不一致问题 如果数据模式设计的不好,就可能造成不必要的数据冗余,一个信息就会多次的在多地重复存储。对于“数据冗余大”的关系数据库,当执行数据

27、修改时,这些冗余数据就可能出现有些被修改,有些没有修改,从而造成数据不一致问题。数据不一致问题影响了数据的完整性,使得数据库中数据的可信度降低。,数据库原理与应用第2章 关系数据库东北财经大学 李红, 当执行数据插入操作时,数据库中的数据不能产生插入异常现象 所谓插入异常是指希望插入的信息由于不能满足数据完整性的某种要求而不能正常地被插入到数据库的异常问题。出现数据插入异常问题的主要原因是数据库设计时没有按“一事一地”的原则进行。由于多种信息混合放在一个表中,就可能造成因一种信息被捆绑在其他信息上而产生的信息之间相互依附存储的问题,这是使得信息不能独立插入的关键所在。,数据库原理与应用第2章

28、关系数据库东北财经大学 李红, 数据库中的数据不能在执行删除操作时产生删除异常问题 删除异常是指在删除某种信息的同时把其他信息也删除了。删除异常也是数据库结构不合理产生的毛病。和插入异常一样,如果关系中多种信息捆绑在一起,当被删除信息中含有关系的主属性时,由于关系要满足实体完整性,整个元组将全部从数据库中被删除,即出现删除异常。,数据库原理与应用第2章 关系数据库东北财经大学 李红, 数据库设计应考虑查询要求,数据组织应合理 在数据库设计时,不仅要考虑到数据自身的结构完整性,还要考虑到数据的使用要求。为了使数据查询和数据处理高效简洁,特别是对那些查询实时性要求高、操作频度大的数据,有必要通过视

29、图、索引和适当增加数据冗余的方法,来增加数据库的方便性和可用性。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2. 关系规范化可能出现的问题,在我们构造关系时,经常会发现数据冗余和更新异常等现象,这是由关系中各属性之间的相互依赖性和独立性造成的。 如果一个关系没有经过规范化,可能会导致上述谈到的数据冗余大、数据更新造成不一致、数据插入异常和删除异常问题。,数据库原理与应用第2章 关系数据库东北财经大学 李红,例如,要求设计一个教学管理数据库,希望从该数据库中得到学生学号、姓名、性别、年龄、所在系、系主任姓名、学生学习的课程和该课程的成绩信息。 若将此信息要求设计为一个关系,则关系模式

30、为:学生(学号,姓名,性别,年龄,所在系,系主任姓名,课程名,成绩),如下表2-20所示。,数据库原理与应用第2章 关系数据库东北财经大学 李红,此关系模式的主键为(学号,课程名)。 仅从关系模式上看,该关系已经包括了需要的信息,如果按此关系模式建立关系,并对它进行深入分析,就会发现其中的问题所在。 数据冗余大 插入异常 删除异常 更新异常 由上述4条可见,学生关系尽管看起来很简单,但存在的问题比较多,它不是一个合理的关系模式。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.4.2 数据依赖,1. 函数依赖 2. 平凡函数依赖与非平凡函数依赖 3. 完全函数依赖与部分函数依赖 4.

31、 传递函数依赖,数据库原理与应用第2章 关系数据库东北财经大学 李红,数据之间存在的各种联系现象称为数据依赖(Data Dependency),它是同一关系中属性间的相互依赖和相互制约。而数据冗余和更新异常等现象与数据依赖有着紧密的关联。关系规范理论致力于解决关系模式中不合适的数据依赖问题。 在数据依赖中,函数依赖(Functional Dependency,FD)是最基本的一种依赖形式,它反映了同一关系中属性间一一对应的约束,它是关系模式中属性之间最常见的一种依赖关系,也是关系模式中最重要的一种约束。,数据库原理与应用第2章 关系数据库东北财经大学 李红,函数依赖普遍地存在于现实生活中。 例

32、如,描述一个学生的关系,可以有“学号”、“姓名”、“所在系”等几个属性。由于一个学号只对应一个学生,一个学生只在一个系。因而当“学号”值确定之后,姓名及其所在系的值也就被唯一地确定了。 属性间的这种依赖关系类似于数学中的函数。因此说学号函数决定姓名和所在系,或者说姓名和所在系函数依赖于学号,记作:学号姓名,学号所在系。,数据库原理与应用第2章 关系数据库东北财经大学 李红,1. 函数依赖,假设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X

33、”,记作XY。 注意:X和Y都是属性组,如果XY,表示X中取值确定时,Y中的取值惟一确定,即X决定Y或Y函数依赖于Y,X是决定因素。 函数依赖类似于数学中的单值函数,函数的自变量确定时,应变量的值惟一确定。反映了关系模式中属性间的决定关系,体现了数据间的相互关系。,数据库原理与应用第2章 关系数据库东北财经大学 李红,例7:学生(学号,姓名,性别,年龄,班级号) 存在以下的函数依赖: 学号姓名 学号性别 学号年龄 学号班级号 说明: 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 函数依赖是RDB用以表示数据语义的机制。人们只能根据数据的

34、语义来确定函数依赖。 例:“姓名年龄”这个函数依赖只有在没有相同姓名人的条件下成立。若有相同姓名的人,则“年龄”就不再函数依赖于“姓名”了。,数据库原理与应用第2章 关系数据库东北财经大学 李红, DB设计者可对现实世界作强制规定 例:在学生关系中,设计者可强行规定不允许出现相同姓名的人,因而使函数依赖“姓名年龄”成立。 当插入某元组时,该元组上的属性值必须满足规定的函数依赖,若发现有相同姓名的人存在,则拒绝插入该元组。 若XY,则X称为这个函数依赖的决定属性集。 若XY,并且YX,则记为XY。 若Y不函数依赖于X,则记为X Y。,数据库原理与应用第2章 关系数据库东北财经大学 李红,2. 平

35、凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y,如果XY,但Y X,则称XY是非平凡函数依赖。若Y X,则称XY为平凡函数依赖。 对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖。,数据库原理与应用第2章 关系数据库东北财经大学 李红,3. 完全函数依赖与部分函数依赖,完全函数依赖: 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y完全函数依赖于X,记作X Y。 部分函数依赖: 若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X Y。,数据库原理与应用第2章 关系数据库

36、东北财经大学 李红,例8: 学生(学号,姓名,所在系,系主任姓名,课程号,成绩) 学生关系模式存在的部分函数依赖: (学号,课程号) 姓名 (学号,课程号) 所在系 (学号,课程号) 系主任姓名,数据库原理与应用第2章 关系数据库东北财经大学 李红,4. 传递函数依赖,在关系模式R(U)中,如果XY,YZ,且Y X,Z Y,Y X,则称Z传递函数依赖于X。 例9:学生(学号,姓名,所在系,系主任姓名,课程名,成绩),存在如下的函数依赖: 学号所在系 所在系系主任姓名 学号系主任姓名,数据库原理与应用第2章 关系数据库东北财经大学 李红,2.4.3 关系的 范式及规范化,1. 第一范式(1NF)

37、 2. 第二范式(2NF) 3. 第三范式(3NF) 4BC范式,数据库原理与应用第2章 关系数据库东北财经大学 李红,范式是衡量关系模式优劣的标准。范式的级别越高,其数据冗余和操作异常现象就越少。范式之间的联系可以表示为 :1NF2NF3NFBCNF4NF5NF 后面的范式可以看成是前面范式的特例。对于数据库设计者来,1NF和2NF本身并不重要,最重要的是3NF和BCNF两种范式。关系仅仅满足第一范式的条件是不够的,尤其在增、删、改时,往往会出现更新异常。这在前面的关系规范化的必要性中讨论过。为了消除这些异常,人们采用分解的办法,力求使关系的语义单纯化,这就是所谓关系的规范化。通过分解把属于

38、低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为规范化。,数据库原理与应用第2章 关系数据库东北财经大学 李红,1. 第一范式(1NF),若一个关系模式R的所有属性都是不可分的基本数据项,则该关系属于1NF 。 在任何一个RDBS中,1NF是对关系模式的一个必须的要求,不满足1NF的DB模式不能称为RDB。 DB模式:多个关系模式的集合。 满足1NF的关系模式并不一定是好的关系模式。 例如:学生(学号,姓名,所在系,系主任姓名,课程名,成绩) 它显然满足1NF,但本身存在插入异常、删除异常、更新异常和数据冗余问题,所以它不是一个好的关系模式。,数据库原理与应用第2章 关系

39、数据库东北财经大学 李红,2. 第二范式(2NF),若关系模式R属于1NF,且每个非主属性都完全函数依赖于主关键字,则R属于2NF 。 2NF不允许关系模式中的非主属性部分函数依赖于主关键字。,数据库原理与应用第2章 关系数据库东北财经大学 李红,下面分析一下关系模式“学生”的函数依赖,看它是否服从2NF。如果“学生”模式不服从2NF,可以根据2NF的定义对它进行分解,使之服从2NF。 在学生模式中: 属性集=(学号,姓名,性别,年龄,所在系,系主任名称,课程名,成绩) 函数依赖集=学号姓名,学号性别,学号年龄,学号所在系,所在系系主任名称,(学号,课程名)成绩。 主键=(学号,课程名)。 非

40、主属性=(姓名,年龄,所在系,系主任姓名,成绩)。,p,数据库原理与应用第2章 关系数据库东北财经大学 李红,非主属性对键的函数依赖=(学号,课程名)姓名,(学号,课程名)性别, (学号,课程号)年龄,(学号,课程名)所在系, (学号,课程名)系主任姓名;(学号,课程名)成绩。 显然,学生模式不服从2NF,即:教学2NF。,数据库原理与应用第2章 关系数据库东北财经大学 李红,根据2NF的定义,将学生模式分解为; 学生-系(学号,姓名,性别,年龄,所在系,系主任姓名); 选课(学号,课程名,成绩)。 再用2NF的标准衡量学生-系和选课模式,会发现它们都服从2NF,即: 学生系2NF;选课2NF

41、。,数据库原理与应用第2章 关系数据库东北财经大学 李红,3. 第三范式(3NF),若关系模式R属于1NF,且每个非主属性都不传递依赖于主关键字,则R属于3NF。 若R3NF,则每一个非主属性既不部分函数依赖于主键,也不传递函数依赖于主键。 3NF是一个可用的关系模式应满足的最低范式。也就是说,一个关系模式如果不服从3NF,实际上它是不能使用的。,数据库原理与应用第2章 关系数据库东北财经大学 李红,考查学生-系关系,会发现由于学生-系的关系模式中存在:学号所在系,所在系系主任姓名。则:学号系主任姓名。由于主键“学号”与非主属性“系主任姓名”之间存在传递函数依赖,所以学生-系 3NF。如果对学

42、生-系关系按3NF的要求进行分解,分解后的关系模式为: 学生(学号,姓名,性别,年龄,所在系); 教学系(所在系,系主任姓名)。 显然分解后的各子模式均属于3NF。,数据库原理与应用第2章 关系数据库东北财经大学 李红,4BC范式,若关系模式R属于第一范式,且每个属性都不传递依赖于主键,则R属于BC范式。 通常BC范式的条件有多种等价的表述:每个非平凡依赖的左边必须包含主键;每个决定因素必须包含主键。 从定义可以看出BC范式既检查非主属性,又检查主属性,显然比第三范式限制更严。当只检查非主属性而不检查主属性时,就成了第三范式。因此可以说任何满足BC范式的关系都必然满足第三范式。, ,数据库原理

43、与应用第2章 关系数据库东北财经大学 李红,分析下面的关系是否满足BC范式。 S11(学号,姓名,所在系) S12(所在系,系主任姓名) S2(学号,课程名,成绩) S11关系模式中,由于学生有可能重名,因此它只有一个主键“学号”,且只有一个函数依赖:学号(姓名,所在系),符合BC范式的条件,所以S11满足BC范式。 S12关系模式中,函数依赖集为所在系系主任姓名,满足BC范式。 S2关系模式中,主键为学号、课程名,函数依赖集为(学号,课程名)成绩,因此S2也满足BC范式。,数据库原理与应用第2章 关系数据库东北财经大学 李红,如果R属于BC范式,由于R排除了任何属性对码的传递依赖与部分依赖,所以R一定属于3NF。但是,若R3NF,则R未必属于BC范式。 BC范式比3NF又进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论