应用题
设有某商业单位需要建立商务数据库用以处理销售记账,它记录的数据包括:顾客姓名,所在单位及电话号码;商品名称,型号,产地及单价;某顾客购买某商品的数量及日期。假定无同名顾客,无同型号商品,电话公用,顾客可在不同日期买同一商品。
【正确答案】ER模型如下所示:
【答案解析】ER图的画法 建立相应的ER图的过程如下: 第一,确定实体类型。本题有两个实体类型,即顾客实体和商品实体。 第二,确定联系类型。该题中只有顾客一商品模型。 第三,把实体类型和联系类型组合成ER图。 第四,确定实体类型和联系类型的属性。 顾客实体集属性:姓名、单位、电话号码 商品实体集属性:型号、名称、产地、单价 由顾客和商品两个实体和一个顾客一商品购买关系,并且根据实体的属性可以画出相应ER图。
【正确答案】将ER模型转换为关系模型,并规范到3NF: 顾客(姓名,单位,电话号码),主键:姓名 商品(型号,名称,单价,产地),主键:型号 购买(姓名,型号,数量,日期),主键:姓名+型号
【答案解析】ER模型转换为关系模式的规则 ①把ER模型中的每一个实体集转换为同名的关系,实体集的属性就是关系的属性,实体集的码就是关系的码。 ②把ER模型中的每一个联系转换成一个关系,与该联系相连的各实体集的码以及联系的属性转换为关系的属性。关系的码根据下列情况确定: 若联系为1:1(一对一),则每个是实体集码均是该关系的候选码。 若联系为1:n(一对多),则关系的码为n端实体集的码。 若联系为m:n(多对多),则关系的码为各实体集码的组合。 ③合并具有相同码的关系。 根据规则,把一个ER模型转换为关系模式,一般经历下面两个步骤: 1)标识ER模型中的联系。 2)依次转换与每个联系相关联的实体集及联系。 本题中从ER模型转换成关系模型,由两个实体和一个关系分别可以转换成三个关系模式。
问答题
设某学校选课系统使用SQL Server 2008数据库管理系统,在学生选课期间,用户反映速度缓慢,大部分时间内,学生无法正常选课(选课学生近1万人)。经技术人员分析,发现速度缓慢的原因为数据库服务器响应缓慢。在选课期间,数据库服务器CPU使用率为100%,内存使用率95%,磁盘IO占用10%,网络带宽占用20%。在进一步分析后发现,学生在选课过程中需要在每次选定课程前校验相关课程的成绩信息,而校验成绩的SQL语句在业务不繁忙时仍需要1~2分钟才能执行完成。现有服务器硬件情况如下:
CPU:两颗英特尔至强处理器E5-2640 2.50GHz
内存:128GB,主频1600MHz
磁盘:6块600GB 15000转6Gbps SAS硬盘,RAID5
网卡:千兆网卡
为了保证系统稳定运行,现有如下优化方案:
(1)将CPU更换为两颗英特尔至强处理器E5-2690 2.90GHz。
(2)将内存提高到256GB,主频1600MHz。
(3)将磁盘更换为6块800GB读取密集型MLC 6Gpbs硬盘,保持RAID5。
(4)将网卡更换为万兆网卡。
(5)优化校验成绩SQL语句并建立相关索引,校验完成时间降低到1秒。
根据题目描述,请从是否能解决选课运行速度缓慢问题的角度逐个评价以上5个方案并给出原因。
【正确答案】(1)提高CPU的主频,可以稍微缓解选课速度慢的问题。因为CPU主频提高,单位时间内处理的数据多一些,但不能根本解决服务器响应慢的问题。本题中的CPU在选课期间使用率达到100%,增加CPU的频率不能从根本解决问题。大量的SQL数据在网络上传输可能会导致网速变慢。 (2)内存提高,可以改善选课速度慢的问题,内存的增加可以从一定程度上提高数据处理的效率。本题中,选课期间内存使用率达到95%,说明内存没有完全使用,因此内存容量不是产生服务器响应慢的原因。 (3)SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大、成本低,但是速度慢。因此替换原有的SLC硬盘不能提高数据存取的速度,不能解决选课运行速度慢的问题。 (4)更换网卡不能解决选课运行速度慢的问题,因为本题中网络带宽的使用率才20%,说明网络问题不是选课慢的主要原因。 (5)可以从根本上解决选课慢的问题。原有校验成绩的SQL语句需要1~2分钟才能执行完成,当大量的学生选课时,CPU和内存主要用于处理SQL语句,大量的资源被消耗,引起服务器反应减慢。本题中,SQL语句的效率低下,是产生服务器响应慢的根本原因,应当对SQL语句优化。一般来说,效率低下的SQL语句常常是系统效率不佳的主要原因。
【答案解析】数据库系统运行需要依赖服务器、操作系统、存储、网络等因素。当这些数据库环境出现瓶颈时会导致数据库运行缓慢,甚至无法完成业务。一般来说,可以从外部环境、调整内存分布、调整磁盘I/O、调整资源竞争等几方面来改变数据库的参数,提高其性能。 (1)外部调整包括CPU调整和网络调整。当数据库操作对CPU性能的要求超过数据库服务器的CPU性能时,数据库性能就受到CPU的限制,使数据库操作变慢。 (2)通过调整相关参数控制数据库的内存分配,也可以在很大程度上改善数据库系统的性能。 (3)调整磁盘I/O。数据库性能优劣的一个重要度量是响应时间,而I/O时间是响应时间的最大组成部分。因此,可以通过令I/O时间最小化,减少磁盘上的文件竞争带来的瓶颈等方法来改善数据库系统的性能。 (4)调整竞争。多个进程对相同的资源发出申请时,导致了竞争的发生,从而引起服务器的反应缓慢。 (5)效率低下的SQL语句常常是系统效率不佳的主要原因。因此采用高效率的SQL语句,可以显著减少服务器的反应时间,提高服务器处理的速度。 本题中,SQL语句的效率低下是产生服务器响应慢的根本原因,提高SQL语句的执行效率,可以有效提高服务器的响应速度。