SQLServer2008数据库应用教程课后答案_第1页
SQLServer2008数据库应用教程课后答案_第2页
SQLServer2008数据库应用教程课后答案_第3页
SQLServer2008数据库应用教程课后答案_第4页
SQLServer2008数据库应用教程课后答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业第1章 数据库基础一、单项选择题1C 2A 3C 4D 5D6B 7A 8B 9B 10D11C 12A 13C 14B 15A16B 17A 18D 19B 20B21A; D 22A 23C 24D 25B26B 27B 28D 29B 30B二、填空题1概念;数据2属性3码4一对一联系;一对多(或多对一)联系;多对多联系5候选码6候选码7关系名(属性1,属性2,属性n)8关系数据结构;关系操作集合;关系完整性约束9实体;参照;用户定义的;实体;参照10空植11需求

2、分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段12准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的基础。13将需求分析得到的用户需求抽象为信息结构即概念模型。14将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。15为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。三、指出以下各缩写的英文意思和中文意思DB:DataBaseDBMS:Database

3、Management SystemRDBMS:DBS:DataBase SystemDBA:Relational Database Management SystemNF:Normal FormDDL:Data Definition Language四、按题目要求回答问题1答:N11N公司编号号公司名公司姓名地址职工编号职工性别聘期XIAOSHOU聘用隶属仓库地址仓库编号仓库名工资XIAOSHOU2答:参加代表团住所团编号地区成员运动员编号年龄姓名性别1N比赛类别主管类别编号类别名称属于比赛项目项目编号级别项目名称1N比赛时间得分3答:(1)关系R是2NF。因为R的候选码为课程名,而课程名教师

4、名,教师名教师地址,所以课程名教师地址,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。又因为不存在非主属性对候选码的部分函数依赖,所以R是2NF。(2)关系R存在删除异常。当删除某门课程时会删除不该删除的教师的有关信息。(3)分解为高一级范式如下:R1课程名教师名数据库刘辉程序设计基础赵兰软件工程陈信计算机基础刘辉R2教师名教师地址刘辉Add1赵兰Add2陈信Add1分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。4答:(1)R不属于3NF,它是2NF。(2)因为R的候选码为职工号和职工名,而:职工号单位号,单位号单

5、位名,所以职工号单位名,即存在非主属性“单位名”对候选码“职工号”的传递函数依赖。因此不是3NF。规范化后的关系子模式为如下所示的关系R1与R2。R1职工号职工名年龄性别单位号01赵高20男D302高军25男D103董林38男D304林梅25女D3R2单位号单位名D3计算机D1土木工程5答:(1)关系Stock是1NF,分析如下:关系Stock的码为(counter,goods),counter、goods为主属性,price为非主属性。存在的函数依赖有:(counter,goods)price goodsprice因此可以看出,非主属性price不完全函数依赖于码,不符合2NF的定义。得出结

6、论:关系Stock是1NF(2)存在异常:删除异常:例如,如果删除柜台2的元组,则丢失了货物名称Envelop及其价格1。插入异常:例如,如果知道了商品Lamp的价格20,则不能马上将该商品插入到Stock中,直到有一个柜台进了该货物才行。(3)规范化:将以上关系分解为两个关系如下。关系Counter-Goods 关系Goods-PriceCounterGoodsPricePen55Ink4Envelop1Bag40Goods1Pen1Ink2Envelop3Bag3pen第2章 SQL Server简介一、单项选择题1B 2C 3D 4B 5C6D 7A 8B 二、简答题1答:客户机/服务器

7、结构把整个任务划分为客户机上的任务和服务器上的任务。客户机上的任务主要如下。 建立和断开与服务器的连接。 提交数据访问请求。 等待服务通告,接受请求结果或错误。 处理数据库访问结果或错误,包括重发请求和终止请求。 提供应用程序的友好用户界面。 数据输入/输出及验证。服务器上的任务主要如下。 为多用户管理一个独立的数据库。 管理和处理接收到的数据访问请求,包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成。 管理用户账号、控制数据库访问权限和其他安全性。 维护数据库,包括数据库备份和恢复。 保证数据库数据的完整或为客户提供完整性控制手段。2答:(1)两层结构在两层结构中,SQL Ser

8、ver安装在一个中心服务器上,数据库存储在该服务器上,该服务器称为数据库服务器,可以被多台客户机访问。众多的客户机通过网络直接访问数据库服务器。客户机运行处理业务的程序和显示处理结果的程序。两层结构比较适合于用户量较少的情况,当用户量较大时,数据库服务器的性能会显著下降。(2)三层结构在三层结构中引入了一层应用服务器。客户机只运行向应用服务器发送请求和显示请求结果的程序,客户机没有处理业务的程序,应用服务器运行处理业务的程序,多个客户机可以同时访问应用服务器,应用服务器负责访问数据库服务器,并取回处理结果,将结果返回给客户机。三层结构适用于客户量较大的情况。3答:SQL Server的四个系统

9、数据库是master、model、msdb和tempdb数据库。(1)master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息,包括所有的登录帐户信息、系统配置信息、SQL Server的初始化信息和其它系统及用户数据库的相关信息。(2)model数据库是所有用户数据库和tempdb数据库的模板数据库,它含有master数据库所有系统表的子集,这些系统表是每个用户定义数据库所需要的。(3)msdb数据库是代理服务数据库,用于为调度警报、作业和记录操作员的信息提供存储空间。(4)tempdb数据库用于为所有的临时表、临时存储过程提供存储空间,它还

10、用于任何其它的临时存储要求,例如存储SQL Server生成的工作表。tempdb数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb数据库在SQL Server每次启动时都重新创建,因此该数据库在系统启动时总是干净的,临时表和存储过程在连接断开时自动除去。4答:SQL Server包含的对象如:表、视图、存储过程、索引、触发器。(1)表:在数据库中,所有的数据存放在表中,表由行(记录)和列(字段)组成,一个数据库可以包含多个表。(2)视图:视图是由查询数据表产生的结果,是一种虚构的表。视图把表中的部分数据映射出来供用户使用,这样可以防止所有的用户直接对表进

11、行操作而导致系统的性能和安全性的下降。(3)存储过程:一个存储过程实际上是由一组SQL语句组成的完成特定功能的程序。存储过程在服务器端被编译后可以反复执行。(4)索引:索引是对表中的一个或多个列的值进行排序的结构。可以利用索引提高对数据库表中的特定信息的访问速度。(5)触发器:触发器由一组SQL语句组成,当对表或视图进行某种操作(添加、删除或修改)时,这组命令会在一定情况下自动执行。第3章 服务器与客户端配置一、填空题1使用Windows身份验证,使用SQL Server身份验证2Start,pause,continue3SQL Server配置管理器4sp_configure5DSN 二、选

12、择题1C 2C 3C 4A 5C三、判断题1A 2B 3B 4B 5A四、问答题1答:使用net start命令启动Windows的服务;使用net pause命令暂停Windows服务;使用net continue命令继续被暂停的Windows服务;使用net stop命令停止Windows服务。2答:SQL Server 2008支持的网络协议包括Shared Memory、Named Pipes、TCP/IP和VIA等。3答:参照表3-1。五、上机练习题(略)第4章 Transact-SQL语言基础一、选择题1B;C 2C;D;F;G;H 3B 4A;D 5D6A 7B;D 8D 9B

13、10A;B;C二、填空题1.a.b.d.c2.常规;分隔;双引号;方括号3在其中定义局部变量的批处理、存储过程或语句块的内部;任何程序;4 ; 5DECLARE Myvar CHAR(5) ;SET Myvar=Hello6NULL7%e% aaa ;%e%aaa8FALSE;TRUE9math0 AND math10010行集函数;聚合函数;标量函数11SELECT STR(YEAR(03/25/2012),4)+年+STR(MONTH(03/25/2012),2)+月+STR(DAY(03/25/2012),2)+日12CAST(GETDATE() AS char)13CONVERT(ch

14、ar,GETDATE(),105)14CONVERT函数的参数比CAST函数的参数多了一个“样式”,该参数用于指定以不同的格式显示日期和时间。15-(双连字符);/* . */(正斜杠-星号对)16. 解析;编译;执行三、指出以下各缩写的英文意思和中文意思Structured Query Language 结构化查询语言Data Definition Language 数据定义语言Data Manipulation Language 数据操纵语言Data Control Language 数据控制语言四、上机练习题1.答:PRINT GETDATE() - GETDATE()获得当前日期,PR

15、INT将其打印出来2答:DECLARE VarDate datetimeSET VarDate = GETDATE() - 今天的日期PRINT DATEADD(day, 12, VarDate) - 12天后的日期3答:实现语句为:use pubsdeclare A binary,B binaryset A=100set B=200print Aprint B打印结果为: 0X64 0XC84答:DECLARE i int,sum intSET i=1SET sum=0WHILE i0)8答:ALTER TABLE 工资 ADD CONSTRAINT dftsalary1 DEFAULT 0

16、 FOR 基本工资ALTER TABLE 工资 ADD CONSTRAINT dftsalary2 DEFAULT 0 FOR 奖金9答:ALTER TABLE 职工基本信息 ADD CONSTRAINT dftsex DEFAULT 男 FOR 性别10答:ALTER TABLE 职工基本信息 ADD CONSTRAINT fk_1FOREIGN KEY (部门编号) REFERENCES 部门信息(部门编号)ALTER TABLE 工资 ADD CONSTRAINT fk_2 FOREIGN KEY (职工编号)REFERENCES 职工基本信息(职工编号)11答:ALTER TABLE

17、职工基本信息 DROP CONSTRAINT fk_1ALTER TABLE 工资 DROP CONSTRAINT fk_2(二)表的更新1答:INSERT INTO 职工基本信息 VALUES (10001,王佳,女,1979/02/01,001)INSERT INTO 职工基本信息 VALUES (20001,张欣,男,1965/05/10,002)INSERT INTO 职工基本信息 VALUES (20003,李勇,男,1976/08/01,002)INSERT INTO 职工基本信息 VALUES (10002,刘军,男,1973/07/01,001)2答:INSERT INTO 工

18、资(职工编号,基本工资,奖金) VALUES (10001,2000,2200)INSERT INTO 工资(职工编号,基本工资,奖金) VALUES (10002,2500,3000)3答:INSERT INTO 工资(职工编号,基本工资,奖金)SELECT 职工编号,基本工资,奖金FROM 临时工资信息4答:CREATE TABLE 部门平均年龄(部门编号 CHAR(15), 平均年龄 SMALLINT)5答:INSERT INTO 部门平均年龄SELECT 部门名称,AVG(year(getdate()-YEAR(出生日期)FROM 职工基本信息GROUP BY 部门编号6答:UPDAT

19、E 工资 SET 奖金=奖金*1.1 FROM 职工基本信息WHERE 职工基本信息.职工编号=工资.职工编号 AND 职工基本信息.部门编号=0017答:UPDATE 工资 SET 实发工资=基本工资+奖金8答:DELETE FROM 工资 WHERE 职工编号=100019答:DELETE 工资 FROM 职工基本信息WHERE 职工基本信息.职工编号=工资.职工编号 AND 职工基本信息.部门名称=001(三)表的查询1答:SELECT * FROM Employees2答:SELECT Emp_Name,Sex,Wage FROM Employees3答:SELECT Emp_Name

20、,Sex,Wage*1.2 as NewWage FROM Employees4答:SELECT DISTINCT title FROM Employees5答:SELECT Emp_Name, title FROM Employees WHERE Dep_id=16答:SELECT Emp_Name FROM Employees WHERE title=部门经理 AND Sex=女7答:SELECT * FROM Employees WHERE Wage BETWEEN 3000 AND 40008答:SELECT * FROM Employees WHERE Wage NOT BETWEE

21、N 3000 AND 40009答:SELECT * FROM Employees WHERE Dep_id IN(1,2)10答:SELECT * FROM Employees WHERE IdCard LIKE 110%11答:SELECT * FROM Employees WHERE IdCard LIKE 0-3%12答:SELECT MAX(Wage),MIN(Wage),SUM(Wage),AVG(Wage) FROM titles13答:SELECT COUNT(DISTINCT(title) FROM Employees14答:SELECT COUNT(*) FROM Empl

22、oyees WHERE title=部门经理15答:SELECT Dep_id AS 部门编号,COUNT(emp_id) AS 人数 FROM Employees GROUP BY Dep_id16答:SELECT Dep_id AS 部门编号, AVG(Wage) AS 平均工资FROM Employees GROUP BY Dep_id17. 答:SELECT d.Dep_id AS 部门编号, d.Dep_name AS 部门名称, e.Emp_name AS 姓名, e.Wage AS 工资 FROM Employees e, Departments d WHERE e.Dep_id

23、= d.Dep_id ORDER BY d.Dep_idCOMPUTE AVG(Wage) BY d.Dep_id18答:SELECT e.Emp_name, e.Sex, e.Title, d.Dep_nameFROM Employees e, Departments d WHERE e.Dep_id= d.Dep_id19答:SELECT e.Emp_name, e.Sex, e.Title, d.Dep_nameFROM Employees e INNER JOIN Departments d ON e.Dep_id= d.Dep_id20答:SELECT d.Dep_name, e.E

24、mp_name, e.Sex, e.TitleFROM Departments d LEFT JOIN Employees e ON e.Dep_id= d.Dep_id21答:SELECT * FROM EmployeesWHERE Dep_id=(SELECT Dep_id FROM Departments WHERE Dep_name=办公室)(四)(五)视图1答:CREATE VIEW view1ASSELECT e.Emp_name AS 姓名, e.Sex AS 性别, e.Title AS 职务, d.Dep_name AS 部门FROM Employees e INNER JO

25、IN Departments dON e.Dep_id = d.Dep_id2答:SELECT * FROM view13答:SELECT * FROM view1WHERE 姓名 LIKE 李%4答:ALTER VIEW view1 ASSELECT e.Emp_name AS 姓名,e.Title AS 职务, d.Dep_name AS 部门FROM Employees e INNER JOIN Departments dON e.Dep_id = d.Dep_id5答:DROP VIEW view1第7章 规则和索引一、填空题1CREATE RULE2绑定规则3sp_unbindrul

26、e4DROP RULE5聚集6B树7CREATE INDEX8INCLUDE二、选择题1B 2C 3 4C 5C三、判断题1A 2B 3B 4A 5A四、问答题1答规则是用于执行一些与检查约束相同的功能。检查约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个检查约束。检查约束可以在CREATE TABLE语句中定义,而规则作为独立的对象创建,然后绑定在指定的列上。2答用户对数据库最常用的操作就是查询数据。在数据量比较大时,搜索满足条件的数据可能会花费很长时间,从而占用较多的服务器资源。为了提高数据检索的能力,数据库中引入了索引的概念。数据库的索引和书籍中的目录相似。有了索引,就可以快

27、速地在书中找到需要的内容,而无需顺序浏览全书了。书中的目录是主要章节的列表,其中注明了包含各一章节的页码。而数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的记录所在的存储位置。可以为表中的单个列建立索引,也可以为一组列建立索引。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。因为索引是有序排列的,所以会大大提高索引的效率。3答参考7.2.7小节。五、上机练习题略第8章 存储过程、函数和触发器一、填空题1服务器;客户2系统存储过程;用户自定义存储过

28、程;临时存储过程;远程存储过程;扩展存储过程3局部临时存储过程;全局临时存储过程4#;#5输入参数;输出参数6RETURN7ALTER PROCEDURE8函数名;参数;编程语句;返回值9事件;命令10INSTEAD OF触发器;AFTER触发器;CLR触发器11原子性;一致性;隔离性;持久性12显式事务;隐式事务13ROLLBACK TRANSACTION二、选择题1B 2B 3D 4C 5B6B 7C三、判断题1A 2B 3A 4B四、问答题1答使用SQL Server中的存储过程而不使用存储在客户计算机本地的Transact-SQL程序的优势有:(1)允许模块化程序设计只需创建过程一次并

29、将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。(2)允许更快执行如果某操作需要大量Transact-SQL代码或需重复执行,存储过程将比Transact-SQL批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。(3)减少网络流量一个需要数百行Transact-SQL代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中

30、发送数百行代码。(4)可作为安全机制使用即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。2答触发器是一种特殊类型的存储过程,它在指定表中的数据发生变化时自动执行。触发器与普通存储过程的不同之处在于:触发器的执行是由事件触发的,而普通存储过程是由命令调用执行的。3答触发器是自动执行的,不需要管理员手动维护数据库的数据完整性。触发器可以对数据库中的相关表进行级联更改。例如,可以在表Departments中定义触发器,当用户删除表Departments中的记录时,触发器将删除表Employees中对应部门的记录。触发器可以限制向表中插入无效的数据,这一点与CHECK

31、约束的功能相似。但在CHECK约束中不能使用到其他表中的字段,而在触发器中则没有此限制。例如,可以在表Employees中定义触发器,限制插入的记录其Dep_id字段值必须在表Departments中存在对应的记录。五、上机练习题(一)存储过程1答:USE HrSystemGOIF EXISTS (SELECT name FROM sysobjects WHERE name =avg_wage AND type = P) DROP PROCEDURE avg_wageGOCREATE PROC avg_wageavgwage FLOAT OUTPUTASSELECT avgwage=AVG(w

32、age) FROM Employees2答:DECLARE avgwage FLOATEXEC avg_wage avgwage OUTPUTPRINT avgwage3答:USE HrSystemGOIF EXISTS (SELECT name FROM sysobjects WHERE name =max_wage AND type = P) DROP PROCEDURE max_wageGOCREATE PROC max_wage depname char(50),maxwage FLOAT OUTPUTASSELECT maxwage=MAX(e.wage) FROM Employee

33、s e INNER JOIN Departments d ON e.Dep_id=d.Dep_id WHERE d.Dep_name=depname4答:DECLARE maxwage FLOAT,depname CHAR(50)EXEC max_wage 财务部, maxwage OUTPUTPRINT maxwage5答:DROP PROCEDURE avg_price,max_wage(二)触发器1答:(1)创建触发器语句USE 学生信息IF EXISTS(SELECT name FROM sysobjects WHERE name = TRG1 AND type = TR) DROP

34、TRIGGER TRG1GOCREATE TRIGGER TRG1 ON 专业FOR INSERTASSELECT * FROM inserted(2)测试语句INSERT INTO 专业 VALUES(111,新专业名称,001)(3)测试结果在“网格”选项卡上显示:在“消息”选项卡上显示:(所影响的行数为 1 行)2答:(1)创建触发器语句USE 学生信息IF EXISTS (SELECT name FROM sysobjects WHERE name = TRG2 AND type = TR) DROP TRIGGER TRG2GOCREATE TRIGGER TRG2 ON 专业FOR

35、 DELETEASRAISERROR (不允许删除专业表中的记录,16,1)SELECT * FROM deletedROLLBACK TRANSACTION -回滚事务(2)测试语句DELETE FROM 专业 WHERE 专业编号=111(3)测试结果在“消息”选项卡上显示:服务器: 消息 50000,级别 16,状态 1,过程 TRG2,行 4不允许删除专业表中的记录(所影响的行数为 1 行)在“网格”选项卡上显示:3答:(1)创建触发器语句USE 学生信息IF EXISTS (SELECT name FROM sysobjects WHERE name = TRG3 AND type

36、= TR) DROP TRIGGER TRG3GOCREATE TRIGGER TRG3 ON 专业FOR UPDATEASIF UPDATE(专业名称)BEGIN RAISERROR(不能修改专业名称,15,1) ROLLBACK TRANSACTIONEND(2)测试语句UPDATE 专业 SET 专业名称=新专业名称B WHERE 专业编号=111(3)测试结果在“消息”选项卡上显示:服务器: 消息 50000,级别 15,状态 1,过程 TRG3,行 6不能修改专业名称4答:(1)创建触发器语句USE 学生信息IF EXISTS (SELECT name FROM sysobjects

37、 WHERE name = TRG4 AND type = TR) DROP TRIGGER TRG4GOCREATE TRIGGER TRG4ON 学生基本信息FOR UPDATEAS IF UPDATE(学号) OR UPDATE (姓名) BEGIN RAISERROR(注意,不允许修改学号或姓名,15,1) ROLLBACK TRANSACTIONEND(2)测试语句 UPDATE 学生基本信息 SET 学号= WHERE 学号= UPDATE 学生基本信息 SET 姓名=张三 WHERE 学号=(3)测试结果服务器: 消息 50000,级别 15,状态 1,过程 TRG4,行 7注意

38、,不允许修改学号或姓名5答:DROP TRIGGER TRG1,TRG2,TRG3,TRG4,TRG5第9章 游标管理8.3 练习题一、填空题1Transact-SQL 游标;应用编程接口(API)服务器游标;客户端游标2静态游标;动态游标;只进游标;键集驱动游标3OPEN4SCROLL5FETCH6FETCH_STATUS7CLOSE8DEALLOCATE二、选择题1A 2C 3C 4D 5D6B 三、判断题1B 2A 3B 4B 5A四、问答题1答用数据库语言来描述,游标是映射结果集并在结果集内的单个行上建立一个位置的实体。有了游标,用户就可以访问结果集中的任意一行数据了。在将游标放置到某

39、行之后,可以在该行或从该位置开始的行块上执行操作。最常见的操作是提取(检索)当前行或行块。游标有以下主要的功能:允许定位在结果集的特定行。从结果集的当前位置检索一行或多行。支持对结果集中当前位置的行进行数据修改。如果其他用户需要对显示在结果集中的数据库数据进行修改,游标可以提供不同级别的可见性支持。提供脚本、存储过程和触发器中使用的访问结果集中的数据的Transact-SQL语句。2答SQL Server支持以下3种游标的实现:Transact-SQL 游标。使用Transact-SQL语句创建的游标,主要用在Transact-SQL脚本、存储过程和触发器中。Transac-SQL游标在服务器

40、上实现并由从客户端发送到服务器的Transact-SQL语句管理。它们还包含在批处理、存储过程或触发器中。应用编程接口(API)服务器游标。支持OLE DB、ODBC和DB-Library中的API游标函数。API服务器游标在服务器上实现。每次客户应用程序调用API游标函数时,SQL Server OLE DB提供程序、ODBC驱动程序或DB-Library动态链接库(DLL)就把请求传送到服务器,以便对API服务器游标进行操作。客户端游标。由SQL Server ODBC驱动程序、DB-Library DLL和实现ADO API的DLL在内部实现。客户端游标通过在客户端高速缓存所有结果集行来

41、实现。每次客户应用程序调用API游标函数时,SQL Server ODBC驱动程序、DB-Library DLL或ADO DLL就对高速缓存在客户端中的结果集行执行游标操作。由于Transact-SQL游标和API服务器游标都在服务器端实现,它们一起被称为服务器游标。SQL Server支持4种API服务器游标类型,它们是静态游标、动态游标、只进游标和键集驱动游标。3答首先声明一个游标,然后打开游标,从游标中读取数据,使用游标函数;游标使用完成后,关闭游标;如果不再继续使用,则删除游标。五、上机练习题1.答:USE HrSystemDECLARE MyCursor1 SCROLL CURSOR

42、 FOR SELECT * FROM Employees where wage3000OPEN Mycursor1FETCH FIRST FROM Mycursor1FETCH LAST FROM Mycursor12答:(1)USE HrSystemDECLARE MyCursor2 CURSOR STATIC FORSELECT * FROM EmployeesOPEN MyCursor2SELECT CURSOR_ROWS(2)USE HrSystemDECLARE MyCursor3 CURSOR KEYSET FORSELECT * FROM EmployeesOPEN MyCurs

43、or3SELECT CURSOR_ROWS(3)USE HrSystemDECLARE MyCursor4 CURSOR DYNAMIC FORSELECT * FROM EmployeesOPEN MyCursor4SELECT CURSOR_ROWS3答:USE HrSystemDECLARE MyCursor5 SCROLL CURSOR FOR SELECT * FROM Employees WHERE Sex=男OPEN MyCursor5FETCH NEXT FROM MyCursor5WHILE FETCH_STATUS = 0 FETCH NEXT FROM MyCursor5

44、CLOSE MyCursor5DEALLOCATE MyCursor5第10章 维护数据库一、填空题1数据库快照2“稀疏文件”3AS SNAPSHOT OF4FROM DATABASE_SNAPSHOT5DROP DATABASE6物理设备名称;逻辑设备名称7. sp_addumpdevice;sp_dropdevice8. 差异9. WITH NORECOVERY;WITH RECOVERY10. REPLACE二、选择题1A 2D 3C 4D 5A三、判断题1A 2A 3A 4A 5B四、问答题1答数据库快照是数据库的只读、静态视图,数据库可以有多个快照。创建快照时,每个数据库快照在事务上

45、与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。可以在报表中使用数据库快照。另外,当数据库出现用户错误,还可将数据库恢复到创建快照时的状态。丢失的数据仅限于创建快照后数据库更新的数据。数据库快照必须与数据库在同一服务器实例上。数据库快照是在数据页级运行的。也就是说,创建数据库快照后,对源数据库页的修改之前,源数据库页中的数据将复制到快照中。快照是一个很形象的名词,在你移动之前按下快门,复制了你当时的形象。为了存储快照中复制的源数据库页,SQL Server 2008使用了“稀疏文件”。稀疏文件是NTFS文件系统的一项功能。将数据写入稀疏文件后,NTFS将分配磁盘空间以保存该数据。稀

46、疏文件最初是空白文件,不包含用户数据,而且操作系统也没有为其分配存储用户数据的磁盘空间。在创建数据库快照后,SQL Server将对源数据库的修改都保存在稀疏文件中,随着对源数据库页的不断修改,稀疏文件也变得越来越大。2答执行恢复到数据库快照的操作时,应该注意以下几点:在执行恢复操作之前,应该关闭其他所有与目标数据库的连接。例如,在SQL Server Management Studio中与当前数据库有连接的其他窗口。建议对数据库先进行备份操作。删除关于此数据库的其他快照。在创建数据库快照后数据库发生的变化在恢复操作完成后将丢失。3答:SQL Server提供了以下4种不同的数据库备份方式。(

47、1)完整数据库备份完整备份指对整个数据库进行备份,包括数据和事务日志。当数据库发生故障时,可以完整地恢复数据库中的数据。对于小型数据库而言,使用完整备份是最佳的选择。但如果数据库中的数据量很大,执行完整备份会花费很多的时间,而且会占用大量的存储空间。因此,对于大型数据库而言,一般都会使用差异备份的方法进行补充。(2)差异数据库备份顾名思义,差异数据库备份并不对数据库执行完整的备份,它只是对上次备份数据库后所发生变化的部分进行备份。差异数据库备份需要有一个参照的基准,即上一次执行的完整数据库备份。差异数据库备份的速度比较快,在还原差异数据库备份时,需要首先还原基准数据库备份,然后在此基础上再还原

48、差异的部分。(3)事务日志备份事务日志包含了自上次进行完整数据库备份、差异数据库备份或事务日志备份以来所完成的事务。可以使用事务日志备份将数据库恢复到特定的即时点或恢复到故障点。(4)数据库文件和文件组备份只备份特定的数据库文件或文件组,常用于超大型数据库的备份。五、上机练习题5答:(3)BACKUP DATABASE mydb1 TO mycopy1(4)RESTORE DATABASE mydb3FROM mycopy1WITH MOVE f1 TO d:sql_datamydb3-f1.mdf, MOVE f2 TO d:sql_datamydb3-f2.mdf, MOVE f3 TO

49、d:sql_datamydb3-f3.mdf, MOVE lg1 TO d:sql_logmydb3-lg1.lgf(5)DROP DATABASE mydb2,mydb3第11章 SQL Server安全管理一、填空题1SQL Server登录;数据库用户;权限;角色2Windows 身份验证模式;混合模式3sp_grantdbaccess4DROP USER5Public6对象权限;语句权限;暗示性权限7sp_addrole;sp_droprole二、选择题1D 2C 3D 4C 5A6A 7B 8C三、判断题1B 2A 3A 4A 四、问答题1答SQL Server的安全管理模型中包括S

50、QL Server登录、数据库用户、权限和角色4个主要方面,具体说明如下:(1)SQL Server登录 要想连接到SQL Server服务器实例,必须拥有相应的登录账户和密码。身份认证系统验证用户是否拥有有效的登录账户和密码,从而决定是否允许该用户连接到指定的SQL Server服务器实例。(2)数据库用户 通过身份认证后,用户可以连接到SQL Server服务器实例。但是,这并不意味着该用户可以访问到指定服务器上的所有数据库。在每个SQL Server数据库中,都存在一组SQL Server用户账户。登录账户要访问指定数据库,就要将自身映射到数据库的一个用户账户上,从而获得访问数据库的权限

51、。一个登录账户可以对应多个用户账户。(3)权限 权限是规定了用户在指定数据库中所能进行的操作。(4)角色 类似于Windows的用户组,角色可以对用户进行分组管理。可以对角色赋予数据库访问权限,此权限将应用于角色中的每一个用户。2答SQL Server提供以下两种身份验证模式:Windows 身份验证模式当用户通过Windows NT 4.0、Windows 2000或Windows 2003用户账户进行连接时,SQL Server通过回叫Windows系统以获得信息,重新验证账户名和密码。SQL Server通过使用网络用户的安全特性控制登录访问,以实现与Windows的登录安全集成。用户的

52、网络安全特性在网络登录时建立,并通过Windows域控制器进行验证。当网络用户尝试连接时,SQL Server使用基于Windows的功能确定经过验证的网络用户名。SQL Server于是验证此人是否是如其所说的那个人,然后只基于网络用户名允许或拒绝登录访问,而不要求单独的登录名和密码。混合模式(Windows身份验证和SQL Server身份验证)SQL Server可以设置SQL Server登录账户。用户登录时,SQL Server将对用户名和密码进行验证。如果SQL Server未设置登录账户或密码不正确,则身份验证将失败,而且用户将收到错误信息。应用程序开发人员和数据库用户也许更喜欢

53、“SQL Server身份验证”模式,因为他们可以通过对登录账户和密码的管理实现权限控制。SQL Server的身份验证模式下图所示。五、上机练习题(一)管理安全帐户6找到SQL Server默认的登录帐号sa、BUILTINAdministrators,观察并记录其登录类型、默认数据库及所属的服务器角色。(1)sa:登录类型默认数据库服务器角色标准masterSystem Administrators(2)BUILTINAdministrators:登录类型默认数据库服务器角色Windows组masterSystem Administrators(二)使用Transact-SQL命令管理登录帐户1答:从工具栏的数据库下拉列表中可以看到HrSystem数据库。因为当前是以Windows系统管理员身份连接SQL Server的,因此具有所有权限。2答:(1)sp_addlogin log1,111sp_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论