版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Q.1你是一个数据公司的数据库开发人员,你建立了一个存储了15个不同的高中运动成绩的统计数据库,这些信息将被50个在Web站点上发布运动信息的公司使用,每个公司的站点安排和使用这些统计数据的格式是不同的。你要将数据打包传送给公司,你将怎么做A.使用包含FORXML选项的SELECT语句提取数据。B.XSELEC样句返回的数据使用sppoakewebtask系统存储过程来生成HTML数据。C.对数据库输出的数据建立数据转换服务包,形成使用TAB界定符的文本文件。D.建立一个使用SELMMOJ应用程序来提取数据库中的数据,并将这些数据转换到标准EDI(electronicdatainterchmp
2、)文件。答案:A。解释:数据将会在公司的网站被出版。可扩展标示语言是文件的一种涨价语言包含结构化数据。可扩展标示语言被很好地适合提供富有的网文件。SQL疑问能归还结果如可扩展标示语言不愿标准rowsets。这些疑问直接地可能被运行或从在里面储存的程序。直接地取回结果,那因为挑选出来的陈述可扩展标示语言子句被用。在那里面因为可扩展标示语言子句一个可扩展标示语言模态可能被叙述。这些可扩展标示语言模态是生的,汽车,或露骨的。不正确白答案:B:被储存程序的sp_makeweb用来归还造成HTML格式不愿如标准的rowsets。可扩展标示语言是比HTML一个较复杂的格式而且在这一种情形中被因此。C: 一
3、个定位键定界限的文件可能在支援定位键定界限的文件,像是微软的任何试算表中被分析胜过。对网站是适当的这格式isn挟,然而。D: SQL-DMO为创造数据没被用以可能在网站上被出版。注意:SQL-DMO是被分配管理物体并且装入胶囊在SQL服务器2000个数据库中被发现的物体SQL的短。它允许在支援自动化或COM管理一个SQL服务器安装的所有部份的语言中被写的申请;也就是,它是用产生申请能运行管理的责任。Q.2你是一个邮购公司的数据库开发人员,公司有两台使用SQLServer2000的计算机,分别为CORP俳口CORP2CORP促一台联机事务处理服务器,CORP第储销售历史数据。CORP2乍为一台连
4、接服务器到CORP止。销售部经理要求你建立一个购买软盘的客户的列表,这个列表将每个月产生一次邮购的奖品,软盘在数据库中的类别ID为21。你必须从一个名为SaleSHistory的表中刷新这个信息,这个文件存储在CORP2勺一个数据库上,你要从CORP止执行这个查询,你将使用哪条脚本语句查询AEXECl(.ORP2TrSQLSetverGOSLLLCILustomerlDFROMLUKP2,Aichjve.db0.SalesHistDnWHEREGt呼rvl口二21HSELECTCmtonfrlDFROMOPENROWSET(SQLOLEDB;TORP2Lp*word唱ELECTCustonie
5、rlDFROMArchivedboSalesHisttnvWHERECateeorvID=21)CSFI.ECTCiHrnij?rIDFOMCORP?ArrhivedboSalpsHntcrvWHERECategpryD?-21DEXECspaddsenvrCORP?GOSELECTCuitcuierLDFROMC0RP2Ajcluve.dbo.SaltsHBtoivWHERECaregjcrylD-21答案:C。解释:本例中仅需使用一个带WHER吹句的简单的SELECTFROMg句。通常这种代码具有如下所示的形式:SELECTCustomerlDFROMSalesHistoryWHERECa
6、tegoryID=21然而SalesHistory数据表位於另外一个服务器上。该服务器已经被设置为一个链接服务器,因此我们能够直接的运行分布式查询。我们必须使用由下列四部组成的名称:1. Nameofserver2. Nameofdatabase3. DBO4. Nameoftable本例中可表示为:注意:sp_linkedserver为了要建立一个被联编的伺候器,sp_linkedserver指令能被用。语法:sp_addlinkedserverserver=server,srvproduct=product_name,provider=provider_name,datasrc=data_
7、source,location=location,provstr=provider_string,catalog=catalog不正确白答案:A:该链接服务器已经设置成功,无须再行设置。B:OPENROWSETm来访问链接服务器。OPENROWSETt是用来访问链接服务器中的表的一种替代方法,并且是一种使用OLEDB连接并访问远程数据的一次性的、特殊的方法。D:sp_addserver不是一个有效的储存过程名。Q.3你是Trey研究所的数据库开发人员。你建立了二个处理事务用于将员工数据输入到公司的数据库内。其中一个处理事务处理很重要,用于插入职员名字和地址信息到数据库内。另一个处理事务插入职员
8、人口统计学的数据进数据库之内。这个处理事务比较不重要。数据库管理员已经通知你数据库服务器在使用高峰期间有时会遇到错误。每当这种情况发生时,数据库服务器将任意地结束这两个处理事务之一。你必须确定当数据库服务器结束这些处理事务之一的时候,它从不结束较重要的处理事务。你应该做什么A.把插入雇员姓名和信息的事务的DEADLOCK_PRIORIT设置为LOWB.把插入雇员人口统计学信息的设置事务的DEADLOCK_PRIORIT为LOWC.为插入雇员姓名和地址信息的事务添加条件代码来检查事务是否发生服务器错误1205。D.在交易之内增加ROWLOC。化器提示数据操作SQL声明。E.插入雇员姓名和地址信息
9、的事务的交易隔离级设置为SERIALIZABLEAnswer:B.解释:我们将会出现一个死锁的问题。交易任意地被终止。我们有两个典型的事务:插入雇员姓名和地址信息的重要事务插入雇员人口统计信息的较不重要事务需求指的是当数据库服务器结束些事务时,它从不结束比较重要的事务。如果把较不重要的事件的DEADLOCK_PRIORITY置为LOW,该事务将会优先成为死琐牺牲者。当死琐发生在一重要的和一个较不重要的事务,较不重要的事务将优先成为死琐牺牲者而被结束。而较为重要的事务将无法被结束。我们不能够预期只有二个事务同时运行。而是可以有许多较不重要的交易和许多重要的交易同时运行。我们想象二个重要事务发生死
10、锁。在那种情况下,他们的当中一个会被选中为死琐的牺牲者而被终止。但要求在死琐条件下较为重要的事务从未会被终止,因为两个在这种情况下相等地重要。注:死锁:在SQLServer2000中,一个单用户会议也许有一个或更多进程运行来代表它。各进程也许获取或等待获取各种各样的资源,例如锁,平行地询问与实施相关的资源、进程、以及内存。除内存之外,所有这些资源都参加SQL服务器死锁侦查计划。当两个进程有数据被锁,并且每个进程只有等到其他的进程释放到他们的锁时才能释放掉自己的锁,在这种情况下死琐发生。死锁侦查是由一个称为锁监控器的独立进程来执行的。当锁监控器开始一次死锁,首先查寻一个特殊进程,它辨认进程等待的
11、资源。然后找到那些特殊资源的所有者再递归地继续搜寻那些进程直到它发现一个周期。通过这种方式辨认一个周期中的死锁。在死锁被辨认之后,SQL服务器通过自动地选择可能打破死锁的进程结束死锁。选上的进程称为死锁牺牲者。SQL服务器回滚死锁牺牲者的事务,通过返回信息错误信号1205通知进程应用程序,取消进程的当前的请求,允许非打破的进程事件继续。通常,SQL服务器选择损失最少的进程作为死锁受害者。二者择一,用户能设置处理进程的DEADLOCK_PRIORIT为LOW如果设置为LOW/那该处理进程将优先成为死锁“受害者”。因为插入雇员姓名和地址资料入数据库的进程要比雇员人口统计学信息入数据库的进程重要,所
12、以,将插入雇员人口统计学信息进程的DEADLOCK_PRIORITY为LOW不正确答案:A:如果处理进程设置为LOW,那么该事件处理将优先成为死锁牺牲者。因为在事件处理中,插入雇员姓名和地址信息入库比插入雇员人口统计学信息入数据库的进程重要,所以不应将处理插入雇员姓名和地址信息事件的DEADLOCK_PRIORITY置为LOWC:当某事件进程成为死锁牺牲者,错误1205将返回。系统将为插入雇员姓名和地址信息的事务添加条件代码追加以核对这一个错误,并且指定,如果遇到这个错误进程会导致进程重新开始。这会保证,一个重要进程无法被终止,这就是要求。这种解决方案有一个缺点:它效率低并且执行不是最好的。最
13、好降低较不重要事务的DEADLOCK_PRIORITYD:ROWLOC优化器提示是使用列级锁而不是粗糙颗粒状的虚拟表级锁的表提示E:选择最高的交易水平会增加锁的数量。这不能保证某些交易(例如以重要性而言)从不被锁。注意:当锁被使用作为同时操作控制方法,并发问题被减少,虽然可能可能有多一一种事务在任何时候同时运行,但是因为并发允许所有交易运行在完全地互相隔离。SQL服务器2000支持以下隔离水平:未执行读操作是最低的水平,在这种水平下交易被隔绝只保证无效数据不被读;执行读操作,是SQL服务器2000默认水平;反复性读;连续性,那是最高的隔离水平。这种高水平下要求并发访问数据库,一切有效的控制方法
14、应该被使用。Q.4你是公司的SQLServer2000联机事务处理数据库的数据库开发人员。许多表有一百万或更多的行,所有的表都建立了一个簇索引,经常存取的表另外还至少有一个非簇索引,两个数据库服务器上的RAID阵列存储数据文件,你想设置表和索引以取得最佳的I/O性能。你在每个RAID阵列上建立了一个文件群,下一步你将作什么A.设置频繁的互相连接的表加入同一个文件群,设置经常存取的表和所有的属于这些表的索引到另一个文件群。B.设置频繁的互相连接的表加入同一个文件群,设置经常存取的表和所有的属于这些表的非簇索引到不同的文件群。C.设置频繁的互相连接的表加入不同的文件群,设置经常存取的表和所有的属于
15、这些表的非簇索引到不同的文件群。D.设置频繁的互相连接的表加入不同的文件群,设置经常存取的表和所有的属于这些表的非簇索引到同一个文件群。答案:C.解释:改进数据库性能是通过大量设置存取的表到同一文件群中或者设置表的非簇索引到不同物理磁盘阵列的文件群中。这中方式将能提高性能因为它允许分开的进程访问表格和索引。当簇索引决定数据在表中的物理顺序时,表和它的簇索引不能分开到不同的文件群内。设置频繁的互相连接的表加入位于不同物理磁盘阵列的文件群,也可以提高数据库性能。此外,创建跟物理磁盘阵列一样多的文件使得每个磁盘阵列对应一个文件,这也可以提高数据库的性能,因为系统为每个物理磁盘对应的文件建立独立的进程
16、,从而平行的读取表数据。文件日志和文件数据也一样,如果可能,可以尽量放置在不同的物理磁盘数组内。错误答案解析:A:设置频繁地互相连接的表在同一文件群中将无法提高性能。它简化需要横跨多个硬盘扇区的复杂读写的使用,从而无法实现平行查询。此外,只有表格的非簇索引可以存在于不同表的不同文件群中。B:前半句错误,理由同上(A)。D:大量设置存取的表以及从属于那些表的非聚簇索引到同一个文件群将不能改进性能。而是设置存取的表以及从属于那些表的非聚簇索引到位于不同物理磁盘的不同文件群中可以实现性能的获取。这样可以提高性能,因为这种方式允许不同进程存取表和索引。Q.5你是公司的SQLServer2000数据库开
17、发人员,你修改了数据库中的几个存储程序来建立销售部的月底报表,程序中包含了从三个或更多的表中提取的数据的复杂查询,所有这些表都至少有一个索引。用户报告说这些月底报表比以前的版本的明显要慢,你要改进这些报表的性能,将怎么做A.对每个存储程序建立一个使用DDL的脚本,使用这个脚本统计工作量作为索引调整的Wizard。B.在SQLProfiler中捕捉每个存储程序的执行信息,使用这个信息文件统计工作量作为索引调整的Wizard。C.修改用于存储程序的表的索引统计信息。D.在SQL查询分析器中执行每个存储程序,使用ShowExecutionPlan选项。E.在SQL查询分析器中执行每个存储程序,使用S
18、howServerTrace选项。答案:E.解释:多数存放程序已被更新。这些存放程序包括复杂查询。这些新的存取程序比旧的程序性能更差。The Show Server我们用SQL查询分析器的ShowTrace选项来分析和调整存储程序。Trace命令提供存取那些用于决定一个查询的服务器端影响的信息。注意1:查询分析器的新的ShowServerTrace选项可以帮助执行调整查询,存储程序或者Transact-SQL脚本。他所做的就是显示查询分析仪(作为SQL服务器客户)到SQL服务器的通信。这种相同类型信息通过SQLServer2000模型捕获。注意2:索引调整TuningWizard能被用于为SQ
19、LServer2000数据库选择和创造一个最理想的索引集而不要求了解数据库内部结构,其工作量或者SQLServer内在结构。应该首先建立最理想索引的方案,对工作量也有要求。工作量包括SQL脚本或SQLProfilerTrace被保存到文件或表格包含SQL批或远程过程调用事件簇和事件簇和文本数据专栏。如果现有的索引调整分析工作量不存在,可以创建使用SQL模式。报告输出类型可能被指定在报告对话箱被保存为一个制表符划定的文本文件。参考:BOL,AnalyzingQueries错误答案解析:A:TuningWizard索引必须使用一个工作量,通过SQL声明产生,作为输入。TuningWizard索引使
20、用存储程序代码作为输入。注意:SQL语言有两个主要区别:数据定义语言,用于定义和处理所用SQL对象;数据操作语言,用于在数据库中选择、插入、删除或者改变表格、视图。数据库定义语言不能用作TuningWizard索引工作量。B:调整索引可以提高存储程序性能。尽管如此,没有数据被改变或者查询很复杂。我们应该是通过ShowServerTrace命令来分析一个查询对服务器端的影响。C:数据库索引正确的选择和它的工作量是复杂的、时效性的,而且易出错为复杂性适度的数据库和工作量。如果调整索引最好采用TuningWizard索引。D:实施计划能提供每个存储程序如何更好的运行的线索。一个实施计划描述Query
21、Optimizer是怎么计划,或实际优化,一次特殊查询。这信息是有用的,因为它可以帮助优化查询性能。尽管如此,实施计划并不是最好分析复杂查询的方法。Q.6如果你是作为跨国进口商的数据库开发人员。你要创建数据库以存取订购信息。订购将登记客户服务申请。每一时间有一个新的订购申请,唯一订购号将被分配。订购号必须以上升顺序分配。每天将有10000个订购申请。创建名为Orders的表并添加OrderNumber列到表格中。接下来你将怎么做呢A.设置数据列的类型为uniqueidentifier。B.设置数据列的类型为int,并设列的属性为IDENTITY。C.设置数据列的类型为int。创造用户定义函数,
22、以选择表格中最大定购数量。D.设置数据列的类型为int。创建NextKey表格,并在表格中增加NextOrder歹U。设置NextOrder列得数据类型为int。创建一个存储程序重新获得或更新NextKey的值。答案:B.解释:在MSSQLServer2000,标识符列可通过IDENTITY属性执行,允许数据库设计员为第一行指定标识符插入到表格和增加一个增长值给连续的标识符。当插入数值到带有标识列的表时,MSSQLServer2000通过递增方式自动产生下一个标识值。一张表格只能有一列定义为IDENTITY属性,而且这一列必须是定义为整数数字类型(int、smallint、bigint、tin
23、yint),精确数值类型(decimal、numeric),以及日期时间数据类型。标识的默认增量为1,因此身份验证码默认为升序排列。错误答案解析:A:MSSQLServer2000唯一标识符是用于表格复制。在这个过程中确定了一个标识表格中每行被复制的唯一列。这保证了在表格的多个复本中每行能被唯一标识。C:函数是频繁被执行的逻辑子程序。任何必须运行那些函数中未完成的逻辑的代码而不是重复执行所有的逻辑函数。SQLServer2000提供了两种类型的函数:内部函数和用户定义函数。并有两种用户定义函数:数值用户定义函数,其返回值是数值;内部自定义函数,返回值为表格。D:创建附加表格来跟踪序号在这种情况
24、下是不合适的。它会要求在Orders表中外键限制OrderNumber歹U。在Orders表格OrderNumber列自动更新之前,要求首先手动更新。Q.7你是技术培训中心的数据库开发人员。当前,管理雇员对学生、教师、课程和教室分配是通过报告单进行管理的。现在,中心希望通过数据库对数据进行管理。请你设计数据库的表格,你的设计如下:CaureD Uou”日1皿1?,CiesiLiipliDn F_tqmrcELi3D Uru 匚CM HcsPh 口 reStuntntrirstfJorreVtrTcre现你需要提高查询速度和简化多余数据,你应该怎么处理A. 创建一个新的Instructors表。
25、包括InstructorID、InstructorName、OfficePhone歹U。在Courses表中添加InstructorID歹U。B. 把Classroom表格中所有的列添加到Courses表中,删除Classroom表。C.删除Courses表中的主键约束,用CourseID和CourseTitle组合为主键,代替原来的主键。D.去掉ClassroomID歹并建立基于ClassroomNumber和ClassTime列的主键。答案:A.解释:一个规范化的数据库必须是高效率的。该数据库的设计并不规范。关于教师资料包含在Courses表内。当教师课程多于一门时,就需要生成多份的信息资
26、料,InstructorName和OfficePhone将登记每门课。我们规范数据库通过以下步骤:建表Instructors在Courses表中添加 在Courses表中移除 在Courses表中添加 的 InstructorIDInstructors表中建立新列InstructorlD,这是侯选键。InstructorName和OfficePhone歹U。InstructorName和OfficePhone歹U。(如不在该情形)。表中InstructorID歹U。该列将被用于创建外键限制Instructors列。错误答案解析:每个学生资料必Wewould have an列组成主键,代B从Cl
27、assroom表中的所有列移到Courses表所只会使情况更糟。须输入学生的所有可能信息。这样,我们的数据库将变得更规范。evenmoredenormalizeddatabase.CC删除CourseID表中的主键CourseID,将CourseID和CourseTitl替原来的(CourseID歹U)主键,将使数据库变得更规范。而且不允许两个课程用相同的课程题目,所以每学期(和每年)学校将为课程输入新的名字。D改变Classroom的主键并不能改善情况;相反ClassroomID列会变得多余。该程序不解决Courses表格中InstructorName和OfficePhone列的问题。Q.8
28、你将设计一个数据库包括用户定购。用户将在每次的定购大量的产品时设置一个序号。具体建库如下:现你需要提高查询速度和简化多余数据,你应该怎么处理(各个正确答复提出一部分的解答。所以选择2个选项)A.创建新的定购表OrderDetail表。表中添加OrderID,ProductID,和Quantity歹U。B. 将OrderID和ProductID组成Orders表新的主键。C. 删除Orders表ProductID和Quantity歹U。D. 在Orders表格中创建唯一约束OrderID歹U。E.将Products表中UnitPrice列移到Orders表内。Answer:A,C.解释:从一个逻
29、辑的数据库设计出发,我们可以看到Orders和Products表的关系存在问题。我们希望两表有如下的关系:每份定购将包括一个和多个产品。每个产品可以对应0,1或者多个序号简言之,我们在Orders和Products表中要建立多对多的关系,但是SQL服务器不允许多对多的关系,所以我们必须建立联系Orders和Products表的新表,通过两个一对多的关系实现多对多关系。我们可以这么做:建新表OrderDetail;在OrderDetail表中添加OrderlD,ProductID,和Quantity歹U。在Orders表中移除Quantity和ProductID歹U。在OrderDetail表中
30、创建外键OrderID歹U,对应Orders表中的OrderID歹U。在OrderDetail表中创建外键ProductID歹U,对应Products表中的ProductID歹U。现在,可以更加规范数据库。而且提高了查询时间去掉多余数据。另外一种想法是:在本事务中OrderID,ProductID和Quantity列是必须优先考虑的,因此创建一个新表是有益的。并且,可以把Quantity列从Order表中移除,以减少数据冗余。错误答案解析:B:创建一个不涉及OrderID和ProductID列的主键并不好。作为一个合理的数据库设计ProductID列并不能完全约束Orders表内的non-ke
31、y歹U,也不应是主键的一部分。相反地,Orders表将被一分为二。D: 在Orders表内的OrderID列创建UNIQUE勺束,确保OrderID列的值是唯一的同时也阻止出现值为空。但是并不解决Orders和Products表的关系问题。E: 将Product表内的UnitPrice列移到Orders表内并不能解决问题。UnitPrice列记录产品的价格是属于Products表,不能移到Orders表内。唯一的方法是建立新表,以描述Products和Orders表的关系。Q.9你是一个出版公司的数据库开发人员,对特定的书名的每天的销售情时建立了如下的存储过程:CREATEPRCKEDUREe
32、t_saJe$_forJltlevardtan80XiniOUTPUTASSELECTy!dsales=ytdsolesFROMtitlesWHEREtideIFROWCOUNT=0HETURNQl)ELSERETURN(O)另外建立了一个脚本执行这个存储过程,如果执行成功,将返回对应于书名的每天的销售情况的报表,如果执行失败,将返回NoSalesFound”,怎样建立这个脚本ADECLAREmtDECLARE及vtdmtEXE匚getGalesfarTitleN?tEtiqiiette网vtdIF加tval。PRINTNo$(ilt5foundELSEPRINT,Y串arm也材产5”,十ST
33、Rfvld)GOBDECLARErdtv”】iniDECLAREytdmtEXLCpetfortitleyetEliqu?e、灌ytdOU1PUIIF厘rftvH0rPRINT:No血,foundELSEPRINTqYeartodaksalts:ISTR:aytd)GOC. DLCLARLiliieHal111IDECLAREvldmtEXEC?et_5ales_foi-titleXctEtique比.retvaOUTPUTIF,他TFtval0PRINTNoasUp,thiU】(TELSEPRINTYeaiLtodatg+5TR(vtd)GOD一DECLARErtV2】imDECLAREyi
34、duitEXEC倭retvai=eelsalesfortitleLNelEhquettevtdOUTPUTIFretvN。PREXT工。salesfoiuxlELSEPRINTYeartodar?wiks:ISTRfvtdGO答案:D.解释:这个用于记录特定书名的每天销售情况的存储程序是个返回程序。我们必须保存执行该程序时的返回代码以便该返回代码能够在存储程序之外使用。在这个例子里,retval是返回代码且在第一行中被声明,该存储程序是一本书名中的getsalesfortitle和netetiquette。一个返回程序的正确语法如下:DECLAREreturncodeEXECreturncod
35、e=storedprocedureOUTPUT这个例子中有一个额外的ytd或是每天的变量参数,那是被声明在第二行,在本例子中其正确语法如下:DECLAREretvalintDECLAREytdEXECretval=get_sales_for_titlegetEtiquetteytdOUTPUT错误答案解析:A:第3行执行保存产品代码时,没有首先保存返回代码。B:第3行执行保存产品代码时,没有首先保存返回代码。C:同上。Q.10你是一个集装箱制造公司的数据库开发人员,公司制造的集装箱有不同的尺寸和形状,存储的集装箱信息的表有Size、Container、Shope,如图所示。数据存储在表中的例子
36、如下图所示。SizeTableShapeTableSi无DSIzeNameMelaFthSmall*Medium60Large印4Jumbo100(GhapetDEhaizeWfrieMeasjrement1Triangle102Triangle201Triangle304Square2015Square306Square4Q7Circle15gCircle259Circle35一般来说,集装箱的尺寸周期性的改变,数据库的用户需要知道集装箱的容量,容量是基于Shape、size表中的数据计算得到的。你要隐藏计算的细节,使用一个SELECT询可以方便的得到,你将怎么做A.建立一个用户定义的函数,
37、使用ContainerlD作为参数,返回集装箱的容量。B.建立一个程序,使用ContainerlD作为参数,返回集装箱的容量。C.在Container表中加人名为volume的一列,当一个新集装箱加入表中时,建立一个触发器计算和存储这列的值。D.在Contain表中加入一个计算过的列计算集装箱的容量。答案:A.解释:被统计的列可以直接放置到查询声明中。我们这里想要掩藏演算的细节,虽然我们掩藏演算通过定义一个用户定义的计算函数。注意1:用户定义函数是SQLServer2000.的一大新特性该函数是一个有一个或多个Transact-SQL声明的子程序,它可以用于压缩代码以重新使用。CREATmUN
38、CTIONS句来建立用户定义函数。ALTERFUNCTIO陈实现彳O,theDROPFUNCTION!于实现删除。SQLServer2000支持两种类型的用户定义函数:标量函数。该函数在被定义的返回语句中返回类型中返回一个单独的数值。而表数值函数,其返回一个表。还有两种类型的表数值函数:内嵌小应用程序以及多重语句的程序。注意2:可计算的列可计算的列是一种虚拟的列,它的计算是应用同一表列的其他列的表达式,它并没有存储在表内。这个表达式可是是非计算的列名,常数,函数,变量,以及这些一个或多个操作数连接起来的组合但是不呢感是一个子查询。可计算列可以用在查询列表中。查询列表是用语句排序的,常规的表达式
39、也可以应用在其他的地方。然而,一个可计算列不能用于缺省或者定义为外键或者非空定义限制,但是如果该可计算列值被确定的表达式定义且结果的数据类型在索引列是被允许的情况下,它在索引中可以做为键列,或着是主键的一部分,或是唯一限制。不正确的答案解析:B.存储程序的返回值不能用于查询的SELECTS表内。注意:存储程序能够返回数据作为输出参数,该参数可以返回一个数据或者是指针变量。代码经常是整型的数值,而每个SELECT语句的结果集包括在存储程序中或者是被该存储程序调用的其他存储程序内。且全局指针变量能被外部的存储程序参照。存储程序协助达到逻辑的一致的实施横跨应用。能够设计执行一些普通的计划任务SQL语
40、句能在存储程序中被设计,编码,测试一次。各种应用需要执行,然后任务可能简单地执行存储程序。编制程序企业逻辑入一个唯一的存储程序并且提供一个单独的控制观点以保证商业惯例正确地实施。存储程序同样能实现改善性能。许多的任务被执行为一系列的SQL语句。条件逻辑被应用到第一个SQL语句的结果决定哪一个后续的SQL语句被执行。如果这些SQL语句以及条件逻辑别写到一个存储程序内,他们将成为服务器上单一执行计划的一部分。结果并不需要返回给客户机来应用条件逻辑。所有的工作都是由服务器来完成的。C.只是利用插入触发器并没有什么效果,如果容器的体积改变值会被更新触发器也将被更新。注意:触发器是一系列的存储程序,当U
41、PDATEINSERT,orDELETE句操作表或视图时触发器自动执行。当数据被修改时触发也可用于自动执行企业条例以及被执行来拓展限制、缺省以及规则的整型测试逻辑。每当他们提供应用的必需的功能限制和缺省应该被使用。触发器只有当UPDATEINSERTorDELETE是针对表或视图操作时能够用于运行计算和返回结果。触发器所返回的结果是有任何触发器内的查询语句来产生的。包括触发器内的SELECT语句而不是那些只含参数的语句,这些只含参数的语句并不被推荐因为用户并不希望在操作UPDATEINSERT,orDELETE时任何数据返回。D. SQLServer表包含可计算的列。这些可计算的列只能运用同一
42、表中的常数、函数以及其他列。一个可计算的列并不能运用其他表中的任何列。我们不能利用一个可计算的列来存储容器的体积。Q.11如果你是一位为医院做数据库的开发商。医院每层有四个供应房间,并且医院有26层。你正在为存货设备设计一个目录管理数据库,某些可用项必须一直保存着。当一个项目被用时,通过扫描条形码来减少数据库中的目录数目。当库房的数量一旦少于项目的最少数量时,供应管理员应该马上标明数码。你该怎么做呢A创建一个可以被调用更新表格目录的存储程序。如果合起来的数量少于库存量,用xp_logevent系统存储程序来标注供应商。B.在表格目录中创建一个替换更新触发器。如果在插入表格中的数量少于库存量,用
43、SQLAgent来发一封电子邮件给供应商的pager。C.在表格目录中创建一个代替更新跟踪器。如果在插入表格中的数量少于库存量,用xp_sendmail系统存储程序来给供应商编页。D.预定SQL服务器工作跑在四小时间隔时间.工作使用notify_level_page=2论配置工作以便它退回假据。配置工作以便它测试各个项目数量反对重新进货的数量。的价值如果项目要求重新进货。这将触发供应商的调页。答案:C.Q.12你是一个公司的关于工作时间报告的数据库开发人员,一般平均有5个用户同时存取这个数据库,并且查询时间要小于1秒。然而,在周五下午或周一早上,大部分雇员输入他们的考勤数据时,数据库可能会有同
44、时50个用户使用,这时,查tU返回时间平均是15到20秒。你需要发现查询变慢的原因并解决这个问题,你将怎么做A.使用sp_lock和sp_who系统存储过程发现锁定的资源,并确定占用锁的进程,使用这个信息确定和重新设计导致资源锁定的事务处理。B.查询sysprocesses和Sysobjects系统表,发现死锁的资源,并确定占有这些资源的进程,对死锁的资源设定一个更短的进程占有时间限制。C.查询Sysprocesses系统表,发现那些资源被存取,在所有这些被存取的表的主关键字加上一个簇索引。D.使用Sp_monitor系统存储过程发现哪个进程导致查询反映时间增加,对这些进程设置更小的限制事务隔
45、离级别。答案:A.Q.13你是一个保险公司的数据库开发人员,这家保险公司有一个用于保单或保单所有者的多层的应用。保单所有者信息存储在一个名为Owners的表中,下面的语句用于建立这个表,(OwnarlJinz工UmMT工二工fl.UOTKULL,FirszNkmficharU03KULL.COUSTRAZNI再C泅*KEI:匚“匕“工当保单所有者的信息输入时,若不包括所有者的出生年月,数据库要产生一个错误信息。你要设计一个方法来校验出生日期数据是否填写,没有的情况下要显示错误信息。你将怎么做A.在BirthDate字段上加上CHECK勺束。B.建立一个规则,并将这个规则绑定在BirthDate
46、字段上。C.改变Owners表使BirthDate字段不能为空。D.在Owners表上建立一个触发器校验BirthDate字段。答案:DQ.14如果你是一个大型啤酒厂的数据库开发商。关于每个啤酒分厂和在每个分厂的设备定位被存储在命名为设备中的数据库中的信息。这些分厂信息是存储在一个名为定位的表格中,而设备信息存储在名为Parts的表格里。这些源码用来创建一些表格在定位和部分原稿展品中用来展示。CREATETABLELocation(LocationIDintNOTNULL,LocationNamechar(30)NOTNULLUNIQUE,CONSTRAINTPK_LocationPRIMAR
47、YKEY(LocationID)CREATETABLEParts(PartIDintNOTNULL,LocationIDintNOTNULL,PartNamechar(30)NOTNULL,CONSTRAINTPK_PartsPRIMARYKEY(PartID),CONSTRAINTFK_PartsLocationFOREIGNKEY(LocationID)REFERENCESLocation(LocationID)啤酒厂正处于关闭几家现有的工厂和开设几家新工厂过程中。当分厂关闭后,关于分厂的信息和所有设备在那个分厂必须从数据库被删除,你已经为进行这个操作创建了一个存储程序。存储程序代码如下:
48、。CREATEPROCEDUREsp_DeleteLocationLocNamechar(30)ASBEGINDECLAREPartIDintDECLAREcrs_PartsCURSORFORSELECTFROMPartsASpINNERJOINLocationAS1ON=LocNameWHERE=LocNameOPENcrs_PartsFETCHNEXTFROMcrs_PartsINTOPartIDWHILE(FETCH_STATUS-1)BEGINDELETEPartsWHERECURRENTOFcrs_PartsFETCHNEXTFROMcrs_PartsINTOPartIDENDCLO
49、SEcrsPartsDEALLOCATEcrsPartsDELETELocationWHERELocationName=LocNameEND这个程序的执行花了比预期长的时间,你需要减少这个程序的执行时间。你该怎么做A.增加重新编译选项到程序定义中去。B.用游标操作取代单个删除状态。C.增加BEGINTRAN句到程序的开头,或者在程序的结尾增加一个COMMITTRA语句。D.设置交易隔离级设定为READUNCOMMITTEDE.增加非聚簇集的索引在部分表格的部分ID歹U。答案:B.Q.15你是一个保险公司的数据库开发人员,公司的保单信息存储在SQLServer2000数据库中,你使用以下脚本建立
50、了一个名为Policy的表:CREATETABLEPolicyPolicyKTumberintNOTNUXLEEFAULT/InsureciljAstNamechar(30)NOTNULL,二门su工曰dFiEHtNamechar(201NOTNULLfIns,jredEirthDatedatetimeNOTMULL,Pc-licyLatedatetimeNOTKULL,FaGeAmonntmoneyNOTMULLfCONSTRAINTPK_PolicyPRIMARYKEY(PoLicyNdinb-sr)每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做
51、A.建立一个INSTEADOFINSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。B.建立一个INSTEADOFUPDAT触发器来产生一个新的保单号,并将这个保单号插入数据表中。C.建立一个AFTERUPDATE虫发器来产生一个新的保单号,并将这个保单号插入数据表中。D.用AFTERUPDAT触发器替代DEFAULT勺束条件产生一个新的保单号,并将这个保单号插入数据表中。答案:A.解释:每次都会往policy表中增加记录,所以触发器是针对insert这个动作来建立,而这个表的作用就是用来产生一个新的表单号,并不需要往这个表里插入记录,要修改的是基本数据表,所以创建一个inste
52、adof触发器错误答案解释:对policy表所进行的并不是update操彳,所以不选B,C,DQ.16当你是通讯公司的数据库开发人员。另一个小组的开发商,MART在Corporate数据库中创建了一个Customers表。因为表中包含了认证信息,他只把SELEC锹限授予你组中的其他人员。你正在开发的应用程序可以允许市场部员工来阅览Customers表中的某些信息。这些员工都是市场部数据库角色的人员。为支持这一应用,你必须为Customers表创建一个名为vwCustomers的视图。创建这个视图后,你授予营销数据库角色SELECT限。当营销员工试图从视图中恢复数据,他们得到了如下的错误信息:S
53、ELECTpermissiondeniedonobjectCustomersdatabaseCorporateownerMarc.如果必须保证市场部的人员只能利用Customers视图访问Customers表中的数据。你应该怎么做A.把营销数据库的角色添加到系统固定的服务角色B.转换Customers表的员工角色成营销角色。C.要求Marc转换vwCustomers视图的雇主关系成营销角色D.要求Marc授予用户Customers表的SELECTO艮E.删除vwCustomers视图。要求Marc重新创建这个视图,并授予营销员工该视图的的SELECT权限答案:E.Q.17你正在设计公司的SQL
54、Server2000销售数据库,该数据库将被客户程序访问。客户服务以及营销员工要求持有销售表中的所有表格SELECT,INSERT,andUPDATE操作权限。除此之外,在应用客户程序时,营销员工将利用MicrosoftExcel去恢复销售数据库内的数据来创建表。客户服务员工属于MicrosoftWindows2000内的一个名为CSR勺组。而marketing员工也是MicrosoftWindows2000内的一个组名为Marketing。想让客户服务职工只在客户程序访问销售数据库。而营销的员工允许运用客户程序和Excel访问营销数据库。在这个数据库中没有任何权限被授出。你应该怎么做A.为营
55、销员工创建一个名为Marketing的数据库,以及为客户服务员工创建一个名为CustomerService的数据库。添加Windows2000群组到拥护定义的数据库角色。授予数据库内所有表的操作权限给营销数据库角色人员。授予CustomerService数据库角色数据库的SELECT,INSERT,andUPDATE权限。B.创建一个客户服务和营销职工都可以用的应用程序。授予Windows2000Marketing数据库所有表格的SELECT权限。授予Windows2000CSRgroup数据库的SELECT,INSERT,andUPDATE权限。C.为客户应用程序创建一个应用任务。给应用任务授予SELECT,INSERTandUPDATE的权限。为营销员工创建一个名为Marketing的数据库。给Marketing数据库角色添加Windows2000营销组。授予营销数据库表格的所有表的SELECT限。D.为客户服务职工创建一个应用程序任务。同时也为营销员工创建一个应用程序任务。授予营销员工数据库内所有表格的SELEC昉问权限。授予客户服务员工数据库表格的SELECT,INSERT,andUPDATE权限。E.为客户服务职工创建一个应用程序任务。为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲基化修饰与肿瘤免疫微环境重塑
- 生物识别支付在互联网医院的安全性平衡策略
- 生物样本库数据共享的隐私计算技术应用
- 生物样本库数据共享的质量溯源技术应用
- 生物标志物联合应用的增效策略
- 生物标志物引导的肺癌精准手术策略
- 生物材料辅助干细胞移植修复CST的策略
- 生物材料介导调节性B细胞扩增策略
- 生物力学仿生3D打印心脏模型应用
- 生命末期儿童发热症状的伦理控制策略-1
- 线缆及线束组件检验标准
- 人工智能在金融策略中的应用
- 口述史研究活动方案
- 高压燃气管道施工方案
- 加工中心点检表
- 水库清淤工程可行性研究报告
- THBFIA 0004-2020 红枣制品标准
- GB/T 25630-2010透平压缩机性能试验规程
- GB/T 19610-2004卷烟通风的测定定义和测量原理
- 精排版《化工原理》讲稿(全)
- 市场营销学-第12章-服务市场营销课件
评论
0/150
提交评论