《数据库系统原理》期中考试试题
一、单项选择题
现实世界中,事物的一般特性在信息世界中称为 ( >
A.实体
B.实体键
C.属性
D.关系
键GWQ7u8TlVG
数据的逻辑独立性是指 ( >
A.逻辑模式改变,外模式和应用程序不变
B.逻辑模式改变,内模式不变
C.内模式改变,逻辑模式不变
D.内模式改变,外模式和应用程序不变GWQ7u8TlVG
在关系数据库管理系统中,创建的视图在数据库三层结构中属于 ( >
A.外模式
B.存储模式
C.内模式
D.概念模式
GWQ7u8TlVG
关系R和S进行自然连接时,要求R和S含有一个或多个公共 ( >
A.元组
B.行
C.记录
D.属性GWQ7u8TlVG
以下关于索引的正确叙述是 ( >
A.使用索引可以提高数据查询速度和数据更新速度
B.使用索引可以提高数据查询速度,但会降低数据更新速度
C.使用索引可以提高数据查询速度,对数据更新速度没有影响
D.使用索引对数据查询速度和数据更新速度均没有影响GWQ7u8TlVG
6.设关系R和S的属性个数分别为r和s,则(R×S>操作结果的属性个数
为( >
A.r+s
B.r-
s C.r×s D.m
ax(r,s> GWQ7u8TlVG
二、填空题
1.DBMS通常提供授权功能来控制不同的用户访问数据库中数据的权限,其目的是为了数据库的_安全性。
2.数据库系统各类用户对数据库的各种操作请求(数据定义、查询、更新及各种控制>都是由一个复杂的软件来完成的,这个软件叫做
__DBMS_______。
GWQ7u8TlVG
3.在SQL SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_DISTINCT关键字。
4.公司中有若干个部门和若干职员,每个职员只能属于一个部门,一个部门可以有多名职员,职员与部门的联系类型是__1:n_______。
GWQ7u8TlVG
5.使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用__HAVING___子句。
GWQ7u8TlVG
三、简答题
1.简述安全性控制机制,并说明该控制机制针对什么操作而设置?
2.试说明相关子查询的查询执行顺序。
四、综合题
1、某医院病房计算机管理中需要如下信息:
科室:科名,科地址,科电话
病房:病房号,床位号
医生:姓名,职称,年龄,工作证号
病人:病历号,姓名,性别
其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一个科室,但可负责多个病人的诊治;一个病人的主管医生只有一个。
每个病人经医生诊治后,都有一个“诊断”信息。
画出涉及该计算机管理系统的E-R图。
GWQ7u8TlVG
E-R图略。
在图中共有4个实体:
病房、科室、医生和病人;
存在的联系有:
“组成”,科室与病房之间的联系,是1:n;
“从属”,科室与医生之间的联系,是1:n;
“入住”,病房与病人之间的联系,是1:n;
“诊治”,医生与病人之间的联系,是1:n。
2、设有一个顾客商品关系数据库,有三个基本表,表结构如下:
商品表:Article (商品号,商品名,单价,库存量>
客户表:Customer (顾客号,顾客名,性别,年龄,电话>
订单表:OrderItem (顾客号,商品号,数量,购买价,日期>GWQ7u8TlVG <1)请用SQL语言创建一个视图GM_VIEW,检索顾客的顾客号、顾客名和订购商品的商品名、金额和日期。
(金额等于数量*购买价>GWQ7u8TlVG 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 商品号
HAVING COUNT(distinct 顾客号> = (SELECT COUNT(顾客号>
FROM Customer>;
<5)请用SQL语言检索订购4种商品以上的每个顾客的顾客号,顾客名和订购的商品的金额合计,并按金额合计进行降序排序。
(金额等于数量*购买价>GWQ7u8TlVG
SELECT 顾客号,顾客名
FROM Customer
WHERE 顾客号 IN
( SELECT *
FROM orderitem
GROUP BY 数量 HAVING 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.顾客号,顾客名
HAVING COUNT(DISTINST商品号>>=4
ORDER BY 3 DESC
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。