1、 习题 1 1 数据与信息有何区别?有何联系? 数据的概念:数字、文字、图画、声音和活动图象 信息的概念:信息是对人有用的数据 ( 1) 数据与信息的区别: 数据包含信息 数据处理之后产生结果为信息 信息具有相对性,时效性 ( 2)数据与信息的联系: 信息是客观事物属性的反映。是经过加工处理并对人类客观行为产生影响的数据表现形式。 数据是反映客观事物属性的记录,是信息的具体表现形式 。 数据经过 加工 处理之后,成为信息。而信息必须通过数据才能传播,才能对人类有影响。 2简述数据库、数据库管理系统、数据库系统的概念。 ( 1) 数据库( DataBase ,简称 DB ) :数据库是长期储存在
2、计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 2) 数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理 软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能 、数据库的建立和维护功能。 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名
3、的有美国 IBM 公司的 DB2 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 oracle 关系数据库管理系统 、美国微软公司的 SQL Server 关系数据库管理系统等。 ( 3) 数据库系统( DataBaseSystem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。 3数据管理技术经历了哪几个阶段?各阶段的主要特点是什么? ( 1) 人工管
4、理阶段 。 特点 : 数据的管理者:人 数据面向的对象:某一应用程序 数据的共享程度:无共享 ,冗余度极大 数据的独立性:不独立,完全依赖于程序 数据的结构化:无结构 数据控制能力:应用程序自己控制 ( 2) 文件系统阶段 。 特点 : 数据的管理者:文件系统 数据面向的对象:某一应用程序 数据的共享程度:共享性差 ,冗余度大 数据的独立性:独立性差 数据的结构化:记录内有结构,整体无结构 数据控制能力:应用程序自己控制 ( 3) 数据库系统阶段 。 特点 : 数据的管理者:数据库管理系统 数据面向的对象:整个应用系统 数据的共享程度:共享性高,冗余度小 数据的独立性:具有高度的物理独立性和逻
5、辑独立性 数据的结构化:整体结构化,用数据模型描述 数据控制能力:由数据库管 理系统提供数据安全性、完整性、并发控制和恢复能力 4文件系统与数据库系统有什么本质的区别? 文件系统把数据组织成相互独立的数据文件,实现了记录内的结构性,但整体无结构;而数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。 5简述数据库系统的特点。 数据库系统的主要特点有: ( 1) 数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化 的,而且
6、数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一个:记录,如一个完整 的服装订单 记录。 ( 2) 数据的共享性高,冗余度低,易扩充 , 数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用 程序 共享使用 ,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。 数据共享可以大大减少数据冗余,节约存 储空间,同时还能够避免数据之间的不相容性与不一致性。 ( 3) 数据独立性
7、高 , 数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。 ( 4) 数据由 DBMS 统一管理和控制 , 数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。 DBMS 提供 了 统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。 DBMS 数据控制功能包括四个方面:数据的安全性保护 ; 数据的完整性检查;并发控制;数据库恢复。 6简述数据库管理系统的主要功能。 ( 1) 数据库定义功能 : 提供数据定义语言 (Data D
8、efinition Language,DDL),让用户能够方便地定义数据库的逻辑结构、存储结构和存取路径,描述对数据的完整性和安全性等要求 ; ( 2) 数据存取功能 : 提供数据操纵语言 (Data Manipulation Language, DML),在保证数据的完整性和安全性基础上,方便、高效地实现数据的查找、插入、修改和删除等操作 ; ( 3) 数据 组织与存储功能: 提供数据在外围存储设备上 的物理组织和存储方式 ; ( 4) 事务运行管理功能:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能; ( 5) 数据库建立维护功能:提供了数
9、据安全控制、完整性保障、数据库备份、数据库重组和性能监控等维护工具软件,用于提高系统运行效率; ( 6)通信接口:提供与其他类型数据库系统或软件之间的格式转换和网络通信功能,实现异构数据库互访和互操作。 7简述数据库系统的三级模式结构。这种结构的优点是什么?如何实现模式间的转换? ( 1) 数据库系统的三级模式结构由外模式、模式和 内模式组成。(参见书上图 1 . 29 ) 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结
10、构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 ( 2) 特点:数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMS 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。 ( 3) 为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式模式映像和模式内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 8什么是
11、数据独立性?为什么数据库系统具有数据独立性? 数据独立性包括数据的物理独立性和数据的逻辑独立性。 数据与程序的逻辑独立性 表现在 当模式改变时( 例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性 表现在 当数据库的存储结构改变了,由数据库管理员对模式内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间
12、提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独 立性和物理独立性。 9简述数据库系统的组成。 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 10数据库管理员、系统分析员、数据库设计人员、应用程序员的职责分别是什么? 数据库管理员:负责全面地管理和控制数据库系统。具体职责包括:决定数据库的信息内容和结构;决定数据库的存储结构和存取策略;定义数据的安全性要求和完整性约束条件;监督和控制数据库的使用和运行;改进和重组数据库系统。 系统分析员:负责系统的需求分析和规范说明,需要与用户以及数据库管理员相结 合,确定系统的硬件软件配置,并参与数据库
13、系统的概要设计。 数据库设计员:负责数据库中数据的确定以及数据库各级模式的设计。 应用程序员:负责设计和编写应用系统的程序模块,并进行调试和安装。 11观察和分析一个实际的数据库管理系统。它支持三级模式结构吗?两层之间的映像是如何定义的?是否有完整性和安全性机制?是否具有分布式处理功能?有哪些特色功能? 12( 1990 年高级程序员考试试题)从下列关于数据库系统特点的叙述中选出 5 条正确的叙述。 数据库避免了一切数据重复。 数据库减少了数据冗余。 各类用户程序均可随意地使用数据库中的各种数据。 用户程序按所对应的子模式使用数据库中的数据。 数据库数据可经 DBA 认可的各用户所共享。 数据
14、库系统中如概念模式有所改变,则需将与其有关的子模式做相应改变,否则用户程序需改写。 数据库系统中概念模式如有改变,子模式不必变,因而用户程序亦不必改写。 数据库系统的存储模式如有改变,则概念模式应予调整,否则用户程序会在执行中出错。 数据库系统的存储模式如有所改变,概念模式不需改动。 数据一致性是指数据库中数据类型一致。 习题 2 1答: 数据模型通常由数据结构、数据操作和完整性约束三部分组成 : 数据结构是所研究的对象类型的集合,刻画对象和对象间的联系,是对数据库系统静态特性的描述。如对象的类型、性质、对象之间的参照、所属关系等。 数据操作是指对数据库中各种对象的值允许执行的操作的集合,包括
15、有关的操作要求,是对数据库系统动态特性的描述。数据库主要有查询和更新(增加、删除和修改)操作。数据模型中需要定义这些操作的具体含义、操作符号、操作规则和实现操作的语句。 完整性约束即数据和数据间应该满足的条件,是一组完整性规则的集合,用以限定符合数据模型的 数据库状态以及状态的变化,以保证数据的正确性、有效性和相容性。 2答: 略 3答: 可参加本章图 2-2 所示的 1:1、 1:n、 n:m 三种实体与实体的联系。 4答: UML 中主要的图有: Use case diagram(用例图 )、 Class diagram(类图 )、 Sequence diagram(顺序图 )、 Coll
16、aboration diagram(协作图 )、 Activity diagram(活动图 )。 功能如下: 用例图:说明的是谁要使用系统以及使用该系统可以做些什么。 UML9 种图中一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。 类图:类图是一种模型类型,确切的说,是一种静态模型类型。一个类图根据系统中的类以及各个类之间的关系描述系统的静态视图。 顺序图:用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即消息是如何在对象之间被发送和接收的。 协作图:可以看成类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此
17、的通信方式。 活动图 :活动图能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。 5答: 在层次模型中,实体之间联系用树形结构 (指针 )来实现。 在网状模型中,实体之间联系用指针实现。在关系模型中,实体之间联系用关键码 (外键或关系运算 ) 来实现。 6答: 7答: 8答: Entity1 Entity2 A# A1 A3 A2 Relationship1 B# D1 B1 B2 n m A B C D E 5 2 4 1 4 9答: A B C D E 3 1 4 4 4 习题 3 5.( 1) 专业 =通信工程 (学生 ) (
18、2) 课程号 ,学分 (课程 ) ( 3) 课程号,成绩 ( 姓名 =张珊 (学生 )选修 ) ( 4) 学号,课程号 (选修 )课程 6.A: , B: , C: , D: , E: 7.C, D 习题 4 3.( 1) Select 服装 ID,型号,颜色,价格 from 服装关系 where 品牌 =佐丹奴; ( 2) select 姓名,电话 from 顾客关系 where 顾客 ID in ( select 顾客 购买记录关系 服装 ( 服装 服装关系 where 品牌美津浓); ( 3) select * from 顾客关系 where 顾客编号 not in ( select 顾
19、客编号 from 购买记录关系); ( 4) select * from 顾客关系 where not exist ( select * from 服装关系 where 品牌 =佐丹奴 and not exist ( select * from 购 买记录关系 where 购买记录关系 .服装编号 =服装关系 .服装编号 and 购买记录关系 .顾客编号 =顾客关系 .顾客编号) 4.( 1) select * from 学生 where 专业 =通信工程; ( 2) select 课程号,学分 from 课程; ( 3) select 课程号,成绩 from 选修 where 学号 =( s
20、elect 学号 from 学生 where 姓名 =张珊); ( 4) SELECT 姓名 FROM 学生 WHERE NOT EXISTS (SELECT * FROM 课程 WHERE NOT EXISTS (SELECT * FROM 选修 WHERE 学号 = 学生 .学号 AND 课程号 = 课程 .课程号 ); ( 5) select * from 学生 where 学号 not in( select 学号 from 选修); ( 6) select 学号 from 选修 where 课程号 in( select 课程号 from 课程课程 1where 课程1.先行课课程号 =
21、( select 课程号 from 课程课程 2 where 课程 2.课程名 =数据库原理); ( 7) delete from 选修 where 学号 = 9501; ( 8) update 选修 set 成绩 =89 where 学号 =( select 学号 from 学生 where 姓名 =张林)and 课程号 =( select 课程号 from 课程 where 课程名 =数据库原理); ( 9) create view v1 as select 学号,姓名,成绩 from 学生,选修,课程 where 学生 .学号 =选修 .学号 and 选修 .课程号 =课程 .课程号 a
22、nd 课程名 =数据库原理; ( 10) select * from v1 where grade90; 习题 5 2. ( 1)学生(学号,姓名,出生日期,班号,宿舍区),候选码:学号。外码:班号 班级(班号,专业名,系名,人数,入校年份),候选码:班号。外码:系名 系(系号,系名,系办公室地点,人数),候选码:系号 学会(学会名,成立年份,地点,人数),候选码:学会名 学生 -学会(学号,学会名,入会年份),候选码:(学号,学会名),外码:学号,学会名 ( 2)学生关系的最小依赖集为 学号 姓名,学号出生日期,学号班号,学号宿舍区 班级关系的最小依赖集为 班号 专业名, 班号 系名, 班号
23、 人数, 班号 入校年份 系关系的最小依赖集为 系号 系名, 系号 系办公室地点, 系号 人数 学会关系的最小依赖集为 学会名 成立年份, 学会名 地点, 学会名 人数 学生 -学会关系的最小依赖集为 (学号,学会名) 入会年份 以上依赖集均无传递依赖,部分依赖。 ( 3)各关系模式的候选码、外码已在( 1)中注明。无全码。 3( 1)最小依赖集为 A C,C A,B C,D C (2)候选码: BD ( 3) AC, BC, DC, BD 4.F 是最小依赖集。 ( 1) (AB)+=U ,A+=A,B+=BCD。故 AB 是候选码。同理可证 AC, AD 均是候选码。 ( 2)因 B C,
24、故 C 部分依赖于 AB。因 AD B, B C,故 C 传递依赖于 AD。 因 C D,故 D 部分依赖于 AC。因 AB C, C D,故 D 传递依赖于 AB。 5.AB E,BE C,CE F,CF B,CF D,C A,D E,D F 6.( 1) 是 。按 BCNF 的定义,若 XY, 且 Y 不是 X 的子集时,每个决定因素都包含码,对于二 元 关系决定因素必然包含码。 ( 2)是。唯一的决定因素(学号,课程号)就是码。 ( 3) F 是最小依赖集。把所有属性分类: L 类: D, N 类:无, LR 类: A,B,C,E, R 类:无 (DA)+=U, (DB)+=DB, (D
25、C)+=DC, (DE )+=DEC ,故 DA 是唯一候选码。并非所有决定因素都包含码,该关系模式不是 BCNF。 7.因为 ABE CDEF=E, ABE-CDEF=AB, E AB F+,故该分解是无损连结分解。 8. F 的最小依赖集为 S D, I S,I Q,B Q。把所有属性分类: L 类: I、 B, N 类: O, LR 类: S, R 类: DQ ( IBO) +=U,故 IBO 为码。具有无损连接性的 BCNF 分解为: SD, IS, IQ, BQ, IBO 9.不正确。不符合多值依赖定义。 10.BCNF。因为 C A 是非平凡且非函数依赖的多值依赖。 11.( 1)
26、候选码: AC, AD, BC, BD ( 2)不是 4NF。存在非平凡且非函数依赖的多值依赖。 ( 3)不是 BCNF。决定因素 A、 B 都不包含码。 ( 4)是 3NF。所有属性都是主属性,不存在非主属性到码的部分函数依赖或传递函数依赖。 习题 6 14. A: B: C: D: E: 15. 【问题 1】 (1) n (2) m (3) 1 (4) n, 或 m (5) m (6) n 其中, (1)、 (2)的答案可互换, (5)、 (6)的答案可互换。 【问题 2】 (a)读者 ID,图书 ID (b)读者 ID, ISBN 号 【问题 3】 关 系 模 式 主 键 外 键 读 者
27、 读 者 ID 书 目 ISBN 号 图 书 图 书 ID ISBN 号 借 还 记 录 读 者 ID, 图 书 ID,借 书 时 间 读 者 ID, 图 书 ID 预 约 登 记 读 者 ID , ISBN 号 ,预 约 时 间 读 者 ID, ISBN 号 ,图 书 ID 习题 7 1. 简述查询优化的必要性。 答:查询优化使得用户不必考虑如何最好地表达查询,简化了用户的工作。同时,同一个查询可以有不同的查询计划,而不同的查询计划执行的效率也不一样,因而对 提高RDBMS 的查询效率是非常必要的,是影响 RDBMS 性能的关键因素 。 2. 简述查询优化的一般准则。 答:( 1) 选择运算
28、应尽可能先做。选择运算一般使计算的中间结果大大变小,提前处理常常可使查询代价降低几个数量级。 ( 2)在执行连接前对关系适当地预处理。如执行连接前事先在连接属性上建立索引,可以减少对表的扫描次数,从而大大减少连接处理的时间。 ( 3)投影运算和选择运算同时进行。如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。 ( 4)把投影同其前或其后的双目运算结合起来。没有必要为了去掉某些字段而扫描一遍关系。 ( 5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。 (
29、6)找出公共子表达式 。对那些重复出现且结果不是很大的子表达式,可以先计算一次并把结果写入中间文件,需要时从外存中读入。 3. 简述查询优化的处理步骤。 答: ( 1)将查询转换成某种内部表示 ( 2)根据一定的等价变换规则把语法树转换成标准(优化)形式 ( 3)选择低层的操作算法 ( 4)生成查询计划 习题 8 1. 试述事务的概念及事务的四个特性。 答: 原子性( Atomicity) 、 一致性 (Consistency)、 隔离性 (Isolation)、 持久性 (Durability) 2. 并发操作可能产生哪几类数据不一致?用什么方法可以避免各种不一致的情况。 答:并发操作可能产
30、生 丢失 修改、 不可重复读 、 读 “ 脏 ” 数据 。为避免不一致的情况,一般采用封锁技术,一级封锁协议可避免丢失修改,二级封锁协议可避免丢失修改和 读“ 脏 ” 数据 ,三级封锁协议可避免 丢失 修改、 不可重复读 、 读 “ 脏 ” 数据 。 3. 试述死锁的处理方法?并说明各方法的优缺点。 答: 对于死锁处理,可以采用预防的策略,如一次封锁法和顺序封锁法,但实际中很难操作,因此,实际中一般允许死锁,但必须提供死锁的诊断和解除方法。 4. 数据库运行中可能产生的故障有哪几类? 答: 事务内部的故障 、 系统故障 、 介质故障 、 计算机病毒 。 5. 数据库的恢复 技术有哪些? 答:
31、数据转储和登录日志文件 。 习题 9 1答: 数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过 DBMS 或 应用程序 来实现,基于 DBMS 的完整性约束作为模式的一部分存入数据库中。 2答: 数据库的安全机制主要包括 用户标识和鉴别、存取控制 策略 、视图机制 和 数据加密审计跟踪等技术 构成 。 3答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 数据库完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。因此完整性检查和控制的防
32、范对象是不合语义、不正确的数据,防止它们进入数据库。数据库的安全性是保护数据库 , 防止恶意的破坏和非法的存取。 因此 安全性 措施 的防范对象是非法用户和非法操作。 4答: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、 动态列级约束、动态元组约束、动态关系约束。 静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。 静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在