计算机数据库三级设计与应用题Word文件下载.docx

上传人:b****1 文档编号:13723021 上传时间:2022-10-13 格式:DOCX 页数:28 大小:42.19KB
下载 相关 举报
计算机数据库三级设计与应用题Word文件下载.docx_第1页
第1页 / 共28页
计算机数据库三级设计与应用题Word文件下载.docx_第2页
第2页 / 共28页
计算机数据库三级设计与应用题Word文件下载.docx_第3页
第3页 / 共28页
计算机数据库三级设计与应用题Word文件下载.docx_第4页
第4页 / 共28页
计算机数据库三级设计与应用题Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

计算机数据库三级设计与应用题Word文件下载.docx

《计算机数据库三级设计与应用题Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机数据库三级设计与应用题Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

计算机数据库三级设计与应用题Word文件下载.docx

不能与其它实体有联系,即 

图中所表示的联系是实体之间的联系。

本题中一个系可以

聘用多名教师,一名教师只能受聘于一个系,所以系实体与教师实体有联系;

一名教师可以讲授多门课程,

一门课程可由多名教师讲授,所以教师实体与课程实体有联系,一门课程可以有多门先修课程,所以课程

间也有联系。

(2)

要想使转换生成的关系模式满足 

3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递

依赖于码。

2、设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售

单价)。

其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。

请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×

(销售单价-单价)。

要求商品号和年

份为输入参数,总毛利用输出参数返回。

(10 

存储过程是由 

PL/SQL 

语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调

用即可。

使用存储过程具有以下优点:

其已经编译和优化过了,所以运行效率高,提供了在服务器端快速

执行 

SQL 

语句的有效途径;

存储过程降低了客户端和服务器之间的通信量;

方便实施企业规则,当企业规

则发生变化时只要修改存储过程,而无需修改其他应用程序。

创建存储过程:

create 

procedure 

过程名

@[参数名] 

[类型],@[参数名] 

[类型] 

/*过程首部*/

As

Declare/*as 

下面对应的<

PL/SQL>

块为过程体*/

……….

begin

.........

end

如上所示,存储过程包括过程首部和过程体。

过程名是数据库服务器合法的对象标识;

参数列表:

用名字

来标识调用时给出的参数值,必须指定值的数据类型。

参数可以是输入参数或输出参数,默认为输入参数。

 

3、设某全国性的运输企业建立了大型 

OLTP 

系统,并在该系统之上建立了数据仓库。

系统和数据仓

库中有如下数据表:

运输明细表(运输单 

ID,发送站 

ID,终到站 

ID,货物 

ID,货物重量,运输价格,发货日期)

汇总表 

1(发送站 

ID,发货日期,总重,总运价)

2(发送站 

ID,终到地区 

3(发送站 

ID,发货月份,总重,总运价)

4(发送地区 

ID,货物类别 

该企业管理的货运站约有 

100 

个,货物约有 

500 

种共 

10 

类,各汇总表都建有主码,且各表有合理的维护

策略,在每次维护后数据能保持一致。

设有视图 

V,该视图的访问频率很高,其查询结果模式为(发送地

区 

ID,发货月份,总重,总运价),该视图现以汇总表 

为计算数据源。

经监控发现,汇总表

的被访问频率过高,导致系统整体性能下降,而其它汇总表被访问频率较低。

在不增加汇总表和索引的

情况下,请给出一个改善系统服务性能的优化方案,并简要说明理由。

计算机系统中存在着两类不同的数据处理工作:

操作型处理和分析型处理,也称作 

OLTP(联机事务处理)

和 

OLAP(联机分析处理)。

操作型处理也叫事务处理,是指对数据库联机的日常操作,通常是对一个或一

组纪录的查询或修改,例如火车售票系统、银行通存通兑系统、税务征收管理系统等。

这些系统要求快速

响应用户请求,对数据的安全性、完整性以及事务吞吐量要求很高。

结合本题中存在的问题,视图本身的

访问量很高,而又仅仅以汇总表 

为计算数据源,而其它汇总表访问率低,导致了资源利用不合理。

因此

本题考察了联机事务处理中的资源调度问题。

4、设在 

Server2008 

某数据库中有商品表和销售表,两个表的定义如下:

(新增题库一)

CREATE 

TABLE 

商品表(

商品号 

char(10) 

PRIMARY 

KEY,

商品名 

varchar(40),

类别 

varchar(20),

进货单价 

int 

);

CREATETABLE 

销售表(

REFERENCES 

商品表(商品号),

销售时间 

datetime,

销售数量 

int,

销售单价 

PRIMARYKEY(商品号,销售时间) 

现要创建一个存储过程:

查询指定类别的每种商品当前年销售总金额(销售总金额=销售单价* 

销售数量)。

请补全下列代码。

CREATEPROC 

p_TotalProfit

@lb 

varchar(20)

AS

SELECT 

商品名,(SELECT 

【1】

FROM 

销售表 

t1 

WHERE 

【2】

and 

【3】

=

year(Getdate())) 

AS 

销售总金额

商品表 

t2 

【4】

①整个 

select 

语句的含义是:

根据 

where 

子句的条件表达式,从 

From 

子句指定的基本表或视图中找出满

足条件的元组,再按 

子句中的目标列表达式,选出元组中的属性值形成结果表。

②该题中(SELECTFROM 

WHEREand= 

year(Getdate()))是个嵌套,别名叫做销

售总金额。

③语句执行过程:

•先从商品表中按照第二个 

形成一个初步查询结果。

由于只有商品表中有类别,因此可知第四空填

写:

t2.类别=@lb(t2 

是商品表的别名,t1 

是销售表的别名)。

由此可知该步是按给定类别查询。

•销售总金额语句就应该在第一部的基础上求某年的总额。

因此可以推断第三空是获得销售时间语句。

此该空填写 

t1.销售时间。

由于是在第一步基础上的查询,所以应该实行连表查询,第二空应该填写连接

的条件,即 

t1.商品号=t2.商品号。

•第一空应该是求总额的语句。

销售总金额=销售单价* 

销售数量,即销售单价*SUM(销售数量)。

【参考答案】

【第 

空】销售单价*SUM(销售数量)

空】t1.商品号=t2.商品号

空】t1.销售时间

空】t2.类别=@lb

5、设某超市经营管理系统使用 

Server 

2008 

数据库管理系统,此数据库服务器有 

颗 

CPU、16GB 

存、2TB 

磁盘。

上线运行 

年后,用户在生成每天每个销售人员及每个收银台的总销售额报表时速度缓慢。

经技术人员分析,发现速度缓慢的原因为销售单据表和销售单据明细表数据量合计已经达到 

60GB。

已知

这两个表结构如下:

销售单据表(销售单据编号,销售时间,销售人员编号,收银台编号)

销售单据明细表(销售单据编号,商品编号,单价,数量)

在进行此报表计算时数据库服务器 

CPU 

消耗非常高。

为了优化此操作,某工程师建议在销售单据表中增加

"

付款总金额"

属性,取值由触发器自动计算。

请从磁盘空间使用、销售操作时对数据库服务器的影响、数

据一致性以及对总销售额计算速度影响方面分析此方案优劣。

请判断此方案是否可行,并从时空代价和优

化效果方面分析原因。

在数据库设计阶段,主要强调的是高效率利用存储空间,减少数据的冗余,减少数据的不一致性,这个过

程也就是规范化的过程。

但是在数据库运行阶段要考虑到高效率的进行数据处理。

完全规划化的数据库会产生很多表,对于一个频繁使用的查询,如果它要求操作多个相关表中的数据,则

每次为生成需要的查询结果而在连接多个表中相关行时,数据库管理系统就会消耗更多的计算资源,因为

连接操作非常耗时。

而反规范化是将规范化的关系转换为非规范化的关系的过程,目的是提高查询的效率。

常见的方法有增加

派生冗余列,增加冗余列,重新组表,分割表和新增汇总表等方法。

该题解决的方式就是增加派生冗余列--"

派生性冗余列是指表中增加的列由表中的一些数据

项经过计算而成,它的作用是查询时减少连接操作,避免使用聚合函数。

例如销售单据明细表(销售单据

编号,商品编号,单价,数量)中增加"

,因为付款总金额=单价*数量得到,说明"

付款总金

额"

是派生性冗余列。

如果不要该字段,那么每次使用总价时,都要先执行代码计算后才能使用,如果商

品数量较多,而且要频繁使用"

时,计算"

时执行的次数也会随着增加,这显然会

影响数据库的执行效率。

若增加"

这个派生性冗余字段,虽然破坏了规范化原则,但只要执行

一次计算"

就可以把商品金额存在数据库中,以后不管什么时候使用"

字段,只需

要提取其值就可以了,不必在执行代码了。

因此增加"

,虽然提高了磁盘空间的使用,但是可

以提高系统执行的效率,达到以空间换时间的目的。

由此可以看出,在数据单据表中增加"

不是正确的优化方法,应该在数据单据明细表中增加"

,这样才能提高查询效率。

【参考答案】(新增题库一)

此方案不可行。

触发器可以通过数据库中的相关表进行层叠更改,这比直接把代码写在前台的做法更安全

合理,保证了数据的一致性,但同时增加了磁盘空间的消耗。

在超市经营中要批量操作、多次触发的情况

下,触发器的效率低,因为它相当于每次都执行一段 

语句,使 

cpu 

的消耗更高。

因而从时空代价角度

来说并不能达到优化的效果,故该方案不可行。

6、设某连锁商店数据库中有关系模式 

R:

R(商店编号,商品编号,库存数量,部门编号,负责人)

如果规定:

每个商店的每种商品只在一个部门销售,每个商店的每个部门只有一个负责人,每个商店的每

种商品只有一个库存数量。

(1)请根据上述规定,写出关系模式 

的函数依赖集;

(2)请给出关系模式 

的候选码;

(3)请说明关系模式 

属于第几范式,并给出理由;

(4)请将 

分解成满足 

的关系模式。

函数依赖定义:

设 

R(U)是属性集 

上的关系模式,X,Y 

是 

的子集,若对于 

R(U)的任意一个可能的关

系 

r,r 

中不可能存在两个元组在 

上的属性值相等,在 

上的属性值不等,则称 

函数确定 

或 

函数

依赖 

X,记作 

X->

Y。

函数依赖是指关系 

的一切关系均要满足的约束条件。

为 

R<

U,F>

中的属性或属性组合,若 

完全依赖于 

K,则 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1