一、多选题
1.ABC 2.ABCD 3.BCD 4.AD 5.ABCD 6.ABCD 7.ABCD 8.ACD 二、填空题
1. @ @@ 2. + 3. Model 用户 4. BREAK CONTINUE 5. BEGIN?END
6. CASE语句 7. 前面 后面 8. OUT或OUTPUT OUT或OUTPUT 9. RETURNS TABLE 三、简答题 1.略 2.略 3.(1)略
(2) CREATE VIEW V1 AS
SELECT dbo.readers.姓名 AS 教师姓名,dbo.books.书名, dbo.borrowinf.借期,dbo.borrowinf.还期 FROM dbo.borrowinf INNER JOIN
dbo.readers ON dbo.borrowinf.读者编号=dbo.readers.编号 INNER JOIN dbo.books ON dbo.borrowinf.图书编号=dbo.books.编号 INNER JOIN dbo.readertype ON dbo.readers.读者类型=dbo.readertype.类型编号 WHERE dbo.readertype.类型名称='教师' (3) CREATE FUNCTION fun1() RETURNS float AS BEGIN
DECLARE @p float
SELECT @p=MIN(定价) FROM dbo.books RETURN @p END
(4) CREATE FUNCTION fun2(@b char(20)) RETURNS float AS
BEGIN
DECLARE @p float
SELECT @p=定价 FROM books WHERE 书名=@b RETURN @p END
在查询分析器中执行:SELECT dbo.fun2('计算机文化基础') 或 PRINT dbo.fun2('计算机文化基础')
(5) CREATE FUNCTION fun3(@bh char(8)) RETURNS table AS
RETURN
( SELECT dbo.books.书名, dbo.borrowinf.借期, dbo.borrowinf.还期
FROM dbo.books INNER JOIN
dbo.borrowinf ON dbo.books.编号 = dbo.borrowinf.图书编号 WHERE dbo.borrowinf.读者编号 =@bh )
在查询分析器中执行:SELECT * FROM dbo.fun3('20040628') (6) CREATE PROCEDURE pro1 AS
SELECT MIN(定价) FROM dbo.books GO
在查询分析器中执行:EXECUTE PRO1 (7) CREATE PROCEDURE pro2 @b CHAR(20),
@p FLOAT OUTPUT AS
SELECT @p=定价 FROM books WHERE 书名=@b GO
在查询分析器中执行: DECLARE @price FLOAT
EXECUTE pro2 '计算机文化基础',@price output SELECT @price
(8) CREATE PROCEDURE PRO3 @name CHAR(10) AS
SELECT dbo.readers.姓名,dbo.books.书名, dbo.borrowinf.借期, dbo.borrowinf.还期 FROM dbo.borrowinf INNER JOIN
dbo.readers ON dbo.borrowinf.读者编号=dbo.readers.编号 INNER JOIN dbo.books ON dbo.borrowinf.图书编号=dbo.books.编号 WHERE dbo.borrowinf.读者编号=@name GO
(9) CREATE TRIGGER tr1 ON [dbo].[books] FOR UPDATE AS
DECLARE @old CHAR(15),@new CHAR(15) SELECT @old=编号 FROM deleted SELECT @new=编号 FROM inserted
UPDATE borrowinf SET 图书编号=@new WHERE 图书编号=@old (10)CREATE TRIGGER TR2 ON [dbo].[readers] FOR delete AS
IF @@ROWCOUNT=0 RETURN
IF EXISTS(SELECT * FROM deleted inner join
borrowinf on deleted.编号=borrowinf.读者编号) ROLLBACK
(11)CREATE TRIGGER TR3 ON [dbo].[borrowinf] FOR INSERT AS
DECLARE @num INT
SELECT @num=COUNT(*)
FROM inserted inner join borrowinf
on inserted.读者编号=borrowinf.读者编号 WHERE year(borrowinf.借期)=year(getdate()) and month(borrowinf.借期)=month(getdate()) and day(borrowinf.借期)=day(getdate()) GROUP BY inserted.读者编号 IF @num>5 ROLLBACK 或者
CREATE TRIGGER TR3 ON [dbo].[borrowinf] FOR INSERT AS
DECLARE @rno CHAR(8) DECLARE @num INT
SELECT @rno=读者编号 FROM inserted SELECT @num=COUNT(*) FROM borrowinf
WHERE borrowinf.读者编号=@rno and year(borrowinf.借期)=year(getdate())
and month(borrowinf.借期)=month(getdate()) and day(borrowinf.借期)=day(getdate()) GROUP BY读者编号 IF @num>5 ROLLBACK
第8章 数据库完整性及SQL Server的完整性控制 一、 多选题
1. 数据的完整性是指数据的( )。
A.一致性 B.正确性 C.相容性 D.有效性 2. 在SQL Server中属于表级完整性约束的是( )。
A.实体完整性约束 B.域完整性约束 C.参照完整性约束 者均是
3. 在SQL Server中实现数据完整性的主要方法有( )。
A.约束 B.默认 C.规则 D.触发器 4. 在SQL Server的数据完整性控制中属于声明数据完整性的是( )。 A.约束 B.默认 C.规则 D.触发器 5. 在SQL Server的数据完整性控制中属于过程数据完整性的是( )。 A.存储过程 B.默认 C.规则 D.触发器
D.以上三 6. 在SQL Server中,以下( )约束属于域完整性约束。
A.DEFAULT B.CHECK C.NULL D.FOREIGN KEY 7. 有关默认对象与默认约束的叙述中正确的是( )。
A.默认约束是嵌入到表的结构中,默认对象是独立于表的
B.删除表时默认约束与默认对象同时被删除 C.默认约束能实现的功能默认对象也能实现
D.一个默认对象可以绑定到多个列上 8. 有关规则的叙述中正确的是( )。
A.规则与默认对象一样,可以绑定到列上,也可以绑定到用户定义的数据类型上 B.在一列上只能使用一个规则 C.删除规则时,需先解除规则的绑定 D.同一列上若已CHECK约束,再绑定规则时,CHECK约束优先 9. 属性值约束主要有( )。
A.非空值约束 B. 基于元组的检查子句 C.域约束子句 D.默认 二、 填空题
1. SQL Server 2000中的数据完整性包括( ) 、 ( )和参照完整性3种。 2. SQL Server使用声明数据完整性和( ) 两种方式实现数据完整性。
3. ( )完整性,它要求表中所有的元组都应该有一个惟一标识,即主关键字。可以使用( ) 约束实现实体完整性,也可以将( ) 约束和( ) 约束一起使用来实现实体完整性。 4.( ) 完整性维护从表中的外码与主表中主码的相容关系。
5. 为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS就( )。 三、 简答题?
1. 简述SQL Server2000实现数据库完整性的方法。 2. 简述默认对象与默认约束的区别。 3. 简述规则与CHECK约束的区别。
4. 在数据库MyDB中创建名为reader_tp的默认,其值为3。将该默认绑定到表readers的列“读者类型”上。
5. 在数据库MyDB中创建名为borr_dt的规则,其限定条件为值不小于零。将该规则绑定到表readers的“已借数量”上。 第八章答案 一、多选题
1.ABC 2.AC 3.ABCD 4.ABC 5.AD 6.ABC 7.ACD 8.ABCD 9. ABCD 二、填空题
1.实体完整性 参照完整性 域完整性 2. 过程数据完整性
3.实体 PRIMARY KEY UNQIUE NOT NULL 4.参照
5. 拒绝更新 三、简答题 略
第11章 数据库恢复技术与SQL Server的数据恢复机制 一、 单选题
1. 若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为( )。 A. 事务故障 B.系统故障 C.介质故障 D.人为错误
2. 若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为( )。
A.事务故障 B.系统故障 C.介质故障 D.人为错误 3. 操作系统故障属于( )。
A. 人为错误 B. 事务故障 C. 介质故障 D.系统故障 4. 日志文件是用于记录( )。
A.程序运行过程 B.数据操作 C.对数据的所有更新操作 D.程序执行的结果
5. 数据库副本的用途是( )。
A.安全性保障 B.一致性控制 C.故障后的恢复 D.数据的转储 6. 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包指( )。
A.数据字典、应用程序、审计档案、数据库副本 B.数据字典、应用程序、日志文件、审计档案
C.日志文件、数据库副本 D.数据字典、应用程序、数据库后备副本 7. ( )是指在转储过程中,不允许其他事务对数据库进行存取或修改操作,并且每次只转储上一次转储后更新过的数据
A. 动态海量转储 B.动态增量转储 C. 静态海量转储 D.静态增量转储
二、 多选题
1. 数据库恢复通常采用的方法是( )。
A.建立检查点 B.建立副本 C.建立日志文件 D.建立索引 2. 数据库系统中可能发生的故障( )。
A.运行故障 B.事务故障 C.系统故障 D.介质故障
3. 系统故障是指造成系统停止运转,必须重新启动系统的任何事件,它包括以下( )几种情况。
A.计算机病毒 B.操作系统故障 C.DBMS代码错误 D.数据库服务器出错 三、 填空题
1. 数据恢复最常用的技术是建立数据转储和利用( ) 。
2. 为保证数据库的可恢复性,登记日志文件时必须遵循两条原则:一是登记的次序严格按事务执行的时间次序;二是 ( )。
3. 事务故障的解决办法是恢复程序在不影响其他事务运行的情况下( ) 。 4. 日志文件是用来记录对数据库的更新操作的文件。不同的数据库系统采用的日志文件格式不完全相同。日志文件主要有以记录为单位的日志文件和( ) 。
5. ( )会破坏磁盘上的物理数据库和日志文件,这是最严重的一种故障。恢复方法是重装数据库后备副本,然后重做已完成的事务。 6. ( )亦称永久性的备份文件,( )是用来存放备份数据的物理设备。 7. ( )命令可以用来对指定数据库进行全库备份、差异备份、日志备份或文件和文件组备份。
8. ( )语句可以完成对整个数据库的恢复,也可以恢复数据库的日志,或者是指定恢复数据库的某个文件或文件组。
9. SQL Server导入和导出数据通过一个向导程序( ) 实现,通过该程序可以与任何OLE DB、ODBC、JDBC或文本文件等多种不同类型的数据库之间实现数据传递。 四、 简答题?
1. 备份设备有哪些?
2. 全库备份、差异备份、日志备份各有什么特点,以你所知的一台服务器为例,设计一种备份方案。
3. 某企业的数据库每周日晚12点进行一次全库备份,每晚12点进行一次差异备份,每小时进行一次日志备份,数据库在2004-8-23 3:30崩溃,应如何将其恢复使数据库损失最小。 第十一章答案 一、多选题
1.B 2.C 3.D 4.C 5.C 6.C 7. D 二、填空题
1.ABC 2.BCD 3.BCD 三、填空题 1.日志文件
2. 先写日志文件,后写数据库 3.撤销该事务
4.以数据块为单位的日志文件 5.介质故障 6.备份设备 7.BACKUP 8.RESTORE
9.数据转换服务(简称DTS) 四、简答题 略