《数据库原理与应用》课后作业参考答案.docx
《《数据库原理与应用》课后作业参考答案.docx》由会员分享,可在线阅读,更多相关《《数据库原理与应用》课后作业参考答案.docx(10页珍藏版)》请在冰豆网上搜索。
《数据库原理与应用》课后作业参考答案
模块1数据库理论基础
1.某医院病房计算机管理中心需要如下信息:
科室:
科名、科地址、科电话、医生姓名
病房:
病房号、床位号、所属科室名
医生:
姓名、职称、所属科室名、年龄、工作证号
病人:
病历号、姓名、性别、诊断、主管医生、病房号
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
请设计该计算机管理系统的E-R模型。
答:
2.一个图书馆借阅管理数据库要求提供下述服务:
(1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号唯一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:
任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一教材仅为一个出版社出版,出版社名具有唯一性。
请根据以上情况和假设设计满足需求的E-R模型。
答:
模块3表的操作
一.填空题
1.数字数据可分为整数型、精确数值型和近似数值型3种类型。
其中,精确数值型数据由由整数和小数两部分组成
2.在创建表的命令语句中,要设置表字段属性为自动编号的关键字是IDENTITY。
3.SQLServer2008中,根据表的用途可以分为4类,即系统表、用户表、已分区表和临时表。
4.如果表中记录的某一字段或字段组合能唯一标识记录,则称该字段或字段组合
为_主键_。
5.创建数据库表的命令语句是createtable。
二.选择题
1.使用SQL语句修改表结构时,其语句是下面的(B)选项。
A.ALTERDATABASEB.ALTERTABLE
C.UPDATETABLED.UPATEDABASE
2.下列对表的描述正确的是(C)。
A.在数据库中表用来表示关系模型中的实体
B.表是对数据进行存储和操作的一种逻辑结构
C.表是用来组织和存储数据的数据库对象
D.表可以存储数据库的其他数据库对象
3.在SQLServer2008的数据类型中可以用来存储图片的数据类型是(B)
A.binaryB.imageC.varcharD.int
4.使用系统存储过程(C)可以查看表的行、大小和空间的统计信息。
A.sp_tableB.sp_helpC.sp_spaceusedD.sp_rename
5.订单表Orders的列Orderid的类型是小整型(smallint),根据业务的发展需要将其改为整型(integer),应该使用下面的(A)语句。
A.ALTERTABLEOrdersALTERCOLUMNOrderidinteger
B.ALTERCOLUMNOrderidintegerFROMOrders
C.ALTERTABLEOrders(Orderidinteger)
D.ALTERCOLUMNOrders.Orderidinteger
模块4数据库查询语句
一填空题
1.集合查询的关键字为UNION,在使用它时一定要注意多个查询的列数和列的顺序一定要相同。
2.内连接的关键字为INNERJOIN,外连接的关键字为LEHTJOIN,交叉连接的关键字为CROSSJOIN。
3.在连接多个表时,基本连接使用JOIN_来连接,其他连接形式都需要用到关键字_ON。
4.GROUPBY子句中可以使用聚合函数,那么MAX(数量)表示_最大值。
5.ORDERBY子句中_ASC表示升序排列,DESC表示降序排列,默认情况下为升序排列。
二选择题
1.下面所述连接方式中哪种连接方式中可以使用ON子句(D)。
A.内连接B.基本连接
C.交叉连接D.联合查询
2.下面哪些关键字可用于返回多行的子查询(A)。
A.lN和EXISTS关键字B.SOME,ANY和ALL关键字
C.QUERY关键字D.JOIN关键字
3.下面SELECT语句中哪些子句可以包含子查询(C)。
A.SELECTB.GROUPBY
C.WHERED.ORDERBY
4.下面对HAVING子句说法错误的是(B)。
A.HAVING子句的使用方法与WHERE子句基本相同
B.与GROUPBY子句结合使用时,其限定检索范围为GROUPBY子句结果集
C.与WHERE子句相同,HAVING子句中同样可以使用INLIKE或BETWEEN
D.只能与GROUPBY子句结合使用
5.在SELCET子句中,下列(B)子句用于将查询结果存储在一个新表中。
A.SELCET子句B.INTO子句
C.WHERE子句D.FROM子句
模块5T-SQL语句
一填空题
1.T-SQL语言的三种类型分别是数据定义语言、数据操作语言和数据控制语言。
2.在SQLServer中,变量可分为两类:
_全局变量_和局部变量。
当声明局部变量后,可用SET或SELECT语句为其赋值。
3.常规标识符是指不需要使用分隔标识符等定界符进行分隔的标示符。
4.比较运算能够进行除__text___型、__ntext___型和_image型之外的其他数据类型表达式的比较操作。
5.在Transact-SQL中局部变量用_DECLARE@语句来声明。
二选择题
1.&、*、l和OR这四个运算符中优先级最高的是(B)。
A.&B.*C.lD.OR
2.SELECT语句属于T-SQL的语言类型是(B)。
A.数据定义语言B.数据操纵语言
C.数据控制语言D.流程控制语言
3.下列常量中属于字符串常量的是(A)。
A.‘你好’B.'What"sthis'
C.NNEW'D."What'syourname.
4.下面选项中,属于T-SQL不支持的流程控制语句是(A)。
A.IF…THEIN…ELSEC.DOCASE
B.BEGIN…ENDD.DOWHILE
5.聚合函数(B)可实现平均数的求取。
A.SUMB.AVGC.MIND.MAX
模块6数据库完整性
一填空题
1.唯一约束包括PRIMARYKEY约束和_UNIQUE__。
2.数据库完整性是指数据库要保持数据的正确性和相容性,它是衡量数据库数据
好坏的一种标志。
3.SQLServer2008中包括的约束有主键约束_、外关键字约束、唯一约束、检查约束、缺省约束和_非空约束_。
4.创建规则的语句是CREATERULE,将规则绑定的系统存储过程是sp_bindrule_。
5.SQLServer2008中,可用于实现数据完整性的方法共有两类,即_过程型数据完整性和_声明型完整性
二选择题
1.在下面的约束中,不是用来维护两个表之间的一致性关系的约束是(A)。
A.FOREIGNKEY约束B.CHECK约束
C.UNIQUE约束D.DEFAULT约束
2.假设,创建表时的某列要求可以包含空值,但不允许有重复值,那么在该列不能使用的约束是下面的哪一项(B)。
A.PRIMARYKEY约束B.UNIQUE约束
C.CHECK约束D.NOTNULL约束
3.解除绑定默认值的系统存储过程是(D)。
A.sp_defaultB.sp_undefault
C.sp_bindefaultD.sp_unbindefault
4.创建默认对象时,下面可以作为默认对象的值的是(AB)。
A.常量数据B.函数或表达式
C.表列或数据库对象D.除二进制外的数值型数据
5.规则是数据库对象之一,它的作用与CHECK约束的部分功能相同,在向表的某列插入或更新数据时,用它来限制输入的新值的取值范围,下列说法中正确的是(ABC)。
A.CHECK约束是用CREATETABLE语句在创建表时指定的,而规则需要作为单独的数据库对象来实现
B.在一列上只能使用一个规则,但可以使用多个CHECK约束
C.规则可以应用于多个列,还可以应用于用户定义数据类型,而CHECK约束只能应用于它定义的行
D.表或用户定义数据类型的删除、修改不会对与之相连的规则产生影响。
而CHECK约束则随着表的删除而撤销约束
模块7视图和索引
一填空题
1.创建唯一性索引时,应保证创建索引的列不包括重复的数据,并且没有两个或两个以上的空值。
如果有这种数据,则必须先将其删除,否则索引不能成功创建。
2.一个表最多只可以有_1__个聚集索引。
3.在SQLServer2008中,有两种基本类型的索引:
简单索引和_复杂索引。
4.查看视图的基本信息可以使用系统存储过程_sp_help,查看一个视图orderview的定义文本信息,可以使用sp_helptext。
5.在SQLServer2008系统中,可以把视图分成3种类型,即标准视图、索引视图和分区视图。
二选择题
1.“CREATEUNIQUENONCLUSTEREDINDEXindexidON学生表(学号)”语句创
建了一个(D)索引。
A.唯一索引B.聚集索引
C.主键索引D.唯一非聚集索引
2.如果需要加密视图的定义文本,可以使用下面(D)子句。
A.WITHCHECKOPTIONB.WITHSCHEMABINDING
C.WITHNOCHECKD.WITHENCRYPTION
3.使用SQL语句通过视图修改基本表中的数据时,其关键字是(C)。
A.CREATEB.UPDATE
C.ALTERD.DROP
4.以下关于视图的描述,正确的是(ABD)。
A.视图是从一个或几个基表或视图中导出的虚表
B.视图并不实际存储数据,只在数据字典中保存其逻辑定义
C.视图里面的任何数据不可以进行修改
D.SQL中的SELECT语句可以像对基表一样来对视图进行查询
5.下列几种情况适合创建索引的是(C)。
A.列的取值范围很少B.用作查询条件的列
C.频繁搜索的列D.连接中频繁使用的列
模块8游标、事务和锁
一填空题
1.要成为一个事务,则一个工作单元必须具有原子性、一致性、隔离性和持续性属性,即ACID属性。
2.游标能够部分读取返回的结果集中的一行或一部分行,并允许应用程序通过当前行来定位修改表中的数据。
3.在SOLServer2008中,SQLServer以三种事务模式运行,分别是自动提交事务、和_隐式事务_。
4.事务是SQLServer中的单个逻辑工作单元,一个事务内的所有语句被作为一个整体执行。
5.当多个事务同时对数据库的同一部分数据进行操作时,会引发的并发问题主要有:
丢失修改、脏读、不可重复读取和幻读。
二选择题
1.FETCHPRIOR语句将提取游标结果集中当前行的(B)。
A.第一行B.最后行
C.前一行D.后一行
2.要使游标具有滚动性,应在游标声明语句中使用关键字(B)。
A.INSENSITIVEB.SCROLL
C.RETURND.UPDATE
3.假设声明了一个名为cur的游标,并且游标已经打开。
游标指向的当前行是结果集中的第12行。
如果要提取相对于当前行的前5行中的数据,则可以使用下列的(A)语句。
A.FETCHRELATIVE5FROMcur
B.FETCHRELATIVE.5FROMcur
C.FETCHABSOLUTE5FROMcur
D.FETCHABSOLUTE.5FROMcur
4.假设数据库中有两个事务同时对数据进行操作,事务T1修改表中的数据,事务T2在事务T1还未提交数据前查看了这些数据。
然后,事务T1又撤销了这些修改操作。
那么会发生下面(C)并发问题。
A.丢失更新B.脏读
C.不一致的分析D.幻读
5.事务的(A)属性不可以用来标识事务的全有或全无性质。
A.原子性B.一致性
C.隔离性D.持久性
模块9存储过程和触发器
一填空题
1.在无法得到定义该存储过程的脚本文件。
而又想知道存储过程的定义语句时,使用_sp_stored_procedures_系统存储过程,可以查看定义存储过程的T-SQL语句。
2.针对每一种触发动作,在每个表或视图中只能有一个INSTEADOF类型的触发器。
3.在SQLServer2008中,触发器分为INSTEADOF触发器和_AFTER触发器。
4.为了接收某一存储过程的输出参数值,需要一个变量来存放该值,在该存储过程的调用语句中,必须为这个变量加上OUTPUT声明。
5.系统存储过程创建和保存在master数据库中,都以sp_为名称的前缀,可以在任何数据库中使用系统存储过程。
二选择题
1.以CREATEPROCEDURE为关键字的创建语句可以包括(ABCD)。
A.CREATETABLEB.DROPTABLE
C.ALTERTABLED.CREATEDEFAUT
2.在一个表上可以有(B)不同类型的触发器。
A.种B.两种
C.三种D.无限制
3.要查看ove10rders储存过程的内容,可以使用的语句是(C)。
A.EXECsp_helptextove10rders
B.EXECsp_helpoverOrders
C.EXECsp_restored_proceduresoverOrders
D.EXECsp_dependsoverOrders
4.下而选项中属于存储过程优点的是(ABC)。
A.增强代码的重用性和共享性
B.可以使运行加快速度,减少网络流量
C.可以作为安全性机制
D.编辑简单
模块10SQLServer安全管理
一填空题
1.SQLServer2008给用户提供了预定义的服务器角色和数据库角色。
2.SQLServer2008的用户权限可以划分为三类:
对象权限、语句权限和隐含权限。
3.SQLServer2008中,一个请求服务器、数据库或架构资源的实体称为,它具有唯一的安全标识符。
4.对于表和视图,拥有者可以授予数据库用户INSERT、UPDATE、DELETE、和SELECT五种权限。
5.SQLServer登录有两种模式,分别是WINDOWS登录方式和SQLSERVER登录方式。
二选择题
1.下列选项中属于Windows身份验证模式的是(ABC)。
A.BUILTIN\ZHTB.PYP\Hoker.som
C.PYP\ZHTD.dbo
2.SQLServer2005的sysusers表所在的数据库为(A)。
A.master数据库B.所有用户创建的数据库
C.所有数据库D.注册表
3.在数据库角色不能被删除的是(ABCD)。
A.dbownerB.dbdenydatawriter
C.publicD.dbdatarcader
4.创建一个默认数据库为ProductSale,用户名是userl,密码为8888的SQLServer身份验证连接,使用语句应为(A)。
A.CREATELOGINtuserl',WITHPASSWORD'8888',DEFAULTDATABASE=
ProductSale
B.EXECUTESP_SETADDROLEMEMBERtuserl','8888','ProductSale'
C.EXECUTESP_SETADDROLE'userl','8888','ProductSale'
D.EXECUTESP_GRANTDBACCESSuserl','8888','ProductSale'
5.下列属于数据库级别安全包括的主体的是(ABCD)。
A.映射为Windows登录B.映射为SQLServer登录
C.数据库角色D.应用程序角色