关系数据库的规范化是软件评测师考试的重要考点,经常出现在上午场的客观选择题当中。关系数据库设计理论的核心是数据间的函数依赖,衡量的标准是关系规范化的程度及分解的无损连接和保持函数依赖性。关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,并可方便地获取信息。下面就该知识点并结合例题进行总结学习。
一、函数依赖概述
(1)概念:一个属性集决定另一个属性集时,称另一属性集依赖于该属性集。设R (U)是属性集U上的关系模式,X、Y是U的子集。若对R (U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X→Y。
(2)完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
实例:(学号,课程号)→ 成绩。
(3)部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
实例:假设不存在重名的情况,(学号,姓名)→ 性别,学号 →性别,所以“(学号,姓名)→ 性别”是部分函数依赖。
(4)传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),且Y→Z,则称Z传递函数依赖于X。
实例:关系S(学号,系名,系主任),学号 → 系名,系名 →系主任,并且系名无法确定学号,所以“学号 → 系主任”为传递函数依赖。
(5)平凡函数依赖:当关系中属性集合Y是属性集合X的子集时(Y⊆X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
实例:在关系SC(Sno, Cno, Grade)中,(Sno,Cno)→ Sno,(Sno,Cno)→ Cno。
(6)非平凡函数依赖:当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。
实例:在关系SC(Sno, Cno, Grade)中, (Sno,Cno)→ Grade。
二、函数依赖的公理系统(Armstrong公理系统)
设关系模式R (U,F),其中U为属性集,F是U上的一组函数依赖,那么有以下推理规则。
(1)自反律:若Y
X
U,则X→Y在R上成立。
(2)增广律:若X→Y在R上成立,且Z
U,则XZ→YZ在R上成立。
(3)传递律:若X→Y,Y→Z在R上成立,则X→Z在R上成立。
根据上述3条推理规则又可推出下述3条推理规则。
(1)合并规则:若X→Y, X→Z,则X→YZ在R上成立。
(2)伪传递率:若X→Y,WY→Z,则XW→Z在R上成立。
(3)分解规则:若X→Y,Z
Y,则X→Z为在R上成立。
三、范式:符合某一种级别的关系模式的集合。
(1)第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分割的原子值,那么称R为第一范式的模式。r是规范化的关系,关系数据库研究的关系都是规范化的关系。同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,也就是无重复的列。
(2)第二范式(2NF):如果关系模式R是1NF,且每个非主属性完全依赖于候选键,那么称R为第二范式的模式。要求数据库表中的每个实例或行必须可以被唯一地区分。属性完全依赖于主键[消除部分子函数依赖]。
(3)第三范式(3NF):如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码,则称R为第三范式的模式。要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。属性不依赖于其它非主属性[消除传递依赖]。
(4)巴斯科德范式(BCNF):如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R为巴斯科德范式的模式。BCNF是第三范式的一个子集,即满足巴斯科德范式必须满足第三范式,在3NF基础上消除对主码子集的依赖。
(5)第四范式(4NF):如果关系模式R是1NF,如果对于R的每个非平凡多值依赖X→→Y(Y
X) ,X都含有候选码,那么称R为第四范式的模式。第四范式的定义很简单:已经是BC范式,并且不包含多值依赖关系。在BCNF基础上消除了非平凡且非函数依赖的多值依赖。
下面是近几年对该知识点考察过的真题,以后仍是考试出题的重点,大家要重视起来。
【2015年18题】在数据库逻辑设计阶段,若实体中存在多值属性,那么将E-R图转为关系模式时()得到的关系模式属于4NF。
A、将所有多值属性组成一个关系模式
B、使多值属性不在关系模式中出现
C、将实体的码分别和每个多值属性独立构成一个关系模式
D、将多值属性和其它属性一起构成该实体对应的关系模式
解析:本题考查数据库的基础知识。
多值属性:一个元素可以有不同的可能值。比如某个职工的联系方式可以有多个不同的值。
第四范式,关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→Y(Y,X),X都含有候选码,则R∈4NF。4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。所以将实体的码分别和每个多值属性独立构成一个关系模式就可以符合第四范式的要求。
故正确答案为:C
【2015年21-22题】设有关系模式R(A1,A2,A3,A4,A5,A6),其中:函数依赖集F={A1→A2,A1A3→A4,A5A6→A1,A2A5→A6, A3A5 →A6},则(1)是关系模式R的一个主键,R规范化程度最高达到(2)。
1、
A、A1A4
B、A2A4
C、A3A5
D、A4A5
2、
A、1NF
B、2NF
C、3NF
D、BCNF
解析:本题考查数据库的基础知识。
(1)A3A5→A6,A5A6→A1 利用伪传递率:A3A5→A1;
A3A5→A1,A1→A2利用传递率:A3A5→A2;
A3A5→A1,A1A3→A4利用伪传递率:A3A5→A4;
因此A3A5→{ A1,A2,A3,A4,A5,A6},所以是主键。
第一问有一个快速的判断方法,根据这道题的选项可以快速判断出只要没在右边出现的,就是主键。因为根据函数依赖集F可知属性A3和A5只出现在函数依赖的左部,故必为候选关键字属性,又因为A3A5可以决定关系R中的全部属性,故关系模式R的一个主键是A3A5。
(2)第一范式要求没有重复的列,满足要求。
第二范式要求属性完全依赖于主属性,由第1问可知,A3A5是主键,其他的属性都完全依赖于A3A5,满足要求。
第三范式要求属性不依赖于其他非主属性,也就是要求消除传递依赖。但是题目里存在A5A6->A1,A1->A2,所以A5A6->A2,这是典型的传递依赖,所以不满足第三范式,所以R是2NF。
【2019年29-30题】给出关系R(A,B,C)和S(A,B,C),R和S的函数依赖集F={A→B,B→C}。若R和S进行自然连接运算,则结果集有(1)个属性。关系R和S(2)。
1、
A、3
B、4
C、5
D、6
2、
A、不存在传递依赖
B、存在传递依赖A→B
C、存在传递依赖A→C
D、存在传递依赖B→C
解析:本题考查数据库的基础知识。
自然连接是一种特殊的等值连接,它会把重复列消除,所以最后只有3列,也即是3个属性,相关知识点在上一个分享里讲过。
传递依赖:在R(U,F)中,如果X→Y,Y⊈X,Y→Z,则称Z对X传递依赖。在本题中A→B,B→C,故存在A→C的传递依赖。
故正确答案为:1-A 2-C
作者唯一官方个人微信公众号(昊洋与你一起成长):HYJY20180101
写于2021年9月16日
作者:昊洋讲师
版权所有,侵权必究




