华东理工大学数据库原理2012级期中考试试卷(含答案)

更新时间:2023-09-25 06:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、单项选择题(共20分,每空2分) 题号 ① 选择 D ② C ③ A ④ C ⑤ C ⑥ B ⑦ B ⑧ D ⑨ D ⑩ B 小计 1、在表或视图上执行 ① 语句不能激活触发器。

A) Insert B) Delete C) Update D) Create

2、自然连接是查询多个表的有效方法。一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的 ② 。

A) 记录 B) 行 C) 属性 D) 元组 3、关系数据库中的投影操作是指从关系中 ③ 。

A) 抽出指定的属性 B) 抽出指定的记录 C) 建立相应的影像 D) 抽出指定的元组 4、视图创建完成后,数据字典中存放的是 ④ 。

A) 查询语句 B) 查询结果 C) 视图的定义 D) 所引用的基本表的定义 5、在关系数据库设计中,设计关系模式是 ⑤ 的任务。

A) 需求分析阶段 B) 概念设计阶段 C) 逻辑设计阶段 D) 物理设计阶段 6、从E-R模型向关系模型转换时,一个m:n联系转换为关系模式时,该关系模式的码是 ⑥ 。 A) m端实体的码 B) m端实体的码与n端实体的码的组合 C) n端实体的码 D) 重新选取其它属性

7、使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用 ⑦ 关键字。

A) UNIQUE B) DISTINCT C) EXCEPT D) ALL 8、设属性A是关系R的主码,则属性A不能取空值,这是 ⑧ 。 A)参照完整性规则 B)域完整性规则 C)用户自定义的完整性 D)实体完整性规则 9、当关系R和S自然连接时,把R和S中不满足连接条件而该舍弃的元组放到结果关系中的操作是 ⑨ 。

A)内连接 B)外部并 C)不等值连接 D)外连接 10、现有关系模式:

职工(职工号,姓名,工资,参加工作年份)

部门(部门号,部门名,办公室,部门领导职工号) 在以下视图中,不可能更新的视图为 ⑩ 。 A)1980年以前参加工作的职工视图

B)部门号和各部门的平均工资组成的视图 C)职工姓名和工资组成的视图

D)工资在4000元以上职工信息视图

二、填空题(共20分,每空2分) 题号 解答 题号 解答 ① 模式 ⑥ group by ② 患者编号 ⑦ grant ③ primary key ⑧ 数据字典 ④ drop ⑨ is not null ⑤ 用户自定义 ⑩ 交 小计 1、在关系数据库的三级模式(外模式、模式和内模式)结构中, ① 是数据库中全体数据 的逻辑结构和特征的描述,是所有用户的公用数据库结构。

2、现有关系: 患者(患者编号,患者姓名,性别,出生日期,所在单位), 医疗(患者编

号,医生编号,医生姓名,诊断日期,诊断结果),其中,医疗关系中的外码是 ② 。 3、用SQL的数据定义语句的 ③ 子句定义关系的实体完整性。 4、用 _④ 命令可删除基本表。 5、在某大学的数据库中规定学生成绩有6门以上不及格将不能授予学士学位,这属于 ⑤ 完整性约束。

6、在SELECT语句中,HAVING子句必须跟在 ⑥ 子句后面。 7、权限授予的命令是 ⑦ 。

8、在数据库设计中,把数据需求,包括数据项、数据结构、数据流等写成文档。这通常称为 ⑧ 。

9、在SQL语言中,用于测试属性值非空的语句是 ⑨ 。

10、在关系代数中,从两个关系中找出相同元组的运算称为 ⑩ 运算。

三、简答题(共15分,每小5分)

1、举例说明关系参照完整性的含义。

假设有如下所示的两个关系表,在职工表中,工号是主码,部门号是外码;在部门表中,部门号是主码。根据关系参照完整性的规则,职工表中部门号的值要么为空(表示该职工未分配部门),或者等于部门表中的某个部门号中的值(表示该职工属于这个部门)。也就是说一个职工不可以属于一个不存在的部门。

职工 部门

--------------------------- ----------------------------- 工号 姓名 性别 部门号 部门号 部门名 办公室 --------------------------- ----------------------------- 101 刘军 男 K5 K5 销售部 302 102 王丽 女 null K8 技术部 407 103 章华 男 K9 K9 工程部 509

2、下面是一个公司的用户权限定义表,请你用SQL语句为这些用户授权。 被授权用户名 LiMing Public Linder 数据库对象名 关系Books 关系Borrow 允许的操作类型 SELECT INSERT, DELETE 能否转授权 能 不能 不能 关系Readers的属性列Rno UPDATE GRANT SELECT ON TABLE Books

TO Liming WITH GRANT OPTION

GRANT INSERT, DELETE ON TABLE Borrow TO Public

GRANT UPDATE(Rno) ON TABLE Readers TO Linder

3、在银行贷款业务中,如果规定一个客户可以向多个银行贷款,一个银行可以向多个客户

发放贷款,并且记录贷款日期和贷款金额。客户的主码是客户编号,银行的主码是银行编号,请给出贷款的关系模式及其主码。如果我们允许一个客户可向同一个银行申请多笔贷款,原来的主码还能唯一标识一个贷款吗?如果不能,你给出一个解决方法。

答:根据题目规定,可以看出贷款是一个多对多的联系,其属性应该包括客户编号、银行编号、贷款日期和贷款金额。其关系模式为贷款(客户编号,银行编号,贷款日期,贷款金额),主码为(客户编号,银行编号)。如果允许一个可和向同一个银行申请多笔贷款,那么(客户编号,银行编号)就不能唯一标识一个贷款了,可以加一个贷款编号作为主码。

四、应用题(共30分,每小题3分)

(1) 商品表(商品编号,商品名称,单位,成本价,商品类别,库存数量) Item ( code, Iname, unit, cost, type, amount) (2) 商品销售主表(销售单号,销售日期,客户编号) SaleHead (saleOrder,saleDate, CustomerId)

(3) 商品销售明细表(销售单号,商品编码,单价,销售数量) SaleDetail (saleOrder, code, price, qty ) (4) 客户表(客户编号,客户名称,电话,客户地址) Customer(CustomerId,Cname,TeleNo,Address) 用关系代数完成如下查询:

(1) 查询销售给“瑞嘉家具”的所有数量在100以上的商品的销售日期和销售数量。

πsaleDate, qty(σCname=’瑞嘉家具’?qty>=100(Customer? SaleHead ? SaleDetail))

(2) 查询从没有销售过的商品编号,商品名称和库存数量。

πcode, Iname, amount(Item? (πcode(Item)-πcode(SaleDetail ))

(3) 查询亏本(成本价大于单价)销售商品的商品名称、单价和客户名称。

πIname, pricr, Cname(σcost>price (Item?SaleHead ? SaleDetai ?Customer))

(4) 查询各类“冰箱”成本价在2000元以上的商品编号、商品名称和库存量。

πcode,Iname,amount(σtype=\冰箱\?cost>=2000(Item))

用SQL语句完成如下操作

(5) 创建一个视图SaleQty,其内容为一次销售数量在1000以上的商品编号、商品名称和销售数量。

CREATE VIEW SaleQty (code, Iname, num)

AS

SELECT Item.code, Iname, qty FROM Item, SaleDetail

WHERE Item.code=SaleDetail.code AND qty>1000

(6) 按客户编号分组统计销售单数50以上的客户编号和销售单数。 SELECT CustomerId, COUNT(saleOrder) FROM SaleHead GROUP BY CustomerId

HAVING COUNT(saleOrder)>=50

(7) 将成本价在50元以上的的商品的单价提高5%,50元及以下的提高3%。

UPDATE SaleDetail SET price=case when code IN

(SELECT code FROM Item

WHERE cost>50) then price+price*0.5 else price+price*0.3

Update saledetail set price=price*1.05 where code in (select code from item where cost>50) Update saledetail set price=price*1.03 where code in (select code from item where cost<=50)

(8) 按商品编号分组统计各商品的库存数量。 SELECT code, SUM(amount) FROM Item GROUP BY code

(9) 查询没有销售给“林峰科技”的商品的商品编号、商品名称和库存数量。 SELECT code, Iname, amount FROM Item

WHERE NOT EXISTS

(SELECT *

FROM SaleHead, SaleDetail,customer

WHERE SaleHead.saleOrder=SaleDetail.saleOrder And customer.customerid=salehead.customerid

AND cname=’林峰科技’ Item.code= SaleDetail.code)

(10) 删除2013年10月2日到2013年11月2日销售的所有订单。(这些订单中的商品订购信息也要删除) DELETE

FROM SaleDetail

WHERE saleOrder IN

(SELECT saleOrder FROM

WHERE saleDate between \ \ DELETE

FROM SaleHead

WHERE WHERE saleDate between \ \

六、应用设计题(15分)

设一个海军基地要建立一个舰队管理信息系统,它包括如下两个方面的信息: 1.舰队方面

舰队:舰队名称、基地地点、舰艇数量 舰艇:编号、舰艇名称、舰队名称 2.舰艇方面

舰艇:舰艇编号、舰艇名、武器名称 武器:武器名称、生产日期、舰艇编号 官兵:官兵证号、姓名、舰艇编号

其中,一个舰队拥有多艘舰艇,一艘舰艇属于一个舰队;一艘舰艇安装多种武器,一种武器可安装于多艘舰艇上;一艘舰艇有多个官兵,一个官兵只属于一艘舰艇。 请完成如下设计:

(1) 请画出上述信息系统的E-R图(8分)

(2) 合并时是否存在命名冲突?如何处理?(2分) (3) 将全局E-R图转换为关系模式,标出主码和外码。(5分)

(1) 舰队的局部E-R图:

舰艇名称 舰艇数量 编号 舰队名称 基地地点

1 n 舰队 舰艇 拥有

舰艇的局部E-R图: 武器名称 生产日期 舰艇编号 舰艇名

m n

舰艇 武器 安装

1

属 于 n

官兵

全局E-R图如下:

官兵证号 姓名

武器名称 生产日期 舰艇编号 舰艇名称 m n 舰艇 武器 安装

1 1

拥有 m 属

舰艇数量 舰队 官兵证号 n

官兵 基地地点 舰队名称 姓名

(2) 合并时存在如下命名冲突:

“舰艇编号”和“编号”存在异名同义,合并统一为“舰艇编号” “舰艇名”“舰艇名称”存在异名同义,合并统一为“舰艇名称” (3) 转换的关系模式如下:

舰队(舰队名称,基地地点,舰艇数量);主码:舰队名称,无外码 舰艇(舰艇编号,舰艇名称,舰队名称);主码:舰队编号,外码:舰队名称 武器(武器名称,生产日期);主码:武器名称;无外码 官兵(官兵证号,姓名,舰艇编号);主码:官兵证号,外码:舰艇编号 安装(舰艇编号,武器名称);主码:(舰艇编号,武器名称),外码:舰艇编号,武器名称

本文来源:https://www.bwwdw.com/article/v5kd.html

Top