数据库原理试题库 联系客服

发布时间 : 星期一 文章数据库原理试题库更新完毕开始阅读497329ee783e0912a2162ae1

(3) 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。 (4) 易于向关系、网状、层次等各种数据模型转换。 52. 试述概念结构的设计策略。

答:概念结构的设计策略通常有四种:

? 自顶向下。即首先定义全局概念结构的框架,然后逐步细化;

? 自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概

念 结构;

? 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步

生成其他概念结构,直至总体概念结构;

? 混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结

构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

53. 什么叫数据抽象?试举例说明。

答: 数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。

如分类这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的 “is member of”的语义。在E-R模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,表示李英是教师类型中的一员,则教师是实体型,李英是教师实体型中的一个实体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从事某个方向的科研。 54. 试述数据库概念结构设计的重要性和设计步骤。

答:数据库概念结构设计的重要性是:

数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一 DBMS实现这些需求。 设计步骤为:

概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第 1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构

55. 为什么要视图集成?

答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机的融合起来,综合成一个系统的总视图。这样设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用户、多个应用共享使用。 56. 视图集成的方法是什么?

答:一般说来,视图集成可以有两种方式: · 多个分 E-R图一次集成; · 逐步集成,用累加的方式一次集成两个分 E-R图。

无论采用哪种方式,每次集成局部 E-R图时都需要分两步走:

37

(1)合并。解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图。 (2)修改和重构。消除不必要的冗余,生成基本E-R图。 57. 什么是数据库的逻辑结构设计?试述其设计步骤。

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。 设计步骤为:

(1) 将概念结构转换为一般的关系、网状、层次模型;

(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; (3) 对数据模型进行优化。

58. 规范化理论对数据库设计有什么指导意义?

答:规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用以指导关系数据模型的优化,用来预测模式可能出现的问题,为设计人员提供了自动产生各种模式的算法工具,使数据库设计工作有了严格的理论基础。 59. 试述数据库物理设计的内容和步骤。

答:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的 DBMS 。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构,就是数据库的物理设计的主要内容。数据库的物理设计步骤通常分为两步: ( l )确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构; ( 2 )对物理结构进行评价,评价的重点是时间效率和空间效率。

60. 试述查询优化在关系数据库系统中的重要性和可能性。

答:重要性:关系系统的查询优化既是 RDBMS 实现的关键技术又是关系系统的优点所在。它减轻了用户选择存取路径的负担。用户只要提出“干什么”,不必指出“怎么干”。查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化?夕做得更好。

可能性:这是因为: ( l )优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引( B +树索引还是 HASH 索引或惟一索引或组合索引)等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。 ( 2 )如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。 ( 3 )优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。 ( 4 )优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。 61. 试述RDBMS查询优化的一般准则。 答:查询优化的一般准则是: (l)选择运算应尽可能先做;

(2)把投影运算和选择运算同时进行;

(3)把投影同其前或其后的双目运算结合起来执行;

(4)把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;

38

(5)找出公共子表达式; (6)选取合适的连接算法。

62. 试述RDBMS查询优化的一般步骤。

答:各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下: (l)把查询转换成某种内部表示,通常用的内部表示是语法树。

(2)把语法树转换成标准(优化)形式。即利用优化算法,把原始的语法树转换成优化的形式。

(3)选择低层的存取路径。

(4)生成查询计划,选择代价最小的。 63. 试述事务的概念及事务的四个特性

答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做 ,是一个不可分割的工作单位。

事务具有四个特性:原子性( Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:持续性也称永久性( Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。 64. 恢复技术能保证事务的哪些特性?

65. 为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

例如某工厂的库存管理系统中,要把数量为 Q的某种零件从仓库1移到仓库2存放。

则可以定义一个事务 T,T包括两个操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。

66. 数据库中为什么要有恢复子系统?它的功能是什么?

答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。

67. 数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏

数据库数据?

答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:

39

(1)事务内部的故障; (2)系统故障; (3)介质故障; (4)计算机病毒。

事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。

68. 据库恢复的基本技术有哪些?

答:数据转储和登录日志文件是数据库恢复的基本技术。

当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

69. 数据库转储的意义是什么? 试比较各种数据转储方法。

答:数据转储是数据库恢复中采用的基本技术。所谓转储即 DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。

静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。 动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。

为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件( log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。 转储还可以分为海量转储和增量转储两种方式。

海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。 70. 什么是日志文件?为什么要设立日志文件? 答:(1)日志文件是用来记录事务对数据库的更新操作的文件。

(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。

71. 登记日志文件时为什么必须先写日志文件,后写数据库?

答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。

如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次 UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

72. 数据库故障有哪些类型?针对不同的故障,试给出恢复的策略和方法。(即如何进行事务

40