1、计算机三级数据库技术-52 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:3,分数:100.00)现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操作:(分数:40.00)(1).画出 E-R 图。(分数:20.00)_(2).将 E-R 图转换成关系模式,并指出每个关系模式的主键(加下划线)和外键(加波浪线)。(分数:20.00)_1.设有图书管理数据库,包含三张表: 图书明细表(图书编号,图书类别,图书名称,
2、作者,出版社,出版日期,定价); 读者表(借书证号,姓名,系别,办证日期); 借出信息表(借出编号,借书证号,图书编号,借书日期); 完成下列操作: 定义一个多语句表值函数,用于查询学生借书情况,只需提供参数:借书证号,就可以通过调用函数返回此学生的借书情况,若有借书籍,则返回所借书籍的编号、书籍名称、定价和借书日期;若没有在借书籍,则返回记录为空。设函数名为:f_BorrowBook(jszh char(20)。 (分数:20.00)_某采购中心采购了一套商品批发查询管理系统,此系统采用 SQL Server 2008 数据库管理系统,该系统需要经常处理百万级以上的数据查询。同时该系统提供了
3、第三方人员开发的 SQL 接口,第三方人员可以根据自己的需要开发自己的应用程序来访问数据库中的相关数据。(分数:40.00)(1).系统在使用的过程中,业务人员反应系统操作速度很慢。经过工程师检查测试后,数据库系统本身及网络传输过程中存在着一些问题,请给出针对数据库系统本身及网络传输过程中可能的一些调优方案。(分数:20.00)_(2).工程师在完成数据库系统本身和网络问题的优化后,发现第三方开发人员的 SQL 查询语句存在很多没有优化的问题,请从第三方开发人员角度给出一些优化方案。(分数:20.00)_计算机三级数据库技术-52 答案解析(总分:100.00,做题时间:90 分钟)一、设计与
4、应用题(总题数:3,分数:100.00)现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操作:(分数:40.00)(1).画出 E-R 图。(分数:20.00)_正确答案:()解析:(2).将 E-R 图转换成关系模式,并指出每个关系模式的主键(加下划线)和外键(加波浪线)。(分数:20.00)_正确答案:()解析:关系模式: 论文(题目,期刊名称,年份,期刊号) 作者(姓名,单位,地址) 发表(姓名,题目,顺序号) 解析 (1)ER 图的设计原
5、则 在设计 ER 图时,首先应根据需求分析,确认实体、属性和联系这三种 ER 图的基本要素。需要强调的三条设计原则如下。 相对原则 建模的过程实际上是对对象抽象的过程。实体、属性和联系是对同一个对象抽象过程的不同解释和理解。在同一情况下不同的人,或同一人在不同的情况下,对事物抽象的结果可能是不同的。在 ER 图的整个设计过程中,实体、属性和联系不是一成不变,而是可能会被不断的调整和优化。 一致原则 同一对象在同一个管理系统中的不同子系统抽象的结果要求保持一致。 简单原则 为简化 ER 图,现实世界中的事物能作属性对待时,应尽量作为属性处理。属性与实体和联系之间,并无一定界限。当属性满足如下两个
6、条件时,就不能作实体或关系对待:不再具有需要进一步描述的性质,因为属性在含义上是不可再分的数据项;属性不能再与其它实体具有联系,即 ER 图中的联系只能是实体之间的联系。 (2)ER 图的组成元素是实体、属性和联系 实体 把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。 属性 描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。 联系 联系是实体间有意义的相互作用,即实体间存在的关联。 在 ER 图中,分别用矩形框表示实体,椭圆表示属性,菱形框表示联系。 (3)联系的类型 实体之间的联系分为三种类型:一对一(1: 1)、
7、一对多(1: n)和多对多(n: m)。 题目给出了两个实体论文和作者,并且指明了论文实体的属性包括题目、期刊名称、年份、期刊号,作者实体的属性包括姓名、单位、地址。实体间的关系包括:一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号,可以知道论文和作者是多对多的关系。同时可知论文题目和期刊号的联合是论文关系模式的主键,姓名是作者关系模式的主键,而需要作者姓名和论文题目才能唯一确定发表的关系模式。1.设有图书管理数据库,包含三张表: 图书明细表(图书编号,图书类别,图书名称,作者,出版社,出版日期,定价); 读者表(借书证号,姓名,系别,办证日期); 借出信息表(借
8、出编号,借书证号,图书编号,借书日期); 完成下列操作: 定义一个多语句表值函数,用于查询学生借书情况,只需提供参数:借书证号,就可以通过调用函数返回此学生的借书情况,若有借书籍,则返回所借书籍的编号、书籍名称、定价和借书日期;若没有在借书籍,则返回记录为空。设函数名为:f_BorrowBook(jszh char(20)。 (分数:20.00)_正确答案:()解析:CREATE FUNCTION BorrowBook (jszh char(20) RETURNS jsqkb TABLE (书籍编号 char(20), 书籍名称 char(50), 定价 float, 借书日期 datetim
9、e) AS BEGIN INSERT jsqkb SELECT 图书明细表.图书编号,图书名称,定价,借出信息表.借书日期 FROM,借出信息表,图书明细表 WHERE 借出信息表.图书编号=图书明细表.图书编号 AND 借出信息表.借书证号=jszh RETURN END 解析 SQL Server 2008 多语句表值函数的格式为: CREATE FUNCTION schema_name. function_name ( parameter_name AS type_schema_name.parameter_data_type = default ,.n ) RETURNS return
10、_variable TABLE table_type_definition AS BEGIN function_body RETURN END ; table_type_definition := ( column_definition column_constraint|computed_column_definition table_constraint ,.n ) 采用三表联合查询,通过传入的借书证号查出借出信息表中的图书编号,然后查出图书明细表的信息。某采购中心采购了一套商品批发查询管理系统,此系统采用 SQL Server 2008 数据库管理系统,该系统需要经常处理百万级以上的数据
11、查询。同时该系统提供了第三方人员开发的 SQL 接口,第三方人员可以根据自己的需要开发自己的应用程序来访问数据库中的相关数据。(分数:40.00)(1).系统在使用的过程中,业务人员反应系统操作速度很慢。经过工程师检查测试后,数据库系统本身及网络传输过程中存在着一些问题,请给出针对数据库系统本身及网络传输过程中可能的一些调优方案。(分数:20.00)_正确答案:()解析:把数据、日志、索引放到不同的 I/O 设备上,增加读取速度,数据量(尺寸)越大,提高 I/O 越重要。 纵向、横向分割表,减少表的尺寸。 升级硬件,扩大服务器的内存,Windows 2000 和 SQL Server 2000
12、 能支持 4-8G 的内存。配置虚拟内存,虚拟内存大小应基于计算机上并发运行的服务进行配置。增加服务器 CPU 个数。 分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。 重建索引:DBCC REINDEX, DBCC INDEXDEFRAG;收缩数据和日志:DBCC SHRINKDB, DBCC SHRINKFILE。设置自动收缩日志,对于大的数据库不要设置数据库自动增长,它会降低服务器的性能。 优化锁结构。(2).工程师在完成数
13、据库系统本身和网络问题的优化后,发现第三方开发人员的 SQL 查询语句存在很多没有优化的问题,请从第三方开发人员角度给出一些优化方案。(分数:20.00)_正确答案:()解析:对查询进行优化,尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中使用!=或操作符,否则引擎将放弃使用索引而进行全表扫描。 任何地方都不要使用 select * from 进行全表扫描 ,用具体的字段列代替“*”,不要返回冗余字段。避免频繁创建和删除临时表,以减少系统表资源的消耗。 尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过 1 万行,那么就应该考虑改写。 尽量避免大事务操作,提高系统并发能力。 解析 从数据库本身和网络传输的角度出发,数据库性能低下的因素一般有:I/O 吞吐量小,形成了瓶颈效应;没有创建计算列导致查询不优化;SQL Server 数据库内存不足;网络速度慢;查询出的数据量过大(可以采用多次查询或其他的方法降低数据量)以及锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)。 从 SQL 查询语句角度来考虑优化响应时间,应该从查询条件、临时表、游标、返回数据量、大事务操作等方面进行调优。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1