完全依赖于C#。因此,该分解符合2NF模式。
(3)3NF:若每个关系模式是2NF,则每个非主属性都不传递于R的候选键。
按上述已分好的两个模式,SC中已满足“每个非主属性都不传递于R的候选键”,已是3NF,而在C中, C#→TNAME,TNAME→TADDR,TADDR传递依赖于C#,因此还需分成两个模式:CT(C#,TNAME), T(TNAME,TADD)。
分解后,总共有SC={S#,C#,GRADE},CT(C#,TNAME), T(TNAME,TADD)三个模式。 该分解符合3NF模式。
4.12 图4.6表示一个公司各部门的层次结构,对每个部门,数据库中包含部门号 (唯一的)D#,预算费(BUDGET)以及此部门领导人员的职工号(唯一的)E#等信息。对每一个部门,还存有部门的全部职工,生产科研项目以及办公室的信息。
职工信息包括:职工号,他所参加的生产科研项目号(J#),他所在办公室的电话号(PHONE#)。 生产科研项目包含:项目号(唯一的),预算费。 办公室信息包含:办公室号(唯一的),面积。 对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。对每个办公室包含此办公室中全部电话号吗的信息。
请给出你认为合理的数据依赖,把这个层次结构转换成一组规范化的关系。
提示:此题可分步完成,先转换成一组1NF的关系,然后逐步转换成2NF,3NF,...。 先得到一个泛关系的模式如下:
D={D#,Manager_E#,Budget,E#,J#,Phone#,Business,Sa_History,Office#,Area}
D#:部门号, Manager_E#:部门领导人员的职工号, E#:职工号, J#:生产科研项目号, Phone#:办公室的电话号,Business:职工职务,Sa_History:工资历史,Office#:办公室号,Area:办公室面积 根据所给信息,给出下列数据依赖:
F={D#→Manager_E#,E#→Office#,(E#,Business)→Sa_History,J#→Budget,E#→J#, Office#→Area,Office→D#,#Phone#→Office#} (假设一个部门可能有多个办公室,有多个项目,一个办公室只属于一个部门,有多部电话,一个员工只参加一个项目,一个项目可能属于多个部门)
只要保证每个属性值不可分割,以上范式即为1NF。候选键为(E#,Business,Phone#)
转换成2NF关系(消除局部依赖):
Em_Dep(E#,D#,Manager_E#,Office#,Area,J#,Budget)
对应 F={D#→Manager_E#,E#→Office#,J#→Budget,E#→J#,Office#→Area,Office→D#} History(E#,Business,History)
对应 F={(E#,Business)→Sa_History} Phone(Phone#,Office#)
对应 F={Phone#→Office#}
转换成3NF关系(消除非主属性对侯选键的传递依赖):
Department(D#,Manager_E#)
Office(Office#,Area,D#) Emproee(E#,J#,Office#) History(E#,Business,History) Phone(Phone#,Office#) Project(J#,Budget)
注意:由于对题意理解的不同,可能答案不唯一。
4.13 设关系模式R(ABC)上有一个多值依赖A→→B。如果已知R的当前关系中存在三组(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应存在哪些元组? 从多值依赖的定义可以得出,至少应存在下列元组: (ab1c2)、(ab1c3)、(ab2c1)、(ab2c3)、(ab3c1)、(ab3c2)
5.1 名词解释
(1)数据库设计:数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。
(2)数据库工程:指数据库应用系统的开发,它是一项软件工程,但有数据库应用自身的特点。
(3)评审:在数据库设计过程中,评审的目的是为了确认某一阶段的任务是否全部完成,避免重大的疏漏或错误,并在生存期的早期阶段给予纠正,以减少系统研制的成本。
(4)数据字典:是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。它的处理功能是存储和检索元数据,并且为数据库管理员提供有关的报告。对数据库设计来说,数据字典是进行详细的数据收集和数据分析所获得的主要成果。数据字典主要包括四个部分:数据项、数据结构、数据流、数据存储。
5.2 数据系统的生存期分成哪几个阶段?数据库结构的设计在生存期中的地位如何?
分成七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行和维护。 数据库结构的设计在生存期中的地位很重要,数据库结构的设计包括逻辑设计、物理设计,逻辑设计把概念模式转化为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构,而物理设计主要是设计DB在物理设备上的存储结构与存取方法等。
5.3 什么是数据库设计?数据库设计过程的输入和输出有哪些内容? 数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。
数据库设计过程的输入包括四部分内容:1)总体信息需求;2)处理需求;(3)DBMS的特征;(4)硬件和OS(操作系统)特征。
数据库设计过程的输出包括两部分:
(1)完整的数据库结构,其中包括逻辑结构和物理结构;
(2)基于数据库结构和处理需求的应用程序的设计原则。这些输出一般以说明书的形式出现。
5.4 基于数据库系统生存期的数据库设计分成哪几个阶段?
分为5个阶段:简记为(规需概逻物):规划、需求分析、概念设计、逻辑设计和物理设计五个阶段。
5.5 什么是比较好的数据库设计方法?数据库设计方法应包括哪些内容? 一个好的数据库设计方法应该能在合理的期限内,以合理的工作量产生一个有实用价值的数据库结构。
一种实用的数据库设计方法应包括以下内容:设计过程、设计技术、评价准则、信息需求、描述机制。
5.6 数据库设计的规划阶段应做哪些事情?
数据库设计中的规划阶段的主要任务是进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。
5.7 数据库设计的需求分析阶段是如何实现的?目标是什么?
数据库设计的需求分析通过三步来完成:即需求信息的收集、分析整理和评审。 其目的在于对系统的应用情况作全面详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据设计者都能够接受的文档。
5.8 评审在数据库设计中有什么重要作用?为什么允许设计过程中有多次的回溯与反复? 评审的作用在于确认某一阶段的任务是否全部完成,通过评审可以及早发现系统设计中的错误,并在生存期的早期阶段给予纠正,以减少系统研制的成本。 如果在数据库已经实现时再发现设计中的错误,那么代价比较大。因此应该允许设计过程的回溯与反复。设计过程需要根据评审意见修改所提交的阶段设计成果,有时修改甚至要回溯到前面的某一阶段,进行部分乃至全部重新设计。
5.9 数据字典的内容和作用是什么?
数据字典的内容一般包括:数据项、数据结构、数据流、数据存储和加工过程。 其作用是对系统中数据做出详尽的描述,提供对数据库数据的集中管理。
5.10 对概念模型有些什么要求? 对概念模型一般有以下要求:
(1)概念模型是对现实世界的抽象和概括,它应真实、充分地反映现实世界中事物和事物之间的联系,具有丰富的语义表达能力,能表达用户的各种需求,包括描述现实世界中各种对象及其复杂联系、用户对数据对象的处理要求和手段。
(2)概念模型应简洁、明晰,独立于机器、容易理解、方便数据库设计人员与应用人员交换意见,使用户能积极参与数据库的设计工作。
(3)概念模型应易于变动。当应用环境和应用要求改变时,容易对概念模型修改和补充。
(4)概念模型应很容易向关系、层次或网状等各种数据模型转换,易于从概念模式导出也DBMS有关的逻辑模式。
5.11 概念设计的具体步骤是什么? 概念设计的主要步骤为:
(1)进行数据抽象、设计局部概念模式; (2)将局部概念模式综合成全局概念模式; (3)评审。
(具体解释参见教材p131)
5.12 什么是数据抽象?主要有哪两种形式的抽象?数据抽象在数据库设计过程中起什么作用?
数据抽象是对人、物、事或概念的人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。 数据抽象有两种形式:
(1)系统状态的抽象,即抽象对象; (2)系统转换的抽象,即抽象运算。 数据抽象是概念设计中非常重要的一步。通过数据抽象,可以将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构。
5.13 什么是ER图?构成ER图的基本要素是什么?
ER图是用来表示数据库概念设计ER模型的工具,它提供了表示实体、属性和联系的方法。 构成ER图的基本要素是实体、属性和联系。
5.14 试述采用ER方法的数据库概念设计的过程.
利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局ER模式,最后对全局ER模式进行优化,得到最终的ER模式,即概念模式。
5.15 逻辑设计的目的是什么?试述逻辑设计过程的输入和输出环境。
逻辑设计的目的是把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。 逻辑设计过程中的输入信息有:
(1)独立于DBMS的概念模式,即概念设计阶段产生的所有局部和全局概念模式; (2)处理需求,即需求分析阶段产生的业务活动分析结果;
(3)约束条件,即完整性、一致性、安全性要求及响应时间要求等;
(4)DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的模式、子模式和程序语法的形式规则。
逻辑设计过程输出的信息有:
(1)DBMS可处理的模式;
(2)子模式;
(3)应用程序设计指南;
(4)物理设计指南。
5.16 试述逻辑设计阶段的主要内容。
逻辑设计主要是把概念模式转换成DBMS能处理的模式。转换过程中要对模式进行评价和性能测试,以便获得较好的模式设计。
逻辑设计的主要步骤包括: (1)初始模式的形成 (2)子模式设计
(3)应用程序设计梗概 (4)模式评价 (5)修正模式。
5.17 规范化理论对数据库设计有什么指导意义? 在概念设计阶段,已经把关系规范化的某些思想用作构造实体类型和联系类型的标准,在逻辑设计阶段,仍然要使用关系规范化的理论来设计模式和评价模式。规范化的目的是减少乃至消除关系模式中存在的各种异常,改善完整性,一致性和存储效率。
5.18 什么是数据库结构的物理设计?试述其具体步骤。
数据库结构的物理设计是指对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,所谓数据库的物理结构主要指数据库在物理设备上的存储结构和存取方法。
物理设计的步骤为:
(1)设计存储记录结构,包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射;
(2)确定数据存储安排;
(3)设计访问方法,为存储在物理设备上的数据提供存储和检索的能力; (4)进行完整性和安全性的分析、设计; (5)程序设计。
5.19 数据实现阶段主要做哪几件事情? 数据库实现阶段的主要工作有以下几点: (1)建立实际数据库结构 (2)试运行 (3)装入数据
(具体解释参见教材p150)
5.20 什么是数据的再组织设计?试述其重要性。
对数据的概念模式、逻辑结构或物理结构的改变称作数据再组织。
数据再组织,通常是由于环境,需求的变化或性能原因而进行的,如信息定义的改变,增加新的数据类型,对原有的数据提出了新的使用要求,改用具有不同物理特征的新存储设备以