第六章关系数据理论
数据库期末考试题

第一章数据库系统概述及建模数据库系统一、填空题1. 数据库模型通常由()、()和()3要素组成。
2. 数据模型通常分为()、()和()。
3. 数据操作描述的是系统的动态特性,主要分为()和()两大类,共包括()、()、()和()4种操作。
4. 关系模型中,完整性约束主要是()和()。
5. 关系数据库是以()为基础的数据库系统。
7. 有了外模式/模式映像可以保证数据和应用程序之间();有了模式/内模式映像,可以保证数据和应用程序之间的()。
8. 事务的4个特性是()、()、()和()。
009. 数据库管理系统在3层结构之间提供的两层映像是()和()。
10. 当前数据库系统的主流是()。
11. DBMS的中文意思是()。
12. DBMS允许用户把一个或多个数据库操作组成(),它是一组按顺序执行的操作单位。
、13. ()是按照一定的数据模型组织的、长期储存在计算机内,可为多个用户共享的数据的聚集。
14. 数据库系统的基础是()。
15. ()处于数据库系统的核心位置。
16. 对数据库的操作要以()内容为依据。
17. 数据库系统3层结构的描述放在()中。
18. 查询处理最复杂最重要的部分是()。
19. ()是数据库中全部数据的逻辑结构和特征的描述。
20. ()是数据库物理结构和存储方式的描述。
21. ()是用户可以看见和使用的局部数据的逻辑结构和特征的描述。
22. 随着计算机软硬件的发展,数据管理技术不断完善,先后经历了()、()和()3个阶段。
二、判断题1.数据库系统的基础是数据模型。
2.数据库系统的核心是数据库管理系统。
3.对数据库的操作要以运行日志为依据。
4.数据结构描述的是系统的静态特性。
5.事务的原子性是指整个事务要么都执行,要么都不执行。
三、简答题1.数据库系统有哪些特点?2.什么是数据库?3.什么是关系?4.什么是关系的码?5.什么是关系模型?6.关系模型有什么特点?7.数据库系统都包括什么?数据库建模一、填空题1. 在E-R图中,数据元素用()表示;属性用()表示,实体之间的联系用()和()表示。
数据库系统概论复习重点

数据库系统概论复习重点第一章绪论1.数据库系统的基本概念:数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员构成。
2.数据库管理系统的主要功能:数据定义功能、数据操作功能、数据库的运行管理、数据库的建立和维护。
3.数据模型的分类:概念模型、逻辑模型。
4.概念模型的表示:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。
5.数据管理技术的产生和发展经历的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。
6.实体是现实世界中客观存在,且能相互区别的。
7.数据模型的组成要素:数据结构、数据操作、数据的完整性的约束条件。
8.DBS包括DB和DBMS,而DB与DBSM是相互独立的。
9.概念模型独立于操作。
10.数据库三级结构有利于保证数据的安全性和独立性。
11.数据库物理存储视图为内模式12.用户通过DML语言对数据进行操作,其实是在操作外模式中的记录。
13.数据库系统的三级模式结构:外模式、模式、内模式。
14.有了“模式/内模式映像”可以保证数据的物理独立性。
15.数据库系统的核心是——数据库。
16.数据库系统的三级模式存在有二级映像,使之可以有较高的数据独立性。
17.数据库的外部存储方法和存储设备变化不影响逻辑结构,这种情况为物理数据独立性。
第二章关系数据库1.本章重点:关系数据库概念,可以用关系表达式来表达实际问题,可以用元祖表达式来表达实际问题,可以用域表达式来表达实际问题。
可以将这三种表达式相互转换。
2.关系代数运算:并、交、笛卡儿积、选择、投影。
3.常用的关系运算:关系代数、关系演算。
5.“列”可以出自一个域。
6.DBMS和OS之间的关系是:DBMS可以调用OS。
7.关系演算谓词变元可分为:元祖关系、演算关系、域关系演算。
8.若Sno由八位数组成,则此种情况称为:用户定义完整性。
9.一般情况下“R”“S”连接,则“R”“S”必有相同的属性。
关系数据理论

练习:给出一个具有传递函数依赖的关系模式例子
存在传递函数依赖的例子
示例
考虑为管理职工的工资信息而设计一个关系模式
职工 赵明 钱广 孙志 李开 周祥
级别 4 5 6 5 6
工资 500 600 700 600 700
函数依赖
候选码:设K为R< U , F >的属性(组),若K f U,
消除非主属性对码的部分依赖 如S2NF,因为 (S#,C#)p SN (S#,C#)p SD
2NF
改造
非主属性有两种,一种完全依赖于码,一种部分依赖于码。 将S分解为: SC(S# , C# , G) S_SD(S# , SN , SD , DEAN)
练习
关系模式R(A,B,C,D),码为AB,给出它的一个函数 依赖集,使得R属于1NF而不属于2NF
第六章 关系数据理论
内容出处: 1.Abraham Silberschatz《数据库系统概念》第七 章
第六章 关系数据理论
教学目的
本章讨论如何进行关系数据库的逻辑设计。首先介绍函数依赖的概念,然 后利用函数依赖和其他类型的依赖定义范式,并给出利用Armstrong公理 系统确定范式级别的方法,最后介绍一些将关系模式分解为更高级范式的 模式分解算法。
问题:关系模式的形式描述?
关系模式的设计问题
关系模式的形式描述
关系模式由五部分组成,即关系模式是一个五元组: R(U,D,DOM,F)
R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM:属性到域的映射 F:属性间的数据依赖集合。它限定了组成关系的各个元组
3NF
不良特性
S_SD(S# , SN , SD , DEAN)
数据库系统概论第六章 关系数据理论ppt课件

设干个高一级范式的关系方式的集合,这种过程就叫规范 化
6.2 规范化
6.2.1 函数依赖 6.2.2 码 6.2.3 范式 6.2.4 2NF 6.2.5 3NF 6.2.6 BCNF 6.2.7 多值依赖 6.2.8 4NF 6.2.9 规范化小结
Grade〕; DEPT〔Sdept,Mname,Sdept→ Mname〕
第六章 关系数据实际
6.1 问题的提出 6.2 规范化 *6.3 数据依赖的公理系统 *6.4 方式的分解 6.5 小结
6.2 规范化
规范化实际正是用来改造关系方式,经过分解关系方式来消除 其中不适宜的数据依赖,以处理插入异常、删除异常、更新异 常和数据冗余问题。
五、数据依赖对关系方式的影响
[例1]建立一个描画学校教务的数据库: 学生的学号〔Sno〕、所在系〔Sdept〕 系主任姓名〔Mname〕、课程名〔Cname〕 成果〔Grade〕
单一的关系方式 : Student <U、F> U ={ Sno, Sdept, Mname, Cname, Grade }
[例3] 关系方式R〔P,W,A〕 P:演奏者 W:作品 A:听众 一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key
外部码
定义6.5 关系方式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系方式的码,那么称 X 是R 的外部码〔 Foreign key〕也称外码
函数依赖包括: (Sno, Cno) F Grade Sno → Sdept (Sno, Cno) P Sdept Sno → Sloc (Sno, Cno) P Sloc Sdept → Sloc
第06章关系数据理论习题课

各种范式之间存在联系:
1NF 2NF 3NF BCNF
…4N…F
某一关系模式R为第n范式,可简记为R∈nNF。
19
19
课堂练习题:
下列关于关系模式规范化的叙述中,哪一 条是不正确的?( ) (A) 若R∈4NF,则必然R∈3NF (B) 若R∈3NF,则必然R∈2NF (C) 若R∈2NF,则必然R∈1NF (D) 若R∈3NF,则必然R∈BCNF 解析:D
龄,成绩,教师姓名,教师年龄,教师办公室)。假设 一门课程只有一名教师讲授,而且教师不重名。
试回答下列问题: (1)存在哪些基本函数依赖?该关系模式的候选码是
什么?有哪些主属性? (2)有部分依赖吗?若有,请写出两个? 有传递依赖吗?若有,请写出一个? (3)关系模式教务最高达到第几范式?为什么? (4)如何分解可消除关系模式中的部分函数依赖? (5)分解后达到了几范式?分解是无损连接分解? (6)分别指出各个关系模式的主码和外码
设R(U)是一个属性集U上的关系模式,X和Y是U的子 集。若对于R(U)的任意一个可能的关系r,r中不可能存在 两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。
6
函数依赖的基本概念
× √ × × × √
7
7
基本概念
解析:
⑴函数依赖是最基本的、也是最重要的一种数据依赖。
20
20
测验
1.关系数据库规范化是为解决关系数据库中的_______问 题而引入的。
A.操作异常和数据冗余 B.提高查询速度 C.减少数据操作的复杂性 D.保证数据的安全性和完整性
2.假设关系模式属于R(A,B)属于3NF,下列说法中_____ 是正确的。
数据库系统概论CH6(部分)习题解答

第六章关系数据理论第六章讲解关系数据理论。
这是关系数据库的又一个重点。
学习本章的目的有两个。
一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型。
另一个是实践方面的,关系数据理论是我们进行数据库设计的有力工具。
因此,人们也把关系数据理论中的规范化理论称为数据库设计理论,有的书把它放在数据库设计部分介绍以强调它对数据库设计的指导作用。
一、基本知识点本章讲解关系数据理论,内容理论性较强,分为基本要求部分(《概论》6.1~6.3)和高级部分《概论》6.4)。
前者是计算机大学本科学生应该掌握的内容;后者是研究生应该学习掌握的内容。
①需要了解的:什么是一个“不好”的数据库模式;什么是模式的插入异常和删除异常;规范化理论的重要意义。
②需要牢固掌握的:关系的形式化定义;数据依赖的基本概念(函数依赖、平凡函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念,码、候选码、外码的概念和定义,多值依赖的概念);范式的概念;从lNF 到4NF的定义;规范化的含义和作用。
③需要举一反三的:四个范式的理解与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法;能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式。
④难点:各个级别范式的关系及其证明。
二、习题解答和解析1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All-key)、lNF、2NF、3NF、BCNF、多值依赖、4NF。
解析解答本题不能仅仅把《概论》上的定义写下来。
关键是真正理解和运用这些概念。
答函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。
对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
大学《数据库原理》课程教学大纲及课程重点、难点

大学《数据库原理》课程教学大纲及课程重点、难点一、基本信息课程代码:学分:3总学时:48(其中实验9学时)适用对象:本科计算机、网络、软件工程、通讯等相关专业先修课程:数据结构二、课程性质、教学目的和要求(一)课程性质和目的数据库原理是计算机专业的一门专业必修课,面向高年级学生开设,本大纲以一学期51课时讲授。
本课程的目的是向学生介绍数据库的基本概念和原理,掌握常用数据库系统的使用,使学生能够使用数据库技术进行数据库设计和系统开发。
(二)教学方法与手段以课堂理论教学为主,上机实践为辅,配合多媒体教学。
在教学过程中注重能力的培养,以实际应用为例,提高理论教学的生动性,提高学生的动手能力。
(三)教学安排学时安排:16周X3学时二48学时,其中课堂教学13周X3学时=39学时,上机实验3周X3学时=9学时。
课堂讲授数据库的基本概念、基本理论和工作原理,上机实验练习理论的实现和一个典型的关系数据库系统。
课堂教学:第一章绪论(3学时)第二章关系数据库(6学时)第三章关系数据库标准语言SQL(6学时)第四章(数据库安全性)和第五章(数据库完整性)(3学时)第六章关系数据理论(6学时)第七章数据库设计(6学时)第八章数据库编程和第九章关系查询与优化(3学时)第十章数据库恢复技术(3学时)第十一章并发控制(3学时)上机实验:实验1(3课时):E-R模式设计和数据库设计与实现。
掌握数据库系统和DBMS的组成,练习SQLServer的配置和使用,E-R模式设计,设计并实现一个具体的数据库。
实验2(3课时):数据库的范式设计和数据库的数据操纵的设计与实现。
利用E-R模式设计,进行关系模式设计和模式规范化过程的练习,设计并实现数据库的查询、添加、修改、删除、更新以及视图的设计与实现。
实验3(3课时):数据库系统的安全性和、完整性和整体设计。
数据库系统的安全性和完整性的设计与实现;数据库系统的整体设计。
实验4(3课时):简单关系数据库系统的设计与实现。
数据库复习大纲及答案

数据库复习⼤纲及答案第⼀章绪论1.数据的语义数据的解释是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的2.数据库的定义数据库是长期储存在计算机内,有组织的,可共享的⼤量数据的集合。
数据库中的数据按⼀定的数据模型组织,描述和储存,具有较⼩的冗余度,较⾼的数据独⽴性和易拓展性,并可为各种⽤户共享。
概括的讲,数据库具有永久储存,有组织和可共享三个基本特点3.DBMS的定义、功能定义:数据库管理系统(DBMS)是位于⽤户与操作系统之间的⼀层数据管理软件。
功能(5点):1.数据定义功能2.数据组织,储存和管理3.数据操控功能4.数据库的事务管理和运⾏管理 5.数据库的建⽴和维护功能4.数据库系统的组成组成:数据库,数据库管理系统,应⽤程序和数据库管理员5.数据管理技术的三个阶段1.⼈⼯管理阶段2.⽂件系统阶段3.数据库系统阶段6.数据库系统的特点1.数据结构化(最重要)2.数据的共享性⾼,冗余度低且易扩充3.数据独⽴性⾼(数据变化,程序不变) 4.数据由数据库管理系统统⼀管理和控制数据控制功能:1.数据的安全性保护2.数据的完整性检查3.并发控制4.数据库恢复7.数据模型的类型第⼀类:概念模型第⼆类:逻辑模型和物理模型8.概念模型的基本概念和表⽰⽅法基本概念:1.实体2.属性3.码 4.实体型 5.实体集6.联系表⽰⽅法:实体-联系⽅法该⽅法⽤E-R图来描述现实世界的概念模型,E-R法也称E-R模型9.数据模型的组成要素(三要素)重点1.数据结构:数据结构描述数据库的组成对象以及对象之间的联系2.数据操作:数据操作是指对数据库中的各种对象(型)的实例(值)允许执⾏的操作的集合,包括操作及有关的操作规则。
数据库主要有查询和更新(包括插⼊,删除,修改)3.数据的完整性约束条件:数据的完整性约束条件是⼀组完整性规则,它保障了数据的正确,有效和相容。
10.常⽤的逻辑数据模型a.层次模型b.⽹状模型c.关系模型11.关系模型的基本术语a.关系:⼀个关系对应通常说的⼀张表(⼆维表)b.元组:表中的⼀⾏即为⼀个元组c.属性:表中的⼀列即为⼀个属性d.码:也称码键,表中的某个属性组,它可以确定⼀个元组,如学号e.域:域是⼀组具有相同数据类型的值的集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
补充题1设有下列关系模式和相应的函数依赖集:(1)R(A,B,C,D),F={A B→C,C→D,D→A}(2)R(A,B,C,D),F={B→C,B→D}(3)R(A,B,C,D),F={A B→C,B C→D,C D→A,A D→B}(4)R(A,B,C,D),F={A→B,B→C,C→D,D→A}(5)R(A,B,C,D,E),F={A B→C,D E→C,B→D}(6)R(A,B,C,D),F={A B→C,C→D,D→E}请判断它们最高属于什么范式?为什么?解:(1)是3N F,但不是B C N F。
因为该关系模式的码为A B,B C和B D,所有属性均为主属性,是3N F。
但由于C→D,D→A中的左边不包含候选码,所以不是B C N F。
(2)是2N F,不是3N F。
因为该关系模式的码为A B,由函数依赖B→C,B→D,可得C,D部分函数依赖于A B,所以在关系模式中存在非主属性对码的部分函数依赖,不满足3N F。
(3)3N F,也是B C N F。
在该关系模式中,A B,C D,A D,B C都是侯选码,所有属性均为主属性,所以不存在非主属性对码的传递依赖。
所以是3N F。
因为所有的函数依赖的左部都包含侯选码,所以该关系模式是B C N F。
(4)是3N F,也是B C N F。
在该关系模式中,A,B,C和D均为侯选码,它们也都是主属性,所以是3N F。
也是B C N F。
(5)是1N F,不是2N F.该关系模式的侯选码为A B E,由函数依赖A B→C可知在该关系模式中存在非主属性对侯选码的部分函数依赖,所以不是2N F。
(6)是2N F,不是3N F。
该关系模式的侯选码为A B,因为存在非主属性对侯选码的传递依赖,所以不是3N F。
【习6-2】建立关于系、学生、班级、学会等诸信息的一个关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:班号、专业名、系名、人数、入校年份。
描述系的属性有:系名、系号、系办公室地点、人数。
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区。
每个学生可以参加若干个学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的最小函数依赖集,指出是否存在传递函数,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外码,有没有全码存在?解:(1)学生关系学生(学号,姓名,出生年月,系名,班号,宿舍区)候选码:学号外码:系名,班号最小函数依赖集F'={学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区}存在传递函数依赖:学号→系名,系名→宿舍区,且学号不函数依赖于系名。
所以宿舍区传递函数依赖于学号。
班号→系名,系名→宿舍区,且班号不函数依赖于系名。
所以宿舍区传递函数依赖于班号。
学号→班号,班号→系名,且学号不函数依赖于班号。
所以系名传递函数依赖于学号。
(2)班级关系班级(班号,专业名,系名,人数,入学年份)候选码:班号外码:系名最小函数依赖集F'={班号→专业名,班号→人数,班号→入学年份,专业名→系名} 存在传递函数依赖:班号→专业名,专业名→系名,且班号不函数依赖于专业名。
所以系名传递函数依赖于班号。
(3)系关系系(系号,系名,系办公室地点,人数)候选码:系号,系名无外码最小函数依赖集F'={系号→系名,系号→系办公室地点,系号→人数,系名→系号} (4)学会关系学会(学会名,成立年份,地点,人数)候选码:学会名无外码最小函数依赖集F'={学会名→成立年份,学会名→地点,学会名→人数}(5)学生参加学会关系学生-学会(学号,学会名,入会年份)候选码:(学号,学会名)无外码:学号,学会名最小函数依赖集F'={(学号,学会名)→入会年份}以上各关系均不是全码关系。
【习6-3】试由Armostrong公理系统推导出下面三条推理规则:(1)合并规则:若X→Z,X→Y,则有X→YZ(2)伪传递规则:若X→Y,WY→Z,则有XW→Z(3)分解规则:若X→Y,Z⊆Y,则有X→Z解:(1)根据增广律和X→Z可得:XY→YZ由增广律和X→Y可得:XX→XY,即X→XY由传递律和X→XY、XY→YZ可得X→YZ(2)由增广律和X→Y,可得XW→WY由传递律和XW→WY、WY→Z可得XW→Z(3)由自反律和Z⊆Y可得:Y→Z由传递律和X→Y、Y→Z,可得X→Z【习6-5】试举出三个多值依赖的实例。
解:多值依赖的定义是:设R (U )是属性集U 上的一个关系模式。
X ,Y ,Z 是U 的子集,并且Z=U-X-Y 。
对于一给定的X 值,就有一组Y 属性值与之对应,而与Z 中的属性无关,则称“Y 多值依赖于X ”,或“X 多值决定Y ”,记作X →→Y 。
多值依赖在实际的应用中可能不是太常见的一种数据依赖,下面给出三个实例: (1)学生(学号,课程号,教师工号),一个学生可选一组课程学习,一个学生也可有多个教师来教授,由于一个课程可由多个教师来讲授,而且一个教师可以讲授多们课程,所以存在如下两个多值依赖:学号→→课程号和学号→→教师工号。
(2)图书馆中的图书(图书号,图书索引号,借阅读者),一种图书可有多个副本,由索引号标识,一种图书可由多个读者借阅。
所以存在多值依赖:图书号→→图书索引号和图书号→→借阅读者。
(3)上课(学号,教师工号,教室),一个学生可由多个教师来教,一个学生可在多教室上课,而且一个教师可在多个教室上课,一个教室可由多个教师上课。
所以存在如下多值依赖:学号→→教师工号和学号→→教室。
【习6-9】下图表示一个公司各部门的层次结构。
对每个部门,数据库中包含部门号(唯一的)D#,预算费(BUDGET )以及此部门领导人员的职工号(唯一的)E#等信息。
对每一个部门,还存有关于此部门的全部职工、生产与科研项目以及办公室的信息。
职工信息包括:职工号,他所参加的生产科研项目号(J#),他所在办公室的电话号码(PHONE#)。
生产科研项目包含:项目号(唯一的),预算费。
办公室信息包含:办公室房间号(唯一的),面积。
对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。
对每个办公室包含此办公室中全部电话号码的信。
请给出你认为合理的数据依赖,把这个层次结构转换成一组规范化的关系。
部门电话办公室生产科研项目工资史职务职工提示:此题可分步完成,第1步先转换成一组1NF 的关系,然后逐步转换为2NF,3NF,..。
解:语义假设:(1)一个职工不能同时在一个以上的部门任经理 (2)一个职工不能同时在一个以上的部门工作 (3)一个职工不能同时在一个以上的办公室办公(4)一个职工不能同时参加一个以上的工程(5)一个职工不能同时有一个以上的电话。
(6)一个职工不能同时有一个以上的职务(7)一项工程不能同时分派给一个以上的部门(8)一个办公室不能同时分配给一个以上的部门。
在上述的语义假设下,数据库中所用的属性间对应的函数依赖有:E#→D#,E#→J#,E#→OF#(办公室编号),E#→PHONE#(电话号码)D#→MGRE#(经理的职工号),D#→DBUGET(部门预算费)J#→JBUGET(科研项目预算费),J#→D#OF#→AREA(面积),OF#→D#PHONE#→OF#(E#,DATE(日期)→HSALARY(工资史),(E#,DATE)→JOBTITLE(职务)(1)步骤1这个层次结构未规范化的关系如下:DEPT1(D#,DBUGET,MGRE#,J#,REMP1,RPROJ1,ROFFICE1)EMP1(E#,J#,OF#,PHONE#,RJOB1)JOB1(JOBTITLE,RSALHIST1)SALHIST1(DATE,SALARY)PROJ1(J#,JBUGET)OFFICE1(OF#,AREAR,RPHONE1)PHONE1(PHONE#)注:有前缀RD的表示是一个关系,例如REMP1表示关系EMP1。
(2)步骤2把上述一组未规范化的关系转换为一组等价关系,化简过程是通过分割考虑每个子层次,直接消除不是函数依赖的多值依赖。
DEPT2(D#,DBUGET,MGRE#)EMP2(E#,J#,OF#,PHONE#)JOB2(D#,E#,JOBTITLE)SALHIST2(D#,E#,JOBTITLE,DATE,SALARY)PROJ2(D#,J#,JBUGET)OFFICE2(D#,OF#,AREAR)PHONE2(D#,OF#,PHONE#)(3)步骤3可以通过消除部分函数依赖,把上述1NF关系转化成一组等价的2NF关系,下面逐一考察每个1NF关系。
DEPT2:这个关系已经属于2NF。
EMP2:这个关系中D#作为主码的组成部分是多余的,可以用E#作为主码,这样该关系本身也是2NF。
JOB2:同样,D#也无需作为主码的组成部分,此处D#函数依赖于E#,所以,在这个关系中一个非主属性(E#)部分函数依赖于主码(E#,JOBTITLE)。
因此,JOB1不属于2NF,可以分解为下面两个关系:JOB31(E#,JOBTITLE)JOB32(E#,D#)由于JOB31是SALHIST2的投影,而JOB32是EMP2的投影,所以这两个关系都可以去掉。
SALHIST2:如同JOB2一样,可以把D#投影去掉,而且JOBTITLE也无需作为主码,得到下面的一个2NF关系:SALHIST3(E#,JOBTITLE,DATE,SALARY)PROJ2:如同EMP2一样,我们也可以把D#看作是非主属性,那么,这个关系也属于2NF。
OFFICE2:类似的说明对这个关系也是适用的。
PHONE2:我们可以完全把D#投影去掉,因为关系(D#,OF#)是OFFICE2的投影,而且OF#函数依赖于PHONE#,所以我们可以单独用PHONE#作为主码,得到2NF关系:PHONE2(PHONE#,OF#)于是我们得到一组2NF关系如下:DEPT3(D#,DBUGET,MGRE#)EMP3(E#,J#,D#,OF#,PHONE#)SALHIST3(E#,JOBTITLE,DATE,SALARY)PROJ3(D#,J#,JBUGET)OFFICE3(D#,OF#,AREAR)PHONE3(OF#,PHONE#)(4)步骤4下面可以通过消去2NF关系中的传递函数依赖,生成一组等价的3NF关系,上述一组关系中尚不是3NF的2NF关系只有EMP3,其中的OF#和D#都传递函数依赖主码D#;OF#经由PHONE#依赖于E#,而D#则经由J#和经由OF#传递函数依赖于E#。