1第1章数据库基础一、单项选择题1.C2.A3.C4.D5.D6.B7.A8.B9.B10.D11.C12.A13.C14.B15.A16.B17.A18.D19.B20.B21.A;D22.A23.C24.D25.B26.B27.B28.D29.B30.B二、填空题1.概念;数据2.属性3.码4.一对一联系;一对多(或多对一)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;用户定义的;实体;参照10.空植11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的基础。13.将需求分析得到的用户需求抽象为信息结构即概念模型。14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。三、指出以下各缩写的英文意思和中文意思1.DB:DataBase2.DBMS:DatabaseManagementSystem3.RDBMS:4.DBS:DataBaseSystem5.DBA:RelationalDatabaseManagementSystem6.NF:NormalForm7.DDL:DataDefinitionLanguage四、按题目要求回答问题21.答:2.答:参加代表团住所团编号地区成员运动员编号年龄姓名性别1N比赛类别主管类别编号类别名称属于比赛项目项目编号级别项目名称1N比赛时间得分N11N公司编号号公司名公司姓名地址职工编号职工性别聘期XIAOSHOU聘用隶属仓库地址仓库编号仓库名工资XIAOSHOU33.答:(1)关系R是2NF。因为R的候选码为课程名,而课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。又因为不存在非主属性对候选码的部分函数依赖,所以R是2NF。(2)关系R存在删除异常。当删除某门课程时会删除不该删除的教师的有关信息。(3)分解为高一级范式如下:R1课程名教师名数据库刘辉程序设计基础赵兰软件工程陈信计算机基础刘辉R2教师名教师地址刘辉Add1赵兰Add2陈信Add1分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。4.答:(1)R不属于3NF,它是2NF。(2)因为R的候选码为职工号和职工名,而:职工号→单位号,单位号→单位名,所以职工号→单位名,即存在非主属性“单位名”对候选码“职工号”的传递函数依赖。因此不是3NF。规范化后的关系子模式为如下所示的关系R1与R2。R1职工号职工名年龄性别单位号01赵高20男D302高军25男D103董林38男D304林梅25女D3R2单位号单位名D3计算机D1土木工程5.答:(1)关系Stock是1NF,分析如下:4关系Stock的码为(counter,goods),counter、goods为主属性,price为非主属性。存在的函数依赖有:(counter,goods)→pricegoods→price因此可以看出,非主属性price不完全函数依赖于码,不符合2NF的定义。得出结论:关系Stock是1NF(2)存在异常:删除异常:例如,如果删除柜台2的元组,则丢失了货物名称Envelop及其价格1。插入异常:例如,如果知道了商品Lamp的价格20,则不能马上将该商品插入到Stock中,直到有一个柜台进了该货物才行。(3)规范化:将以上关系分解为两个关系如下。关系Counter-Goods关系Goods-PriceCounterGoods1Pen1Ink2Envelop3Bag3pen第2章SQLServer简介一、单项选择题1.B2.C3.D4.B5.C6.D7.A8.B二、简答题1.答:客户机/服务器结构把整个任务划分为客户机上的任务和服务器上的任务。客户机上的任务主要如下。建立和断开与服务器的连接。提交数据访问请求。等待服务通告,接受请求结果或错误。处理数据库访问结果或错误,包括重发请求和终止请求。提供应用程序的友好用户界面。数据输入/输出及验证。服务器上的任务主要如下。为多用户管理一个独立的数据库。管理和处理接收到的数据访问请求,包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成。GoodsPricePen55Ink4Envelop1Bag405管理用户账号、控制数据库访问权限和其他安全性。维护数据库,包括数据库备份和恢复。保证数据库数据的完整或为客户提供完整性控制手段。2.答:(1)两层结构在两层结构中,SQLServer安装在一个中心服务器上,数据库存储在该服务器上,该服务器称为数据库服务器,可以被多台客户机访问。众多的客户机通过网络直接访问数据库服务器。客户机运行处理业务的程序和显示处理结果的程序。两层结构比较适合于用户量较少的情况,当用户量较大时,数据库服务器的性能会显著下降。(2)三层结构在三层结构中引入了一层应用服务器。客户机只运行向应用服务器发送请求和显示请求结果的程序,客户机没有处理业务的程序,应用服务器运行处理业务的程序,多个客户机可以同时访问应用服务器,应用服务器负责访问数据库服务器,并取回处理结果,将结果返回给客户机。三层结构适用于客户量较大的情况。3.答:SQLServer的四个系统数据库是master、model、msdb和tempdb数据库。(1)master数据库是SQLServer系统最重要的数据库,它记录了SQLServer系统的所有系统信息,包括所有的登录帐户信息、系统配置信息、SQLServer的初始化信息和其它系统及用户数据库的相关信息。(2)model数据库是所有用户数据库和tempdb数据库的模板数据库,它含有master数据库所有系统表的子集,这些系统表是每个用户定义数据库所需要的。(3)msdb数据库是代理服务数据库,用于为调度警报、作业和记录操作员的信息提供存储空间。(4)tempdb数据库用于为所有的临时表、临时存储过程提供存储空间,它还用于任何其它的临时存储要求,例如存储SQLServer生成的工作表。tempdb数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb数据库在SQLServer每次启动时都重新创建,因此该数据库在系统启动时总是干净的,临时表和存储过程在连接断开时自动除去。4.答:SQLServer包含的对象如:表、视图、存储过程、索引、触发器。(1)表:在数据库中,所有的数据存放在表中,表由行(记录)和列(字段)组成,一个数据库可以包含多个表。(2)视图:视图是由查询数据表产生的结果,是一种虚构的表。视图把表中的部分数据映射出来供用户使用,这样可以防止所有的用户直接对表进行操作而导致系统的性能和安全性的下降。(3)存储过程:一个存储过程实际上是由一组SQL语句组成的完成特定功能的程序。存储过程在服务器端被编译后可以反复执行。(4)索引:索引是对表中的一个或多个列的值进行排序的结构。可以利用索引提高对数据库表中的特定信息的访问速度。(5)触发器:触发器由一组SQL语句组成,当对表或视图进行某种操作(添加、删除或修改)时,这组命令会在一定情况下自动执行。6第3章服务器与客户端配置一、填空题1.使用Windows身份验证,使用SQLServer身份验证2.Start,pause,continue3.SQLServer配置管理器4.sp_configure5.DSN二、选择题1.C2.C3.C4.A5.C三、判断题1.A2.B3.B4.B5.A四、问答题1.答:使用netstart命令启动Windows的服务;使用netpause命令暂停Windows服务;使用netcontinue命令继续被暂停的Windows服务;使用netstop命令停止Windows服务。2.答:SQLServer2008支持的网络协议包括SharedMemory、NamedPipes、TCP/IP和VIA等。3.答:参照表3-1。五、上机练习题(略)第4章Transact-SQL语言基础一、选择题1.B;C2.C;D;F;G;H3.B4.A;D5.D6.A7.B;D8.D9.B10.A;B;C二、填空题1.a.b.d.c2.常规;分隔;双引号;方括号3.在其中定义局部变量的批处理、存储过程或语句块的内部;任何程序;4.@;@@5.DECLARE@MyvarCHAR(5);SET@Myvar='Hello'76.NULL7.%e%aaa;%e%aaa8.FALSE;TRUE9.math0ANDmath10010.行集函数;聚合函数;标量函数11.SELECTSTR(YEAR('03/25/2012'),4)+'年'+STR(MONTH('03/25/2012'),2)+'月'+STR(DAY('03/25/2012'),2)+'日'12.CAST(GETDATE()ASchar)13.CONVERT(char,GETDATE(),105)14.CONVERT函数的参数比CAST函数的参数多了一个“样式”,该参数用于指定以不同的格式显示日期和时间。15.--(双连字符);/*...*/(正斜杠-星号对)16.解析;编译;执行三、指出以下各缩写的英文意思和中文意思1.StructuredQueryLanguage结构化查询语言2.DataDefinitionLanguage数据定义语言3.DataManipulationLanguage数据操纵语言4.DataControlLanguage数据控制语言四、上机练习题1.答:PRINTGETDATE()--GETDATE()获得当前日期,PRINT将其打印出来2.答:DECLARE@VarDatedatetimeSET@VarDate=GETDATE()--今天的日期PRINTDATEADD(day,12,@VarDate)--12天后的日期3.答:实现语句为:usepubsdeclare@Abinary,@Bbinaryset@A=100set@B=200print@Aprint@B打印结果为:0X640XC84.答:DECLARE@iint,@sumintSET@i=1SET@sum=0WHILE@i=10008BEGINSET@sum=@sum+@iSET@i=@i+2ENDPRINT'1+3+5+7+……+999的值为:'+str(@sum)第5章数据库管理一、选择题1.B;A;C;B2.B;A;C3.A;C4.C5.A6.B二、填空题1.主数据库;次数据库;事务日志2.主数据库;次数据库;事务日志3.逻辑文件名;物理文件名4.未指定组的其他5.创建数据库的用户6.ATTACH7.DROPDATABASE8.sp_detach_db三、简答题1.答:事务日志文件用于存储数据库的更新情况等事务日志信息。例如,使用INSERT、UPDATE、DELETE等对数据库进行更改的操作都会记录在事务日志文件中,当数据库损坏时,可以使用事务日志文件恢复数据库。2.答:“文件自动增长”表示用户可以指定数据文件自动按下列选项所指定的大小增长。按兆字节:指定数据文件增长所基于的兆字节数。按百分比:指定希望数据文件自动增长所基于的百分比。不限制文件增长:指定数据文件增长不受限制。限制文件增长(MB):指定数据文件可以增长到的大小(MB)。“自动收缩”表示允许定期对数据库进行检查,当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25%。当文件大小没有超过其建立时的初始大小时,不会缩减