9数据库原理与应用教程—SQLServer数据库__考试题目(9)-

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1数据库原理与应用教程―SQLServer10.3习题1.引入视图的主要目的是什么?答:数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合用户的需求。SQLServer2005可以根据用户需求重新定义表的数据结构,这种数据结构就是视图。视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,其结构和数据是建立在对表的查询基础上的。2.当删除视图时所对应的数据表会删除吗?答:不会。3.简述视图的优点。答:使用视图有很多优点,主要表现在:(1)为用户集中数据,简化用户的数据查询和处理。(2)保证数据的逻辑独立性。(3)重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中。(4)数据保密。4.可更新视图必须满足哪些条件?答:(1)任何修改(包括UPDATE、INSERT和DELETE语句)都只能引用一个基本表的列。(2)视图中被修改的列必须直接引用表列中的基础数据。不能通过任何其他方式对这些列进行派生,如通过聚合函数、计算(如表达式计算)、集合运算等。(3)被修改的列不受GROUPBY、HAVING、DISTINCT或TOP子句的影响。5.创建索引的必要性和作用是什么?答:数据库的索引就类似于书籍的目录,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。相反,如果没有索引,则会导致SQLServer搜索表中的所有记录,以获取匹配结果。索引的优点包括:(1)大大加快数据的检索速度,这是创建索引的最主要的原因。(2)创建唯一性索引,保证表中每一行数据的唯一性。(3)加速表和表之间的连接。(4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。(5)查询优化器可以提高系统的性能,但它是依靠索引起作用的。6.聚集索引和非聚集索引有何异同?2答:聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。非聚集索引不会对表和视图进行物理排序。如果表中不存在聚集索引,则表是未排序的。7.在SQLServerManagementStudio中创建一个仓库库存信息视图,要求包含仓库库存数据库中三个表的所有列。答:略。8.利用T-SQL语句创建一个查询每个学生的平均成绩的视图,要求包含学生的学生号和姓名。答:CREATEVIEW学生_平均成绩ASSELECT学生.学生号,姓名,avg(成绩)AS平均成绩FROM学生,选课WHERE学生.学生号=选课.学生号GROUPBY学生.学生号,姓名9.在SQLServerManagementStudio中按照选课表的成绩列升序创建一个普通索引(非唯一、非聚集)。答:略。10.利用T-SQL语句按照商品表的单价列降序创建一个普通索引。答:CREATEINDEXindex_商品单价ON商品(单价DESC)11.4习题1.简述存储过程和触发器的优点。答:存储过程最主要的特色是当写完一个存储过程后即被翻译成可执行码存储在系统表内,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参数就可以得到所要的结果而不必再去编辑T-SQL命令。由于在触发器中可以包含复杂的处理逻辑,因此,应该将触发器用来保持低级的数据的完整性,而不是返回大量的查询结果。使用触发器主要可以实现以下操作:(1)强制比CHECK约束更复杂的数据的完整性(2)使用自定义的错误提示信息(3)实现数据库中多张表的级联修改(4)比较数据库修改前后数据的状态(5)调用更多的存储过程(6)维护非规范化数据2.简述游标的概念及类型。答:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。为了查看3或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力,我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。SQLServer支持三种类型的游标:T-SQL游标,API服务器游标和客户游标。由于API游标和T-SQL游标使用在服务器端,所以被称为服务器游标,也被称为后台游标,而客户端游标被称为前台游标。服务器游标包含以下四种:静态游标、动态游标、只进游标、键集驱动游标。3.简述SQLServer2005中存储过程和触发器的分类。答:存储过程分为系统存储过程、本地存储过程、临时存储过程、远程存储过程和扩展存储过程。触发器:DML触发器是当数据库服务器中发生数据操作语言(DML)事件时会自动执行的存储过程。DDL触发器是在响应数据定义语言(DDL)语句时触发,一般用于数据库中执行管理任务。4.创建存储过程,从课程表中返回指定的课程的信息。该存储过程对传递的参数进行模式匹配,如果没有提供参数,则返回所有课程的信息。答:CREATEPROCEDUREPcourse@namevarchar(20)='%'ASSELECT*FROM课程WHERE课程名LIKE@name5.创建存储过程,计算指定学生(姓名)的总成绩,存储过程中使用一个输入参数(姓名)和一个输出参数(总成绩)。答:CREATEPROCEDURESname@S_nvarchar(20),@sum1intOUTPUTASSELECT@sum1=sum(成绩)FROM选课,学生WHERE姓名=@S_nand学生.学生号=选课.学生号6.为dept表创建一个实现级联删除的触发器,当执行删除时,激活该触发器同时删除gongcheng表中相应记录(leader列)。答:CREATETRIGGERd_trONdeptFORdeleteASdeletefromgongchengwhereleader=(SELECTleaderFROMdeleted)7.在教学库中建一个学生党费表,属性(学生号,姓名,党费),学生号是主键,也是外键(参考学生表的学生号);创建一个触发器,保证只能在每年的6月和12月交党费,如果在其它时间录入则显示提示信息。答:CREATETABLE学生党费表(学生号CHAR(7)primarykeyforeignkeyreferences学生(学生号),姓名char(6),4党费int)CREATETRIGGERtrg_学生党费表on学生党费表forinsertASifnot(datepart(mm,getdate())='06'ordatepart(mm,getdate())='12')BEGINprint'对不起,只能在每年的6月和12月交党费'rollbackEND8.利用T-SQL扩展方式声明一个游标,查询学生表中所有男生的信息,并读取数据。要求:(1)读取最后一条记录。(2)读取第一条记录。(3)读取第5条记录。(4)读取当前记录指针位置后第3条记录。答:略。12.5习题1.什么是事务?如果要提交或取消一个事务,使用什么语句?答:事务处理是数据库的主要工作,事务由一系列的数据操作组成,是数据库应用程序的基本逻辑单元,用来保证数据的一致性。提交或取消一个事务:COMMITTRANSACTION或ROLLBACKTRANSACTION语句。2.事务分为哪几类?答:根据系统的设置,SQLServer2005将事务分为两种类型:系统提供的事务和用户定义的事务。根据运行模式的不同,SQLServer2005将事务分为4种类型:显示事务、隐式事务、自动提交事务和批处理级事务。3.简述事务回滚机制。答:(1)如果不指定回滚的事务名称或保存点,则ROLLBACKTRANSACTION命令会将事务回滚到事务的起点。(2)在嵌套事务时,该语句将所有内层事务回滚到最远的BEGINTRANSACTION语句,transaction_name也只能是来自最远的BEGINTRANSACTION语句的名称。(3)在执行COMMITTRANSACTION语句后不能回滚事务。(4)如果在触发器中发出ROLLBACKTRANSACITON命令,将回滚对当前事务中所做的所有数据修改,包括触发器所做的修改。(5)事务在执行过程中出现任何错误,SQLServer都将自动回滚事务。4.简述锁机制,锁分为哪几类。答:锁是防止其他事务访问指定的资源、实现并发控制的一种手段,是多个用户能够同5时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。锁分为(1)共享锁(SharedLock)(2)排它锁(ExclusiveLock)(3)更新锁(UpdateLock)(4)意向锁(IntentLock)(5)模式锁(SchemaLock)(6)大容量更新锁(BulkUpdateLock)5.分析各类锁之间的兼容性。在一个事务已经对某个对象锁定的情况下,另一个事务请求对同一个对象的锁定,此时就会出现锁定兼容性问题。当两种锁定方式兼容时,可以同意对该对象的第二个锁定请求。如果请求的锁定方式与已挂起的锁定方式不兼容,那么就不能同意第二个锁定请求。相反,请求要等到第一个事务释放其锁定,并且释放所有其他现有的不兼容锁定为止。详细内容见书表12-1。6.简述死锁及其解决办法。答:产生死锁的情况一般包括以下两种:第一种情况,当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时,就发生了死锁。这种死锁是最典型的死锁形式。第二种情况,当在一个数据库中时,有若干个长时间运行的事务执行并行的操作,当查询分析器处理一种非常复杂的查询例如连接查询时,那么由于不能控制处理的顺序,有可能发生死锁现象。在数据库中解决死锁常用的方法有:(1)要求每个事务一次就将要使用的数据全部加锁,否则就不能继续执行。(2)允许死锁发生,系统来用某些方式诊断当前系统中是否有死锁发生。7.创建一个事务,将所有女生的考试成绩都加5分,并提交。答:BEGINTRANSACTIONUSE教学库UPDATE选课SET成绩=成绩+5WHERE学生号in(SELECT学生号FROM学生WHERE性别=’女’)COMMITTRANSACTION8.创建一个事务,向商品表中添加一条记录,设置保存点;再将商品编号为“ds-001”的单价改为“2000”。答:BEGINTRANSACTIONUSE仓库库存INSERTINTO商品(商品编号,商品名称,单价,生产商)VALUES('bx-159','冰箱',2500,'安徽美菱')SAVETRANsavepointUPDATE商品SET单价=2000WHERE商品编号='ds-001'6COMMIT13.6习题1.简述数据库备份和还原的基本概念?答:数据库备份就是在某种介质上(磁盘、磁带等)创建完整数据库(或者其中一部分)的副本,并将所有的数据项都复制到备份集,以便在数据库遭到破坏时能够恢复数据库。还原数据库是一个装载数据库的备份,然后应用事务日志重建的过程。2.数据库备份有哪几种类型?答:在SQLServer系统中,有4种备份类型,分别如下所示:①完整数据库备份。②差异数据库备份。③事务日志备份。④数据库文件或文件组备份。3.简述数据库的恢复模式。答:SQLServer2005系统提供了3种数据库的恢复模式:①完整恢复模式。②简单恢复模式。③大容量日志恢复模式。4.在SQLServerManagementStudio中使用界面进行备份和还原数据库的操作过程。答:略。5.使用T-SQL语句分别实现数据库的备份和还原操作。答:略。6.了解数据库的分离和附加的作用及操作方法。答:SQLServer2005允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。分离数据库将从SQLServer删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何SQLServer实例上,这使数

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功