一、单项选择题
-
关系模式的任何属性( A )。
A.不可再分
B.可再分
C.命名在该关系模式中可以不惟一
D.以上都不是 -
保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的( A )。
A. 安全性
B.完整性
C.并发控制
D.恢复 -
事务的一致性是指( D )。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据为的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 -
数据库的概念模型独立于( A )。
A.具体的机器和DBMS
B.E-R图
C.信息世界
D.现实世界 -
下列哪些运算是关系代数的基本运算( D )。
A. 交、并、差
B. 投影、选取、除、联结
C. 联结、自然联结、笛卡尔乘积
D. 投影、选取、笛卡尔乘积、差运算 -
候选码中的属性可以有( C )。
A. 0个
B. 1个
C. 1个或多个
D.多个 -
下述关于数据库系统的正确叙述是( A )。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据 -
( C )是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。
A.程序
B.命令
C.事务
D.文件 -
用于数据库恢复的重要文件是( C )。
A.数据库文件
B.索引文件
C.日志文件
D.备注文件 -
若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为( C )。
A.事务故障
B.系统故障
C.介质故障
D.运行故障 -
关于“死锁”,下列说法中正确的是( D ) 。
A.死锁是操作系统中的问题,数据库操作中不存在
B.在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库
C.当两个用户竞争相同资源时不会发生死锁
D.只有出现并发操作时,才有可能出现死锁 -
并发操作会带来哪些数据不一致性( D ) 。
A.丢失修改、不可重复读、脏读、死锁
B.不可重复读、脏读、死锁
C.丢失修改、脏读、死锁
D.丢失修改、不可重复读、脏读 -
从一个数据库文件中取出满足某个条件的所有记录的操作是(A )。
A.选择
B.连接
C.投影
D.复制 -
如果事务T获得了数据项Q上的排它锁,则T对Q( C )。
A. 只能读不能写
B. 只能写不能读
C. 既可读又可写
D. 不能读也不能写 -
对数据对象施加封锁,避免死锁的方法没有采用以下(C )策略。
A.顺序封锁法
B.一次封锁法
C.先来先服务
D.两段锁
二、判断题
- ( X )数据库系统的数据独立性是指不会因为存储策略的变化而影响存储结构 (应用程序和数据结构之间相互独立, 互不影响)。
- ( X )规范化主要的理论依据是关系代数理论 (关系规范化理论)。
- ( X )把低一级的关系模式分解为若干个高一级的关系模式,其目的是为了消除插入异常、删除异常和数据不一致 (数据冗余度高)。
- ( X )如果两个实体之间具有M : N 联系,则将它们转换为关系模型的结果是两 (三) 个表。
- ( X )在数据库三级模式结构中,外模式的个数与用户个数相同 (可以有任意多个)。
- ( X )关系模式R,S 具有共同的属性X,且X是R的主码,则X称为S的外部码。
- ( X )数据冗余引起的问题主要是花费空间。
- ( X )在数据库中,不应该存储任何冗余数据。
- ( )编程不属于数据库的模式设计阶段。
- ( )存储过程的输出结果可以传递给一个变量。
三、数据库设计题
在进行某汽车运输公司管理系统设计过程中获得的语义如下:
设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
要求:
(1)试设计 E-R 图,注明属性和联系类型。 (5分)
(2)将 E-R 图转换为等价的关系模型(包括关系名,属性名和码)。 (12分)
车辆(牌照号,车队郝,厂家,出厂日期)
车队(车队号,车队名)
聘用(车队号,司机编号,聘期)
司机(司机编号,姓名,电话)
(3)指出以上各关系模式所达到的范式级别,如果不是第三范式的请转成第三范式,并给出理由
都是第三范式,因为在模式中都不存在函数依赖和传递函数依赖。
四、应用题
设有一个供销管理的数据库,包括如下三个关系模式:
(1)材料(材料编号,材料名称,类别,用途)
(2)供应商(供应商编号,供应商名称,地址,联系方法)
(3)供应(供应商编号,材料编号,数量,单价,日期)
语义如下:
(1)材料编号,材料名称,供应商编号,供应商名称不能为空;
(2)供应表中数量取值大于等于0,单价取值大于0;
1、用SQL语句建立上述三个表(15分)。
create table Natertala(
M_ID char(20) not null primary key,
M_Name char(20) not null,
M_Type char(20),
M_use char(10)
);
create table ordershop(
order_ID char(20) not null primary key,
order_Name char(20) not null,
order_Adress char(20),
order_plane char(18)
);
create table order1(
order_ID char(20) not null ,
M_ID char(20) not null,
num int check(num>0),
price int check(price>0),
riqi datetime,
primary key(order_ID,M_ID)
);
2、针对上题中建立的3个表试用SQL语言完成如下查询和操作。(15分)。
(1)查询供货数量大于10的材料编号及名称。
select a.M_ID, M_Name from Natertal a, order1 b where a.M_ID = b.M_ID AND num>10;
(2)查询供应商编号为“201201001”供应的材料名称为“发动机”的供货日期。
select riqi from order1 where order_ID='201201001' and M_ID in (select M_ID from Natertal where(M_Name='发动机'))
(3)查询供应“发动机”的所有供应商名称。
select order_Name from ordershop where order_ID in (select order_ID from order1 where M_ID in(select M_ID from Natertal where M_Name='发动机'))
(4)删除数据库中供应商编号为“201201001”的所有记录。
delete from order1 where order_ID='201201001'
delete from ordershop where order_ID='201201001'
(5)插入一条供应记录(‘201201010’,‘101001001’,12,10)。
insert into order1(order_ID,M_ID,num,price) values('201201010','101001001',12,10)
3、创建一个存储过程,显示材料供应情况,其中数量大于50的显示“大客户”,数量小于10的显示为“一般客户”,其它显示“优质客户”(10分)。
4、定义一个触发器,供应表中增加记录时自动将新增记录的日期设定为当前日期(10分)。
CREATE TRIGGER insert_mark ON order1 FOR INSERT AS UPDATE order1 set riqi=getdate()