第一章1.8. List four significant differences between a file-processing system and a DBMS.答:1.两者都包含了一系列的数据以及一些可用于操作数据的程序。
数据库管理系统能够协调该数据的物理结构以及逻辑结构。
而对于文件处理系统而言,只有物理结构。
2.数据库管理系统可以确保所有经授权访问的程序能够访问到数据的物理部分,因此可以减少数据冗余。
在文件处理系统中,当一个数据被一个程序所写入的时候,它有可能不能被另一个程序所读取。
3.数据库管理系统提供灵活的访问方法(例如查询),而文件处理系统则要按照事先确定的方法去访问数据(例如程序编译)4.数据库管理系统可以让多个用户在同一时间对同一数据进行操作。
而文件处理系统通常是允许一个或多个程序在同一时间访问不同的数据。
在文件处理系统中,当且仅当两个文件在同一时间对同一个文件进行只读操作时才能并发进行这个操作。
1.9 Explain the concept of physical data independence, and its importance in database systems. 答:物理数据独立是指能够应用程序不受影响的情况下修改物理模式。
物理层的实现比较复杂,物理数据独立之后,当逻辑层需要修改某些数据的时候,就不需要设计复杂的物理结构,减轻了逻辑层的负担。
1.10 List five responsibilities of a database-management system. For each responsibility, explainthe problems that would arise if the responsibility were not discharged.答:1.与文件管理器进行交互。
如果没有了,数据库管理什么都做不了,包括数据存储以接受。
2.完整性约束。
缺少之后,一致性约束就没法满足。
3.安全性。
没有安全性管理,未经授权的用户可能会访问到数据库里面的数据以及已经拥有部分授权的用户访问到未经授权的部分。
4并发执行。
5.备份和恢复。
1.13 What are five main functions of a database administrator?答:1.模式定义2.存储结构以及存取方式定义3.模式以及物理组织的修改 4.数据访问授权5.日常维护1.14 Explain the difference between two-tier and three-tier architectures. Which is better suitedfor Web applications? Why?答:区别:两层体系结构中,应用程序驻留在客户机上面,通过查询语言表达式来调用服务器上的数据库系统功能。
在三层体系结构中,客户机只作为一个前端并且不包含任何直接的数据库调用。
客户端通常通过一个表单界面与应用服务器进行通信。
而应用程序与数据库通信以访问数据。
三层体系结构更适合Web应用。
可以减轻客户机的负荷。
第二章2.10 Consider the advisor relation shown in Figure 2.8, with s id as the primary key of advisor.Suppose a student can have more than one advisor. Then, would s id still be a primary key of the advisor relation? If not, what should the primary key of advisor be?答:不是。
因为一个学生可能会被多个导师指导,用导师无法区分学生。
主码应该是i_id和s_id。
2.11 Describe the differences in meaning between the terms relation and relation schema.(关系和关系模式在意义上的区别)答:关系模式(Relational Scheme):它由一个关系名以及它所有的属性名构成。
它对应二维表的表头,是二维表的构成框架(逻辑结构)。
关系(Relation):表示多个实体之间的相互关联,每一张表称为该关系模式的一个具体关系。
它包括:关系名,表的结构和表的数据(元组)。
2.14 List two reasons why null values might be introduced into the database.答:当确切的值不存在或者不知道的时候,空值就可能会被引入。
第四章4.17 Explain why, when a manager, say Satoshi, grants an authorization, the grant should be doneby the manager role, rather than by the user Satoshi.答:考虑一下,如果用户Satoshi并不是一个经理但是可以授予权限,当他离开公司的时候,上层回收原属于他的所有权限,尽管有些人的工作尽管没变,但是权限也一样被回收。
如果权限授予是由经理完成的,从Satoshi里回收权限的时候就不会发生级联撤销。
在授权图图里面,我们可以把经理以及用户当成是一个结点。
如果权限是由经理授予,从Satoshi那里回收权限是不会对经理造成任何影响的。
4.18 Suppose user A, who has all authorizations on a relation r, grants select on relation r to public with grant option. Suppose user B then grants select on r to A. Does this cause a cycle inthe authorization graph? Explain why.答:会的。
A授予权限给所有用户,会产生一条从A到所有用户的边,这就意味着每个人都拥有权限,B也一样具有。
这也意味着public到系统里面所有的用户都会有一条边。
如果没有的话,就不会存在一条从授权图的根到代表该用户定点的路径(用户具有授权的充要条件)。
B可以进行权限转移,当B把权限转移给A的时候,就会有一条从B到A的边,也就构成了环。
第五章5.21 Suppose there are two relations r and s, such that the foreign key B of r references the primary key A of s. Describe how the trigger mechanism can be used to implement the on delete cascade option, when a tuple is deleted from s.答:有一些关系的主码被一些其他关系作为外码被参照,我们为这些关系定义了触发器。
每当一条元组从被参照的关系中删除时,触发器就会被激活。
触发器的动作是搜索所有参照的关系后,如果外码的值与被参照关系中被删除元组的主码的值相等的话,就删除这些外码值所在的元组。
这一类触发器将会和级联删除操作拥有相同的作用。
5.22 The execution of a trigger can cause another action to be triggered. Most database systemsplace a limit on how deep the nesting can be. Explain why they might place such a limit答:一个触发器里面写的东西有可能会造成一个无终止的递归。
举个例子,在一个关系上,有一个触发器是定义在插入操作之前的,而这个触发器尝试插入另一条记录到这个相同的关系里面。
一般来说,想静态地确认和禁止这样的触发器产生是很困难的,因此,数据库系统在执行过程中会设置一个嵌套的触发器调用的深度限制。
第七章7.14 Explain the distinctions among the terms primary key, candidate key, and superkey.答:超码:是一个或者多个属性的集合,这些属性的组合可以使之在一个关系中唯一地标识一个元组。
一个超码可能包含有无关属性。
也就是说,当K是超码时,K的任何父集也是超码。
候选码:超码中,若它们的任意真子集都不能成为超码,这样的最小超码也称为候选码主码:在一个关系中,用于区分不同元组的候选码。
第八章8.30 List the three design goals for relational databases, and explain why each is desirable.答:三个目标为:1.无损分解。
2.保持依赖。
3.最小数据冗余可以让我们拥有一个更精确的数据库,对更新的数据库进行正确查询以及花费更小的数据库存储空间。
8.31 In designing a relational database, why might we choose a non-BCNF design?答:这是因为BCNF有时候是不能保持着函数依赖的,因此,我们会选择另一种模式(特别是3NF),这样在检查更新时的数据依赖会更加容易。
第十章10.9 解释为什么在磁盘块上分配记录的策略会显著影响到数据库系统的性能。
答:如果我们分配相关记录到磁盘块中,我们就可以通过对磁盘的一次请求就可以检索到更多或者是全部的所求的记录。
磁盘的存取问题是数据库中的瓶颈,由于这个分配策略减少了对磁盘存取的操作次数,因此提高了数据库系统的性能。
第十二章12.16 列出ACID特性,解释每一特性的用途答:ACID特性:原子性:事物的所有操作在数据库中要么全部正确反映出来,要不完全不反映。
一致性:隔离执行事务时,可以保持数据库的一致性隔离性:尽管多个事务是并发进行的,但是这个可以保证每个事务都感觉不到系统中有其他事务在并发执行。
持久性:一个事务成功之后,它对数据库的改变是必须永久的,即使出现系统故障。
12.17 事务从开始执行到提交或者终止,期间要经过几个状态。
列出所有可能出现的事务状态序列,并解释原因。
答:有三种可能性:1.活动→部分提交→提交:这是一个正常事务所会发生的顺序。
在执行完它的所有语句之后,它会进入部分提交状态,在足够的恢复信息被写入磁盘之后,就会进入最终的提交状态。