1-14章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民习题参考答案 联系客服

发布时间 : 星期五 文章1-14章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民习题参考答案更新完毕开始阅读607ad73cda38376bae1fae0f

USE stu_info GO

CREATE TRIGGER Ins_Up_100 ON student AFTER INSERT,UPDATE AS BEGIN

IF (SELECT COUNT(*)FROM student

WHERE sdepartment=(SELECT sdepartment FROM inserted))>100 BEGIN PRINT '该系人数已满!!' ROLLBACK END END (6)

USE stu_info GO

CREATE TRIGGER Del_s_sc ON student AFTER DELETE AS BEGIN

DELETE FROM grade

WHERE s_idIN(SELECT s_id FROM deleted) END (7)

CREATE TRIGGER Del_database ON ALL SERVER AFTER DROP_DATABASE AS

IF EXISTS (SELECT name FROM sys.database WHERE name=N'stu_info') DROP DATABASE [stu_info]

PRINT '不允许删除数据库stu_info' ROLLBACK

第10章

一、选择题 (1)D;(2);(3)B 二、填空题

(1)对称加密和非对称加密 (2)数据库、架构和服务器 (3)账户

(4)数据库中预定义的“固定数据库角色”、用户可以创建的“灵活数据库角色”和Public角色

三、简答题

(1)简述安全主体的定义和内容。

答:一个请求服务器、数据库或架构资源的实体称为安全主体。每一个安全主体都有唯一的安全标识符(Security Identifier,SID)。安全主体在3个级别上管理:Windows、SQL Server和数据库。安全主体的级别决定了安全主体的影响范围。

(2)对称加密和非对称加密有什么区别。

答:最常使用的有两种加密方式:对称加密和非对称加密。对称加密使用相同的密钥加密和解密数据,使用的算法相对于非对称加密的算法比较简单。非对称加密使用两个具有数学关系的不同密钥加密和解密数据。这两密钥分别称为私钥和公钥,它们合称为密钥对。非对称加密被认为比对称加密更安全,因为数据的加密密钥与解密密钥不同。

(3)Windows身份和混合安全身份两种验证模式有何区别、联系。

答:当使用Windows身份验证连接到SQL Server时,Windows将完全负责对客户端进行身份验证。在这种情况下,将按其Windows用户账户来识别客户端。当用户通过Windows用户账户进行连接时,SQL Server使用Windows操作系统中的信息验证账户名和密码。

使用混合安全模式时,SQL Server 2008首先确定用户的连接是否使用有效的SQL Server用户账户登录。如果是用户有有效的登录和正确的密码,则接受用户的连接;如果用户有效的登录,但是使用了不正确的密码,则用户的连接被拒绝。

仅当用户没有有效的登录时,SQL Server2008才检查Windows账户的信息。在这样的情况下,SQL Server2008确定Windows账户是否有连接到服务器的权限。如果账户有权限,连接被接受;否则,连接被拒绝。

(4)服务器角色包括哪些内容。

答:服务器级角色的权限作用域为服务器范围,包括sysadmin、serveradmin、securityadmin、processadmin、setupadmin、bulkadmin、diskadmin、dbcreator和public等角色。

(5)在数据库中默认的数据库用户有哪些。

答:默认的数据库用户有:dbo用户、guest用户和sys用户等 (6)在SQL Server实现透明数据加密,需要的步骤有哪些。 答:需要的步骤如下: (a)建立主要密钥;

(b)建立或取得受到主要密钥保护的凭证,也称作证书; (c)建立数据库加密密钥,并使用证书保护它; (d)设定数据库使用加密。

第11章

1. 简述SQL Server 2008中的数据导入导出概念。

答:Microsoft SQL Server 允许在SQL Server表和数据文件之间大容量导入和导出大容量数据,这对在SQL Server 和异类数据源之间有效传输数据是非常重要的。“大容量导出”是指将数据从SQL Server表导出到数据文件,“大容量导入”是指将数据从数据文件加载到SQL Server表。例如,您可以将数据从Microsoft Excel 应用程序导出到数据文件,然后将这些数据大容量导入到SQL Server表中。

2.简述SQL Server2 008中可以使用的数据导入导出方法有哪些?

答:数据导入导出功能,有使用Transact-SQL方式、图形界面方式、BCP命令和在SQL语句中执行xp_cmdshell方式等。

第12章

12.1解释下列术语: 并发操作:多个用户或应用程序可能同时对数据库的同一数据对象进行读写操作,这种现象称为对数据库的并发操作。 事务:事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,即原子性、一致性、隔离性和持久性,简称ACID属性,只有这样才能成为一个事务。

数据库一致性状态:是指数据库中只包含成功事务提交的结果的状态。

封锁:封锁是使事务对它要操作的数据有一定的控制能力。封锁具有3个环节:第一个环节是申请加锁,即事务在操作前要对它欲使用的数据提出加锁请求;第二个环节是获得锁,即当条件成熟时,系统允许事务对数据加锁,从而事务获得数据的控制权;第三个环节是释放锁,即完成操作后事务放弃数据的控制权。

排它锁:排它锁也称为独占锁或写锁。一旦事务T对数据对象A加上排它锁(X锁),则只允许T读取和修改A,其它任何事务既不能读取和修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。

共享锁:共享锁又称读锁。如果事务T对数据对象A加上共享锁(S锁),其它事务对A只能再加S锁,不能加X锁,直到事务T释放A上的S锁为止。

活锁:如果事务T1封锁了数据R,T2事务又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的要求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求,??,T2有可能永远等待。这种在多个事务请求对同一数据封锁时,使某一用户总是处于等待的状况称为活锁。

死锁:在两个或多个任务中,如果每个任务锁定了其他任务试图锁定的资源,此时会造成这些任务永久阻塞,从而出现死锁。

封锁粒度:封锁粒度(Granularity)是指封锁对象的大小。封锁对象可以是逻辑单元,也可以是物理单元。以关系数据库为例,封锁对象可以是属性值、属性值的集合、元组、关系、直至整个数据库;也可以是一些物理单元,例如页(数据页或索引项)、块等。封锁的粒度越小,并发度越高,系统开销也越大;封锁的粒度越大,并发度越低,系统开销也越小。

12.2述下列问题:

(1) 为什么要对并发操作进行控制? 答:当多个用户事务并发地存取某数据库的同一数据时,若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性,所以要对并发操作进行控制。 (2) 实现并发控制的机制是什么?

答:封锁机制。

(3) 事务有哪些特性,含义是什么? 答:事务的特性如下: 原子性(Atomic):指整个数据库事务是不可分割的工作单位。事务中包括的诸操作要么都做,要么都不做。

一致性(Consistency):指数据库事务不能破坏关系数据的完整性以及业务逻辑的一致性。事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性(Isolation):指的是在并发环境中,当不同的事务同时操作相同的数据时,每个事务都有各自的完整数据空间,一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(Durability):指的是只要事务成功结束,它对数据库所做的更改就必须永久保存下来。接下来的其它操作或故障不应该对其执行结果有任何影响。

(4) SQL Server有几种不同的封锁粒度? 答:行(ROW)、页(PAGE)、簇(EXTENT)、表(TABLE)、数据库(DATABASE)

(5) SQL Server锁的自动控制方法。

答:当多个用户同时访问数据时,SQL Server 2008数据库引擎使用以下机制确保事务的完整性和保持数据库的一致性:(a)锁定:每个事务对所依赖的资源(如行、页或表)请求不同类型的锁。锁可以阻止其他事务以某种可能会导致事务请求锁出错的方式修改资源。当事务不再依赖锁定的资源时,它将释放锁。(b)行版本控制:当启用了基于行版本控制的隔离级别时,数据库引擎将维护修改的每一行的版本。应用程序可以指定事务使用行版本查看事务或查询开始时存在的数据,而不是使用锁保护所有读取。通过使用行版本控制,读取操作阻止其他事务的可能性将大大降低。锁定和行版本控制可以防止用户读取未提交的数据,还可以防止多个用户尝试同时更改同一数据。如果不进行锁定或行版本控制,对数据执行的查询可能会返回数据库中尚未提交的数据,从而产生意外的结果。

第13章

1.答:数据库备份就是为了最大限度地降低灾难性数据丢失的风险,从数据库中定期保存用户对数据所做的修改,用以将数据库从错误状态下恢复到某一正确状态的副本。当数据库出现故障时,将已经做好的备份数据库加载到系统,从而使数据库恢复到备份时的正确状态。 2.答:(1)简单恢复模式:在该种恢复模式下数据库不进行日志备份,这样可以节约事务日志空间及管理开销。(2)完整恢复模式:在这种恢复模式下将完整地记录所有事务,并将事务日志记录保留到对其备份完毕为止。(3)大容量日志恢复模式:大容量日志恢复模式记录了大多数大容量操作,它只用作完整恢复模式的附加模式。 3.答:(1)完整备份:备份整个数据库或者一组特定的文件组或文件中的所有内容,包括事务日志。备份所需要的存储空间比较大,另外备份时间也比较长。备份过程和恢复过程操作比较简单。(2)差异备份:差异备份是完整备份的补充,只备份上次完整备份后发生更改的数据,因此需要先进行完整备份后才能进行此种备份。差异备份比完整备份的工作量小,备