《关系数据库与SQL Server 2008》--习题参考答案_第1页
《关系数据库与SQL Server 2008》--习题参考答案_第2页
《关系数据库与SQL Server 2008》--习题参考答案_第3页
《关系数据库与SQL Server 2008》--习题参考答案_第4页
《关系数据库与SQL Server 2008》--习题参考答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、关系数据库与SQL Server 2008习题参考答案第1章 关系数据库原理【课后习题】一、填空题1DBMS(数据库管理系统)2安全性3实体 属性 联系41:N5网状模型6外键7实体8型9每个实体的码10N端实体的码11诸实体码的组合12实体二、选择题1D2B3A4A5C6B7D8D9A三、简答题1数据是数据库中存储的基本对象。数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。2数据库系统的特点有:数据

2、结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。3数据库管理系统的主要功能有:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。4等值连接是把两个表中的行按照给定的等值条件进行拼接而形成新表,结果列为参与连接的两个表的所有列。自然连接是一种特殊的等值连接,要求参与连接的两个表有共同属性(列),其结果是在参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后所得的新表。5关系的完整性规则包括实体完整性、域完整性和参照完整性三个方面。实体完整性用于保证数据库表中的每一个元组都是唯一的,要求在任何关系的任何一个元组中,主键的值不能

3、为空值、也不能取重复的值。域完整性用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内,要求由用户根据实际情况,定义表中属性的取值范围。参照完整性用于确保相关联的表间的数据保持一致,要求“不引用不存在的实体”,即:不允许在一个关系中引用另一个关系中不存在的元组。例如:主表:学生(学号,姓名,性别,专业号,年龄)从表:专业(专业号,专业名)主表的“专业号(外键)”的取值只能为两种情况:若取非空值,则它必须是从表中存在的值;取空值(null),表明尚未给学生分配专业,null不等于0或空字符串。6一个低一级范式的关系模式,通过分解可以转换为若干个高一级范式的关系模式,这种过程称为关系的规

4、范化。关系的规范化主要目的是解决数据库中数据冗余、插入异常、删除异常和更新异常等数据存储问题。关系规范化的基本方法是逐步消除关系模式中不合适的数据依赖,使关系模式达到某种程度的分离,也就是说,不要将若干事物混在一起,而要彼此分开,用一个关系表示一事或一物,所以,规范化的过程也被认为是“单一化”的过程。从第一范式至BCNF,它们之间的关系是BCNF3NF2NF1NF。从第一范式到第二范式,消除了非主属性对码的部分函数依赖;从第二范式到第三范式,消除了非主属性对码的传递函数依赖;从第三范式到BCNF,消除了关系中冗余的码。四、计算题1(1)ABCDE1233145662(2)ABCBCD12323

5、9456560(3)ABCD12394560(4)空(5)全外连接ABCD12394560789nullnull273左外连接ABCD12394560789null右外连接ABCD12394560null273五、设计题1 1:1的E-R图 1:n的E-R图 m:n的E-R图23公司(公司代码,公司名,地址)部门(部门代码,部门名)员工(员工代码,姓名,性别,年龄,职务)商品(商品代码,商品名,单价,数量)厂家(厂家代码,厂家名,地址)拥有(公司代码,部门代码)属于(部门代码,员工代码)销售(员工代码,商品代码,销售量)供货(商品代码,厂家代码)4(1)基本的函数依赖有:(商店编号+商品编号)

6、部门编号,(商店编号+部门编号)负责人,(商店编号+商品编号)数量(2)由题意,上面的函数依赖可知商店编号是主属性,商品编号也是主属性,由这两个属性,可以确定关系元组的所有属性,所以R的候选码是:商店编号+商品编号(3)R(商店编号,商品编号,数量,部门编号,负责人)最高已达到2NF。因为负责人是码的传递依赖。(4)要达到3NF,必须消除非主属性对码的传递依赖。对R分解后的两个模式如下:R1(商店编号,商品编号,数量,部门编号)R2(部门编号,负责人)第2章 SQL Server 2008基础【课后习题】一、填空题1一个实例2SQL Server配置管理器3对象资源管理器4Windows身份验

7、证 混合模式验证5Windows服务 配置管理器6远程 本地7Shared Memory8TCP/IP二、简答题1对象资源管理器窗口用于管理数据库中的所有对象,在该窗口中,可以完成注册、启动和停止服务器,配置服务器属性,创建数据库以及表、视图、存储过程等数据库对象,生成Transact-SQL对象以创建脚本、创建登录账户、管理数据库对象权限等,配置和管理复制,监视服务器活动,查看系统日志等操作。2该窗口用于编写和运行Transact-SQL脚本。它既可以在连接模式下工作,也可以在断开模式下工作。SQL Server 2008的“查询编辑器”支持彩色代码关键字,可视化地显示语法错误,允许开发人员

8、运行和诊断代码等。3使用SQL Server Profiler工具可以对Microsoft SQL Server 2008系统的运行过程像摄像机一样进行摄录。SQL Server Profiler是用于从服务器中捕获SQL Server 2008事件的工具。这些事件可以是连接服务器、登录系统、执行Transact-SQL语句等操作。这些事件被保存在一个跟踪文件中,以便日后对该文件进行分析或用来重新执行指定的系列步骤,从而有效地发现系统中性能比较差的查询语句等相关问题。第3章 数据库的创建与管理【课后习题】一、填空题1Master数据库 Model数据库 Msdb数据库 Tempdb数据库 Re

9、source数据库2主数据文件 次数据文件 事务日志文件3可恢复所有未完成的事务,保证数据库操作的一致性和完整性4CREATE DATABASE5ALTER DATABASE6DROP DATABASE7sp_helpdb8为空 删除文件组中的文件9主10备份二、选择题1-5 ADAAD6-8 DDB三、判断题1-5 FFTTF6-9 FFFT【课外实践】任务1:create database testdbon primary( name=td1, filename=e:sqltd1.mdf', size=5, maxsize=20, filegrowth=10% ),( name=t

10、d2, filename=e:sqltd2.ndf', size=10, maxsize=30, filegrowth=2 ),filegroup user1( name=td3, filename=e:sqltd3.ndf', size=5, maxsize=unlimited, filegrowth=2 )log on( name=tlog, filename=' e:sqltlog.ldf', size=4, maxsize=unlimited, filegrowth=20% )任务2:1.alter database testdbadd filegrou

11、p u32.alter database testdb modify filegroup u3 name=u23.alter database testdb modify file(name=td2, size=10, maxsize=50, filegrowth=15%)4.alter database testdb modify name=gldb 第4章 数据表的创建与管理【课后习题】一、填空题1主键约束 唯一性约束 外键约束 检查约束 非空约束 默认值约束2单个列定义 所有列定义 修改表的方式3一 多 空 非空4相应的约束5外键 T26空7修改 删除8域9参照10identity二、选

12、择题1-5 BBDAC三、判断题1-5 FTFTF6-10 FFTFT第5章 数据查询【课后习题】一、填空题1SELECT2WHERE3连接4分组5排序6ORDER BY7Transact-SQL8DISTINCT9HAVING10BETWEENAND11LIKE12ANSI语法 SQL Server语法13比较14ANY ALL IN二、选择题1-5 DCDAD三、判断题1-5 TFTFF6-7 FF【课外实践】任务1:1select 课程名, 授课教师, 开课学期from kcwhere 开课学期=22select 姓名,联系电话, 专业名, 性别from xsqkwhere 专业名=信息

13、安全 and 性别=03select 学号, 课程号, 成绩from xs_kcwhere 成绩>=904select 学号, 课程号, 成绩from xs_kcwhere 成绩>=90 or 成绩<605select 学号, 姓名, 出生日期from xsqkwhere 出生日期 not between 1995-11-01 and 1996-2-296select *from xsqkwhere 姓名 like 陈_7select *from xsqkwhere 学号 like %8%8select *from xsqkwhere 联系电话 like _69%9selec

14、t *from kcwhere 开课学期 in (1, 3, 5)10select 学号, 姓名, 出生日期from xsqkorder by 出生日期任务2:1select 开课学期, sum(学分) as 每学期的总学分from kcgroup by 开课学期2select 学号, count(*) as 每个学生选修的课程门数from xs_kcgroup by 学号3select 课程名称, 开课学期, 学分from kccompute sum(学分)4select 课程名称, 开课学期, 学分from kcorder by 2compute sum(学分) by 开课学期5selec

15、t 学号, avg(成绩) as 学生的平均分from xs_kcgroup by 学号6select 学号, avg(成绩) as 学生的平均分from xs_kcgroup by 学号having avg(成绩) between 70 and 807select 学号, 课程号, 成绩into temp_kcfrom xs_kcorder by 课程号, 成绩 desc8select max(成绩) as 101课程的最高分, min(成绩) as 101课程的最低分from xs_kcwhere 课程号=1019select 开课学期, count(*) as 每学期开设的课程门数fro

16、m kcgroup by 开课学期10select 专业名, count(专业名) as 各专业人数from xsqkgroup by 专业名任务3:1select 学号, 课程名, 授课教师, 开课学期, 成绩from kc, xs_kcwhere kc.学号=xs_kc.学号 and 成绩<602select xsqk.学号, 姓名, kc.课程号, 课程名, 成绩from xsqk, kc, xs_kcwhere xsqk.学号=xs_kc.学号 and kc.课程号=xs_kc.课程号 and 课程名='网页设计'任务4:1.select 学号, 姓名, 联系电话

17、from xsqkwhere 学号 in(select 学号from xs_kcwhere 课程号=103 and 成绩<60)2select 学号, 姓名from xsqkwhere (select count(课程号)from xs_kcwhere xsqk.学号=xs_kc.学号 and 成绩>=60 )=23select *from xs_kc awhere 成绩=(select max(成绩)from xs_kc bwhere a.课程号=b.课程号)4select *from xs_kc awhere 成绩=(select min(成绩)from xs_kc bwher

18、e a.学号=b.学号)5select distinct a.课程号, 人数=(select count(学号) from xs_kc b where b.课程号=a.课程号)from xs_kc aorder by a.课程号 asc第6章 视图与索引【课后习题】一、填空题1标准视图 索引视图 分区视图2WITH ENCRYPTION3sp_helptext4聚集索引 非聚集索引5数据库6基表7聚集索引 非聚集索引 唯一索引 复合索引 全文索引 XML索引8创建表9主键 唯一10查询二、选择题1-5 DCBAA6-10 CCDBC三、判断题1-5 TFFFF6-10 FFFTT11-12 T

19、T【课外实践】任务1:USE xscjGOCREATE VIEW v_开课信息 ASSELECT 课程号,课程名,开课学期,学时FROM kcWHERE 开课学期>=3任务2:USE xscjGOCREATE VIEW v_选课信息ASSELECT 姓名,课程名FROM xsqk,kc,xs_kcWHERE xsqk.学号=xs_kc.学号 AND kc.课程号=xs_kc.课程号 AND 专业名=多媒体技术任务3:CREATE INDEX IX_课程名ON KC(课程名)第7章 规则与默认值【课后习题】一、填空题1对象 数据库2CREATE RULE3DROP RULE4DEFAULT

20、5sp_bindefault二、选择题1-3 CBD三、判断题1-5 FTTTF6-9 TTTF【课外实践】任务1:USE xscjGOCREATE RULE xs_ruleAS学分>=0 AND 学分<=6GOEXEC sp_bindrule xs_rule,kc.学分任务2:USE xscjGOCREATE DEFAULT kkxq_def AS 1GOEXEC sp_bindefault kkxq_def,kc.开课学期第8章 T-SQL编程【课后习题】一、填空题1GO2 3ab4BEGIN END5BREAK CONTINUE6某一时刻 一段时间间隔7多 一8GETDATE

21、( )二、选择题1-5 CBBDA6-7 CD三、判断题1-5 FTFFF6-8 FFT四、简答题1SQL标识符的命名必须遵守以下规则:标识符的长度可以为1128个字符。标识符的第一个字符必须是英文字母、下划线、汉字、或者#。默认情况下,标识符内不允许含有空格,也不允许将SQL关键字作为用户定义的标识符。2局部变量的声明:DECLARE 变量名 数据类型 ,n 局部变量的赋值:SET 变量名=表达式 SELECT 变量名=表达式 ,n FROM WHERE 3全局变量是系统定义的变量,以符号开头,用户不能定义全局变量,也不能修改其值,全局变量在相应的上下文中是随时可用的,通常被服务器用来跟踪服

22、务器范围和特定会话期间的信息。4 RETURN语句用于从查询或过程中无条件退出。RETURN的执行是即时且完全的,可在任何时候用于从过程、批处理或语句块中退出,在它之后的语句不会被执行。RETURN与BREAK很相似,不同的是RETURN可以返回一个整数。【课外实践】任务1:declare x varchar(30)set x=Welcome to SQL Serverprint upper(x)print lower(x)任务2:waitfor delay 00:00:30use xscjselect * from kcwaitfor time 11:30:30use xscjselect

23、* from xsqk任务3:use xscjgodeclare n intselect n=count(*) from xsqk where datediff(yy,出生日期,getdate()>20if n>=0print '年龄大于20的学生人数有:'+cast(n as varchar(5)elseprint '没有年龄大于20的学生'任务4:declare sum intset sum=(select sum(学分) from xs_kc)while sum<100beginupdate xs_kc set 学分=学分+1set su

24、m=(select sum(学分) from xs_kc)end第9章 存储过程与触发器【课后习题】一、填空题1参数 输入 输出2EXECUTE3DML触发器 DDL触发器 登录触发器4FOR | AFTER INSTEAD OF5INSERT UPDATE DELETE二、选择题1-4 BDDC三、判断题1-5 FFTTT【课外实践】任务1:use xscjgocreate procedure p1kch char(3), kcm varchar(20), skjs varchar(20), kcxq tinyint, xs tinyint, xf tinyintasinsert kc va

25、lues(kch, kcm, skjs, kcxq, xs, xf)goexec p1 '115','数据库基础','张玲',2,68,4任务2:create proc p2kch char(3)asupdate xs_kc set 成绩=60 where 课程号=kch and (成绩>=55 and 成绩<60)godeclare kch char(3)select kch='103'exec p2 kchgoselect * from xs_kc where 课程号=kch任务3:create proc p3xh

26、 char(10), xm varchar(10) output, xb bit output, zym varchar(20) output, szx varchar(20) outputasselect xm=姓名, xb=性别, zym=专业名, szx=所在系from xsqkwhere 学号=xhgodeclare xh char(10), xm varchar(10), xb bit, zym varchar(20), szx varchar(20)select xh='2012130101'exec p3 xh, xm output, xb output, zym

27、 output, szx outputprint '学号为'+xh+'的信息如下:'print ''print '姓 名:'+xmprint '性 别:'+convert(varchar(2),xb)print '专业名:'+zymprint '所在系:'+szx任务4:create trigger t4on kcfor insertasprint 插入成功!任务5:create trigger t5on kcfor updateasupdate xs_kc set 课程号=inse

28、rted.课程号where 课程号=deleted.课程号任务6:create trigger t6on xsqkfor deleteasdeclare xh char(10)select xh=学号 from deletedprint '准备删除xs_kc表'+xh+'学生的成绩信息'delete xs_kc where 学号=xhprint '已经删除xs_kc表'+xh+'学生的成绩信息'第10章 SQL Server 2008安全管理【课后习题】一、填空题1Windows验证 混合模式验证2sa3操作数据库 数据库4dbo

29、 guest sys5自定义角色 预定义角色6固定服务器角色7三 服务器角色8固定数据库角色 用户自定义角色 应用程序角色9对象权限 语句权限 隐式权限10Grant Revoke Deny二、简答题1sysadmin角色为需要完全控制整个SQL Server和安装的数据库的用户而设计,其成员能在SQL Server系统中执行任何任务。所以win_user应添加到sysadmin角色中。2db_owner角色用于需要完全控制数据库的所有方面的用户,所以ST_su应该添加到db_owner角色中第11章 SQL Server 2008开发工具【课后习题】一、简答题1Business Intelligence Development Studio是用于开发商业解决方案的主要环境,其中包括 Analysis Services、Integration Services 和 Reporting Services项目。每个项目类型都提供了用于创建商业智能解决方案所需对象的模板,并

温馨提示

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

评论

0/150

提交评论