1、第七章 习题解答和解析 1. 试述数据库设计过程。 答: 这里只概要列出数据库设计过程的六个阶段 : (1) 需求分析 ; (2) 概念结构设计 ; (3) 逻辑结构设计 ; (4) 数据库物理设计 ; (5) 数据库实施 ; (6) 数据库运行和维护。 这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身 ,还包括数据库的实施、运行和维护。 设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。 解析:希望读者能够认真阅读概论 7.1 的内容 ,了解并掌握数据库设计过程。 2.试述数据库设计过程 中结构设计部分形成的数据库模式。 答: 数据库结构设计的不同阶段形成数据库
2、的各级模式 ,即 : (1) 在概念设计阶段形成独立于机器特点 ,独立于各个 DB MS 产品的概念模式 ,在本篇中就是 E-R 图 ; (2) 在逻辑设计阶段将 E-R 图转换成具体的数据库产品支持的数据模型 ,如关系模型 ,形成数据库逻辑模式 ,然后在基本表的基础上再建立必要的视图 (View),形成数据的外模式 ; (3) 在物理设计阶段 ,根据 DB MS 特点和处理的需要 ,进行物理存储安排 ,建立索引 ,形成数据库内模式。 读者可以参考概论上图 7.4。图中概念模式是面向用户和设计人员的 ,属于概念模型的层次 ;逻辑模式、外模式、内模式是 DBMS 支持的模式 ,属于数据模型的层次
3、 ,可以在 DBMS 中加以描述和存储。 3.需求分析阶段的设计目标是什么 ? 调查的内容是什么 ? 答 需求分析阶段的设计目标是通过详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统 (手工系统或计算机系统 )工作概况 ,明确用户的各种需求 ,然后在此基础上确定新系统的功能。 调查的内容是“数据”和“处理” ,即获得用户对数据库的如下要求 : (1) 信息要求 ,指用户需要 从数据库中获得信息的内容与性质 ,由信息要求可以导出数据要求 ,即在数据库中需要存储哪些数据 ; (2) 处理要求 ,指用户要完成什么处理功能 ,对处理的响应时间有什么要求 ,处理方式是批处理还是联机
4、处理 ; (3) 安全性与完整性要求。 详细的可以参考概论上 7. 2。 4.数据字典的内容和作用是什么 ? 答 数据字典是系统中各类数据描述的集合。数据字典的内容通常包括 :(1) 数据项 ;(2) 数据结构 ;(3) 数据流 ;(4) 数据存储 ;(5) 处理过程五个部分。其中数据项是数据的最小组成单位 ,若干个数据项可以组成一 个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。 数据字典的作用 : 数据字典是关于数据库中数据的描述 ,在需求分析阶段建立 ,是下一步进行概念设计的基础 ,并在数据库设计过程中不断修改、充实、完善。 (详细参考概论上 7. 2.
5、 3。注意 ,数据库设计阶段形成的数据字典与 DBMS 中的数据字典不同 ,后者是 DBMS 关于数据库中数据的描述 ,当然两者是有联系的 )。 5.什么是数据库的概念结构 ? 试述其特点和设计策略。 答 概念结构是信息世界的结构 ,即概念模型 ,其主要特点是 : (1) 能真实、充分地反映现实世界 ,包括事物和事物之间的联系 ,能满足用户对数据的处理要求 ,是对现实世界的一个真实模型 ; (2) 易于理解 ,从而可以用它和不熟悉计算机的用户交换意见 ,用户的积极参与是数据库设计成功的关键 ; (3) 易于更改 ,当应用环境和应用要求改变时 ,容易对概念模型修改和扩充 ; (4) 易于向关系、
6、网状、层次等各种数据模型转换。 概念结构的设计策略通常有四种 : 1) 自顶向下 ,即首先定义全局概念结构的框架 ,然后逐步细化 ; 2) 自底向上 ,即首先定义各局部应用的概念结构 ,然后将它们集成起来 ,得到 全局概念结构 ; 3) 逐步扩张 ,首先定义最重要的核心概念结构 ,然后向外扩充 ,以滚雪球的方式逐步生成其他概念结构 ,直至总体概念结构 ; 4) 混合策略 ,即将自顶向下和自底向上相结合 ,用自顶向下策略设计一个 全局概念结构的框架 ,以它为骨架集成由自底向上策略中设计的各局部概念结构。 6. 定义并解释概念模型中以下术语 :实体 ,实体型 ,实体集 ,属性 ,码 ,实体联系图
7、(E-R 图 ) 答 实体 :客观存在并可以相互区分的事物叫实体。 实体型 :具有相同属性的实体具有相同的特征和性质 ,用实体名及其属性名集合来抽象和刻画同类实体 ,称 为实体型。 实体集 :同型实体的集合称为实体集。 属性 :实体所具有的某一特性 ,一个实体可由若干个属性来刻画。 码 :惟一标识实体的属性集称为码。 实体联系图 (E-R 图 ):提供了表示实体型、属性和联系的方法 : 实体型 :用矩形表示 ,矩形框内写明实体名 ; 属性 :用椭圆形表示 ,并用无向边将其与相应的实体连接起来 ; 联系 :用菱形表示 ,菱形框内写明联系名 ,并用无向边分别与有关实体连接起来 ,同时在无向边旁标上
8、联系的类型 (1:1,1: n 或 m: n)。 7. 学校中有若干系 ,每个系有若干班级和教研室 ,每个教 研室有若干教员 ,其中有的教授和副教授每人各带若干研究生 ;每个班有若干学生 ,每个学生选修若干课程 ,每门课可由若干学生选修。请用 E-R 图画出此学校的概念模型。 在画 E-R 图时 ,读者可以按照习题中对问题的描述一步一步画出每一句话中涉及的实体 ,再根据给出的实际语义 ,画出实体之间的联系。例如 ,每个教研室有若干教员 ,每个班有若干学生 ,可以画出教研室和教员、班级和学生之间一 对多的联系。再如 ,有的教授和副教授每人各带若干研究生 ,而一个研究生一般指定一个导师 ,这是通常
9、的规则 ,所以可以画出教员和学生之间一对多的联系。 E-R 图中各实体的属性假设为: 系:系编号,系名 班级:班级编号,班级名 教研室:教研室编号,教研室 学生:学号,姓名,学历 课程:课程编号,课程名 教员:职工号,姓名,职称 各联系的属性为:选修:成绩,其他联系无属性。 8. 某工厂生产若干产品 ,每种产品由不同的零件组成 ,有的零件可用在不同的产品上。这些零件由不同的原材料制成 ,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中 ,原材料按照类别放在若干仓库中。请用 E-R 图画出此工厂产品、零件、材料、仓库的概念模型。 对实体之间联系的 语义描述有时不是直截了当的 ,
10、需要从对现实世界的整体描述中进行分析 ,导出实体之间的某种联系。就如本题中 ,“零件和仓库的联系”就要从以下描述中分析 :“零件按所属的不同产品分别放在仓库中”。因为一个产品由多种零件组成的 ,所以一个仓库中存放多种零件 ;反过来一种零件是放在一个仓库还是多个仓库中呢 ? 因为一种零件可以用在多种产品上 ,这些零件按所属的不同产品分别放在仓库中 , 于是知道一种零件可以放在多个仓库中 ,所以零件和仓库之间是多对多的联系。 “材料和仓库的联系”则根据“原材料按照类别放在若干仓库”这句话就可以得出 :一个仓库中放多种材料 ,而一种材料只放在一个仓库中 ,所以仓库和材料之间是一对多的联系。 E-R
11、图中各实体的属性假设为: 产品:产品号,产品名 零件:零件号,零件名 原材料:原材料号,原材料名,类别 仓库:仓库号,仓库名 各联系的属性为: 产品的组成:使用零件量 零件制造:使用原材料量 零件存储:存储量 材料存放:存放量 9. 什么是数据库的逻辑结构设计 ? 试述其设计步骤。 数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R 图转换为与选用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设 计步骤为 : (1)将概念结构转换为特定 DBMS 支持下的数据模型 :关系、网状、层次模型等; (2)对数据模型进行优化。 10.试把习题 7 和习题 8 中的 E-R 图转换为关
12、系模型。 习题 7 中的 E-R 图转换的关系模型如下,其中有划画线的属性是主码属性: 系 (系编号 ,系名 ,学校名 ) 班级 (班级编号 ,班级名 ,系编号 ) 教研室 (教研室编号 ,教研室 ,系编号 ) 学生 (学号 ,姓名 ,学历 ,班级编号 ,导师职工号 ) 课程 (课程编号 ,课程名 ) 教员 (职工号 ,姓名 ,职称 ,教研室编号 ) 选课 (学号 ,课程编号 ,成绩 ) 习题 8 中的 E-R 图 转换的关系模型如下,其中有划画线的属性是主码属性: 产品 (产品号 ,产品名 ,仓库号 ) 零件 (零件号 ,零件名 ) 原材料 (原材料号 ,原材料名 ,类别 ,仓库号 ,存放量
13、 ) 仓库 (仓库号 ,仓库名 ) 产品组成 (产品号 ,零件号 ,使用零件量 ) 零件组成 (零件号 ,原材料号 ,使用原材料量 ) 零件储存 (零件号 ,仓库号 ,存储量 ) 11. 试用规范化理论中有关范式的概念分析习题 7 中你设计的关系模型中各个关系模式的码 ,它们属于第几范式 ? 会产生什么更新异常 ? 习题 7 中设计的各个关系模式的码都用下划线注明 ,这些关系模式都只有一个码 ,且都是惟一决定的因素 ,所以都属于 BCNF。不会产生更新异常现象。 12 规范化理论对数据库设计有什么指导意义 ? 答 规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准 ,可用以指导关系数据
14、模型的优化 ,用来预测模式可能出现的问题 ,为设计人员提供了自动产生各种模式的算法工具 ,使数据库设计工作有了严格的理论基础 。 可参考概论上 7.4.2 有关 数据模型的优化 的内容 )。 13. 试述数据库物理设计的内容和步骤。 答 数据库在物理 设备上的存储结构与存取方法称为数据库的物理结构 ,它依赖于给定的 DBMS。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构 ,就是数据库的物理设计的主要内容。 数据库的物理设计步骤通常分为两步 : (1) 确定数据库的物理结构 ,在关系数据库中主要指存取方法和存储结构 ; (2) 对物理结构进行评价 ,评价的重点是时间效率和空间效率。
15、详细参考概论 7.5。 14. 数据输入在实施阶段的重要性是什么 ? 如何保证输入数据的正确性 ? 答 数据库是用来对数据进行存储、管理与应用的 ,因此在实施阶段必须将原有系 统中的历史数据输入到数据库。数据量一般都很大 ,而且数据来源于部门中的各个不同的单位。数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距 ,组织数据录入就要将各类源数据从各个局部应用中抽取出来 ,分类转换 ,最后综合成符合新设计的数据库结构的形式 ,输入数据库。因此这样的数据转换、组织入库的工作是相当费力费时的工作。特别是原系统是手工数据处理系统时 ,各类数据分散在各种不同的原始表格、凭证、单据之中 ,数据输入
16、工作量更大。 保证输入数据正确性的方法 : 为提高数据输入工作的效率和质量 ,应该针对具体的应用环境设计一个数据录入子系统 ,由计算机来完成数据入库的任务。在源数据入库之前要采用多种方法对它们进行检验 ,以防止不正确的数据入库。 15.什么是数据库的再组织和重构造 ? 为什么要进行数据库的再组织和重构造 ? 答 数据库的再组织是指 :按原设计要求重新安排存储位置、回收垃圾、减少指针链等 ,以提高系统性能。 数据库的重构造则是指部分修改数据库的模式和内模式 ,即修改原设计的逻辑和物理结构。数据库的再组织是不修改数据库的模式和内模式的。 进行数据库的再组织和重构造的原因 : 数据库运行一段时间后
17、,由于记录不断增、删、改 ,会 使数据库的物理存储情况变坏 ,降低了数据的存取效率 ,数据库性能下降 ,这时 DBA 就要对数据库进行重组织。 DBMS 一般都提供用于数据重组织的实用程序。 数据库应用环境常常发生变化 ,如增加新的应用或新的实体 ,取消了某些应用 ,有的实体与实体间的联系也发生了变化等 ,使原有的数据库设计不能满足新的需求 ,需要调整数据库的模式和内模式。这就要进行数据库重构造。 补充习题 1.选择题 (1)数据库外模式是在下列哪个阶段设计( )。 A.数据库概念结构设计 B.数据库逻辑结构设计 C.数据库物理设计 D.数据库实施和维护 (2)生成 DBMS 系统支持的数据模
18、型是在下列哪个阶段完成( )。 A.数据库概念结构设计 B.数据库逻辑结构设计 C.数据库物理设计 D.数据库实施和维护 (3)根据应用需求建立索引是在下列哪个阶段完成( )。 A.数据库概念结构设计 B.数据库逻辑结构设计 C.数据库物理设计 D.数据库实施和维护 (4)员工性别的取值 ,有的为“男”、“女”,有的为“ 1”、“ 0”,这种情况属于 ( ) 。 A.属性冲突 B.命名冲突 C.结构冲 突 D.数据冗余 2.填空题 (1)数据库设计方法包括 _ 、 _ _、 _ _、 _ _和统一建模语言(UML)方法等。 (2)数据库设计的基本步骤包括需求分析、 、 _ _、 _ _、 数据
19、库实施、数据库运行和维护等。 (3)集成局部 E-R 图要分两个步骤,分别是 _和 _ _。 (4)数据库常见的存取方法主要 有 _、 _ _和 Hash 方法。 3.问答题 (1)在进行概念结构设计时,将事物作为属性的基本准则是什么。 (2)将 E-R 图转换为关系模式时,可以如何处理实体型间的联系。 4.综合题 (1)某商场可以为顾客办理会员卡,每个顾客只能办理一张会员卡,顾客信息包括顾客 姓名、地址、电话、身份证号,会员卡信息包括号码、等级、积分,给出该系统的 E-R图。 (2)按照下列说明修改题 (1)中的要求,分别给出相应的 E-R图: 顾客具有多个地址和多个电话号码,地址包括省、市
20、、区、街道,电话号码包括区号、号码; 顾客具有多个地址,每个地址具有多个电话号码,地址包括省、市、区、街道,电话号码 包括区号、号码。 (3)某数据库记录乐队、成员和歌迷的信息,乐队包括名称、多个成员、一个队长,队长也 是乐队的成员,成员包括名字、性别,歌迷包括名字、性别、喜欢的乐队、喜欢的成员。 画出基本的 E-R图; 修改 E-R图,使之能够表示成员在乐队的工作记录,包括进入乐队时间以及离开乐队时间。 (4)考虑某个 IT 公司的数据库信息: 部门具有部门编号、部门名称、办公地点等属性; 部门员工具有员工编号、姓名、级别等属性,员工只 在一个部门工作; 每个部门有唯一一个部门员工作为部门经
21、理; 实习生具有实习编号、姓名、年龄等属性,只在一个部门实习; 项目具有项目编号、项目名称、开始日期、结束日期等属性; 每个项目由一名员工负责,由多名员工、实习生参与; 一名员工只负责一个项目,可以参与多个项目,在每个项目具有工作时间比; 每个实习生只参与一个项目。 画出 E-R 图,并将 E-R图转换为关系模型(包括关系名、属性名、码和完整性约束条件 )。 补充习题答案 1.选择题 (1) (3) (4) B B C A 2.填空题 (1)新奥尔良方法 基于 E-R 模型的方法 3NF 的设计方法 面向对象的设计方法 (2)概念结构设计 逻辑结构设计 物理结构设计 (3)合并 修改和重构 (
22、4)索引 聚族 3.问答题 (1)在进行概念结构设计时,将事物作为属性的基本准则是什么。 答: 作为属性,不能再具有需要描述的性质,属性必须是不可分的数据项,不能包含其他属性; 属性不能与其他实体具有联系,即 E-R图中所表示的联系是实体之间的联系。 (2)将 E-R 图转换为关系模式时,可以如何处理实体型间的联 系。 答: 一个 1 : 1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并; 一个 1 : n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并; 一个 m : n 联系可以转换为一个关系模式; 3 个或 3 个以上实体间的一个多元联系可以
23、转换为一个关系模式; 具有相同码的关系模式可合并。 4.综合题 ( 1) ( 2) 关系模型为: 部门( 编号 ,名称,办公地点,经理编号),部门的经理编号参照员工的编号; 员工( 编号 ,姓名,级别,部门编号),员工的部门编号参照部门的 编号; 实习生( 编号 ,姓名,年龄,部门编号),实习生的部门编号参照部门的编号; 项目( 编号 ,名称,开始日期,结束日期,负责人编号),项目的负责人编号参照员工的编号; 实习参与( 实习生编号 ,项目编号),实习生编号、项目编号分别参照实习生的编号、 项目的编号; 员工参与( 员工编号 , 项目编号 ,时间比),员工编号、项目编号分别参照员工的编 号、项目的编号,且一个员工的所有时间比相加不超过 100%。