数据库技术(SQLServer)习题与参考答案第一章:1、SQLServer2005有哪些新增特性?答:SQLServer2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在CommonLanguageRuntime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。2、SQLServer2005安装的软件和硬件环境是什么?答:SQLServer2005安装的软件和硬件环境参见教材6。3、SQLServer2005有哪些版本?有哪些服务组件?答:SQLServer2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQLServer数据库引擎、AnalysisServices、ReportingServices、NotificationServices、IntegrationServices等。4、什么是实例?经常提到的SQLServer2005服务器和服务器实例是否具有相同的含义?答:实例就是SQL服务器引擎,每个SQLServer数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQLServer服务器就是一个实例,一台计算机上,可以安装多个SQLSERVER,每个SQLSERVER就可以理解为是一个实例。5、默认实例和命名实例有何差别?在安装和使用上有何不同?答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQLSERVER2005命名设置保持默认的话,那这个实例就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。6、SQLServer2005的安全性验证分为哪两个阶段?答:第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,是否具有“访问权”。7、SQLServer2005有哪些主要的实用工具?每个工具都有什么用途?答:SQLServerManagementStudio,是MicrosoftSQLServer2005中的新组件,这是一个用于访问、配置、管理和开发SQLServer的所有组件的集成环境,是SQLServer2005中最重要的管理工具。SQLServerConfigurationManager,用来管理SQLServer2005所提供的服务、服务器与客户端通信协议以及客户端的基本配置管理。SQLServer外围应用配置器用来启用、禁用、开始或停止SQLServer2005的功能、服务和远程连接。NotificationServices命令提示是用来开发及部署应用程序以产生和传送通知的平台。ReportingServices配置用于配置和管理SQLServer2005的报表服务器。SQLServer错误和使用情况报告。SQLServerProfiler也称为SQLServer事件探查器,用于监视SQLServer数据库引擎和AnalysisServices的实例,并捕获数据库服务器在运行过程中发生的事件,将事件数据保存在文件或表中供用户分析。第二章:1、在SQLServer2005中数据库文件有哪3类?各有什么作用?答:SQLServer2005中数据库文件有主数据文件、辅助数据文件、事务日志文件。主数据文件是数据库的起点,指向数据库中文件的其他部分,同时也用来存放用户数据;辅助数据文件专门用来存放数据;事务日志文件存放恢复数据库所需的所有信息。2、SQLServer2005中数据文件是如何存储的?答:SQLServer2005中采用以页为数据库存储的基本单位,数据文件的页按顺序编号,文件首页的页码是0。每个文件都有一个文件ID号。在数据库中惟一标识一页,需要同时使用文件ID和页码。在每个文件中,第一页是包含文件特性信息的文件首页,在文件开始处的其他几个页中包含系统信息,如分配映射表。系统页存储在主数据文件和第一个事务日志文件中,其中有一个系统页包含数据库属性信息,它是数据库的引导页。3、SQLServer2005中创建、查看、打开、删除数据库的方法有哪些?答:方法分别有两种,即可以通过SQLServerManagementStudio图形化界面实现,也可以通过SQL语句命令实现。4、通过SQL语句,使用__CREATE_DATABASE_命令创建数据库,使用_EXECsp_helpdb_命令查看数据库定义信息,使用_EXECsp_dboption命令设置数据库选项,使用_ALTERDATABASE_命令修改数据库结构,使用_DROPDATABASE_命令删除数据库。5、安装SQLServer2005时,系统自动提供的4个系统数据库分别是什么?各起什么作用?答:系统自动提供的4个系统数据库分别是master数据库、model数据库、msdb数据库、tempdb数据库。作用参见教材3.2节。第三章:1、如何理解表中记录和实体的对应关系?为什么说关系也是实体?在表中如何表示?答:实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。表中每条记录对应一个实体,而每个字段保存着对应实体的属性值。2、说明主键、惟一键和外键的作用。说明它们在保证数据完整性中的应用方法。答:主键是唯一识别一个表的每一记录,作用是将记录和存放在其他表中的数据进行关联,并与外键构成参照完整性约束。惟一键用于指明创建惟一约束的列上的取值必须惟一。外键用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。外键约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。3、参照完整性要求有关联的两个或两个以上表之间数据的_一致性_。参照完整性可以通过建立_主键_和_外键_来实现。4、创建表用__CREATETABLE__语句,向表中添加记录用_INSERTINTO_语句,查看表的定义信息用EXECUTEsp_help语句,修改表用ALTERTABLE语句,删除表用DROPTABLE语句。5、SQLServer2005中有哪些类型数据?答:参见教材表。6、现有图书管理数据库的三个关系模式:图书(总编号,分类号,书名,作者,出版单位,单价)读者(借书证号,单位,姓名,性别,职称,地址)借阅(借书证号,总编号,借书日期)1)利用SQLServer2005创建图书管理库和图书、读者和借阅三个基本表的表结构:2)利用SQLServer2005在三个表中分别插入以下所给元组:图书:总编号分类号书名作者出版单位单价445501TP3/12数据库导论王强科学出版社17.90445502TP3/12数据库导论王强科学出版社17.90445503TP3/12数据库导论王强科学出版社17.90332211TP5/10计算机基础李伟高等教育出版社18.00112266TP3/12FoxBASE张三电子工业出版社23.60665544TS7/21高等数学刘明高等教育出版社20.00114455TR9/12线性代数孙业北京大学出版社20.80113388TR7/90大学英语胡玲清华大学出版社12.50446601TP4/13数据库基础马凌云人民邮电出版社22.50446602TP4/13数据库基础马凌云人民邮电出版社22.50446603TP4/13数据库基础马凌云人民邮电出版社22.50449901TP4/14FoxPro大全周虹科学出版社32.70449902TP4/14FoxPro大全周虹科学出版社32.70118801TP4/15计算机网络黄力钧高等教育出版社21.80118802TP4/15计算机网络黄力钧高等教育出版社21.80读者:借书证号单位姓名性别职称地址111信息系王维利女教授1号楼424112财会系李立男副教授2号楼316113经济系张三男讲师3号楼105114信息系周华发男讲师1号楼316115信息系赵正义男工程师1号楼224116信息系李明男副教授1号楼318117计算机系李小峰男助教1号楼214118计算机系许鹏飞男助工1号楼216119计算机系刘大龙男教授1号楼318120国际贸易李雪男副教授4号楼506121国际贸易李爽女讲师4号楼510122国际贸易王纯女讲师4号楼512123财会系沈小霞女助教2号楼202124财会系朱海男讲师2号楼210125财会系马英明男副教授2号楼212借阅:借书证号总编号借书日期1124455011997-3-191253322111997-2-121114455031997-8-211121122661997-3-141146655441997-10-211201144551997-11-21201188011997-10-181194466031997-12-121124499011997-10-231154499021997-8-211181188011997-9-10第四章:第三章3.6有图书管理数据库的三个关系模式:图书(总编号,分类号,书名,作者,出版单位,单价)读者(借书证号,单位,姓名,性别,职称,地址)借阅(借书证号,总编号,借书日期)1.用SQL完成如下查询:1)找出姓李的读者姓名和所在单位。select姓名,单位from读者where姓名like'李%'2)列出图书库中所有藏书的书名及出版单位。select书名,出版单位from图书3)查找高等教育出版社的所有图书及单价,结果按单价降序排序。select出版单位,书名,单价from图书where出版单位='高等教育出版社'orderby单价desc4)查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。select书名,出版单位,单价from图书where单价between10.00and20.00orderby出版单位,单价asc5)查找书名以计算机打头的所有图书和作者。select书名,作者from图书where书名like'计算机%'6)检索同时借阅了总编号为112266和449901两本书的借书证号。select借阅.总编号,借书证号from图书,借阅where图书.总编号=借阅.总编号and借阅.总编号in('112266','449901')7)查找所有借了书的读者的姓名及所在单位。selectdistinct姓名,单位from读者innerjoin借阅on借阅.借书证号=读者.借书证号8)找出李某所借图书的所有图书的书名及借书日期。select书名,姓名,借书日期from图书innerjoin借阅on图书.总编号=借阅.总编号join读者on借阅.借书证号=读者.借书证号where读者.姓名like'李%'9)查询1997年10月以后借书的读者借书证号、姓名和单位。selectdistinct读者.借书证号,姓名,单位from借阅innerjoin读者on借阅.借书证号=读者.借书证号where借阅.借书日期='1997-10-1'10)找出借阅了FoxPro大全一书的借书证号。select借书证号from借阅where总编号in(select总编号from图书where书名='FoxPro大全')11)找出与赵正义在同一天借书的读者姓名、所在单位及借书日期。select姓名,单位,借书日期from借阅,读者where借阅.借书证号=读者.借书证号and借书日期=(select借书日期from借阅,读者where借阅.借书证号=读者.借书证号and姓名='赵正义')12)查询1997年7月以后没有借书的读者借书证号、姓名及单位。selectdistinct借书证号,姓名,单位f