第一篇:1数据库原理习题与答案_第3章数据库系统结构(范文)
简答题
1. 试述数据库系统三级模式结构,这种结构的优点是什么。
答:数据库系统的三级模式结构由外模式、模式和内模式组成。外模式,亦称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构,外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像,正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
2. 定义并解释以下术语:模式、外模式、内模式、DDL、DML。
答:模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式,亦称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
DDL:数据定义语言,用来定义数据库模式、外模式、内模式的语言。
DML:数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。
3. 什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
答:数据与程序的逻辑独立性:当模式改变时,由数据库管理员对各个外模式//模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
第二篇:数据库习题与答案
一.选择题:
1.日志文件是用于记录()
A.程序运行过程 B.数据操作 C.对数据的所有更新操作 D.程序执行的结果
答案:C(114)2.利用查询分析器,能()
A.直接执行SQL语句
B.提交SQL语句给服务器执行 C.作为企业管理器使用
D.作为服务管理器使用 答案:B(123)
3.不属于SQL Server系统全局变量的是()
A.@@Error
B.@@Connections
C.@@Fetch_Status
D.@Records
答案:D(131)
4.Transact-SQL对标准SQL的扩展主要表现为()
A.加入了程序控制结构和变量 B.加入了建库和建表语句 C.提供了分组(Group By)查询功能 D.提供了Min、Max等统计函数
答案:A(133)
5.下列选项中,查询中的汇总函数是()
A.CONST B.RETURN C.FETCH D.COUNT 答案:D(134)
6.下列选项中,不是存储过程的组成部分是()
A.过程声明 B.过程名 C.参数 D.过程体
答案:A(135)
7.在SQL Server服务器上,存储过程是一组预先定义并()
A.保存的T-SQL语句 B.编译的T-SQL语句 C.解释的T-SQL语句 D.编写的T-SQL语句
答案:B(135)
8.在ODBC与数据的交换管理中,所涉及的下列选项中不属于交换管理的是()A.连接管理 B.分配管理 C.游标管理 D.诊断管理
答案:B(138)
9.在下列的选项中,不属于Web常用的开发工具的是()
A.ASP B.JSP C.PHP D.Visual BASIC 答案:D(143)
二.填空题
1.连接管理语句主要用于数据交换中主客体间建立实质性关联的语句,它们由______________、置连接语句与断开语句三条语句组成。
答案:连接语句
(115)
2.连接管理语句主要用于数据交换中主客体间建立实质性关联的语句,它们由连接语句、______________与断开语句三条语句组成。
答案:置连接语句
(115)
3.连接管理语句主要用于数据交换中主客体间建立实质性关联的语句,它们由连接语句、置连接语句与______________三条语句组成。
答案:断开语句
(115)
4.诊断管理语句主要用于获取SQL语句执行 的状态。
答案:后(117)
5.人机交互方式是人与______________直接交互的方式,它是最原始、最简单也是最方便的一种方式。
答案:数据库
(118)
6.自含式SQL构成一种完整的语言,它将传统的程序设计语言与SQL相结合,其数据同时具有______________与标量形式。
答案:集合量
(130)
7.在Web应用中一般使用典型的三层结构B/S模式,在这个结构中由浏览器、______________及数据库服务器三部分组成。
答案:Web服务器
(143)
8.在Web应用中一般使用典型的三层结构B/S模式,在这个结构中由浏览器、Web服务器及______________三部分组成。
答案:数据库服务器
(143)
三.简答题
1.请说明游标管理语句的作用和他所设有的4个SQL语句。
答案:(116)游标管理语句主要用于在数据交换中数据库中的集合量数据与应用程序的标量数据间的转换。它主要用于SQL的查询语句中。
在游标管理中一共设有4个SQL语句,它们是:
⑴ 定义游标。为某SELECT语句的结果集合定义一个命名游标
⑵ 打开游标。在游标定义后当使用数据时需打开游标,此时游标处于活动状态并指向集合的第一个记录
⑶ 推进游标。此语句功能是将游标定位于集合中指定的记录,并从该记录取值,送入程序变量中
⑷ 关闭游标。游标使用完后需关闭 2.请说明动态SQL管理语句内容。
第三篇:数据库习题与答案
一.选择题:
1.数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。在常用的数据模型中,不包括()
A.网状模型 B.链状模型 C.层次模型 D.关系模型 答案:B(18)
2.E-R图中的主要元素是实体型、属性和()
A.记录型 B.结点 C.联系 D.有向边
答案:C(19)3.关系数据模型____。
A.只能表示实体间的1:1联系 B.只能表示实体间的1:n联系 C.只能表示实体间的m:n联系 D.可以表示实体间的上述三种联系
答案:D(20)
4.数据库概念设计E-R方法中,用属性描述实体的特征,实体集在E-R图中,用下列选项之一表示()
A.矩形 B.四边形 C.菱形 D.椭圆形
答案:A(22)
5.层次型、网状型和关系型数据库划分原则是()A.记录长度 B.文件的大小 C.联系的复杂程度 D.数据之间的联系
答案:D(24)
6.数据库技术的奠基人之一E.F.Codd从1970年起发表过多篇论文,主要论述的是()A.层次数据模型 B.网状数据模型 C.关系数据模型 D.面向对象数据模型
答案:C(24)
7.按照传统的数据模型分类,数据库系统可以分为三种类型()A.大型、中型和小型 B.西文、中文和兼容 C.层次、网状和关系 D.数据、图形和多媒体
答案:C(24)
8.在数据库设计中用关系模型来表示实体和实体之间的联系。关系模型的结构是()A.二维表结构 B.封装结构 C.层次结构 D.网状结构
答案:A(24)
9.一个关系数据库文件中的各条记录()
A.前后顺序不能任意颠倒,一定要按照输入的顺序排列 B.前后顺序可以任意颠倒,不影响库中的数据关系
C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同 D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列
答案:B(25)
10.关系数据库中的关键字是指()
A.能惟一决定关系的字段 B.不可改动的专用保留字 C.关键的很重要的字段 D.能惟一标识元组的属性或属性集合
答案:D(26)
二.填空题
1.根据数据模型的应用目的不同,数据模型分为、逻辑数据模型和物理数据模型。
答案:概念数据模型(18)
2.数据模型按不同的应用层次分成三种类型,它们是概念数据模型、及物理数据模型。
答案:逻辑数据模型
(18)
3.数据模型按不同的应用层次分成三种类型,它们是______________、逻辑数据模型及物理数据模型。
答案:概念数据模型
(18)
4.数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型
及。
答案:物理数据模型
(18)
5.数据模型所描述的内容有三个部分,它们是______________、数据操纵与数据约束。
答案:数据结构
(18)
6.数据模型所描述的内容有三个部分,它们是数据结构、______________与数据约束。
答案:数据操纵
(18)
7.数据模型所描述的内容有三个部分,它们是数据结构、数据操纵与。
答案:数据约束
(18)
8.数据库中的数据模型可以将复杂的现实世界要求反映到计算机数据库中的______________。
答案:物理世界
(19)
9.关系数据库是采用______________作为数据的组织方式。
答案:关系模型
(24)
10.关系模型统一采用______________形式,它也可简称表。
答案:二维表
(25)
11.在一个实体表示的信息中,称 为关键字。
答案:能惟一标识实体的属性或属性组
(26)
12.关系模型的数据操纵即是建立在关系上的一些操作,一般有、删除、插入及修改等四种操作。
答案:查询
(27)
三.简答题
1.试区别数据模型与数据模式。答案:(18)数据模型(data model)是数据管理基本特征的抽象,它是数据库的核心与基础。
数据模式主要描述基础数据的类型、性质以及数据间的关联,且在数据库系统中具有统一的结构形式。2.在数据库的物理模型中有哪几个层次?请说明之。
答案:(28)
物理模型主要是指,计算机系统的物理存储介质(特别是磁盘组织),操作系统的文件级以及在它们之上的数据库中的数据组织三个层次。3.试给出文件系统的组成结构以及它的操作。
答案:(30)⑴ 文件系统的组成:
文件系统是实现数据库系统的直接物理支持,文件系统的基本结构由项、记录、文件及文件集合等四个层次组成。
⑵ 文件的操作文件有若干操作,一般的操作有如下五种:
①打开文件
②关闭文件
③读记录
④写记录
⑤删除记录 4.数据库中有哪些数据分类,请说明之。
答案:(30)存储于数据库中的数据除了数据主体外还需要很多相应的辅助信息,它们的整体构成了完整的数据库数据的全体。
⑴ 数据主体(main data)
⑵ 数据字典(data dictionary)
⑶ 数据间联系的信息
⑷ 数据存取路径信息
⑸ 与数据主体有关的其他信息
5.设有一车辆管理系统,其中的数据有:
车辆号码、名称、型号;
驾驶员身份证号、姓名、地址、电话; 驾驶证号、发证单位。
其中车辆、驾驶员及驾驶证间满足如下条件: 一辆车可以由多个驾驶员驾驶; 每个驾驶员可以驾驶多辆车; 每个驾驶员可以有多个驾驶证; 每个驾驶证只能供一个驾驶员使用。
请设计该数据库的E-R图,并给出联系间的函数关系。车辆号名称m型号身份证号n姓名地址电话车辆驾驶驾驶员1拥有p驾驶证驾驶证号发证单位
第四篇:数据库系统原理试卷和答案
一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分)
1、在数据库技术发展的几个阶段中,数据独立性最高的是_____阶段。数据库系统
B、文件系统
C、人工管理
D、数据项管理
2、在SQL的SELECT语句中,与选择运算对应的命令动词是_____。A、SELECT
B、FROM
C、WHERE
D、ORDER
BY
3、在数据库中,下列说法___是不正确的 A、数据库避免了一切数据的重复
B、若系统是完全可以控制的,则系统可确保更新的一致性 C、数据可以共享
D、数据库减少了冗余
4、在数据库系统中,模式/外模式映像用于解决数据的___ A、结构独立性
B、物理独立性 C、逻辑独立性
D、分布独立性
5、关系代数的5种基本运算是___。A、并、差、选择、投影、自然连接 B、并、差、交、选择、投影 C、并、差、交、选择、笛卡尔积 D、并、差、选择、投影、笛卡尔积
6、在SQL语句中,谓词“EXISTS”的含义是____。
A、全称量词
B、存在量词
C、自然连接
D、等值连接
7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及___的缺陷
数据不一致性
B、结构不合理
C、冗余度大
D、数据丢失
8、数据库数据的正确性和相容性是数据库的______。
A、安全性
B、可维护性
C、完整性
D、并发控制
9、数据库三级模式体系结构主要的目标是确保数据库的___。A、数据安全性
B、数据独立性
C、最小冗余
D、数据结构规范化
10、后援副本的用途是_____。
A、安全性保障
B、一致性控制
C、故障后的恢复
D、数据的转储
二、简答题(回答要点,并简明扼要作解释。每题5分,共20分)
1、简述数据库系统从哪些方面来保证数据的完整性。
2、简述事务的ACID特性。
3、简述并发控制不当带来的数据不一致性问题。
4、简述数据库系统从哪些方面来保证数据的安全性。
三、编程与关系运算(每题5分,共20分)设有四个关系
学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20))Student(sno,sname,sex,dept)课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))Course(cno,cname,precno,ceredit,tno)教师表(教师号char(5),教师名称varchar(10),姓别char(2))Teacher(tno,tname,sex)选课表(学号char(5)、课程号char(3),成绩tinyint)SC(sno,cno,grade)编写一个触发器,当对学生表进行修改时其性别只能是男和女。
编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用sum和avg命令。
使用关系代数语言查询选修了’刘红’老师所授的所有课程的同学学号。
使用元组演算语言查询同时选修了‘001’和‘002’两门课程号的同学姓名。
四、综合设计题(共40分)
1、已知:关系模式R(U,F)U=ABCD
F={A→C,C→A, B→AC,D→AC}求:(1)(AD)F+,R的候选码。(5分)
(2)求F的最小函数依赖集,并使用算法将模式R无损连接且保持函数依赖分解到3NF。(5分)
2、设有关系模式R,U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,CD→AB},设有一个分解P={R1(ED),R2(BCD),R3(ACD)}判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)
3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中 F={S—>D,I—>B, IS—>Q,B—>O}
G={ S—>D,I—>B, IS—>Q,B—>O,I—>O } 试判断F和G是否等价。(5分)
4、数据库设计:
设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求: 1)画出E-R图(5分)2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)3)给出主键约束和外键约束(5分)4)注:关系名和属性名用汉字
五、优化与并发(每题5分,共10分)
1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T) Read(b)Write(b=b-300) Read(b)Write(b=b+300) 2、优化中的算法描述:根据排序—合并算法描述下列查询操作的实现。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_no from customer a ,sales b where a.cust_id=b.cust_id 第一学期期末考试试卷答案 试卷代码:03115 授课课时:96 课程名称:数据库系统原理A 适用对象:本科选课班 一、选择题(从下列各题四个答案中选出一个正确答案,每小题1分,共10分) 1、在数据库技术发展的几个阶段中,数据独立性最高的是__A___阶段。A、数据库系统 B、文件系统 C、人工管理 D、数据项管理 2、在SQL的SELECT语句中,与选择运算对应的命令动词是__C___。A、SELECT B、FROM C、WHERE D、ORDER BY 3、在数据库中,下列说法_A__是不正确的 A、数据库避免了一切数据的重复 B、若系统是完全可以控制的,则系统可确保更新是的一致性 C、数据可以共享 D、数据库减少了冗余 4、在数据库系统中,模式/外模式映像用于解决数据的_C__ A、结构独立性 B、物理独立性 C、逻辑独立性 D、分布独立性 5、关系代数的5种基本运算是__D_。A、并、差、选择、投影、自然连接 B、并、差、交、选择、投影 C、并、差、交、选择、笛卡尔积 D、并、差、选择、投影、笛卡尔积 6、在SQL语句中,谓词“EXISTS”的含义是_B___。 A、全称量词 B、存在量词 C、自然连接 D、等值连接 7、规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常、更新异常以及_C__的缺陷 A、数据不一致性 B、结构不合理 C、冗余度大 D、数据丢失 8、数据库数据的正确性和相容性是数据库的__B____。 A、安全性 B、可维护性 C、完整性 D、并发控制 9、数据库三级模式体系结构主要的目标是确保数据库的_B__。A、数据安全性 B、数据独立性 C、最小冗余 D、数据结构规范化 10、后援副本的用途是_C____。 A、安全性保障 B、一致性控制 C、故障后的恢复 D、数据的转储 评分标准: 每题1分 二、简答题(回答要点,并简明扼要作解释。每题5分,共20分) 1、简述数据库系统从哪些方面来保证数据的完整性。 ①列级约束:数据类型、宽度、缺省值、检查约束、是否空值、唯一约束 ②主键约束、③外键约束、④用户自定义约束:主要通过触发器完成 评分标准: 写出列级约束 2分 写出主键约束 1分 写出外键约束 1分 写出用户自定义约束 1分 2、简述事务的ACID特性 ①原子性(A):事务中的操作要么全做,要么一个也不做 ②一致性(C):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态 ③隔离性(I):一个事务的执行不能被其它事务干扰 ④持续性(D):一个事务一旦提交,它对数据库中数据的修改应该是永久的 评分标准: 写出原子性 1分 写出隔离性 1分 写出一致性 2分 写出持续性 1分 3、简述并发控制不当带来的数据不一致性问题 ①丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1的结果,导致T1的修改被丢失 ②不可重复读:是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果 ③ 读“脏”数据:是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致。则T2读到了“脏”数据,即不正确的数据。 ④产生上述三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。评分标准: 写出丢失修改 1分 写出不可重复读 1分 写出读“脏”数据 2分 写出主要原因 1分 4、简述数据库系统从哪些方面来保证数据的安全性。①身份认证:提供用户标识和密码的确认 ②用户操作对象的权限:通过授权机制 ③视图:只显示用户可以作用的属性及记录 ④存储过程:通过存储过程实现对不具有操作权限的数据 评分标准: 写出用户身份认证 2分 写出用户操作对象的权限 1分 写出视图 1分 写出存储过程 1分 三、编程与关系运算(每题5分,共20分)设有四个关系 学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20))Student(sno,sname,sex,dept)课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))Course(cno,cname,precno,ceredit,tno)教师表(教师号char(5),教师名称varchar(10),姓别char(2))Teacher(tno,tname,sex)选课表(学号char(5)、课程号char(3),成绩tinyint)SC(sno,cno,grade)编写一个触发器,当对学生表进行修改时其姓别只能是男和女。create trigger StudentUpdate on Student for update as begin if exists(select * from inserted where sex not in('男','女')) rollback end 评分标准: 写出create trigger on Student 1分 写出for update 1分 写出 if exists(select * from inserted where sex not in('男','女')) 2分 写出rollback 1分 编写一个存储过程,依据输入的学号参数,统计该学生的平均分和总分,要求使用游标,不可以使用sum和avg命令。 create procedure SearchSumBySno(@sno char(5))as begin declare @sum int,@avg numeric(5,1),@grade tinyint,@count tinyint select @sum=0,@count=0 declare myCursor cursor for select grade from sc where sno=@sno open myCursor fetch myCursor into @grade while(@@fetch_status=0) begin select @sum=@sum+@grade select @count=@count+1 fetch myCursor into @grade end close myCursor deallocate myCursor if @count=0 select 0 '总分',0 '平均分' else begin select @avg=@sum/@count select @sum '总分', @avg '平均分' end end 评分标准: 1)定义游标 1分 定义变量 1分 给变量赋值 1分 游标的打开、获取和关闭 1分 循环条件 1分 使用关系代数语言查询选修了’刘红’老师所授的所有课程的同学学号。 ∏sno,cno(SC)÷∏cno(σtname=’刘红’(Teacher)∞Course)评分标准: 1)σtname=’刘红’(Teacher) 1分 2)与Course表的连接 1分 3)作除法运算 2分 4)括号正确 1分 使用元组演算语言查询同时选修了‘001’和‘002’两门课程号的同学姓名。{t|ヨuヨvヨw(Student(u)∧SC(v)∧SC(w)∧v[2]=’001’∧w[2]=’002’ ∧v[1]=w[1] ∧u[1]=v[1] ∧t[1]=u[2])} 评分标准: 1)写出存在量词 1分 2)写出自表连接运算v[1]=w[1] ∧u[1]=v[1] 2分 3)写出选取条件v[2]=’001’∧w[2]=’002’ 1分 4)写出投影运算t[1]=u[2] 1分 四、综合设计题(共40分) 1、已知:关系模式R(U,F)U=ABCD F={A→C,C→A, B→AC,D→AC}求:(1)(AD)F+,R的候选码。(5分) (2)求F的最小函数依赖集,并使用算法将模式R无损失连接且保持函数依赖分解为3NF。(5分)解:(1)(AD)F+=ADC,候选码:BD(2)最小函数依赖集:Fmin={A→C,C→A,B→A,D→A},将模式R无损失连接且保持函数依赖分解为3NF,P={AC,BA,DA,BD}。评分标准:(1)(AD)F+=ADC(2分)(2)候选码:BD(3分) (3)F的最小函数依赖集是(2分)(4)P={AC,BA,DA,BD}(3分) 2、设有关系模式R,U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,CD→AB},设有一个分解P={R1(ED),R2(BCD),R3(ACD)}判断该分解是否保持函数依赖,并判断此分解是否具有无损连接性。(10分)解:(1)求出F的最小函数依赖集F’={A→D,E→D,D→B,BC→D,CD→A} 又因为: F’+ =(Fi)+,则R的分解р={R1,R2,R3}保持函数依赖。所以,该分解能保持函数依赖关系。(5分)(2)又因为: A B C D E R1 b11 a2 b13 a4 a5 R2 a1 a2 a3 a4 b25 R3 a1 a2 a3 a4 b35 可以得到没有一行全为a,所以该分解为有损分解。(5分) 3、对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,其中F={S—>D,I—>B, IS—>Q,B—>O} G={ S—>D,I—>B, IS—>Q,B—>O,I—>O } 试判断F和G是否等价。(5分) 解:因为F G+,G F+ 所以F和G等价。评分标准: 1)F G+ (2分)2)G F+ (2分)3)F和G等价(1分) 4、数据库设计: 设计一个图书馆数据库,此数据库中保存有读者记录,包括读者号、姓名、地址、出生日期、单位。每本图书有书号、书名、作者、出版社。一本书有多个作者。对每本借出的书有借出日期和应还日期。一个读者可以借多本书。要求: 1)画出E-R图(5分)2)根据需要可以增加属性,转换为满足3NF的关系模式(5分)3)给出主键约束和外键约束(5分)4)关系名和属性名用汉字 1)画出E-R图 m n 评分标准: 1)绘出两个实体 2分 2)绘出一个联系 1分 3)每个实体、联系的属性 3分 2)根据需要可以增加属性,转换为满足3NF的关系模式 读者关系(读者号、读者名称、地址、出生日期、单位)图书关系(图书号、图书名、出版社、出版日期)图书-作者关系(图书号、作者名称、作者所在单位)借书主关系(借书号、读者号、借书日期、应还日期)借书明细关系(借书号、图书号)评分标准: 每个关系 1分 3)给出主键约束和外键约束 读者关系: 主键:读者号 图书关系: 主键:图书号 图书-作者关系:主键:图书号+作者名称 外键:图书号 借书主关系: 主键:借书号 借书明细关系: 主键:借书号、图书号 外键1:借书号,外键2:图书号 评分标准: 给出主键 3分 给出外键 2分 五、优化与并发(每题5分,共10分) 1、设有二个事务T、U,下面的并发操作是否正确,若不正确请使用时间戳方法解决其冲突,设Ts(T) Read(b)Write(b=b-300) Read(b)Write(b=b+300) 答:并发操作不正确,可以使用时间戳方法解决其冲突。数据b T事务 U事务 读时标 写时标 操作 0 0 t1 0 t2 0 t2 t2 t2 t2 t2 t2 t3 t2 t3 t3 正确的调度: T事务 U事务 Read(b)Write(b=b+300) T读b U读b U更新b T更新b(不允许,因t1 Read(b)Write(b=b-300) 评分标准: 1)并发操作不正确,可以使用时间戳方法解决其冲突。(1分)2)时标表(3分)3)正确的调度(1分) 2、优化中的算法描述:根据排序—合并算法描述下列查询操作的实现。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_no from customer a ,sales b where a.cust_id=b.cust_id 解: ⑴首先对customer 和sales 按连接属性cust_id排序; ⑵取customer表中第一个cust_id,依次扫描sales表中具有相同cust_id的元组,把它们连接起来; ⑶当扫描到cust_id不相同的第一个sales元组时,返回customer表扫描它的下一个元组,再扫描sales表中具有相同cust_id的元组,把它们连接起来; ⑷重复上述步骤直到customer表扫描完。评分标准: 1)写出第⑴步 1分 2)写出第⑵步 1分 3)写出第⑶步 2分 4)写出第⑷步 1分 习题7 1、试述事务的概念及事务的四个特性。 事务(Transaction)是用户定义的一个数据库操作序列,这些操作是一个完整的工作单元,一个事务内的所有语句被作为一个整体,这些操作要么全做,要么全不做。事务是数据库环境的中的逻辑单元,相当于操作系统中的进程。 为了保证数据库中数据的正确性,一个事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性简称ACID特性。 2、试述事务的状态及转换。 3、在数据库中为什么要并发控制?并发控制能保证事务的哪些特性? 数据库的一个明显的特点是多个用户共享数据库资源,尤其是多用户可以同时存取相同的数据。在这样的系统中,在同一时刻并发运行的事务数可达数百个。若对事务的并发操作不加以控制,就会造成数据存、取的错误,破坏了数据的一致性和完整性。 并发控制可以防止数据不一致性出现。 4、并发操作可能会产生哪几类数据不一致?用什么方法可以避免不一致性的情况? 并发操作带来的数据不一致性分为四种情况:丢失数修改、读“脏”数据、不可重复读和产生“幽灵”数据。 在数据库环境下,进行并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)和乐观控制法。商用的DBMS一般都采用封锁方法。 5、什么是封锁?基本的封锁类型有哪些?试述它们的含义。 封锁机制,即加锁(Locking),是一种并发控制机制,是用来调整对共享目标的并行存取的技术。事务通过向封锁管理程序的系统组成部分发出请求而对事务加锁。 基本封锁类型有两种:共享锁(Share Locks,简记为S锁或读锁)和排它锁(Exclusive Locks,简记为X锁或写锁)。 6、如何用封锁机制保证数据的一致性? 在运用X锁和S锁对数据对象加锁时,还需要约定一些规则,这些规则为封锁协议或加锁协议(Locking Protocol)。对封锁方式加不同的规则,就形成了各种不同级别的封锁协议。不同级别的封锁协议所能达到的一致性级别是不同的。 7、什么样的并发调度是正确的调度? 可串行性(Serializability)是并发事务正确调度的准则。按照这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。 8、理解并解释下列术语的含义: 封锁、活锁、死锁、排他锁、共享锁、可串行化的调度、两段锁协议。 1)加锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,封锁其要使用的数据。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 2)活锁:如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求……,T2有可能永远等待,这就是活锁。 3)死锁:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁,接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样T1在等待T2,而T2又在等待T1,T1和T2两个事务永远不能结束,形成死锁。4)共享锁: 若事务T对数据对象A加上S锁,则事务T可以读A,但不能修改A。其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。5)排他锁: 若事务T对数据对象A加上X锁,则只允许T读取和修改A,但不允许其它事务再对A加任何类型的锁和进行任何操作,直到T释放A上的锁。这就保证其他事务在T释放A上的锁之前不能再读取和修改A。6)多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化(Serializable)调度。 7)所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。具体内容如下: ①在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁; ②在释放一个封锁之后,事务不再申请和获得任何其他封锁。 9、数据库中为什么要有恢复子系统?它的功能是什么? 系统故障会丢失这些事务对数据的修改,使数据库处于不一致状态。 恢复子系统在系统重启时,撤销所有未完成的事务,并重做已经提交的事务,以保证将数据库真正恢复到一致状态。 10、数据库运行过程中可能产生的故障有几类?哪些故障影响事务的正常执行?哪些 故障破坏数据库数据? 1)事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的。 事务故障意味着事务没有达到预期的终点,因此,数据库可能处于不正确的状态。恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样。这类恢复操作称为事务撤销(UNDO)。 2)系统故障 系统故障又称为软故障,是指造成系统停止运转,要使得系统重新启动的故障。例如,硬件错误(如CPU故障)、操作系统故障、DBMS代码错误、系统断电等都是系统故障。这样的故障会影响正在运行的所有事务,但不破坏数据库。 3)其他故障 介质故障或由计算机病毒引起的故障或破坏可归为其他故障。 介质故障常称为硬故障,指外存故障,如磁盘损坏、磁头碰撞等。这类故障会对数据库造成破坏,并影响正在操作数据库的所有事务。这类故障发生的可能性小得多,但破坏性最大。 各种故障对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。 11、数据库恢复技术有哪些? 1)利用备份技术 2)利用事务日志 3)利用镜像技术 12、什么是数据库的备份? 数据备份是指定期或不定期地对数据库数据进行复制,可以将数据复制到本地机器上,也可以复制到其他机器上,也称为数据转储。 13、什么是日志文件?为什么要设日志文件? 日志文件(log)是用来记录事务对数据库的更新操作的文件。具体的作用是: a)事务故障恢复和系统故障恢复必须用日志文件。b)在动态备份方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。 14、登记日志文件时为什么必须先写日志文件,后写数据库? 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改,这就是“先写日志文件”的原则。 15、什么是数据库镜像?它有什么用途? 所谓镜像就是在不同的设备上同时存有两份数据库,把一个设备称为主设备,另一个称为镜像设备。主设备和镜像设备互为镜像关系,每当主数据库更新时,DBMS自动把整个数据库或其中的关键数据复制到另一个镜像设备上。保证镜像数据与主数据库的一致。 这样,一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。 由于数据库镜像是通过复制数据实现的,频繁地复制数据自然会降低系统运行效率,因此在实际应用中用户往往只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像。第五篇:数据库原理及应用第7章课后习题答案