当前位置:文档之家› 期中考试题答案

期中考试题答案

《数据库系统原理》期中考试试题
一、单项选择题
1.现实世界中,事物的一般特性在信息世界中称为( )
A.实体
B.实体键
C.属性
D.关系键
2.数据的逻辑独立性是指( )
A.逻辑模式改变,外模式和应用程序不变
B.逻辑模式改变,内模式不变
C.内模式改变,逻辑模式不变
D.内模式改变,外模式和应用程序不变
3.在关系数据库管理系统中,创建的视图在数据库三层结构中属于( )
A.外模式
B.存储模式
C.内模式
D.概念模式
4.关系R和S进行自然连接时,要求R和S含有一个或多个公共( )
A.元组
B.行
C.记录
D.属性
5.以下关于索引的正确叙述是( )
A.使用索引可以提高数据查询速度和数据更新速度
B.使用索引可以提高数据查询速度,但会降低数据更新速度
C.使用索引可以提高数据查询速度,对数据更新速度没有影响
D.使用索引对数据查询速度和数据更新速度均没有影响
6.设关系R和S的属性个数分别为r和s,则(R×S)操作结果的属性个数
为( )
A.r+s
B.r-s
C.r×s
D.max(r,s)
二、填空题
1.DBMS通常提供授权功能来控制不同的用户访问数据库中数据的权限,其目的是为了数据库的_安全性。

2.数据库系统各类用户对数据库的各种操作请求(数据定义、查询、更新及各种控制)都是由一个复杂的软件来完成的,这个软件叫做__DBMS_______。

3.在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_DISTINCT关键字。

4.公司中有若干个部门和若干职员,每个职员只能属于一个部门,一个部门可以有多名职员,职员与部门的联系类型是__1:n_______。

5.使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用__HA VING___子句。

三、简答题
1.简述安全性控制机制,并说明该控制机制针对什么操作而设置?
2.试说明相关子查询的查询执行顺序。

四、综合题
1、某医院病房计算机管理中需要如下信息:
科室:科名,科地址,科电话
病房:病房号,床位号
医生:姓名,职称,年龄,工作证号
病人:病历号,姓名,性别
其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一个科室,但可负责多个病人的诊治;一个病人的主管医生只有一个。

每个病人经医生诊治后,都有一个“诊断”信息。

画出涉及该计算机管理系统的E-R图。

E-R图略。

在图中共有4个实体:
病房、科室、医生和病人;
存在的联系有:
“组成”,科室与病房之间的联系,是1:n;
“从属”,科室与医生之间的联系,是1:n;
“入住”,病房与病人之间的联系,是1:n;
“诊治”,医生与病人之间的联系,是1:n。

2、设有一个顾客商品关系数据库,有三个基本表,表结构如下:
商品表:Article (商品号,商品名,单价,库存量)
客户表:Customer (顾客号,顾客名,性别,年龄,电话)
订单表:OrderItem (顾客号,商品号,数量,购买价,日期)
(1)请用SQL语言创建一个视图GM_VIEW,检索顾客的顾客号、顾客名和订购商品的商品名、金额和日期。

(金额等于数量*购买价)
CREAT VIEW GM_VIEW(顾客号,顾客名,商品名,金额,日期)
AS SELECT OrderItem.顾客号, 顾客名, 商品名, 数量*购买价, 日期FROM Article, Customer, OrderItem
WHERE Article.商品号= OrderItem.商品号AND
Customer.顾客号=OrderItem.顾客号;
(2)请用SQL语言实现查询一次订购的商品数量最多的顾客名。

SELECT 顾客名
FROM Customer, OrderItem
WHERE OrderItem.顾客号= Customer.顾客号AND
OrderItem.数量=
(SELECT MAX(数量)
FROM OrderItem);
SELECT 顾客名
FROM Customer, OrderItem
WHERE OrderItem.顾客号= Customer.顾客号AND
OrderItem.数量>= All
(SELECT 数量
FROM OrderItem);
SELECT 顾客名
FROM Customer
WHERE 顾客号IN
(SELECT 顾客号
FROM OrderItem
WHERE 数量= (SELECT MAX(数量)
FROM OrderItem)
);
SELECT 顾客名
FROM Customer, OrderItem
WHERE OrderItem.顾客号= Customer.顾客号AND
OrderItem.数量= MAX(数量);
SELECT 顾客名, MAX(数量)
FROM Customer, OrderItem
WHERE OrderItem.顾客号= Customer.顾客号;
(3)请用SQL语言找出女顾客购买的商品号、商品名和数量合计。

SELECT OrderItem.商品号, 商品名, SUM(OrderItem.数量)
FROM OrderItem, Artcle, Customer,
WHERE Article.商品号= OrderItem.商品号AND
Customer.顾客号=OrderItem.顾客号AND
Customer.性别=“女”
GROUP BY OrderItem.商品号,商品名;
(4)请用SQL语言查询所有顾客都订购的商品的商品号和商品名。

SELECT 商品号,商品名
FROM Article
WHERE NOT EXIST
(SELECT *
FROM Customer
WHERE NOT EXISTS
(SELECT *
FROM OrderItem
WHERE顾客号=Customer.顾客号AND
商品号=Article.商品号));
SELECT Article.商品号,商品名
FROM Article, OrderItem
WHERE Article.商品号=OrderItem.商品号
GROUP BY 商品号
HA VING COUNT(distinct 顾客号) = (SELECT COUNT(顾客号)
FROM Customer);
(5)请用SQL语言检索订购4种商品以上的每个顾客的顾客号,顾客名和订购的商品的金额合计,并按金额合计进行降序排序。

(金额等于数量*购买价)
SELECT 顾客号,顾客名
FROM Customer
WHERE 顾客号IN
( SELECT *
FROM orderitem
GROUP BY 数量HA VING count(*)>4
ORDER BY sum(数量*购买价) DESC
WHERE orderitem.顾客号=customer.顾客号
)
SELECT 顾客号,顾客名,金额
FROM Customer, orderitem
ORDER BY 金额DESC
WHERE数量>4 AND 金额=数量*购买价
AND orderitem.顾客号=customer.顾客号SELECT Customer.顾客号, 顾客名, SUM(数量*购买价) FROM Customer, OrderItem
WHERE Customer.顾客号=OrderItem.顾客号
GROUP BY Customer.顾客号,顾客名
HA VING COUNT(DISTINST商品号)>=4
ORDER BY 3 DESC。

相关主题