资源描述
. .
数据库原理与应用教程―SQL Server
11.4 习题
1.简述存储过程和触发器的优点。
答:存储过程最主要的特色是当写完一个存储过程后即被翻译成可执行码存储在系统表,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参数就可以得到所要的结果而不必再去编辑T-SQL命令。
由于在触发器中可以包含复杂的处理逻辑,因此,应该将触发器用来保持低级的数据的完整性,而不是返回大量的查询结果。
使用触发器主要可以实现以下操作:
(1)强制比CHECK约束更复杂的数据的完整性
(2)使用自定义的错误提示信息
(3)实现数据库中多表的级联修改
(4)比拟数据库修改前后数据的状态
(5)调用更多的存储过程
(6)维护非规化数据
2.简述游标的概念及类型。
答:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进展一样或不同的操作,而不是一次对整个结果集进展同一种操作。为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力,我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进展处理。
SQL Server 支持三种类型的游标:T-SQL 游标,API 效劳器游标和客户游标。
由于API 游标和T-SQL 游标使用在效劳器端,所以被称为效劳器游标,也被称为后台游标,而客户端游标被称为前台游标。效劳器游标包含以下四种:静态游标、动态游标、只进游标、键集驱动游标。
3.简述SQL Server2005中存储过程和触发器的分类。
答:存储过程分为系统存储过程、本地存储过程、临时存储过程、远程存储过程和扩展存储过程。
触发器:DML触发器是当数据库效劳器中发生数据操作语言(DML)事件时会自动执行的存储过程。DDL触发器是在响应数据定义语言〔DDL〕语句时触发,一般用于数据库中执行管理任务。
4.创立存储过程,从课程表中返回指定的课程的信息。该存储过程对传递的参数进展模式匹配,如果没有提供参数,那么返回所有课程的信息。
答:CREATE PROCEDURE Pcourse
name varchar(20) = '%'
AS
SELECT * FROM 课程
WHERE 课程名 LIKE name
5.创立存储过程,计算指定学生〔〕的总成绩,存储过程中使用一个输入参数〔〕和一个输出参数(总成绩)。
答:CREATE PROCEDURE Sname S_n varchar(20), sum1 int OUTPUT
AS
SELECT sum1= sum(成绩) FROM 选课,学生
WHERE=S_n and 学生.学生号=选课.学生号
6.为dept表创立一个实现级联删除的触发器,当执行删除时,激活该触发器同时删除gongcheng表中相应记录(leader列) 。
答:CREATE TRIGGER d_trON dept
FOR delete
AS
delete from gongcheng where leader=(SELECT leader FROM deleted)
7.在教学库中建一个学生党费表,属性〔学生号,,党费〕,学生号是主键,也是外键〔参考学生表的学生号〕;创立一个触发器,保证只能在每年的6月和12月交党费,如果在其它时间录入那么显示提示信息。
答:CREATE TABLE 学生党费表
(学生号 CHAR〔7〕 primary key foreign key references 学生(学生号),
char(6),
党费 int)
CREATE TRIGGER trg_学生党费表
on 学生党费表 for insert
AS
if not(datepart(mm,getdate())='06' or datepart(mm,getdate())='12')
BEGIN
print'对不起,只能在每年的6月和12月交党费'
rollback
END
8.利用T-SQL扩展方式声明一个游标,查询学生表中所有男生的信息,并读取数据。要求:(1)读取最后一条记录。(2)读取第一条记录。(3)读取第5条记录。(4)读取当前记录指针位置后第3条记录。
答:略。
12.5 习题
1.什么是事务?如果要提交或取消一个事务,使用什么语句?
答:事务处理是数据库的主要工作,事务由一系列的数据操作组成,是数据库应用程序的根本逻辑单元,用来保证数据的一致性。
提交或取消一个事务:MIT TRANSACTION或ROLLBACK TRANSACTION语句。
2.事务分为哪几类?
答:根据系统的设置,SQL Server 2005将事务分为两种类型:系统提供的事务和用户定义的事务。
根据运行模式的不同,SQL Server 2005将事务分为4种类型:显示事务、隐式事务、自动提交事务和批处理级事务。
3.简述事务回滚机制。
答:(1)如果不指定回滚的事务名称或保存点,那么ROLLBACK TRANSACTION命令会将事务回滚到事务的起点。
(2)在嵌套事务时,该语句将所有层事务回滚到最远的BEGIN TRANSACTION语句,transaction_name也只能是来自最远的BEGIN TRANSACTION语句的名称。
(3)在执行MIT TRANSACTION语句后不能回滚事务。
(4)如果在触发器中发出ROLLBACK TRANSACITON命令,将回滚对当前事务中所做的所有数据修改,包括触发器所做的修改。
(5)事务在执行过程中出现任何错误,SQL Server都将自动回滚事务。
4.简述锁机制,锁分为哪几类。
答:锁是防止其他事务访问指定的资源、实现并发控制的一种手段,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。
锁分为(1) 共享锁〔Shared Lock〕(2) 排它锁〔Exclusive Lock〕(3) 更新锁〔Update Lock〕(4) 意向锁〔Intent Lock〕(5) 模式锁〔Schema Lock〕(6) 大容量更新锁(Bulk Update Lock)
5.分析各类锁之间的兼容性。
在一个事务已经对某个对象锁定的情况下,另一个事务请求对同一个对象的锁定,此时就会出现锁定兼容性问题。当两种锁定方式兼容时,可以同意对该对象的第二个锁定请求。如果请求的锁定方式与已挂起的锁定方式不兼容,那么就不能同意第二个锁定请求。相反,请求要等到第一个事务释放其锁定,并且释放所有其他现有的不兼容锁定为止。详细容见书表12-1 。
6.简述死锁及其解决方法。
答:产生死锁的情况一般包括以下两种:
第一种情况,当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时,就发生了死锁。这种死锁是最典型的死锁形式。
第二种情况,当在一个数据库中时,有假设干个长时间运行的事务执行并行的操作,当查询分析器处理一种非常复杂的查询例如连接查询时,那么由于不能控制处理的顺序,有可能发生死锁现象。
在数据库中解决死锁常用的方法有:
(1)要求每个事务一次就将要使用的数据全部加锁,否那么就不能继续执行。
(2)允许死锁发生,系统来用某些方式诊断当前系统中是否有死锁发生。
7.创立一个事务,将所有女生的考试成绩都加5分,并提交。
答:
BEGIN TRANSACTION
USE 教学库
UPDATE 选课
SET 成绩=成绩+5
WHERE 学生号 in (SELECT 学生号 FROM 学生 WHERE 性别=’女’)
MIT TRANSACTION
8.创立一个事务,向商品表中添加一条记录,设置保存点;再将商品编号为“ds-001”的单价改为“2000”。
答:
BEGIN TRANSACTION
USE仓库库存
INSERT INTO 商品(商品编号,商品名称,单价,生产商)
VALUES('bx-159',' 冰箱', 2500,'美菱')
SAVE TRAN savepoint
UPDATE 商品 SET 单价=2000WHERE 商品编号= ' ds-001'
MIT
13.6 习题
1.简述数据库备份和复原的根本概念?
答:数据库备份就是在某种介质上(磁盘、磁带等)创立完整数据库(或者其中一局部)的副本,并将所有的数据项都复制到备份集,以便在数据库遭到破坏时能够恢复数据库。
复原数据库是一个装载数据库的备份,然后应用事务日志重建的过程。
2.数据库备份有哪几种类型?
答:在SQL Server系统中,有4种备份类型,分别如下所示:
①完整数据库备份。
②差异数据库备份。
③事务日志备份。
④数据库文件或文件组备份。
3.简述数据库的恢复模式。
答:SQL Server 2005系统提供了3种数据库的恢复模式:
①完整恢复模式。
②简单恢复模式。
③大容量日志恢复模式。
4.在SQL Server Management Studio中使用界面进展备份和复原数据库的操作过程。
答:略。
5.使用T-SQL语句分别实现数据库的备份和复原操作。
答:略。
6.了解数据库的别离和附加的作用及操作方法。
答:SQL Server 2005允许别离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台效劳器上。别离数据库将从 SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server 实例上,这使数据库的使用状态与它别离时的状态完全一样。
14.6 习题
1.简答题
(1)简述 SQL Server的平安性机制。
答:SQL Server 2005的平安性管理机制可分为三个等级:操作系统级、SQL Server 级和数据库级。在用户使用客户计算机通过网络实现SQL Server 效劳器的访问时,用户首先要获得计算机操作系统的使用权。SQL Server 的效劳器级平安性建立在控制效劳器登录账号和口令的根底上。SQL Server 采用了标准SQL Server 登录和集成Windows NT登录两种方式。在用户通过SQL Server效劳器的平安性检验以后,将直接面对不同的数据库入口这是用户将承受的第三次平安性检验。
(2)简述效劳器登录账户和数据库用户账号的创立方法。
答:略。
(3)SQL Server两种身份验证的优点分别是什么?
答:Windows验证模式有以下主要优点:
数据库管理员的工作可以集中在管理数据库上,而不是管理用户账户。对用户账户的管理可以交给Windows去完成。
Windows有着更强的用户账户管理工具。可以设置账户锁定、密码期限等。 Windows的组策略支持多个用户同时被授权访问SQL Server。
SQL Server是从RPC协议连接中自动登录Windows用户账户信息的。
混合验证模式具有如下优点:
创立了Windows之上的另外一个平安层次。
支持更大围的用户,例如非Windows客户、Novell网络等。
一个应用程序可利用单个的SQL Server登录或口令。
(4)简述角色的概念及其分类。
答:角色是一种SQL Server平安账户,是SQL Server部的管理单元,是管理权限时可以视为单个单元的其他平安账户的集合。
角色被分成3类:固定效劳器角色、固定数据库角色和用户自定义的数据库角色。
(5)简述什么是固定效劳器角色?什么是固定数据库角色。
答:固定效劳器角色是在效劳器级别定义的,所以存在于数据库外面,是属于数据库效劳器的。在SQL Server安装时就创立了在效劳器级别上应用的大量预定义的角色,每个角色对应着相应的管理权限。在SQL Server 2005安装时,数据库级别上也有一些预定义的角色,在创立每个数据库时都会添加这些角色到新创立的数据库中,每个角色对应着相应的权限。
(6)试述用户自定义数据库角色及应用程序角色的建立方法。
答:略。
(7)简述进展权限设置时,授予、拒绝或撤销三者的关系。
答:授予:用户被授予特定数据库对象的某种操作权限,该用户就可以对数据在此权限围进展操作;撤销:用户不再具有特定数据库对象的某种操作权限,但用户可以通过其组或角色成员身份继承此种权限;拒绝:制止用户对特定数据库对象的某种操作权限,防止用户通过其组或角色成员身份继承此种权限。
2.操作题
(1)创立一个登录,并对其进展修改和删除。
(2)对SQL Server进展以下操作:更改SQL Serer效劳登录。
(3)利用系统过程创立3个新的SQL Server登录:al、a2、a3,相对应的密码是al、a2、a3,默认的数据库为仓库库存数据库。
(4)根据(10)中的3个登录,创立3个数据库用户a1、a2、a3。练习使用GRANT、REVOKE和DENY语句设置数据库用户的权限。
(5)用这3个登录名登录SQL Server,进展相应权限围的数据库操作。
答:略。
15.4 习题
1.简述C#语言的特点。
答:(1)语法简洁 (2)完全面向对象 (3)与Web严密结合 (4)目标软件的平安性 (5)版本管理技术 (6)灵活性与兼容性
2.简述ADO.NET对象模型的五个主要的组件。
答:ADO.NET对象模型有五个主要的组件,分别是Connection对象、mand对象、DataReader对象、DataSet对象以及DataAdapter对象。
Connection对象表示与数据源之间的连接,用它来建立或断开与数据库的连接。
mand对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、插入、修改、删除等数据指令,以及呼叫存在数据库中的预存程序等。
DataReader用于以最快的速度检索并检查查询所返回的行。
DataSet对象可视为暂存区。可以把数据库中查到的信息保存起来,甚至可以显示整个数据库。
DataAdapter对象充当数据库和ADO.NET对象模型中非连接对象之间的桥梁。
3.简述ADO.NET访问数据库的两种方法。
答:利用Connection、mand和DataReader对象访问数据库,只能从数据库读取数据,不能添加、修改和删除记录。如果只想进展查询,这种方式效率更高一些。
利用Connection、mand、DataAdapter和DataSet对象,这种方式比拟灵活,不仅可以对数据库进展查询操作,还可以进展增加、删除和修改等操作。
4.使用C#语言,通过ASP.NET技术,创立一个“仓库库存管理系统〞的数据库应用系统。包括进货录入、产品库存查询、产品库存维护、出货等功能。数据库的设计过程和程序开发全部由读者自行完成。
答:略。
. .word.zl.
展开阅读全文