《数据库原理与应用》课后习题答案 下载本文

第四章

1 单选题 C B C B A 2. 判断题 对对错 错 错

3 填空题 弱实体;概念模型设计 逻辑模型设计 物理模型设计;

1:1 一对一 1:N 一对多 m:N 多对多; ID 依赖 非 ID 依赖,父实体子实体

4 简答题

1) 在从现实世界到计算机世界的数据库设计过程中,经历了概念层设计、逻辑层设计及物理层设计三个阶段,其创建的数据模型分别称为概念数据模型、逻辑数据模型和物理数据模型。在从现实世界到计算机世界的数据库设计过程中,经历了概念层设计、逻辑层设计及物理层设计三个阶段,其创建的数据模型分别称为概念数据模型、逻辑数据模型和物理数据模型。在逻辑数据模型中,是从系统设计角度描述系统的数据对象组成及其关系,并考虑这些数据对象在计算机系统中的逻辑表示。在物理数据模型中,系统数据被描述为“数据表”、

“主键”、“外键”等形式。该数据模型需要考虑在计算机系统中的具体 DBMS 实现方式。 2) 数据需求分析选题概念数据建模、系统逻辑数据建模、系统物理数据建模 数据库实现。 E-R 模型是“实体-关系模型”(Entity-Relationship Model)的简称。它是一种描述现实世界概念数据模型的有效方法。

3)实体(Entity)是客观世界中描述事物数据对象的抽象概念。实体可以是人,也可以是物或抽象的概念;可以指事物本身,也可以指事物之间的关系,如一个人,一件物品,一个部门等都可以是实体。实每个实体都有自己的一组数据特征,这些描述实体的数据特征称为实体的属性(Attribute)。例如,学生实体具有学号、姓名、性别等属性。不同实体的属性是不同的。实体间的关系,关系表示一个或多个实体之间的关联关系。

4) 实体之间关联的数目称为元。实体自己与自己之间的关系称为一元关系,也称递归关系。两个实体之间的关系称为二元关系;三个实体之间的关系称为三元关系。在实际应用中,二元关系是最常见的实体关系。

5) 在“一对一”、“一对多”和“多对多”的关系中,把两个实体集中有关系的实体关系数量分成两种类型:“唯一”和“不唯一”。例如,学校规定对于全校公选课,学生每学期至少选修 1 门课程,最多选修 5 门课程;每门课程最少要有 15 个人选,最多不能超过 150 人。对于这种情况,首先确定学生的基数是(15,150),课程的基数是(1,5)。这种实体关系的对应数目称为这个关系的基数,用(min,max)形式表示,其中 min 表示最小基数,max 表示最大基数。如果最小基数为 0,则关系中的实体参与是可选的。如果最小基数为 1,则关系中的实体参与是强制性的。

6)二元实体关系有三种类型:一对一关系、一对多关系和多对多关系。

作业参考答案

7) 数据库概念数据模型设计是通过对现实世界中信息实体进行抽取、分类、聚集和概括等处理,建立数据库概念数据结构的过程。概念数据库设计的方法主要有两种:集中式设计方法,视图综合设计方法。

集中式设计方法基于需求分析阶段得到的系统数据需求,设计一个描述系统概念数据关系的数据模型,用于反映系统的数据需求。集中式方法要求所有概念数据模型设计工作都必须由具有较高水平的数据库设计者完成。

视图综合设计由一个视图设计阶段和一个视图合并阶段组成,它不要求应用需求的合并。在视图设计阶段,设计者根据每个应用的需求,独立地为每个用户和应用设计一个概念数据库模式,这里每个应用的概念数据库模式都称为视图。视图设计阶段完成后,进入到视图合并阶段,在此阶段设计者把所有视图有机地合并成一个统一的概念数据库模式,这个最终的概念数据库模式支持所有的应用。 第五章

1 单选题 C C C A A 2. 判断题 对对错 错 对 3 填空题 主键;代理键;

表 列 主键;数据冗余, 决定因素 依赖

4 简答题

1) 数据模型转换设计有两种方案:一种是由概念数据模型生成对应的逻辑数据模型,再从逻辑数据模型转换生成物理数据模型;另一种是从概念数据模型直接转换为对应的物理数据模型。当使用关系数据库时,物理数据模型即为关系模型,其基本转换原理如下:a)将每一个实体转换成一个表,实体的属性转换为表的列,实体的标识符转换为表的主键

b)将实体关系转化为表间的参照完整性约束,即通过设置外键来参照主键。根据关系的不同类型,通过外键参照主键的方式有所不同。为每个实体定义一个表,表名与实体名相同。将实体的标识符作为表的主键。然后,实体的属性转换为表中的列,实体的标识符转换为表的主键;在关系数据库设计中,当数据表中的候选键都不适合当主键时(例如,候选键的内容太大或者复合候选键包含的属性太多),就会定义代理键作为主键。代理键由 DBMS 自动生成数字键值,且永不改变。

实体属性转换为表的列后,必须为每个列指定其特性,包括数据类型、空值状态、默认值及数值的约束。数据类型:每个 DBMS 都有自己的数据类型定义,对于每一列,应指明在该列中存储何种类型的数据。空值状态:在表中插入新行时,某些列必须有值,对于这样的列,将其标注为 NOT NULL;某些列允许不输入值,将其标注为 NULL。默认值:默认值是指当插入新行时,如果用户没有显式输入某个列的值,则由 DBMS 自动设置为预先设定的值。数值的约束:一些列中的数据值可能有限制,这些限制称为数据约束。

弱实体有时候需要特别的处理。弱实体在逻辑上依赖于另一个实体。ID 依赖弱实体的标识符应该含有它所依赖实体的标识符,因此需要将被依赖实体的标识符放入 ID 依赖弱实体转换生成的表中,和 ID 依赖弱实体的标识符共同转换成复合主键。

2)当实体继承关系转换到物理数据模型时,首先父实体和子实体都各自转换为表,其属性均转换为表的列。在处理继承关系转换时,将父表中的主键放置到子表中,既做主键又做外键。

3)1:N 实体关系的转换方法很简单,两个实体分别转换为表,然后将 1 父实体表的主键放入 N 子实体表中做外键。将图 5-9 所示的实体关系转换为表参照约束. 班级实体 学生实体,在学生中把班级的主键加入进去作为外码键

4) N:M 实体关系不能像 1:1 和 1:N 实体关系那样直接转换。将任一个实体表的主键放置到另一个实体表中做外键都是无法实现的。必须要重新产生一张新表,用于表示两个实体之间的关系。新表的名称通常有两种命名方法,一种是以 N:M 关系的名称命名,一种是用下划线连接 N:M 关系两侧的实体名称作为新表的名称。新表把两个表的关键字作为复合主键并定义外码应用关系

5)1:1 实体关系的转换: 学生表和助学金发放账号表。有两种转换方案,一种是将学生表的主键“学号”放入助研金账号表中做外键;另一种是将助研金账号表的主键“账号”放入学生表中做外键。这两种方案均是可行的,由设计者根据应用情况自主做出选择。

6) 数据库表规范化设计是指在数据库中减少数据冗余和定义一个规范的表间结构,实现数据完整性与一致性。所谓数据冗余是指一组数据重复出现在数据库的多个表中。在数据库设计中,尽量避免表间的重复数据列。规范化数据库设计为数据库系统带来如下益处:冗余数据被消除,同一数据在数据库中仅保存一份,有效降低维护数据一致性的工作量。 设计合理的表间依赖关系和约束关系,便于实现数据完整性和一致性。 设计合理的数据库结构,便于系统对数据高效访问处理。

7)在将系统物理数据模型在数据库中实现前,需要对所设计的系统 PDM 模型进行设计验证检查,以发现系统 PDM 模型设计中的错误。系统设计者则需根据错误信息对数据模型进行修正。并再次进行检查,直到没有任何错误和警告为止。 第六章

1 单选题 B D B C C 2. 判断题 对对错对 错

3 填空题 隔离性 持久性;用户的对象;

可串行化;

回收(revoke)权限,拒绝(deny)权限磁带库 关盘库

4 简答题

1) DBMS 的功能包括数据库定义:定义数据库完整性、安全保密、存取路径等;数据存取:提供数据的操纵语言以便对数据进行查找和增删改

数据库运行管理:事务管理、自动恢复、并发控制、死锁检测或防止、安全性检查、存取控制、完整性检查、日志记录等

数据组织、存储和管理:数据字典、用户数据、存取路径的组织存储和管理,以便提高存储空间利用率,并方便存取数据库的建立和维护:数据库初建、转储、恢复、重组、重构以及性能检测等数据传输:网络通信、数据转换、异构数据库互访等

2)在数据库中,事务(Transaction)是指由构成单个逻辑处理单元的一组数据库访问操作,它们要么都成功执行,要么都不执行。在数据库系统中,事务是 DBMS 执行的最小任务单元。

作业参考答案

同时,事务也是 DBMS 最小的故障恢复任务单元和并发控制任务单元。为了确保数据库共享访问的数据正确性,要求 DBMS 的事务管理机制维护事务的 ACID 特性。事务程序主要解决并发控制和系统恢复。

3)防止死锁的策略:允许用户一次发出当前所需全部资源的锁定,使用完成后,再释放给其它用户访问。规定所有应用程序锁定资源的顺序必须完全相同。当发生死锁时,回滚其中的一个事务,并取消它对数据库所做的改动。

顺序封锁法: 将数据库对象按某种规定的顺序排列,要求事务实行封锁也必须按照这个顺序进行。

一次封锁法: 要求事务在开始执行前先申请到所需的所有封锁,如果有一个封锁没有申请到,则事务中止。

用时间戳的死锁预防:根据事务启动时的时间戳设置事务的优先级,越早开始运行的事务优先级越高。为预防死锁,在事务 Ti 申请的封锁与事务 Tj 已经拥有的封锁发生冲突时,锁管理器可使用如下两种不同的机制:Wait-die 机制:若 Ti 优先级较高,则 Ti 可以等待;否则中止事务 Ti。Wound-wait 机制:若 Ti 优先级较高,则中止 Tj;否则 Ti 等待。

4) 数据库系统安全模型:身份验证:用来确认登录用户是否是合法使用者;权限控制:通过权限机制控制用户对数据的访问;系统防护:OS 系统安全机制防范非法系统访问;权限控制:通过加密算法对数据库中数据进行加密存储。实现方法:用户要访问数据库,必须先在 DBMS 中创建其账号,并成为数据库的用户。此后,用户每次访问数据库,都需要在 DBMS 进行身份验证,只有合法用户才能进入系统,访问操作数据库对象。 5)数据库备份——是指将数据库当前数据和状态进行副本复制,以便当数据库受到破坏或丢失数据时可以进行修复。数据库恢复——是指数据库中数据丢失或被破坏时,从备份副本将数据库从错误状态恢复到某一正确状态。恢复机制涉及两个关键问题:如何建立冗余数据(在数据库正常运行的情况下随时记录数据库的变化),如何利用冗余数据实施数据库恢复(数据库一旦失效,用记录的数据进行恢复)。恢复技术是衡量数据库管理系统优劣的重要指标;恢复机制常用的技术:记录日志文件和数据转储。

备份内容——包括数据文件、日志文件、系统数据库等。所谓转储是指 DBA 定期地将整个数据库复制到某种存储介质(如磁带、磁盘、光盘等)上保存起来的过程。备用的数据文本称为后备副本或后援副本。数据转储是数据库恢复中采用的基本技术。备份时机——当系统数据库被修改、日志被清理、用户数据库创建、用户数据库加载等事件出现时或定期备份。静态转储与动态转储,完全转储与增量转储 第七章 1 单选题 A C C

2. 判断题 对错对错 对对

3 填空题 过程参数;系统存储过程 临时存储过程;存储过程 4 简答题

1) 数据库应用系统从作用范围的角度可分为三种类型:基于单机的数据库应用系统: 特点: 在单机结构系统中,整个数据库系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。 . 集中式结构: 数据库系统的应用程序、DBMS、数据,都放在同一主机上,所有的处理任务由主机完成,多个用户可同时并发地存取数据,能够共享数据。

基于局域网的客户-服务器(C/S)数据库应用系统: 用户将数据传送到服务器进行处理。服务器将结果返回给用户,提高了系统的性能和负载能力,但可能带来网络上数据传数量过大。基于互联网的浏览器-服务器(B/S)的数据库应用系统。分布式结构:用户将数据传送到服务器进行处理。服务器将结果返回给用户,提高了系统的性能和负载能力,但可能带来网络上数据传数量过大。用户将数据传送到服务器进行处理。服务器将结果返回给用户,提高了系统的性能和负载能力,但可能带来网络上数据传数量过大。

2) 数据库开发生命周期是一个设计、实现和维护数据库系统的过程,需要符合组织战略和操作信息的需求。数据库开发生命周期与信息系统软件开发生命周期是内在关联的。DDLC 与 SDLC 是同步进行的。

a. 系统需求分析系统分析人员与用户交流,按照软件工程方法获取系统数据需求信息,并采用模型定义系统数据组成,及其数据字典。

b. 系统数据架构设计 系统架构设计人员根据系统功能和性能需求,对系统数据架构模型进行设计,包括系统数据概念模型、系统数据逻辑模型和系统数据物理模型。 c.

系统数据库实现 系统数据库开发人员根据系统设计方案,对系统数据库进行部署和模型实现,包括系统数据库创建、数据表创建、索引和约束等对象创建。

d. 系统测试 系统测试人员将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。

e. 系统运行与维护:系统运维人员在系统投入运行过程中,对系统数据库进行定期维护和优化,以保证数据库系统正常地、高效地运行。

3) 软件开发生命周期包括需求或概念阶段,规格说明阶段:将用户需求写成规格说明文档,阐述软件产品的预期功能。计划阶段:草拟软件项目管理计划,细化软件开发的各个方面。设计阶段:为实现软件规格说明文档中的功能而经历两个连续的设计阶段。第一个阶段是概要设计阶段;第二个阶段是详细设计阶段。这两个设计阶段的文档描述如何实现软件产品。编程(编码或实现)阶段:用特定的计算机编程语言编写各个模块的代码。, 集成(测试)阶段:完成模块的单独测试和集成测试,经历 Alpha 测试和 Beta 测试。维护阶段:完成所有维护工作。当增强和更改软件时,需要更新相应的软件规格说明文档。 4)应用程序在访问数据库时,需要与 DBMS 建立通信连接。但是,不同厂家的 DBMS 提供不同的数据库访问应用程序接口(Application Programming Interface,API)。因此,需要提供一种统一的数据库通信方式来屏蔽不同厂家的 DBMS 的 API 差异性。数据库连接中间件正是这样一种技术。主要 ODBC、JDBC 和嵌入式 SQL 技术。

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA, Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API。这些 API 利用 SQL 来完成其大部分任务。 JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。 有了 JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,或为访问 SQL Server 数据库又编写另一个程序等。作为 API,JDBC 为程序开发