您好,欢迎访问三七文档
第一章1.8.Listfoursignificantdifferencesbetweenafile-processingsystemandaDBMS.答:1.两者都包含了一系列的数据以及一些可用于操作数据的程序。数据库管理系统能够协调该数据的物理结构以及逻辑结构。而对于文件处理系统而言,只有物理结构。2.数据库管理系统可以确保所有经授权访问的程序能够访问到数据的物理部分,因此可以减少数据冗余。在文件处理系统中,当一个数据被一个程序所写入的时候,它有可能不能被另一个程序所读取。3.数据库管理系统提供灵活的访问方法(例如查询),而文件处理系统则要按照事先确定的方法去访问数据(例如程序编译)4.数据库管理系统可以让多个用户在同一时间对同一数据进行操作。而文件处理系统通常是允许一个或多个程序在同一时间访问不同的数据。在文件处理系统中,当且仅当两个文件在同一时间对同一个文件进行只读操作时才能并发进行这个操作。1.9Explaintheconceptofphysicaldataindependence,anditsimportanceindatabasesystems.答:物理数据独立是指能够应用程序不受影响的情况下修改物理模式。物理层的实现比较复杂,物理数据独立之后,当逻辑层需要修改某些数据的时候,就不需要设计复杂的物理结构,减轻了逻辑层的负担。1.10Listfiveresponsibilitiesofadatabase-managementsystem.Foreachresponsibility,explaintheproblemsthatwouldariseiftheresponsibilitywerenotdischarged.答:1.与文件管理器进行交互。如果没有了,数据库管理什么都做不了,包括数据存储以接受。2.完整性约束。缺少之后,一致性约束就没法满足。3.安全性。没有安全性管理,未经授权的用户可能会访问到数据库里面的数据以及已经拥有部分授权的用户访问到未经授权的部分。4并发执行。5.备份和恢复。1.13Whatarefivemainfunctionsofadatabaseadministrator?答:1.模式定义2.存储结构以及存取方式定义3.模式以及物理组织的修改4.数据访问授权5.日常维护1.14Explainthedifferencebetweentwo-tierandthree-tierarchitectures.WhichisbettersuitedforWebapplications?Why?答:区别:两层体系结构中,应用程序驻留在客户机上面,通过查询语言表达式来调用服务器上的数据库系统功能。在三层体系结构中,客户机只作为一个前端并且不包含任何直接的数据库调用。客户端通常通过一个表单界面与应用服务器进行通信。而应用程序与数据库通信以访问数据。三层体系结构更适合Web应用。可以减轻客户机的负荷。第二章2.10ConsidertheadvisorrelationshowninFigure2.8,withsidastheprimarykeyofadvisor.Supposeastudentcanhavemorethanoneadvisor.Then,wouldsidstillbeaprimarykeyoftheadvisorrelation?Ifnot,whatshouldtheprimarykeyofadvisorbe?答:不是。因为一个学生可能会被多个导师指导,用导师无法区分学生。主码应该是i_id和s_id。2.11Describethedifferencesinmeaningbetweenthetermsrelationandrelationschema.(关系和关系模式在意义上的区别)答:关系模式(RelationalScheme):它由一个关系名以及它所有的属性名构成。它对应二维表的表头,是二维表的构成框架(逻辑结构)。关系(Relation):表示多个实体之间的相互关联,每一张表称为该关系模式的一个具体关系。它包括:关系名,表的结构和表的数据(元组)。2.14Listtworeasonswhynullvaluesmightbeintroducedintothedatabase.答:当确切的值不存在或者不知道的时候,空值就可能会被引入。第四章4.17Explainwhy,whenamanager,saySatoshi,grantsanauthorization,thegrantshouldbedonebythemanagerrole,ratherthanbytheuserSatoshi.答:考虑一下,如果用户Satoshi并不是一个经理但是可以授予权限,当他离开公司的时候,上层回收原属于他的所有权限,尽管有些人的工作尽管没变,但是权限也一样被回收。如果权限授予是由经理完成的,从Satoshi里回收权限的时候就不会发生级联撤销。在授权图图里面,我们可以把经理以及用户当成是一个结点。如果权限是由经理授予,从Satoshi那里回收权限是不会对经理造成任何影响的。4.18SupposeuserA,whohasallauthorizationsonarelationr,grantsselectonrelationrtopublicwithgrantoption.SupposeuserBthengrantsselectonrtoA.Doesthiscauseacycleintheauthorizationgraph?Explainwhy.答:会的。A授予权限给所有用户,会产生一条从A到所有用户的边,这就意味着每个人都拥有权限,B也一样具有。这也意味着public到系统里面所有的用户都会有一条边。如果没有的话,就不会存在一条从授权图的根到代表该用户定点的路径(用户具有授权的充要条件)。B可以进行权限转移,当B把权限转移给A的时候,就会有一条从B到A的边,也就构成了环。第五章5.21Supposetherearetworelationsrands,suchthattheforeignkeyBofrreferencestheprimarykeyAofs.Describehowthetriggermechanismcanbeusedtoimplementtheondeletecascadeoption,whenatupleisdeletedfroms.答:有一些关系的主码被一些其他关系作为外码被参照,我们为这些关系定义了触发器。每当一条元组从被参照的关系中删除时,触发器就会被激活。触发器的动作是搜索所有参照的关系后,如果外码的值与被参照关系中被删除元组的主码的值相等的话,就删除这些外码值所在的元组。这一类触发器将会和级联删除操作拥有相同的作用。5.22Theexecutionofatriggercancauseanotheractiontobetriggered.Mostdatabasesystemsplacealimitonhowdeepthenestingcanbe.Explainwhytheymightplacesuchalimit答:一个触发器里面写的东西有可能会造成一个无终止的递归。举个例子,在一个关系上,有一个触发器是定义在插入操作之前的,而这个触发器尝试插入另一条记录到这个相同的关系里面。一般来说,想静态地确认和禁止这样的触发器产生是很困难的,因此,数据库系统在执行过程中会设置一个嵌套的触发器调用的深度限制。第七章7.14Explainthedistinctionsamongthetermsprimarykey,candidatekey,andsuperkey.答:超码:是一个或者多个属性的集合,这些属性的组合可以使之在一个关系中唯一地标识一个元组。一个超码可能包含有无关属性。也就是说,当K是超码时,K的任何父集也是超码。候选码:超码中,若它们的任意真子集都不能成为超码,这样的最小超码也称为候选码主码:在一个关系中,用于区分不同元组的候选码。第八章8.30Listthethreedesigngoalsforrelationaldatabases,andexplainwhyeachisdesirable.答:三个目标为:1.无损分解。2.保持依赖。3.最小数据冗余可以让我们拥有一个更精确的数据库,对更新的数据库进行正确查询以及花费更小的数据库存储空间。8.31Indesigningarelationaldatabase,whymightwechooseanon-BCNFdesign?答:这是因为BCNF有时候是不能保持着函数依赖的,因此,我们会选择另一种模式(特别是3NF),这样在检查更新时的数据依赖会更加容易。第十章10.9解释为什么在磁盘块上分配记录的策略会显著影响到数据库系统的性能。答:如果我们分配相关记录到磁盘块中,我们就可以通过对磁盘的一次请求就可以检索到更多或者是全部的所求的记录。磁盘的存取问题是数据库中的瓶颈,由于这个分配策略减少了对磁盘存取的操作次数,因此提高了数据库系统的性能。第十二章12.16列出ACID特性,解释每一特性的用途答:ACID特性:原子性:事物的所有操作在数据库中要么全部正确反映出来,要不完全不反映。一致性:隔离执行事务时,可以保持数据库的一致性隔离性:尽管多个事务是并发进行的,但是这个可以保证每个事务都感觉不到系统中有其他事务在并发执行。持久性:一个事务成功之后,它对数据库的改变是必须永久的,即使出现系统故障。12.17事务从开始执行到提交或者终止,期间要经过几个状态。列出所有可能出现的事务状态序列,并解释原因。答:有三种可能性:1.活动部分提交提交:这是一个正常事务所会发生的顺序。在执行完它的所有语句之后,它会进入部分提交状态,在足够的恢复信息被写入磁盘之后,就会进入最终的提交状态。2.活动部分提交中止:在执行事务的最后一条语句的时候,就会进入到部分提交状态。在足够的恢复信息被写入磁盘之前可能会有硬件出错,然后损坏内存里面的内容,这就会导致数据库什么都不能做,最后事务进入中止状态。3.活动失败中止:在事务开始执行之后,在某些时刻发现一些正常的执行操作不能继续(或者是内部程序或者是外界的因素),事务就会进入失败的状态,然后回滚,进入中止状态。12.18解释串行调度和可串行调度的区别答:属于同一事务的指令在调度中紧挨在一起就叫做串行调度。可串行化调度有一个比较弱的限制就是,有些串行调度必须要等价。这里有两个调度等价的定义:冲突等价以及视图等价。12.22.为什么数据库系统支持事务的并发执行,尽管需要额外编程工作来确保并发执行不会引起任何问题答:事务进程系统通常可以让多个事务并发执行。我们容易强调这个更容易事务串行执行。然而,下面有两个更好地理由来解释:第一,提高吞吐量和资源利用率。一个事务由多个步骤组成。一些设计I/O活动;还有一些涉及CPU活动。在计算机系统中CPU与磁盘可以并行运作。因此,I/O活动可以与CPU处理并行进行。利用CPU和I/O系统的并行性,多个事务可并行执行。当一个事务在一张磁盘上进行读写时,另一个事务可以在CPU上运行,第三个事务又可在另一张磁盘上进行读写。这样就可以增加吞吐量,同时利用率也提高了。第二,减少等待时间。系统中可能运行着各种各样的事务,有些时间长,有些短。如果各事务针对数据库的不同部分进行操作,让它们并发执行会更好,它们之间可以共享CPU周期与磁盘存取。可减少执行事务时的不可预测的延迟以及平均响应时间。12.30稳定存储器是不可能实现的1.解释为什么?2.数据库如何看待?答:1.是由于所有的存储设备都是由硬件构成。所有硬件对于机械以及电子设备故障来说都是很脆弱的。2.数据库把数据同时写入多个存储器之中,如果一个设备崩溃了,还有其他可用的设备有备份,就不会说数据会丢失。12.31如果与某块有关的某些日志记录没有在该块输出到磁盘之前输出到稳定存储器中,请解释数据库可能会如何变得不一致。答:考虑到一个银行系统以及一个
本文标题:数据库简答题
链接地址:https://www.777doc.com/doc-2333112 .html