9、设有关系模式R(E,F,G,H),函数依赖F={ E→G,G→E,F→(E,G),H→(E,G),
(F,H)→E}
(1)求出R的所有候选关键字;
(2)根据函数依赖关系,确定关系模式R属于第几范式;
(3)将R分解为3NF,并保持无损连接性和函数依赖保持性;
(4)求出F的最小函数依赖集。
参考答案:
(1)R的候选关键字为:(F,H)
(2)R为:1NF
(3)分解为:
({E,G},{E→G,G→E })、({F,E},{F→E})、({H,G},{H→G})、({F,H},{})
(4)最小函数依赖集为:{ E→G,G→E,F→G,H→G }
按定理4.3,求最小函数依赖集步骤:
F={E→G,G→E,F→(E,G),H→(E,G),(F,H)→E}
={E→G,G→E,F→G,H→E,H→G,(F,H)→E}
={E→G,G→E,F→G,H→G}
10、试问下列关系模式最高属于第几范式,并解释其原因。
(1)R(A,B,C,D),F={B→D,AB→C}。
(2)R(A,B,C,D,E),F={AB→CE,E→AB,C→D}。
(3)R(A,B,C,D),F={B→D,D→B,AB→C}。
(4)R(A,B,C),F={A→B,B→A,A→C}。
(5)R(A,B,C),F={ A→B,B→A,C→A }。
(6)R(A,B,C,D),F={A→C,D→B}。
(7)R(A,B,C,D),F={A→C,CD→B}。
参考答案:
只依次写出候选关键字与范式等级(范式按定义判定,具体略)
(1)AB 1NF
(2)AB,E 2NF
(3)AB,AD 3NF
(4)A,B BCNF
(5)C 2NF
(6)AD 1NF
(7)AD 1NF
二、填空题
1、对数据库的保护一般包括 安全性 、 完整性 、 并发控制 和 数据恢复 四个方面的内容。
2、对数据库 安全 性的保护就是指要采取措施,防止库中数据被非法访问、修改,甚至恶意破坏。
3、安全性控制的一般方法有 用户标识和鉴别 、 用户存取权限控制 、 视图机制 、
数据加密 和 审计 五种。
4、用户鉴定机制包括 用户标识定义 和 用户身份验证 两个部分。
5、每个数据均需指明其数据类型和取值范围,这是数据 完整性 约束所必需的。
6、在SQL中, COMMIT 语句用于提交事务, ROLLBACK 语句用于回滚事务。
7、加锁对象的大小被称为加锁的 粒度 。
8、对死锁的处理主要有两类方法,一是 预防死锁的发生 ,二是 检测死锁发现后予以消除死锁 。
9、解除死锁最常用的方法是 撤消一些陷入死锁的事务 。
10、基于日志的恢复方法需要使用两种冗余数据,即 后备数据库 和 日志文件 。
三、简单题
1、简述数据库保护的主要内容。
对数据库的保护一般包括4个方面的内容,一是对数据库完整性的保护,即保证库中的数据是正确的和相容的,符合完整性约束条件的;二是对数据库安全性的保护,即防止库中数据被非法访问、修改,甚至恶意破坏;三是对并发的事务进行控制,保证数据库的一致性;四是在发生故障后,对数据库进行恢复,尽量减少故障造成的损失。
2、什么是数据库的安全性?简述DBMS提供的安全性控制功能包括哪些内容。
解:
(1)数据库的安全性是指保护数据库以防止非法使用所造成数据的泄露、更改或破坏。
(2)常采取的安全保护措施有用户鉴定、存取控制、视图保护、审计和数据加密等。
4、什么是数据库的完整性?DBMS提供哪些完整性规则,简述其内容。
(1)数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。
(2)DBMS提供实体完整性规则、参照完整性规则及用户自定义完整性规则
为保障数据库的完整性,数据库管理系统应提供完整性约束的定义机制和检查机制。
5、数据库的安全性保护和完整性保护有何主要区别?
解:
数据库的完整性和安全性是数据库保护的两个不同的方面。
安全性是保护数据库,以防止非法使用所造成数据的泄露、更改或破坏,安全性措施的防范对象是非法用户和非法操作;完整性是防止合法用户使用数据库时向数据库中加入不符合语义的数据,完整性措施的防范对象是不合语义的数据,即不正确的数据。
6、什么是事务?简述事务的ACID特性,事务的提交和回滚是什么意思?
解:
(1)事务是数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列组成。
一个事务可以是一组SQL语句、一条SQL语句或整个程序,一个应用程序可以包括多个事务。事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按照缺省规定自动划分事务。
(2)事务是由有限的数据库操作序列组成,但并不是任意的数据库操作序列都能成为事务,为了保护数据的完整性,一般要求事务具有以下四个特征:
1)原子性(Atomicity)2)一致性(Consistency)3)隔离性(Isolation)4)持久性(Durability)事务上述四个性质的英文术语的第一个字母分别为A、C、I、D。因此,这四个性质也称为事务的ACID准则。
(3)
COMMIT表示事务的提交,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,此时事务正常结束;
ROLLBACK表示事务的回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤销,再回滚到事务开始时的状态。
7、数据库管理系统中为什么要有并发控制机制?
解:
每个用户在存取数据库中的数据时,可能是串行执行,即每个时刻只有一个用户程序运行,也可能是多个用户并行地存取数据库。数据库的最大特点之一就是数据资源是共享的,串行执行意味着一个用户在运行程序时,其他用户程序必须等到这个用户程序结束才能对数据库进行存取,这样数据库系统的利用率会极低。因此,为了充分利用数据库资源,很多时候数据库用户都是对数据库系统并行存取数据,但这样就会发生多个用户并发存取同一数据块的情况,如果对并发操作不加控制可能会产生操作冲突,破坏数据的完整性。即发生所谓的丢失更新、污读、不可重读等现象。
(2)实现并发控制的方法主要有两种:封锁(Lock)技术和时标(Timestamping)技术。
9、什么是封锁?封锁的基本类型有哪几种?含义是什么?
解:
(1)所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集、以至整个数据库)进行操作之前,必须获得相应的锁,以保证数据操作的正确性和一致性。
(2)基本的封锁类型有两种:排它锁和共享锁。
1)排它锁(Exclusive Lock):排它锁又称写锁,简称为X锁,其采用的原理是禁止并发操作。当事务T对某个数据对象R实现X封锁后,其他事务要等T解除X封锁以后,才能对R进行封锁。这就保证了其他事务在T释放R上的锁之前,不能再对R进行操作。
2)共享锁(Share Lock):共享锁又称读锁,,简称为S锁,其采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。当事务T对某个数据对象R实现S封锁后,其他事务只能对R加S锁,而不能加X锁,直到T释放R上的S锁。这就保证了其他事务在T释放R上的S锁之前,只能读取R,而不能再对R作任何修改。
11、什么是活锁?如何处理?
解:
(1)封锁技术可有效解决并行操作引起的数据不一致性问题,但也可产生新的问题,即可能产生活锁和死锁问题。
活锁(Livelock):当某个事务请求对某一数据的排它性封锁时,由于其他事务一直优先得到对该数据的封锁与操作而使这个事务一直处于等待状态,这种状态形成活锁。
(2)避免活锁的简单方法是采用先来先服务的策略,按照请求封锁的次序对事务排队,一旦记录上的锁释放,就使申请队列中的第一个事务获得锁。
12、什么是死锁?消除死锁的常用方法有哪些?请简述之。
(1)在同时处于等待状态的两个或多个事务中,每个事务都在等待其中另一个事务解除封锁,它才能继续执行下去,造成任何一个事务都无法继续执行,这种状态称为死锁。
(2)发生死锁的必要条件有以下四条:
①互斥条件②不可抢占条件③部分分配条件:④循环等待条件
①一次加锁法
一次加锁法是每个事物必须将所有要使用的数据对象全部依次加锁,并要求加锁成功,只要一个加锁不成功,表示本次加锁失败,则应该立即释放所有已加锁成功的数据对象,然后重新开始从头加锁。
②顺序加锁法
顺序加锁法是预先对所有可加锁的数据对象规定一个加锁顺序,每个事务都需要按此顺序加锁,在释放时,按逆序进行。
14、数据库运行过程中可能产生的故障有哪几类
(1)数据库运行过程中可能会出现各种各样的故障,这些故障可分为以下三类:事务故障、系统故障和介质故障。
16、什么是日志文件?为什么要在系统中建立日志文件?
解:
(1)日志文件是用来记录事务对数据库的更新操作的文件。对数据库的每次修改,都将把被修改项目的旧值和新值写在一个叫做运行日志的文件中,目的是为数据库的恢复保留依据。
典型的日志文件主要包含以下内容:1)更新数据库的事务标识(标明是哪个事务);2)操作的类型(插入、删除或修改);3)操作对象;4)更新前数据的旧值(对于插入操作而言,没有旧值);5)更新后数据的新值(对于删除操作而言,没有新值);6)事务处理中的各个关键时刻(事务的开始、结束及其真正回写的时间)。
二、填空题
1、在设计分E-R图时,由于各个子系统分别面向不同的应用,所以各个分E-R图之间难免存在冲突,这些冲突主要包括 命名冲突 、 属性冲突 和 结构冲突 三类。
2、数据字典中的 数据项 是不可再分的数据单位。
3、若在两个局部E-R图中都有实体“零件”的“重量”属性,而所用重量单位分别为公斤和克,则称这两个E-R图存在 属性 冲突。
5、确定数据库的物理结构主要包括三方面内容,即: 确定数据存放位置和存储结构 、 确定数据存取方法 和 系统配置 。
6、将关系R中在属性A上具有相同值的元组集中存放在连续的物理块上,称为对关系R基于属性A进行 聚簇 。
7、数据库设计的重要特点之一要把 结构(数据) 设计和 行为(处理) 设计密切结合起来,并以 结构(数据) 为核心而展开。
8、数据库设计一般分为如下六个阶段: 需求分析 、 概念结构设计 、 逻辑结构设计 、数据库物理设计、数据库实施、数据库运行与维护。
9、概念设计的结果是得到一个与 计算机与DBMS 无关的模型。
10、在数据库设计中, 数据字典 是系统各类数据的描述的集合。
三、简答题
1、数据库设计分为哪几个了阶段?每个阶段的主要工作是什么?
解:
(1) 按照规范化的设计方法,以及数据库应用系统开发过程,数据库的设计过程可分为以下六个设计阶段需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库运行和维护。
(2) 以下是数据库设计六个步骤的具体内容:
1、需求分析阶段2、概念结构设计阶段3、逻辑结构设计阶段4、物理设计阶段
5、数据库实施阶段6、数据库运行与维护阶段
5、什么是E-R图?构成E-R图的基本要素是什么?
(1)E-R图即是实体-联系图,是信息世界概念模型的一种。
(2)E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆表示,椭圆形内写明属性名。并用无向边将其与相应的实体连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
6、用E-R图表示概念模式有什么好处?
解:
概念模式是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象。将概念结构设计从设计过程中独立出来,可以带来以下好处:
(1) 任务相对单一化,设计复杂程度大大降低,便于管理。
(2) 概念模式不受具体的DBMS的限制,也独立于存储安排和效率方面的考虑,因此,更稳定。
(3) 概念模型不含具体DBMS所附加的技术细节,更容易被用户理解,因而更能准确的反映用户的信息需求。
8、一个图书馆理系统中有如下 信息:
图书:书号、书名、数量、位置
借书人:借书证号、姓名、单位
出版社:出版社名、邮编、地址、电话、E-mail
其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有惟一性。
根据以上情况,完成如下设计:
(1)设计系统的E-R图;
(2)将E-R图转换为关系模式;
(3)指出转换后的每个关系模式的关系键。
解:
(1)
(2)与(3)(带下划线的为主码)
借书人(借书证号,姓名,单位)
借阅(借书证号,书号,借书日期,还书日期)
图书(书号,书名,数量,位置)
出版(书号,出版社名)
出版社(出版社名,邮编,地址,电话,E-mail)
二、填空题
1、数据库就是长期储存在计算机内 有组织的 、 可共享 的数据集合。
2、数据管理技术已经历了人工管理阶段、 文件系统阶段 和 数据库系统阶段 三个发展阶段。
3、数据模型通常都是由 数据结构 、 数据操作 和 数据完整性约束 三个要素组成。
4、数据库系统的主要特点: 数据整体结构化 、数据冗余度小、具有较高的数据程序独立性、具有统一的数据控制功能等。
5、用二维表结构表示实体以及实体间联系的数据模型称为 关系 数据模型。
6、在数据库的三级模式体系结构中,外模式与模式之间的映象,实现了数据库的__ _____数据逻辑 独立性。
7、数据库系统是以 数据库或数据库中的数据 为中心的系统。
8、E-R图表示的概念模型比 DBMS支持的数据模型 更一般、更抽象、更接近现实世界。
9、外模式,亦称为子模式或用户模式,是 局部用户 能够看到和使用的局部数据的逻辑结构和特征的描述。
10、数据库系统的软件主要包括支持 DBMS 运行的操作系统以及 DBMS 本身。
三、简答题
1、简述计算机数据管理技术发展的三个阶段。
数据管理技术已经历了人工管理、文件系统及数据库系统三个发展阶段。(1人工管理数据具有以下几个特点:1)数据不保存;2)应用程序管理数据;3)数据不共享;4)数据不具有独立性。
(2)文件系统阶段:特点如下:1)数据长期保存;2)文件系统管理数据;3)数据共享性差,冗余度大;4)数据独立性差;
(3)数据库系统阶段具有如下优于文件系统的特点:1)数据结构化;2)数据的共享性高,冗余度低,易扩充;3)数据独立性高;4)数据由DBMS统一管理和控制。
2、常用的三种数据模型的数据结构各有什么特点?
常用的三种数据模型是层次模型、网状模型和关系模型。它们的数据结构及特点分别介绍如下:
1)层次模型的数据结构——树型结构
在数据库中,对满足以下两个条件的基本层次联系的集合称为层次模型。
(1)有且仅有一个节点无双亲,这个节点称为“根节点”。
(2)其他节点有且仅有一个双亲。
所谓基本层次联系是指两个记录类型以及它们之间的一对多的联系。
2)网状模型的数据结构——网状结构图
在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
(1)允许一个以上的结点无双亲;
(2)一个结点可以有多于一个的双亲。
3)关系模型——二维表
3、试述数据库系统的特点。
解:
数据库系统阶段具有如下优于文件系统的主要特点:1)数据结构化;2)数据的共享性高,冗余度低,易扩充;3)数据独立性高;4)数据由DBMS统一管理和控制。
以下几方面的数据控制功能:(1)数据的安全性控制;(2)数据的完整性约束;(3)并发控制;(4)数据库恢复。
4、试述数据模型的概念、数据模型的作用和数据模型的三要素。
解:
1)数据模型的概念:数据模型是模型中的一种,是现实世界数据特征的抽象,它描述了系统的三个方面:静态特性、动态特性和完整性约束条件。
2)数据模型的作用:数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。
3)数据模型的三要素:
数据模型一般由数据结构、数据操作和数据完整性约束三部分组成(俗称三要素),是严格定义的一组概念的集合。
12、数据库系统的三级模式结构是什么?为什么要采用这样的结构?
解:1)数据库系统的三级模式结构是指外模式、模式和内模式。
2)数据库管理系统内部采用这样的结构是因为:
这种结构能较好地保证数据库系统的数据具有较高的逻辑独立性和物理独立性。数据库的二级映象保证了数据库外模式的稳定性,从而根本上保证了应用程序的稳定性,使得数据库系统具有较高的数据与程序的独立性。数据库的三级模式与二级映象使得数据的定义和描述可以从应用程序中分离出去。又由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
13、数据独立性包括哪两个方面,含义分别是什么?
数据独立性分为数据逻辑独立性与数据物理独立性两个方面。
1)数据逻辑独立性
当模式改变时,由数据库管理员对各个外模式/模式映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据逻辑独立性。
2)数据物理独立性
当数据库的存储结构等内模式改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称为数据物理独立性。
14、数据库管理系统有哪些主要功能?
解:数据库管理系统是数据库系统的核心组成部分,是对数据进行管理的大型系统软件,用户在数据库系统中的一些操作,例如:数据定义、数据操纵、数据查询和数据控制,这些操作都是由数据库管理系统来实现的。
15、数据库系统通常由哪几部分组成?
数据库系统是指计算机系统中引入数据库后的整个人机系统。为此,数据库系统应由计算机硬件、数据库、计算机软件及各类人员组成。
二、填 空
1、关系中主码的取值必须惟一且非空,这条规则是 实体 完整性规则。
2、关系代数中专门的关系运算包括:选择、投影、连接和除法,主要实现 查询 类操作。
3、关系数据库的关系演算语言是以 谓词演算 为基础的DML语言。
4、关系数据库中,关系称为 表 ,元组亦称为 行 ,属性亦称为 列 。
5、数据库描述语言的作用是 定义数据库 。
6、一个关系模式可以形式化地表示为 R(U,D,dom,F) 。
7、关系数据库操作的特点是 一次一集合 式操作。
8.数据库的所有关系模式的集合构成 关系数据库模型 ,所有的关系集合构成 关系数据库 。
9、在关系数据模型中,两个关系R1与R2之间存在1:m的联系,可以通过在一个关系R2中的
外键或外码或外部关键字 在相关联的另一个关系R1中检索相对应的记录。
10、将两个关系中满足一定条件的元组连接到一起构成新表的操作称为 θ-连接 操作。
1、试述关系模型的三要素内容。
解:
(1)关系模型的数据结构——关系
(2)关系模型的关系操作
关系模型中常用的关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和添加(insert)、删除(delete)、修改(update)等更新操作两大部分。
(3)关系模型的三类完整性约束:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。
(2)主码、候选码、外码
1)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key),关系至少含有一个候选码。
2)主码:一个关系至少有一个候选码,则选定其中一个为主控使用者,称为主码(Primary key)。
3)外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key)。
4、关系数据库的完整性规则有哪些?试举例说明。
解:
1)关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
5、关系代数运算有哪两大类,试说明每种运算的操作含义。
解:
1)关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。
(1)传统的集合运算:包括并、交、差、广义笛卡尔积四种运算。
(2)专门的关系运算:包括选择、投影、连接、除等。
2)各运算的操作含义
(1)并:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的所有元组组成。记作:R∪S={t|t R∨t S}
(2)差:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。记作:R-S={t| t R∧t S }
(3)交:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的所有元组组成。记作:R∩S={t| t R∧t S}
(4)广义笛卡尔积:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:
R×S={t t | t R∧t S}
(5)选择:选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:
(R) = {t|t∈R∧F(t)=“真”}
(6)投影:关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
∏ (R) = { t[A] | t R }
(7)连接:
连接也称为θ连接。它是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组。记作: ={ t t |t ∈R∧t ∈S∧t [A]θt [B] }
(8)除:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:P=R÷S ={tr[X]|tr∈R∧Yx⊇∏Y(S)},其中Yx为x在R中的象集,x=tr[X]。
6、关系代数的基本运算有哪些?请用基本运算表示非基本运算。
解:
1)8种关系代数运算中并、差、广义笛卡尔积、投影和选择5种运算为基本的关系代数运算。
2)另外3种运算,即交、连接和除为非基本运算,均可以用这5种基本运算来表达。表达如下:
(1)R∩S=R-(R-S) 或 R∩S=S-(S-R)
(2)
= AθB(R×S)
= A=B(R×S)
R∞S=∏ ( R.B=S.B(R×S))
(3)R÷S =∏X(R)-∏X(∏X(R)×∏Y(S)-R)
8、设有关系R、S(如下表所示),计算:
R S
A B C C D E
3 6 7 3 4 5
4 5 7 6 2 3
6 2 3
5 4 3
(1) R1 =R S (2) R2=R S
(3) R3 = B=D(R×S)
解:
(1)
A B C D E
6 2 3 4 5
5 4 3 4 5
(2) A B R.C S.C D E
6 2 3 3 4 5
(3) 结果同(2)
二、填空题
1、数据依赖主要包括 函数 依赖、 多值 依赖和连接依赖。
2、一个不好的关系模式会存在 插入异常 、 删除异常 和 修改复杂 等弊端。
3、设X→Y为R上的一个函数依赖,若 对任意X的真子集X’,均无X’→Y 存在 ,则称Y完全函数依赖于X。
4、设关系模式R上有函数依赖X→Y和Y→Z成立,若 Y不包含于X 且 Y→X不成立 ,则称Z传递函数依赖于X。
5、设关系模式R的属性集为U,K为U的子集,若 K→U为完全函数依赖 ,则称K为R的候选键。
6、包含R中全部属性的候选键称 全码 。不在任何候选键中的属性称 非主属性 。
7、Armstrong公理系统是 有效 的和 完备 的。
8、第三范式是基于 函数 依赖的范式,第四范式是基于 多值 依赖的范式。
9、关系数据库中的关系模式至少应属于 第一 范式。
10、规范化过程,是通过投影分解,把 一个范式级别较低的 的关系模式“分解”
为 若干个范式级别较高 的关系模式。
三、简答题
1、解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式、无损连接性、依赖保持性。
答:
函数依赖:设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y 是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记X→Y。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:X Y。当X→Y且Y→X时,则记作:X Y。
平凡函数依赖:当属性集Y是属性集X的子集时,则必然存在着函数依赖X→Y,这种类型的函数依赖称为平凡的函数依赖。
非平凡函数依赖:如果Y不是X子集,则称X→Y为非平凡的函数依赖。
完全函数依赖与部分函数依赖:设有关系模式R(U),U是属性全集,X和Y是U的子集,X→Y,并且对于X的任何一个真子集X',都有X' Y,则称Y对X完全函数依赖(Full Functional Dependency),记作X Y。如果对X的某个真子集X',有X'→Y,则称Y对X部分函数依赖(Partial Functional Dependency),记作X Y。
传递函数依赖:设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若X→Y(Y X),但Y X,又Y→Z,则称Z对X传递函数依赖(Transitive Functional Dependency),记作:X Z。
范式:
当把某范式看成是满足该范式的所有关系模式的集合时,各个范式之间的集合关系可以表示为:5NF 4NF BCNF 3NF 2NF 1NF。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
2、给出2NF、3NF、BCNF的形式化定义,并说明它们之间的区别和联系。
答:
(1)2NF
如果关系模式R∈1NF,R(U,F)中的所有非主属性都完全函数依赖于任意一个候选关键字,则称关系R 是属于第二范式(Second Normal Form),简称2NF,记作R∈2NF。
(2)3NF
如果关系模式R∈2NF,R(U,F)中所有非主属性对任何候选关键字都不存在传递函数依赖,则称R是属于第三范式(Third Normal Form),简称3NF,记作R∈3NF。
(3)BCNF
如果关系模式R∈1NF,且所有的函数依赖X→Y(Y不包含于X,即Y X),决定因素X都包含了R的一个候选码,则称R属于BC范式(Boyce-Codd Normal Form),记作R∈BCNF。
(4)区别和联系
1)BCNF 3NF 2NF
2)BCNF、3NF与2NF均是针对函数依赖而定义划分的。2NF 、3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除异常。
3、什么叫关系模式分解?为什么要做关系模式分解?模式分解要遵循什么准则?
解:
(1)关系模式分解:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫关系模式分解又叫关系模式规范化。
(2)做关系模式分解是因为:不好的关系往往内容“包罗万象”,内容太杂了。实现了信息的某种程度的分离,必须把“包罗万象”的关系模式,分解为若干内容单一,结合紧密的关系模式,才能使关系表现出更好的操作性能,避免出现各种异常问题的产生。
(3)模式分解要按需遵循模式分解的无损连接性或模式分解的依赖保持性。
4、试证明全码的关系必是3NF,也必是BCNF。
证明:
(1)设有关系R(U,F),因为R含全码,所以U中的属性均为主属性,即R不含任何非主属性。根据3NF的定义,R中没有非主属性对码有传递函数依赖存在。根据定义可下结论:R∈3NF。证毕。
6、设有关系模式R(A,B,C,D,E,F),函数依赖集F={(A,B)→E,(A,C)→F,
(A,D)→B,B→C,C→D},求出R的所有候选关键字。
参考答案:
由于属性A没有依赖任何属性,故A一定是主属性。
由于A U,所以A不是侯选关键字。再查看A和其他决定因素的组合。
1.考察AB:求出 (AB) 闭包
(1) 令X (0) = AB,I = 0
(2) 由F得到:B®C且BÎ X(0), 故:X(1) = B È X(0) = ABC
又由F得到: C®D,(A,C)®F, (A,B)®E
且:CÎX(1),(A,C) ÎX(1), (A,B) ÎX(1)
故:X(2 ) = DEFÈX(1) = ABCDEF = U
由此可知(A,B)是候选键。
2.同理可得(A,C),(A,D)也是候选键。
所以,该模式的候选键为: (A、C)、(A、B)、(A、D)。
7、设有关系模式R(X,Y,Z),函数依赖集为F={(X,Y)→Z}。请确定R的范式等级,并证明。
参考答案:
R的候选关键字有:(X,Y)
R达到BCNF范式等级。因为R中只有一个决定因素(X,Y)且是候选关键字,符合BCNF定义的定义。
8、设有关系模式R(A,B,C,D,E,F),函数依赖集F={A→(B,C),(B,C)→A,(B,C,D)→(E,F),E→C}。试问:关系模式R是否为BCNF范式,并证明结论。
参考答案:
R不属于BCNF范式。
证明:
(1)求出R的候选码是:(A,D)、(B,C,D)、(B,E,D)
(2)由F可知,存在A→(B,C),即A是决定因素,但A却不是R的候选码,不符合BCNF中决定因素都包含了R的一个候选码的定义,所以R没有达到BCNF范式。