1、您现在的位置:希赛网 云阅读 软件设计师考前冲刺与考点分析 考点突破第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日考点突破上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日数据库模式及ER模型上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日考点精讲根据考试大纲,本章要求考生掌握以下几个方面的知识点。(1)数据库模型(概念模式、外模式、内模式)(2)数据模型,E R 图,规范化(3)数
2、据操作(4)数据库语言(5)数据库管理系统的功能和特征(6)数据库的控制功能(7)数据仓库和分布式数据库基础知识从历年的考试情况来看,本章的考点主要集中在:E-R 模型、关系代数、元组演算、规范化理论(键、范式、模式分解)、S QL 语言等。版权方授权希赛网发布,侵权必究数据库是长期存储在计算机内的、有组织的、可共享的数据集合,数据库系统是指在计算机信息系统中引入数据库后的系统,一般由数据库、数据库管理系统(D a t a B a s e Ma n a g e me n tS y s t e m,D B MS)、应用系统、数据库管理员(D a t a B a s e A d mi n i s
3、t r a t o r,D B A)和用户构成。数据库系统的结构可以有多种不同的层次或不同的角度,其中典型的是三级划分法,其中包括三级模式和两级映射。下面将就该主题,以及E R 模型展开论述.版权方授权希赛网发布,侵权必究1.三级模式与两级映射数据库系统由外模式、概念模式和内模式三级构成。其关系如图5-1 所示。图5-1 数据库三级模式两级映射示意图从图5-1 可以看出,整个数据库体系由数据库管理系统(D B MS)进行管理,其内容涉及底层的数据存储问题,顶层涉及与用户的交互,这种层次的划分,主要目标是使数据库体系内部耦合度更低,变得更为灵活。外模式也称为子模式或用户模式,它对应的是我们平时所
4、用到的数据库视图。外模式用来描述用户(包括程序员和最终用户)看到或使用的那部分数据的逻辑结构,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,一个应用程序只能使用一个外模式。概念模式也称为模式或逻辑模式,它对应我们平时所用到的数据表。概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,用以描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系。概念模式通常还包含有访问控制、保密定义和完整性检查等方面的内容,以及概念/物理之间的映射。一个数据库只有一个概念模式。内模式对应于物理级数据库,是数据物理结
5、构和存储方式的描述,是数据在数据库内部的表示方式。内模式不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示和存储记录的物理顺序,以及索引和存储路径等数据的存储组织。一个数据库只有一个内模式。在数据库系统的三级模式中,模式是数据库的中心与关键;内模式依赖于模式,独立于外模式和存储设备;外模式面向具体的应用,独立于内模式和存储设备;应用程序依赖于外模式,独立于模式和内模式。从图5-1 可以看出,三级模式实际对应着数据库系统中的三个层次,这三个层次划分出来以后,为了达到“一个层次的变化不对其它两个层产生影响”的效果,提出了两级映射。两级映射分别是:外模式与概
6、念模式之间的映射、概念模式与内模式之间的映射。外模式与概念模式之间的映射:用于维护数据库的逻辑独立性。也就是说,有了这个映射,使得数据的逻辑结构改变时,应用程序不需要改变,只需要改变映射中的对应关系即可达到目的。概念模式与内模式之间的映射:用于维护数据库的物理独立性。也就是说当数据的物理存储改变时,应用程序不需要改变。2.ER模型数据库系统是对现实世界中数据的一种抽象,正如在“数据库系统功能和特性”知识点中所描述的,首先我们将通过概念模型将现实世界抽象成为信息世界,然后再抽象成为基本数据模型。而最常使用的概念模型就是E-R 模型,本知识点则主要围绕着这个重要概念阐述。图5-2ER模型图5-2
7、展示了一个简单的E R 模型,我们通过该图进行E R 模型的概念入门:实体:客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系。图5-2 中的“学生”与“课程”便是实体。属性:实体所具有的某一特性称为属性,通常一个实体可以由多个属性来描述。图5-2 中“学生”实体旁边的“学号”、“姓名”、“班级号”便是属性。联系:实体内部的联系通常是指组成实体的各属性间的关系。图5-2 中“选课”便是联系。(1)E R 模型实体联系类型一对一联系(1:1):对于实体集A 中的每一个实体,实体集B 中至多有一个实体与之联系。例:一个班级只有一个班主任,一个班主任也只在一个班级中任职。一
8、对多联系(1:n):对于实体集A 中的每一个实体,实体集B 中有n(n 0)个实体与之联系。反之,实体集B 中的每一个实体,实体集A 中至多只有一个实体与之联系。例:一个班级中有许多学生,而每个学生只在一个班级中学习。多对多联系(m:n):对于实体集A 中的每一个实体,实体集B 中有n(n 0)个实体与之联系。反之,实体集B 中的每一个实体,实体集A 中有m(m 0)个实体与之联系。一门课程同时有许多学生选修,而一个学生也可以选修多门课程。如图5-2 所示,该E R 模型便属于m:n 型。(2)E-R 模型的集成在数据库的概念设计过程中,由于系统都存在一定的复杂度,一次性设计全局E-R 图将存
9、在较大风险,所以一般会先设计各子系统的局部E-R 图,然进行集成。但由于各子系统应用所面临的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个局部E-R 图之间必定会存在许多不一致的问题,称之为冲突。因此,在合并E-R 图时,不能简单地将各个局部E-R 图画到一起,而是必须着力消除各个局部E-R 图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型。各局部E-R 图之间的冲突主要有三类,分别是属性冲突、命名冲突和结构冲突。1)属性冲突。属性冲突包括属性域冲突和属性取值冲突。属性冲突理论上好解决,只要换成相同的属性就可以了,但实际上需要各部门协商,解决起来并不
10、简单。2)命名冲突。命名冲突包括同名异义和异名同义。处理命名冲突通常也像处理属性冲突一样,通过讨论和协商等行政手段加以解。3)结构冲突。结构冲突包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R 图中所包含的属性个数和属性排列次序不完全相同。对于前者的解决办法是将属性变换为实体或实体变换为属性,使同一对象具有相同的抽象。对于后者的解决办法是使该实体的属性取各局部E-R上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日一点一练图中属性的并集,再适当调整属性的次序。(3)E-R 模型转关系模式E-R 图向
11、关系模式的转换属于数据库的逻辑设计阶段的工作,该阶段需要将E-R 模型转换为某种D B MS 能处理的关系模式,具体转换规则如下:1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的主键就是关系的主键。2)一个1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,每个实体的主键均是该关系的键属性;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的主键和联系本身的属性。3)一个1:n 联系可以转换为一个独立的关系模式,也可以与任意n 端对应
12、的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,而关系的主键为n 端实体的主键;如果与n 端实体对应的关系模式合并,则需要在该关系模式的属性中加入1 端关系模式的主键和联系本身的属性。4)一个m:n 联系转换为一个独立的关系模式,与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。5)三个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的主键和联系本身的属性均转换为关系的属性,而关系的主键为各实体主键的组合。另外,还有三种情况是需要特别注意的:1)多值属性的处理。如果
13、E-R 图中某实体具有一个多值属性,则应该进行优化,把该属性提升为一个实体,通常称为弱实体;或者在转化为关系模式时,将实体的主键与多值属性单独构成一个关系模式。2)派生属性的处理。因为派生属性可由其他属性计算得到,因此,在转化成关系模式时,通常不转换派生属性。3)在面向对象模型中,关系模式就对应类,关系模式的属性就对应类的属性。版权方授权希赛网发布,侵权必究试题1E-R 模型向关系模型转换时,三个实体之间多对多的联系m:n:p 应该转换为一个独立的关系模式,且该关系模式的关键字由_ _(1)_ _ 组成。(1)A 多对多联系的属性 B 三个实体的关键字C 任意一个实体的关键字 D 任意两个实体
14、的关键字试题2在某企业的营销管理系统设计阶段,属性“员工”在考勤管理子系统中被称为“员工”,而在档案管理子系统中被称为“职工”,这类冲突称为_ _(2)_ _ 冲突。上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日解析与答案上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日考点精讲(2)A 语义B 结构C 属性D 命名试题3E-R 图转换为关系模型时,对于实体E1与E2间的多对多联系,应该将_ _(3)_ _。(3)A E1的码加上联系上的属
15、性并入E2B E1的码加上联系上的属性独立构成一个关系模式C E2的码加上联系上的属性独立构成一个关系模式D E1与E2码加上联系上的属性独立构成一个关系模式版权方授权希赛网发布,侵权必究试题1分析在E-R 模型向关系模型转换时,如果是多对多的联系,那么这个联系需要转换为一个独立的关系模式,且该关系模式的属性由各实体的关键字和该联系自身的属性组成,而该关系模式的关键字(主键)由各实体的关键字组成。试题1答案(1)B试题2分析在本题中显然是存在命名冲突,同一个实体在同系统中存在不同的命名,这是不被允许的。试题2答案(2)D试题3分析本题主要考查E-R 图转换为关系模式的规则。在多对多联系转换为关
16、系模式时,应该将两个实体分别转换为一个关系模式,并将其联系也转换为一个独立的关系模式,该关系模式的属性包括联系本身的属性即两实体的主键。因此本题的答案选D。试题3答案(3)D版权方授权希赛网发布,侵权必究1.关系运算关系代数的基本运算主要有并、交、差、笛卡尔积、选择、投影、连接和除法运算。(1)并。计算两个关系在集合理论上的并集,即给出关系R 和S(两者有相同元/列数),R S的元组包括R 和S 所有元组的集合,形式定义如下:式中 t 是元组变量(下同)。显然,R S=S R。(2)差。计算两个关系的区别的集合,即给出关系R 和S(两者有相同元/列数),R-S 的元组包括R 中有而S 中没有的
17、元组的集合,形式定义如下:(3)交。计算两个关系集合理论上的交集,即给出关系R 和S(两者有相同元/列数),R S 的元组包括R 和S 相同元组的集合,形式定义如下:显然,R S =R-(R-S)和R S =S-(S-R)成立。(4)笛卡尔积。计算两个关系的笛卡尔乘积,令R 为有m元的关系,S 为有n 元的关系,则R S是m+n 元的元组的集合,其前m个元素来自R 的一个元组,而后n 个元素来自S 的一个元组。形成定义如下:若R 有u 个元组,S 有v 个元组,则R S 有u v 个元组。(5)投影。从一个关系中抽取指明的属性(列)。令R 为一个包含属性A 的关系,则(6)选择。从关系R 中抽
18、取出满足给定限制条件的记录,记作:其中F 表示选择条件,是一个逻辑表达式(逻辑运算符+算术表达式)。选择运算是从元组(行)的角度进行的运算。(7)连接。连接从两个关系的笛卡儿积中选取属性之间满足一定条件的元组,记作:其中A 和B 分别为R 和S 上元数相等且可比的属性组。为“=”的连接,称为等值连接,记作:如果两个关系中进行比较的分量必须是相同的属性组,并且在结果中将重复的属性去掉,则称为自然连接,记作:(8)除。设有关系R(X,Y)与关系S(Z),Y 和Z 具有相同的属性个数,且对应属性出自相同域。关系R(X,Y)S(Z)所得的商关系是关系R 在属性X 上投影的一个子集,该子集和S(Z)的笛
19、卡尔积必须包含在R(X,Y)中,记为R S,其具体计算公式为:例如,有关系R 与关系S 如表5-1 和表5-2 所示。表5-1 关系R表5-2 关系S则R S 的求解过程为:首先,按除运算定义要求,确定X,Y,Z 属性集合。Y 是关系R 中的属性集合,Z 是S 中全部属性的集合,即Z=U 3,U 4 ,由于Y=Z,因此,Y=U 3,U 4 ,X=U 1,U 2 。也就是说,R S 结果集包含属性U 1 和U 2;然后,将关系R 的U 1、U 2(共有、两个元组)与关系S 作笛卡尔积操作,结果如表5-3 所示。表5-3 R(U1,U2)S通过检查表5-3,可以发现元组 与S(Z)的笛卡尔积被包含
20、在R(X,Y)中,而元组与S(Z)的笛卡尔积有一个元组未被包含在R(X,Y)中,所以,结果集中只有元组。2.元组演算在元组演算中,元组演算表达式简称为元组表达式,其一般形式为 t|P(t),其中,t 是元组变量,表示一个元数固定的元组;P 是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。t|P(t)表示满足公式P 的所有元组t 的集合。在元组表达式中,公式由原子公式组成,原子公式有下列两种形式:(1)R(s),其中R 是关系名,s 是元组变量。其含义是“s 是关系R 的一个元组”。(2)s i u j ,其中s 和u 是元组变量,是算术比较运算符,s i 和u j 分别是s 的
21、第i 个分量和u 的第j 个分量。原子公式s i u j 表示“元组s 的第i 个分量与元组u 的第j 个分量之间满足 运算”。例如,“t 2 u 3 ”表示元组t 的第2 个分量小于元组u 的第3 个分量。这个原子公式的一种简化形式是s i a 或a u j ,其中a 为常量。例如,“t 4 =3”表示t 的第4 个分量等于3。在一个公式中,如果元组变量未用存在量词“”或全称量词“”等符号定义,那么称为自由元组变量,否则称为约束元组变量。公式的递归定义如下。(1)每个原子是一个公式,其中的元组变量是自由变量。(2)如果P 1 和P 2 是公式,那么,P 1、P 1 P 2、P 1 P 2 和
22、P 1 P 2 也是公式。(3)如果P 1 是公式,那么(s)(P 1)和(s)(P 1)也都是公式。(4)公式中各种运算符的优先级从高到低依次为、和、和、。在公式外还可以加括号,以改变上述优先顺序。(5)公式只能由上述四种形式构成,除此之外构成的都不是公式。在元组演算的公式中,有下列四个等价的转换规则:(1)P 1 P 2 等价于(P 1 P 2)。(2)P 1 P 2 等价于(P 1 P 2)。上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日一点一练上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育
23、软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日解析与答案(3)(s)(P 1(s)等价于(s)(P 1(s);(s)(P 1(s)等价于(s)(P 1(s)。(4)P 1 P 2 等价于P 1 P 2。关系代数表达式可以转换为元组表达式,例如,R S 可用 t|R(t)S(t)表示,R-S 可用 t|R(t)S(t)表示。版权方授权希赛网发布,侵权必究试题1若对关系R(A,B,C,D)进行1 3(R)运算,则该关系运算与_ _(1)_ _ 等价,表示_ _(2)_ _。(1)A A=1,C=3(R)B A=1 C=3(R)C A,C(R)D A=1 C=3(R)(2)A 属性A
24、 和C 的值分别等于1 和3 的元组为结果集B 属性A 和C 的值分别等于1 和3 的两列为结果集C 对R 关系进行A=1、C=3 的投影运算D 对R 关系进行属性A 和C 的投影运算试题2 若关系R、S 如图5-3 所示,则R 与S 自然连接后的属性列数和元组个数分别为_ _(3)_ _;1,4(3=6(R S)_ _(4)_ _。图5-3关系R与S(3)A 4 和3 B 4 和6 C 6 和3 D 6 和6 (4)A A,D(C=D(R S)B A,R.D(S.C=R.D(R S)C A,R.D(R.C=S.D(R S)D R.A,R.D(S.C=S.D(R S)版权方授权希赛网发布,侵权
25、必究上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日规范化理论上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日考点精讲试题1分析本题主要考查关系运算。投影运算是从一个关系里面抽取指明的属性(列)组成一个新的关系,这种运算是一种对列进行操作的运算。本题中1 3(R)的含义就是从关系R 中,选取第1 列(A)和第3 列(C)组成一个新的关系模式,因此第1 空选C,而2 空选D。试题1答案(1)C(2)D试题2分析本题考查数据库的关系运算,是常考
26、的知识点。自然连接是一种等值连接但并不是每一个等值连接都是自然连接,若R 与S 无公共属性,则R S=R S。另外,R R 等于R 本身。图5-3 中,R 有4 个属性,S 有2 个属性且与R 中的相同,所以进行自然连接后,会有4 列,记录会有3 条。所以第(3)空要选择A 答案。又因为式子1,4(3=6(R S)是将R 和S 先进行笛卡儿积,然后再选取和投影。所以第(4)空正确的答案是C 选项。试题2答案(3)A(4)C 版权方授权希赛网发布,侵权必究不同的人对于相同的东西可以建立不同的模型,如何衡量模型建立的好坏?换而言之,按照什么原则建立模型?这个原则就是规范化理论。版权方授权希赛网发布
27、,侵权必究1.规范化理论的作用前面已经介绍了什么是规范化理论,那么在数据库设计中,规范化理论有什么作用,解决了什么问题呢?下面我们通过一个实例来分析这个问题。设有一个关系模式R(S NA ME,C NA ME,T NA ME T A D D R E S S),其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列存储异常的问题:(1)数据冗余:如果某门课程有1 0 0 个学生选修,那么在R 的关系中就要出现1 0 0 个元组,这门课程的任课教师姓名和地址也随之重复出现1 0 0 次。(2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,
28、就要修改1 0 0 个元组中的地址值,否则就会出现地址值不一致的现象。(3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库;否则就要在学生姓名处插入空值。(4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。因此,关系模式R 虽然只有四个属性,但却是性能很差的模式。产生这些异常的原因与关系模式属性值之间的联系直接有关。在模式R 中,学生与课程有直接联系,教师与课程有直接联系,而教师与学生无直接联系,这就产生了模式R 的存储异常。如果将R 分解成下列两个关系模式:R 1(S NA ME,C NA ME)和R 2(C NA ME,T NA
29、ME,T A D D R E S S),则能消除上述的存储异常现象。2函数依赖函数依赖是数据库的一种约束,决定了关系模式属于哪种范式。为了理解方面,下面我们先介绍函数依赖的有关概念。设R(U)是属性U 上的一个关系模式,X 和Y 是U 的子集,r 为R 的任一关系,如果对于r 中的任意两个元组u,v,只要有u X =v X ,就有u Y =v Y ,则称X 函数决定Y,或称Y 函数依赖于X,记为X Y。例如,记录职工信息的结构如下:职工工号(E MP _ NO)职工姓名(E MP _ NMA E)所在部门(D E P T)。我们说E MP _ NO函数决定E MP _ NMA E 和D E P
30、 T,或者说E MP _ NMA E,D E P T 函数依赖于E MP _ NO,记为:E MP _ NOE MP _ NMA E,E MP _ NOD E P T。3键超键:在关系模式中,能唯一标识元组的属性集称为超键。候选键:如果一个属性集能唯一标识元组,且又不含有多余属性。主键:关系模式中用户正在使用的候选键称为主键。外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。例如,记录职工信息的结构如下:职工工号(E MP _ NO)职工身份证号(E MP _ C A R D I D)职工姓名(E MP _ NMA E)职工性别(E MP _ S E X)所
31、在部门编号(D E P T _ NO)。在此关系中:(1)E MP _ NO和E MP _ NMA E 的组合是超键。理由:E MP _ NO和E MP _ NMA E 的组合能唯一标识元组的属性。补充说明:其实只需要E MP _ NO就可以唯一标识元组的属性,所以E MP _ NO是本关系的候选键,也可以是本关系的主键。(2)E MP _ NO 和E MP _ C A R D I D 是候选键。补充说明:一个关系的候选键可以有多个。(3)E MP _ NO 或E MP _ C A R D I D 可选作本关系的主键。补充说明:一个关系的候选键有多个,但主键只能有一个。通常在候选键中选一个作为
32、主键。(4)D E P T _ NO为本关系相对于部门关系的外键。理由:D E P T _ NO在本关系中不是主键,而在部门关系中是主键,所以它是本关系的外键。补充说明:外键的作用是进行连接操作。例如现在要查找某个职工所在的部门名称,我们就需要用到外键来与部门关系进行连接,连接之后可以得到职工所在部门的名称。4图示法求候选键求关系模式的候选键是进行范式界定的基础,也是系统分析员应该掌握的基本技能。使用候选键的定义“如果一个属性集能唯一标识元组,且又不含有多余属性。”来求解一个简单关系模式的候选键尚能应对,但面对复杂一些的关系模式,这种方法就不管用了。在此,引入一种求候选键的快捷方法,即图示法。
33、使用图示法求候选键,主要有三个步骤:(1)将关系的函数依赖关系,用“有向图”的方式表示。(2)找出入度为0 的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。(3)若入度为0 的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并到入度为0 的属性集中,直至该集合能遍历所有结点,集合为候选键。例如,给定关系R(A 1,A 2,A 3,A 4)上的函数依赖集F=A 1 A 2,A 3 A 2,A 2 A 3,A 2 A 4 ,现在要求R 的候选关键字。第一步,需要针对函数依赖集画出有向图,如图5-4 所示。图
34、5-4函数依赖集对应有向图第二步,从该图中找出入度为0 的结点,本图中入度为0 的结点只有1 个,即A 1。通过尝试,可以发现从A 1 出发可以遍历有向图中的所有结点,所以本关系模式的候选键为A 1。5.范式在数据库设计过程中,往往遇到数据冗余、修改异常、插入异常和删除异常等,为了设计一个好的数据库,人们定义了一些好的关系模式标准,称它们为规范的关系模式(简称范式,NF)。目前共定义了多个范式,分别为1 NF、2 NF、3 NF、B C NF、4 NF 和5 NF。但实际应用中,一般只要达到3 NF。如果有X U 在关系模式R(U)上成立,并且不存在X 的任一真子集X 使X U 成立,那么称X
35、 是R 的一个候选键。也就是X 值惟一决定关系中的元组。在R(U)中,如果X Y,并且对于X 的任何一个真子集X ,都有X Y 不成立,则称Y 对X 完全函数依赖。若X Y,但Y 不完全函数依赖于X,则称Y 对X 部分函数依赖(注意:此处的X 是一个属性集)。例如,如图5-5 所示:X1X2Y,又有X1Y,则Y 部分函数依赖于X1X2。图5-5部分函数依赖示意图在R(U)中,如果X Y(Y 不是X 的真子集),且Y X 不成立,Y Z,则称Z 对X 传递函数依赖,如图5-6 所示。图5-6传递函数依赖示意图有了上述的函数依赖概念之后,我们再介绍范式的概念。第一范式(1 NF):在关系模式R 中
36、,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称实体E 是第一范式。本书中所引用的关系模式,一般都达到了第一范式的要求。例如,图5-7 所示的教师职称情况关系表就不满足1 NF。图5-7教师职称情况关系表原因在于该关系模式中的“高级职称人数”不是一个原子属性,若将其拆分为“教授”和“副教授”两个属性,则满足1 NF。满足1 NF 的关系模型会有许多重复值,并且增加了修改其数据时引起疏漏的可能性。为了消除这种数据冗余和避免更新数据的遗漏,我们需要更加规范的第二范式(2 NF)。第二范式(2 NF):当且仅当实体E 是第一范式(1 NF),且每一个非键属性完全依赖主键(没有不完全
37、依赖)时,则称实体E 是第二范式。非键属性完全依赖又称部分函数依赖。例如,有选课关系模式S C(S n o,C n o,G r a d e,C r e d i t),其中:(S n o,C n o)G r a d e,C n o C r e d i t。由此可知S C 的主键为:(S n o,C n o)。这样(S n o,C n o)C r e d i t 就被称为C r e d i t 对主键(S n o,C n o)的部分函数依赖,即C r e d i t 属性只需要主键的一部分C n o 即可确定。所以本关系模式不符合2 NF,只是1 NF。若要将该关系模式转化为2 NF,可以将关系模
38、式拆分为:S C 1(S n o,C n o,G r a d e)和S C 2(C n o,C r e d i t)。拆分前的S C 与拆分后的S C 1 与S C 2 如图5-8 所示,从该分解可以发现C r e d i t 在S C 中有大量数据重复,而分解之后,解决了该问题。图5-8关系SC及由此拆分的SC1与SC2第三范式(3 NF):当且仅当实体E 是第二范式(2 NF),且E 中没有非主属性传递依赖于码时,则称实体E 是第三范式。例如,学生关系S u d e n t(S n o,S n a me,D n o,D n a me,L o c a t i o n)各属性分别代表学号,姓名
39、,所在系,系名称,系地址。其数据如表所示,从关系模式中各属性之间的联系可以判断出本关系模式的函数依赖有:S n o S n a me,S n o D n o,S n o D n a me,S n o L o c a t i o n,D n o D n a me,D n o L o c a t i o n。显然,S n o 为主键。在函数依赖中有:S n o D n o D n a me 与S n o D n o L o c a t i o n。这便是传递函数依赖。由于D n a me 与L o c a t i o n 为非主属性,同时传递依赖于码,所以本关系模式不满足3 NF。若要满足3 NF
40、,需要将关系模式拆分为:S u d e n t(S n o,S n a me,D n o)和D e p a r t me n t(D n o,D n a me,L o c a t i o n)。图5-9关系StudentB C NF:如果关系模型R 1 NF,且R 中每一个函数依赖关系中的决定因素都包含码,则R 是满足B C 范式的关系,记作R?B C NF。按此定义,消除了任何属性对码的传递依赖与部分依赖即为B C NF。但要判断任何属性是否对码存在传递依赖并不是一件容易的事情。例如,有关系模式P(C,S,T,R),根据语义有函数依赖F=C T,S T R,T R C ,现在需要判断该关系模
41、式是否满足B C NF。此时我们需要分析其是否存在传递依赖。根据之前的图示法求候选键的方法,我们可以先画出相应的函数依赖图。图5-10关系模式P函数依赖对应有向图对该图进行分析,可以得知本关系模式的候选键有:(S,T)和(S,C),所以主属性为:S、T、C,非主属性为:R。但此时由于属性之间的联系错综复杂,所以要界定关系模式是否存在传递函数依赖并不容易。为了准确的界定某关系模式是否为B C NF,我们需要引入另外的一些判别方法。由于有C T,而C 不包含候选键,所以本关系模式不满足B C NF。根据各范式的定义,各级范式这间存在如下关系:6.关系模式分解如果某关系模式存在存储异常等问题,则可通
42、过分解该关系模式来解决问题。将一个关系模式分解成几个子关系模式,需要考虑的是该分解是否保持函数依赖,是否是无损联接。(1)无损连接分解在理解无损连接分解前,我们需要明确一个概念:什么叫有损,什么又是无损?答案很简单:有损分解后不能还原;无损分解后可以还原。有了这个概念基础之后,理解无损连接分解就容易了。其定义如下:设R 是一个关系模式,F 是R上的一个函数依赖集。R 分解成数据库模式=R 1,R K 。如果对R 中每个满足F 的关系r 都有下式成立:则称分解 相对于F 是无损联接分解,否则称为损失联接分解。要根据上述定义来判断一个分解是否是无损联接,这是一件很困难的事情,所以常常有两种方法用来
43、解决这个问题。方法一:公式法。优点:速度快。缺点:只能应用于一分为二的情况,一个关系模式要分解为三个关系模式就用不上了。判定定理:设=R1,R2 是R 的一个分解,F 是R 上的函数依赖集,那么分解 相对于F 是无损联接分解的充要条件是(R1 R2)(R1-R2)或(R1 R2)(R2-R1)。要注意的是,这两个条件只要有任意一个条件成立就可以了。方法二:表格法。优点:速度慢。缺点:适用于所有形式的模式分解。对于表格法,由于其方法复杂,所以在此用一个例题进行讲解。例:设关系模式R(U,F),其中R 上的属性集U=A,B,C,D,E ,R 上的函数依赖集F=A B,D E B,C B E,E A
44、,B D。分别判断:p 1=R1(A C),R2(E D),R3(A B)、p 2=R1,(A B C),R2(E D),R3(A C E)是否为无损连接?首先可以利用之前讲到的图示法求出本题的候选键,求得关系R 有三个候选键:B C、E C,A C。接下来是判断模式分解过程中的无损连接的问题。这个问题相对来说比较复杂。需要列表来进行分析。对p 1=R1(A C),R2(E D),R3(A B)构造初始的判定表如表5-4 所示。表5-4模式分解p1初始判定表由于A B,属性A 的第1 行和第3 行相同,可以将第1 行b1 2改为a2;又由于B D,属性B 的第1行和第3 行相同,所以需要将属性
45、D 第1 行b1 4和第3 行b3 4,改为同一符号,即取行号值最小的b1 4。修改后的判定表如表5-5 所示。表5-5模式分解p1修改判定表反复检查函数依赖集F,无法修改上表,所以是有损连接的。对p 2=R1,(A B C),R2(E D),R3(A C E)构造初始的判定表如表5-6 所示。表5-6模式分解p2初始判定表由于A B,属性A 的第1 行和第3 行相同,可以将第3 行b3 2改为a2;E A,属性E 的第2 行和第3行相同,可以将属性A 第2 行b2 1改为al;A C E,属性E 的第2 行和第3 行相同,可以将属性E 第1 行b1 5改为a5;B D,属性B 的第1 行和第
46、3 行相同,所以需要将属性D 第1 行b1 4和第3 行b3 4,改为同一符号,即取行号值最小的b1 4。E D,属性E 的第1 3 行相同,可以将属性D 第1 行b1 4和第3 行b3 4改为a4。修改后的判定表如表5-7 所示。表5-7模式分解p2修改判定表上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日一点一练上一节本书简介下一节由于上表第一行全为a,故分解无损。(2)保持函数依赖分解设数据库模式=R1,RK 是关系模式R 的一个分解,F 是R 上的函数依赖集,中每个模式R i上的函数依赖集是F i。如果 F1
47、,F2,Fk 与F 是等价的(即相互逻辑蕴涵),则称分解 保持函数依赖。如果分解不能保持函数依赖,则 的实例上的值就可能有违反函数依赖的现象。版权方授权希赛网发布,侵权必究试题1给定关系模式R ,U=A,B,C ,F=A B C,C B 。关系R _ _(1)_ _,且分别有_ _(2)_ _。(1)A 只有1 个候选关键字A C B 只有1 个候选关键字A BC 有2 个候选关键字A C 和B C D 有2 个候选关键字A C 和A B(2)A 1 个非主属性和2 个主属性B 2 个非主属性和1 个主属性C 0 个非主属性和3 个主属性D 3 个非主属性和O个主属性试题2设有学生实体S t
48、u d e n t s(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了学生亲属的姓名、与学生的关系以及联系电话。学生实体S t u d e n t s 中的“家庭住址”是一个_ _(3)_ _ 属性;为使数据库模式设计更合理,对于关系模式S t u d e n t s _ _(4)_ _。(3)A 简单B 多值C 复合D 派生(4)A 可以不作任何处理,因为该关系模式达到了3 NFB 只允许记录一个亲属的姓名、与学生的关系以及联系电话的信息C 需要对关系模式S t u d e n t s 增加若
49、干组家庭成员、关系及联系电话字段D 应该将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体试题3建立一个供应商、零件数据库。其中“供应商”表S(S n o,S n a me,Z i p,C i t y)分别表示:供应商代码、供应商名、供应商邮编、供应商所在城市,其函数依赖为:S n o(S n a me,Z i p,C i t y),Z i p C i t y。“供应商”表S 属于_ _(5)_ _。(5)A 1 NF B 2 NF C 3 NF D B C NF版权方授权希赛网发布,侵权必究第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5
50、 月0 4 日解析与答案上一节本书简介下一节第 5 章:数据库系统基础知识作者:希赛教育软考学院 来源:希赛网 2 0 1 4 年0 5 月0 4 日试题1分析本题主要考查函数依赖的基础知识。关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为候选码。但这里大家要注意,如果一个关系有多个不同的主码时,那么这些主码组合在一起就是候选码,也就是说一个关系的主码只能选一个,而候选码可以有多个,这就好选总统一样,候选人可以多个,但最终的总统只能有一个,当然也有些地方的候选人就只有一个,候选码也一样,也有可能只有一个,在这种情况下,候选码就是主码。主属性和非主属性