数据库原理与应用教程—sqlserver数据库考试题目

合集下载

数据库原理及应用(SQLServer2008)-职称计算机考试数据库应用试卷与试题

数据库原理及应用(SQLServer2008)-职称计算机考试数据库应用试卷与试题

数据库原理及应用(SQL Server 2008)试卷总分:88答题时间:[ 未设置 ]一、单选题以下不属于数据模型的是( )。

[2分]-----正确答案(D)1.A层次模型B网状模型关系模型CD概念模型2.下列函数中,返回值数据类型为int的是( )。

[2分]-----正确答案(B)LEFTABLENCLTRIMSUNSTRINGD3.表达式'123'+'456'的结果是( )。

[2分]-----正确答案(A)A'123456'B579'579'CD'123'下列叙述不是视图特点的是( )。

[2分]-----正确答案(A)4.A为用户集中数据B降低数据库设计的复杂性存数数据CD阻止数据以便到处到其他应用程序5.根据作用于的数据库对象和范围的不同,下列不属于数据完整性的是( )。

[2分]-----正确答案(A)A域完整性B实体完整性参照完整性CD规则完整性6.SQL Server2008属于( )数据库系统。

[2分]-----正确答案(C)层次型AB网状型C关系型面向对象型D7.下列常数中,属于Unicode字符串常量的是( )。

[2分]-----正确答案(C)'123'AB' 123'CN'123'D'abc'8.下列操作中,( )不是SQL Server服务管理器的功能。

[2分]-----正确答案(C)A启动SQL SERVER服务B停止SQL SERVER服务C执行SQL 查询命令D暂停SQL SERVER服务9.下列不属于存储过程的是( )。

[2分]-----正确答案(D)A系统存储过程扩展存储过程BC用户定义存储过程D约束设A和B两个数据表的记录数分别为3和4,对两个表执行交叉连接查询后,查询结果中最多可获得( )条数据。

10.[2分]-----正确答案(A)A12B7C4D3二、填空题关于身份验证模式叙述正确的是( )。

3数据库原理与应用教程—SQL Server数据库__考试题目(3)

3数据库原理与应用教程—SQL Server数据库__考试题目(3)

数据库原理与应用教程―SQL Server习题解答3.4 习题1.关系数据模型由哪三个要素组成。

答:关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

2.简述关系的性质。

答:(1) 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。

(2) 在同一个关系中,不同的列的数据可以是同一种数据类型,但各属性的名称都必须是互不相同。

(3) 同一个关系中,任意两个元组都不能完全相同。

(4) 在一个关系中,列的次序无关紧要。

即列的排列顺序是不分先后的。

(5) 在一个关系中,元组的位置无关紧要。

即排行不分先后,可以任意交换两行的位置。

(6) 关系中的每个属性必须是单值,即不可再分,这就要求关系的结构不能嵌套。

这是关系应满足的最基本的条件。

3.简述关系的完整性。

答:关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户自定义的完整性约束。

实体完整性规则要求关系中元组在组成主码的属性上不能有空值。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S 的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。

用户定义的完整性规则由用户根据实际情况对数据库中数据的内容进行的规定,也称为域完整性规则。

4.传统的集合运算和专门的关系运算都有哪些。

答:(1) 传统的集合操作:并、差、交、笛卡儿积。

(2)专门的关系操作:投影(对关系进行垂直分割)、选择(水平分割)、连接(关系的结合)、除法(笛卡儿积的逆运算)等。

5.根据给定的关系模式进行查询。

设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。

请用关系代数分别写出下列查询:(1)检索学生的所有情况。

SQLServer数据库考试试题与答案(doc8页)

SQLServer数据库考试试题与答案(doc8页)

SQLServer数据库考试试题与答案(doc8页)SQLServer数据库考试试题与答案(doc 8页)选择题:(20分)1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的⼀项:(___)A、只存在⼀对多的实体关系,以图形⽅式来表⽰。

B、以⼆维表格结构来保存数据,在关系表中不允许有重复⾏存在。

C、能体现⼀对多、多对多的关系,但不能体现⼀对⼀的关系。

D、关系模型数据库是数据库发展的最初阶段。

2、在“连接”组中有两种连接认证⽅式,其中在(___)⽅式下,需要客户端应⽤程序连接时提供登录时需要的⽤户标识和密码。

A、Windows⾝份验证B、SQL Server ⾝份验证C、以超级⽤户⾝份登录时D、其他⽅式登录时3、SQL Server 2000 在安装之前,应注意的事项:(___)A、SQL Server 2000的任何版本在安装时都不⽤考虑操作系统的制约。

B、SQL Server 2000的安装对硬件的要求不作C、alter table table1 column1 primary key ;5、表在数据库中是⼀个⾮常重要的数据对象,它是⽤来(1___)各种数据内容的,数据库创建后就可以创建表了,创建表可以⽤(2___)等⽅法来创建。

⑴ A、显⽰ B、查询 C、存放 D、检索⑵ A、企业管理器 B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句6、为数据表创建索引的⽬的是(1___),可以在创建表时⽤(2___)来创建唯⼀索引,也可以⽤(2___)来创建唯⼀索引。

⑴ A、提⾼查询的检索性能 B、创建唯⼀索引C、创建主键D、归类⑵ A、设置主键约束,设置唯⼀约束B、Create table,Create indexC、设置主键约束,Create indexD、以上都可以7、在Transact-SQL语法中,⽤来插⼊数据的命令是(___),⽤于更新的命令是(___)。

A、INSERT,UPDATEB、UPDATE,INSERTC、DELETE,UPDATED、CREATE,INSERT INTO8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但⾄少包括的部分(1___),使⽤关键字(2___)可以把重复⾏屏蔽,将多个查询结果返回⼀个结果集合的运算符是(3___),如果在SELECT语句中使⽤集合函数时,⼀定在后⾯使⽤(4___)。

数据库系统原理及应用(SQL Server 2012)配套习题答案

数据库系统原理及应用(SQL Server 2012)配套习题答案

习题答案第一章习题答案一、选择题1.下列关于数据库技术的描述,错误的是( B )A.数据库中不但需要保存数据,而且还需要保存数据之间的关联关系B.由于数据是存储在磁盘上的,因此用户在访问数据库数据时需要知道数据的存储位置C.数据库中数据存储结构的变化不会影响到应用程序D.数据库中的数据具有较小的数据冗余2.数据库系统中将数据分为三个模式,从而提供了数据的独立性,下列关于数据逻辑独立性的说法,正确的是( C )A. 当内模式发生变化时,模式可以不变B. 当内模式发生变化时,应用程序可以不变C. 当模式发生变化时,应用程序可以不变D. 当模式发生变化时,内模式可以不变3.下列关于用文件管理数据的说法,错误的是( D )A.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率4.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于( A )A.系统软件B.工具软件C.应用软件D.数据软件5.下列模式中,用于描述单个用户数据视图的是( C )A.内模式B.概念模式C.外模式D.存储模式6.在数据库系统中,数据库管理系统和操作系统之间的关系是( D )A.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行7.数据库系统的物理独立性是指( C )A.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序8.下列关于数据库管理系统的说法,错误的是( C )A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名9.数据库系统是由若干部分组成的。

7数据库原理与应用教程—SQL Server数据库__考试题目(7)

7数据库原理与应用教程—SQL Server数据库__考试题目(7)

数据库原理与应用教程―SQL Server习题解答7.3 习题1.简述T-SQL语言的特点。

答:(1)综合统一(2)两种使用方式,统一的语法结构(3)高度非过程化(4)类似于人的思维习惯,容易理解和掌握2.什么是标识符?T-SQL中有几种标识符?它们的区别是什么?答:标识符是用来标识事物的符号,其作用类似于给事物起的名称。

标识符分为两类:常规标识符和分隔标识符。

符合所有标识符格式规则的标识符为常规标识符,可以使用分隔符,也可以不使用分隔符。

不符合标识符格式规则的标识符必须使用分隔符。

3.如何表示数据库对象名?答:[server_name.[database_name].[schema_name] | database_name. [schema_name] |schema_name.]object_name4.什么是局部变量?什么是全局变量?如何表示它们?答:全局变量由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量。

用户只能使用全局变量,不能对它们进行修改。

全局变量的作用范围是整个SQL Server 系统,任何程序都可以随时调用它们。

T-SQL语言中的变量是可以保存单个特定类型的数据值的对象,也称为局部变量,只在定义它们的批处理或过程中可见。

5.以下变量名中,哪些是合法的变量名,哪些是不合法的变量名?A1,1a,@x,@@y,&变量1,@姓名,姓名,#m,##n,@@@abc##,@my_name答:合法的变量名:@x,@@y,@姓名,@my_name不合法的变量名:A1,1a,&变量1,姓名,#m,##n,@@@abc##6.SQL Server 2005所使用的运算符类别有哪些?答:SQL Server 2005系统中,可以使用的运算符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运算符、一元运算符及比较运算符等。

7.利用T-SQL语句计算下列表达式,并给出运算结果。

《数据库系统原理与应用(SQL Server)》试题

《数据库系统原理与应用(SQL Server)》试题

《数据库系统原理与应用(SQL Server)》试题一、单项选择题(每小题1分,共20分)1.下列四项中,不属于数据库特点的是()。

A.数据共享 B.数据完整性C. 数据冗余很高D.数据独立性高2.目前()数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。

A.关系B.面向对象C.分布3.数据库设计中的概念结构设计的主要工具是()。

A.数据模型B.E—R模型C.新奥尔良模型D.概念模型4.()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。

数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA5.设有关系R,按条件f对关系R进行选择,正确的是( )。

A.R×R B.f R C.σf(R) D. f(R)6.B属性函数依赖于A属性时,属性A与B的联系是().A.1对多B.多对1C.多对多D.以上都不是7.关系数据库规范化是为解决关系数据中()问题而引入的。

A.插入、删除和数据冗余B.提高查询速度C.减少数据操作的复杂性D.保证数据的安全性和完整性8.关系模型的完整性规则不包括 ( )。

A.实体完整性规则B.参照完整性规则C.安全性规则D.用户定义的完整性规则9.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。

其中最重要的也是使用最频繁的语句是()。

A.SELECT B.INSERTC.UPDATE D.DELETE10.在SQL中,建立视图用的命令是 ( )。

A.CREATE SCHEMAB.CREATE TABLEC.CREATE VIEWD.CREATE INDEX11.SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( )。

A.包括20岁和30岁B.不包括20岁和30岁C.包括20岁但不包括30岁D.包括30岁但不包括20岁12.下列SQL语句中,修改表结构的是()。

《数据库系统原理与应用(SQL_Server_2000)》试题(Q卷)

《数据库系统原理与应用(SQL_Server_2000)》试题(Q卷)

《数据库系统原理与应用(SQL Server 2000)》一、填空题(每题2分,共30分)1.数据库的发展过程经历了手工处理阶段、(1) 、(2) 三个阶段。

2.当前流行的三种数据库模型是层次模型、网状模型和(3) 。

3.在SELECT语句中用来指定所选记录必须满足的条件时应使用(4) 子句,用来说明每个组需要的条件时应使用(5) 子句,在使用Having子句前,应保证SELECT语句中已经使用了(6) 子句。

4.当在一个表中已存在有Primary key约束时,不能再创建(7) 索引。

用CREA TE INDEX ID_Index ON Students (身份证) 建立的索引为(8) 索引。

5.可以对视图进行像表一样的查询、更新操作,每次最多只能影响(9) 个基表,此时,相应的基表的数据(10) (能或不能)被相应地改变。

6.在查询表的记录时,若要统计符合某一指定的条件的所有记录个数时,应使用的聚合函数是(11) ,而要求统计符合某一指定条件的所有记录的单个属性值的总和时,应使用的聚合函数是(12) ;若要消除重复的行,应选用(13) 关键字,用来进行模式匹配时,应使用(14) 运算符,用于指定记录值的范围的运算符是(15) 。

二、简答题(每题6分,共30分)1.试讨论Microsoft SQL Server 2000 对数据的完整性控制机制。

2.触发器是如何保证数据的完整性的?3.什么是数据库角色和服务器角色?角色和用户有什么关系?4.什么是事务,讨论Microsoft SQL Server 2000中事务的运行机制。

5.讨论用户自定义存储过程和触发器的区别三、解答题(共28分)已知一个学生成绩管理数据库(ManageStudents)包含如下的三个表:学生表(Students)、选课表(SelectCourses)和课程表(Courses),其对应的表结构如下所示:1.按要求写出相应的T-SQL语句(每题4分,共20分)(1) 查询每一位学生的平均分,并按平均分的逆序排列。

SQLServer数据库试题十及答案

SQLServer数据库试题十及答案

SQLServer数据库试题十及答案SQL Server数据库试题及答案一、单项选择题(每题2分,共15题)1. SQL Server 2005是一个(C)的数据库系统。

(A)网状型(B)层次型(C)关系型(D)以上都不是2. DTS 是一个简称,它的全称是(B)。

A. 数据运输系统B. 数据传输服务C. 数据库传输系统D. 数据库运输服务3. SQL Server 2005 采用的身份验证模式有(D)。

(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式4. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:(C)(A)DML (B)DCL (C)DQL (D)DDL5. 在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是(B)(A) * (B)% (C)- (D)?6. SQL Server提供的单行注释语句是使用(B)开始的一行内容。

(A)“/*” (B)“--” (C)“{” (D)“/”7. 以下那种类型能作为变量的数据类型(C)。

(A)text (B)ntext (C)table (D)image8. 下面不属于数据定义功能的SQL语句是:(C)A.CREATE TABLEB.CREATE CURSORC.UPDATED.ALTER TABLE9. 如果希望完全安装SQL Server,则应选择(A)。

A. 典型安装B. 最小安装C. 自定义安装D. 仅连接10. 在SQL SERVER中局部变量前面的字符为:(D )(A)* (B)# (C)@@ (D) @11. 假如有两个表的连接是这样的:table_1 INNER JOIN table_2 其中table_1和table_2是两个具有公共属性的表,这种连接会生成哪种结果集?(D)(A)包括table_1中的所有行,不包括table_2的不匹配行(B)包括table_2中的所有行,不包括table_1的不匹配行(C)包括和两个表的所有行(D)只包括table_1和table_2满足条件的行12. 对视图的描述错误的是:(C)(A)是一张虚拟的表(B)在存储视图时存储的是视图的定义(C)在存储视图时存储的是视图中的数据(D)可以像查询表一样来查询视图13. 在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是(A )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理与应用教程―SQL Server10.3 习题1.引入视图的主要目的是什么?答:数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合用户的需求。

SQL Server 2005可以根据用户需求重新定义表的数据结构,这种数据结构就是视图。

视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,其结构和数据是建立在对表的查询基础上的。

2.当删除视图时所对应的数据表会删除吗?答:不会。

3.简述视图的优点。

答:使用视图有很多优点,主要表现在:(1) 为用户集中数据,简化用户的数据查询和处理。

(2)保证数据的逻辑独立性。

(3) 重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中。

(4) 数据保密。

4.可更新视图必须满足哪些条件?答:(1)任何修改(包括UPDATE、INSERT和DELETE语句)都只能引用一个基本表的列。

(2)视图中被修改的列必须直接引用表列中的基础数据。

不能通过任何其他方式对这些列进行派生,如通过聚合函数、计算(如表达式计算)、集合运算等。

(3)被修改的列不受GROUP BY、HA VING、DISTINCT或TOP子句的影响。

5.创建索引的必要性和作用是什么?答:数据库的索引就类似于书籍的目录,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。

类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。

相反,如果没有索引,则会导致SQL Server搜索表中的所有记录,以获取匹配结果。

索引的优点包括:(1)大大加快数据的检索速度,这是创建索引的最主要的原因。

(2)创建唯一性索引,保证表中每一行数据的唯一性。

(3)加速表和表之间的连接。

(4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

(5)查询优化器可以提高系统的性能,但它是依靠索引起作用的。

6.聚集索引和非聚集索引有何异同?答:聚集索引会对表和视图进行物理排序,所以这种索引对查询非常有效,在表和视图中只能有一个聚集索引。

非聚集索引不会对表和视图进行物理排序。

如果表中不存在聚集索引,则表是未排序的。

7.在SQL Server Management Studio中创建一个仓库库存信息视图,要求包含仓库库存数据库中三个表的所有列。

答:略。

8.利用T-SQL语句创建一个查询每个学生的平均成绩的视图,要求包含学生的学生号和姓名。

答:CREATE VIEW 学生_平均成绩ASSELECT 学生.学生号,姓名,avg(成绩) AS平均成绩FROM 学生,选课WHERE 学生.学生号=选课.学生号GROUP BY学生.学生号,姓名9.在SQL Server Management Studio中按照选课表的成绩列升序创建一个普通索引(非唯一、非聚集)。

答:略。

10.利用T-SQL语句按照商品表的单价列降序创建一个普通索引。

答:CREATE INDEX index_商品单价ON 商品(单价DESC)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) = '%'ASSELECT * FROM 课程WHERE 课程名LIKE @name5.创建存储过程,计算指定学生(姓名)的总成绩,存储过程中使用一个输入参数(姓名)和一个输出参数(总成绩)。

答:CREATE PROCEDURE Sname @S_n varchar(20), @sum1 int OUTPUT ASSELECT @sum1= sum(成绩) FROM 选课,学生WHERE 姓名=@S_n and 学生.学生号=选课.学生号6.为dept表创建一个实现级联删除的触发器,当执行删除时,激活该触发器同时删除gongcheng表中相应记录(leader列) 。

答:CREATE TRIGGER d_tr ON deptFOR deleteASdelete 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 insertASif not(datepart(mm,getdate())='06' or datepart(mm,getdate())='12')BEGINprint'对不起,只能在每年的6月和12月交党费'rollbackEND8.利用T-SQL扩展方式声明一个游标,查询学生表中所有男生的信息,并读取数据。

要求:(1)读取最后一条记录。

(2)读取第一条记录。

(3)读取第5条记录。

(4)读取当前记录指针位置后第3条记录。

答:略。

12.5 习题1.什么是事务?如果要提交或取消一个事务,使用什么语句?答:事务处理是数据库的主要工作,事务由一系列的数据操作组成,是数据库应用程序的基本逻辑单元,用来保证数据的一致性。

提交或取消一个事务:COMMIT TRANSACTION或ROLLBACK TRANSACTION 语句。

2.事务分为哪几类?答:根据系统的设置,SQL Server 2005将事务分为两种类型:系统提供的事务和用户定义的事务。

根据运行模式的不同,SQL Server 2005将事务分为4种类型:显示事务、隐式事务、自动提交事务和批处理级事务。

3.简述事务回滚机制。

答:(1)如果不指定回滚的事务名称或保存点,则ROLLBACK TRANSACTION命令会将事务回滚到事务的起点。

(2)在嵌套事务时,该语句将所有内层事务回滚到最远的BEGIN TRANSACTION语句,transaction_name也只能是来自最远的BEGIN TRANSACTION语句的名称。

(3)在执行COMMIT 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 TRANSACTIONUSE 教学库UPDATE 选课SET 成绩=成绩+5WHERE 学生号in (SELECT 学生号FROM 学生WHERE 性别=’女’)COMMIT TRANSACTION8.创建一个事务,向商品表中添加一条记录,设置保存点;再将商品编号为“ds-001”的单价改为“2000”。

相关文档
最新文档