您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > sql课后《习题》答案
1第1章SQLServer概述1、有个用户的计算机不能连接到中心机房的SQLServer2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQLServer2000。下面的哪些工具有助于你诊断和解决该问题?(多选)A.EnterpriseManagerB.ServerNetworkUtilityC.ProfilerD.QueryAnalyzerE.ClientNetworkUtility答:B和E2、你在SQLServer2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT*FROMCustInfo?A.ModelB.TempdbC.MsdbD.MasterE.Pubs答:A、C、E3、你正在使用SQLServer2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQLServer2000中启用了网络加密功能。请问该功能在哪一层被实现?A.TCP/IP协议软件B.超级套接字层C.开放式数据服务D.关系引擎E.存储引擎答:B4、你正在使用SQLServer2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT*FROMProducts”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现?A.客户端的数据库APIB.客户端的NET-LIBRARYC.服务器端的开放式数据服务2D.服务器端的关系引擎E.服务器端的存储引擎答:D5、你要为中小型商场开发一个商场收银软件,该软件由多个收银员在各自的收银台使用。后端数据库是SQLServer2000,所有收银员的收银信息集中存放在几个表内。在采用两层架构(2-Tier)的软件开发时,商场收银软件需要数据库的帐号和密码(SQLServer认证)或Windows认证才能连接和访问数据库,就象SQLServer2000的查询分析器在刚运行的时候要求你输入帐号和密码或使用Windows认证才能访问数据库。显然,你希望只有商场收银软件才有权力访问数据库,而收银员不应当有使用查询分析器等其它软件直接修改数据库数据的权力,否则可能会导致贪污和恶意破坏的发生。所以,(1)软件使用的数据库帐号采用Windows认证还是SQLServer认证,如何实现该目标?(2)在采用三层架构(3-Tier)的软件开发时,客户端程序会不会出现该问题?答:(1)不能采用Windows认证,只能采用SQLServer认证。因为商场收银软件若采用Windows认证,收银员登录到Windows系统后,不光商场收银软件可以访问数据库,收银员也可以用SQLServer2000的查询分析器等软件以Windows认证方式来访问数据库。如果采用SQLServer认证方式,商场收银软件需要帐号和密码,当然这不能由收银员来提供。一种典型的做法是:将数据库的帐户和密码放在商场收银软件中(或在Windows的注册表中),并禁止在数据库中改动该帐号和密码。帐号和密码在软件中要适当加密,就很难从软件的可执行代码内获得帐号和密码,这种安全级别对一般的商场收银系统已经足够。为了检验收银员的身份,你要自己编写管理收银员的软件代码,在收银软件刚开始运行时要求输入收银员的代号和密码,这些代号和密码可以放在数据库的一个表中。(2)在采用三层架构(3-Tier)的软件开发时,客户端程序不会出现该问题。三层架构分为:客户端(收银员操作界面),应用服务器(商业逻辑),数据库服务器(SQLServer2000)。客户端只向应用服务器发出请求,应用服务器接收请求后,根据商业逻辑对数据库服务器发出命令来访问数据库,最后将结果传送给客户端。因为客户端不直接访问数据库服务器,它不需要数据库服务器的帐号和密码。6、已经在SQLServer中为Windows2000用户创建了一个新的登录账户。希望该组的成员能够使用SQLServer。那么你还需要完成其他哪些额外的安全设置任务?答:首先,必须把Windows2000用户组添加到希望用户访问的数据库中,之后,将权限授予希望用户访问的数据库对象。7、希望浏览SQLServer数据库中对象的元数据。那么你应该使用什么方法?答:可以查询信息架构视图、执行系统存储过程或使用系统函数。也可以直接查询系统表,但不推荐使用这种方法,原因是在产品的后续版本中,这些表可能会发生变化。8、希望引用同一个服务器上的不同数据库中的两个表。从Inventory数据库中,希望引用3Sales数据库中的某个表。那么如何在一个查询中引用Sales数据库中的该表?答:应该使用完整修饰名称引用Sales数据库中的表。例如,应该指定Sales.dbo.tablename或Sales.tablename。第2章创建和管理数据库1.数据库操作时服务器突然掉电,当重新启动后,您如何恢复已经完成但还没把数据写入硬盘的事务,以及正在进行一半的事务?A、运行ROLLFORWARDALLTRANSACTIONB、不用。SQLServer2000自动恢复,即通过日志恢复所有已经完成但还没把数据写入硬盘的事务到硬盘,并撤消正在进行一半的事务。C、先备份事务日志,再将数据库恢复到上一完全数据库备份,再把刚备份的事务日志恢复到当前数据库的日志中。D、没有办法。只能使用数据库以前的备份。答:B9、你使用SQLServer2000数据库开发一个小型的酒店管理系统。你用下面的语句创建数据库:CREATEDATABASEJiuDianONPRIMARY(NAME=JiuDianData,FILENAME='c:\cyj\JiuDianData.mdf',SIZE=100,MAXSIZE=200,FILEGROWTH=10)LOGON(NAME=JiuDianLog,FILENAME='c:\cyj\JiuDianLog',SIZE=50,MAXSIZE=100,FILEGROWTH=10现在酒店营业的数据为150MB。对其中50%的数据进行备份并删除后,要把数据库立即缩小为初始的大小(即100MB)。下面哪条语句能够实现该功能?A.DBCCSHRINKFILE(JiuDianData,NOTRUNCATE)B.DBCCSHRINKDATABASE(JiuDianData,25)C.DBCCSHRINKDATABASE(JiuDianData,100)D.ALTERDATABASEJiuDianDataSETAUTO_SHRINKON4答:B10、用SQL语句创建满足如下要求的数据库:(1)数据库名称为Library;(2)主文件组有两个数据文件。第一个数据文件:逻辑名为LibraryData1,文件名为“c:\cyj\LibraryData_1.mdf”,文件初始大小为50MB,文件的最大大小不受限制,文件的增长率为20%。第二个数据文件:逻辑名为LibraryData2,文件名为“c:\cyj\LibraryData_2.ndf”,文件初始大小为50MB,文件的最大大小不受限制,文件的增长率为10MB。(3)日志只有一个数据文件,逻辑名为LibraryLog,文件名为“c:\cyj\LibraryLog.ldf”,文件初始大小为10MB,文件的最大大小为50MB,文件的增长率为10MB;答:CREATEDATABASELibraryONPRIMARY(NAME=LibraryData1,FILENAME='c:\cyj\LibraryData_1.mdf',SIZE=50MB,MAXSIZE=UNLIMITED,FILEGROWTH=20%),(NAME=LibraryData2,FILENAME='c:\cyj\Library_2.ndf',SIZE=50MB,MAXSIZE=UNLIMITED,FILEGROWTH=10)LOGON(NAME=LibraryLog,FILENAME='c:\cyj\LibraryLog.ldf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10MB)11、您现在有四个物理硬盘来存放一个很大的数据库,该数据库存放大量的销售数据。数据库主要用于数据读取和统计,以便市场经理决定经营策略。为了提高数据的读取性能,数据库内的表进行了大量索引。如何生成数据库,使性能最佳?答:可以创建用户自定义的文件组fgroup1,同时分别在三个硬盘上创建三个文件(Data1.ndf、Data2.ndf和Data3.ndf),并将这三个文件指派到文件组fgroup1中。然后,指定文件组fgroup1为默认的文件组。在创建表时,如果没有特别声明,都自动创建在默认的文件组,以后存放在表中的数据将自动分散在三个硬盘上。这样,以后对表中数据的查询也将分散到三个磁盘上,因而性能得以提高。另外,在第四个硬盘创建日志文件。12、SQLServer在故障(如掉电)或服务器关闭之后重启时对数据库的恢复有三个阶段:分析阶段,重做阶段,取消阶段。参考本章讨论该问题时的附图,请举例说明为什么取消阶段会涉及到最后一个检查点以前的事务,而不是只涉及最后一个检查点以后的事务?答:因为可能有一些事务在最后一个检查点到来之前就已经开始,但是到故障(如掉电)或服务器关闭时该事务还没有结束,这些事务必须取消。13、你正在创建一个不经常修改的数据库,该数据库主要用于决策支持和只读查询。你会为5事务日志分配多大的数据库空间百分比?答:答案并不唯一。可以在10%到20%之间。不应该超过20%。由于该数据库的更改活动相当少,分配的空间百分比接近10%是合理的。14、使用文件组有那些优点?答:可以把表放在指定的硬盘上。能够独立地备份大型表。15、你正在负责管理你的机构中关键任务的帐务记录。哪一种数据恢复模型适合你的数据库?答:应该使用FullRecovery(完全恢复)模型。16、GAM、SGAM和IAM页都跟踪数据分配。那么,IAM页与GAM和SGAM页有什么不同?答:GAM和SGAM页跟踪所有对象。IAM页只跟踪一个特定表或索引的分配。第3章创建数据类型和表2.在学生成绩表tblCourseScore中的列Score用来存放某学生学习某课程的考试成绩(0~100分,没有小数),用下面的哪种类型最节省空间?A、intB、smallintC、tinyintD、decimal(3,0)答:C17、你在SQLServer2000数据库中建立了一些相似的表,其格式如下,只是表名和列名不同。CREATETABLEOneTable(pkuniqueidentifier,namevarchar(20),otheruniqueidentifier,)应用程序开发人员对这些表编写了一些相似的查询。因为列的名称相似,他们喜欢用6ROWGUIDCOL关键字来引用列名。当执行这些查询时,会产生什么结果?A、SQLServer2000会返回错误,因为表包含两个类型为uniqueidentifier的列;B、当执行的查询在引用ROWGUIDCOL关键字的时候,SQLServer2000会返回错误;C、SQLServer2000会返回错误,因为列pk没有声明为关键字;D、SQLServer2000不会产生错误。答:B18、定单表Orders的列OrderID的类型是小整型(smallint),根据业务的发展需要改为整型(integer),应该使用下面的哪条语句?A、ALTERCOLUMNOrderIDintegerFROMOrdersB、ALTERTABLEOrders(OrderIDinteger)C、ALTERTABLEOrdersALTERCOLUMNOrderIDintegerD、ALTERCOLUMNOrders.OrderIDinteger答:C19、一个数据库中的用户定义数据类型能够用于同一个服务器上的另一个数据库中吗?答:不能。用户定义数据类型局限于单个数据库。你可以在另一个数据
本文标题:sql课后《习题》答案
链接地址:https://www.777doc.com/doc-2850638 .html