一、单项选择题(每小题1.5分,共30分)
1、构成E—R模型的三个基本要素是( B )。
A.实体、属性值、关系 B.实体、属性、联系
C.实体、实体集、联系 D.实体、实体集、属性
2、在数据库三级模式间引入两级映象的主要作用是( A )。
A.提高数据与程序的独立性
B.提高数据与程序的安全性
C.保持数据与程序的一致性
D.提高数据与程序的可移植性
3、若关系R为M列P行,关系S为N列Q行,则R×S的结果为( )列( )行。 B
A.M+N、P+Q B.M+N、P×Q
C.M×N、P+Q D.M×N、P×Q
4、设关系R(A,B,C)和S(A,D),与自然连接R∞S等价的关系代数表达式是( C)。
A.бR.A=S.A(R×S) B.R×S
C.∏B,C,S.A,D(бR.A=S.A(R×S) D.∏R.A,B,C,D(R×S)
5、假设有学生表:Student(Sno,Sname,Sage),如果要找出名字中第二个字为“丽”的学生的姓名(Sname),则查询条件子句应写成WHERE Sname( C )。
A.LIKE ‘_丽_’ B.LIKE ‘%丽_’
C.LIKE ‘_丽%’ D.LIKE ‘%丽%’
6、为了防止黑客和犯罪分子破坏或盗窃数据库中的重要数据,我们要防止未经授权或不合法的使用。这是指数据的( A )。
A.安全性 B.完整性 C.并发控制 D.恢复
7、假设有学生选课表:SC(Sno,Cno,Grade),元组个数大于零,Grade为整型且没有空值,执行修改语句:
UPDATE SC
SET Grade=Grade+1
元组值修改情况为( D )。
A.修改了一个元组的Grade值
B.修改了多个元组(不是所有元组)的Grade值
C.修改元组值的数目不确定
D.修改了所有元组的Grade值
8、用下面的SQL语句建立一个基本表:
CREATE TABLE Student(Sno CHAR(4) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Sex CHAR(2),
Age INT)
可以插入到表中的元组是( A )。
A. '5021','李新',NULL,NULL B. NULL,'李新',NULL,21
C. '5021',NULL,男,21 D. '5021','李新',男,21
9、有关系模式:研究人员(人员编号,姓名,年龄,职称,部门号)和部门(部门号,名称),其中人员编号和部门号都是主码,将“研究人员”关系中“部门号”定义为外码,这一规则属于( B )。
A.实体完整性约束 B.参照完整性约束
C.用户定义完整性约束 D.关键字完整性约束
10、以下关于外码和相应的主码之间的关系,正确的是( B )。
A.外码一定要与相应的主码同名
B.外码并不一定要与相应的主码同名
C.外码一定要与相应的主码同名而且唯一
D.外码一定要与相应的主码同名,但并不一定唯一
11、下面属于数据库系统中安全性控制方法的有( C )。
①用户身份鉴别 ②审计 ③视图
④存取控制 ⑤CHECK约束
A.全部 B.①②④⑤ C.①②③④ D.①③④⑤
12、关系规范化是为解决关系数据库中( A )问题而引入的。
A.操作异常和数据冗余 B.提高查询速度
C.减少数据操作的复杂性 D.保证数据的安全性和完整性
13、已知关系:厂商(厂商号,厂名),主码为厂商号,产品(产品号,颜色,厂商号),主码为产品号,外码为厂商号
假设两个关系中已经存在如下图所示元组:
若再往产品关系中插入如下元组:
I(P02,红,C02) II(P03,白,null)
III(P04,绿,C05) IV(P01,蓝,C01)
能够插入的元组是( C )
主码不能为空且唯一,外码要在被参照表中存在着
A.I,II,IV B.I,III
C.I,II D.I,IV
14、设有关系R(A,B,C,D,E),其函数依赖集为F={ADE→BC,DE→B,B→C},则R属于第几范式?( B )
A.不属于范式 B.第1范式
C.第2范式 D.第3范式
15、某E-R图中有12个实体类型,并且它们之间存在着15个不同的二元联系,其中4个是1:1联系类型,5个是1:N联系类型,6个M:N联系类型,那么根据转换规则,这个E-R图转换成的关系模式最少有( C )。
A.17个 B.23个 C.18个 D.27个
16、( C )是将SQL语句嵌入如C++、JAVA等程序设计语言中。
A.提示式SQL B.交互式SQL
C.嵌入式SQL D.解释式SQL
17、在某系统的两个分E-R图中,学生实体的学号属性的数据类型有的为字符型,有的为整型,这种情况属于( A )。
A.属性冲突 B.命名冲突
C.结构冲突 D.数据冗余
18、在数据库系统中,日志文件用于( C )。
A.保障事务的并发性 B.保障数据的安全性
C.数据库故障的恢复 D.保障数据的完整性
19、一个事务执行过程中,其正在访问的数据被其他事务所修改,导致处理结果不正确,这是由于违背了事务的何种特性而引起的?( A )
A.隔离性 B.一致性 C.原子性 D.持久性
20、设有两个事务T1、T2,其并发操作如下表所示,下面评价正确的是( C )。
A.该并发操作不存在问题 B.该并发操作导致丢失修改
C.该并发操作导致不能重复读 D.该并发操作导致读“脏”数据
T1 | T2 |
①读A=20,B=6 ② ③读A=40,B=6 求和26验证错 | 读A=20 A=A*2写回 |
二、判断题(每小题1分,共10分)
1、当数据库的存储结构改变,数据库管理员修改模式/外模式映像,使模式保持不变,从而应用程序不受影响,就保证了数据与程序的物理独立性。 N
2、设关系R和S都有n个属性,且相应的属性都取自同一个域,那么R∪S和R-(R-S)是等价的。N
3、子查询的SELECT语句中也可以使用ORDER BY子句。N
4、用户权限是由数据库对象和操作类型两个要素组成的。Y
5、关系模式R中若每个分量都是不可分的数据项,那么R一定属于第一范式。Y
6、若事务T对数据R已经加了X锁,则其他事务对数据R不能加任何锁。Y
7、在关系模式中,候选码可以有多个,主码只能有一个。Y
8、一个“一对多联系”可以转换为一个独立的关系模式,也可以与任意一端的关系模式合并。N
9、存储过程是由过程化SQL语句编写的过程,在SQL Server2008中创建存储过程的命令动词是Execute。N
10、当数据库被破坏后,如果事先保存了数据库后备副本和日志文件,就有可能恢复数据库。Y
三、填空题(每空2分,共10分)
1、用关系代数表达如下的查询: πSname,Grade(σgrade>90(Student∞Sc)) 一
from student,sc
where grade>90 and student.sno=sc.sno
2、在Student表的Sid列上建 立一个唯一索引的SQL语句为:
CREATE UNIQUE index SID ON student(Sid)
3、某数据库需要回收已分配给员工刘明对某数据库职工表进行更新的权限,则对应的SQL语句为:
revoke UPDATE ON TABLE 职工 TO 刘明
4、数据库设计中的 需求分析 阶段是设计数据库的起点,该阶段的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计。
5、在关系A(S,SN,D)和B(D,CN,M)中,A的主键是S,B的主键是D,现在建立A表,要把D定义为外码,请把下面命令补充完整。
CREATE TABLE A
(……
D CHAR(10),
……
FOREIGN KEY (D) REFERENCES B(D) ,
……);
四、用SQL语句完成下列操作(第1题6分, 2-4题每题3分,共15分)
设某企业管理数据库中有3个关系信息如下:
职工表Emp(Eno,Ename,Age,Sex,Rank),其属性分别表示职工号、姓名、年龄、性别、职称。
分公司表Comp(Cno,Cname,City),其属性分别表示分公司编号、分公司名称和分公司所在城市。
工作表Works(Eno,Cno,Salary),其属性分别表示职工号、工作的分公司编号和工资。
- 用SQL语句建立Emp表,要求:职工号、姓名、性别、职称数据都是字符型,长度分别为6、8、2、10,年龄为整型,范围在22至60之间(包括边界值);姓名非空,职称只能是“助工”、“工程师”、“高工”之一;根据题意定义主码。
Create table emp(
Eno char(6) primary key,
Ename char(8) not null,
Age int check(Age between 22 and 60),
Sex char(2),
Rank char(10) check (Rank in(‘助工’,’工程师’,’高工’))
);
2、向Comp表中插入分公司编号为“A001”,分公司名称为“第一分公司”,分公司所在城市为“张家口”的元组。
Insert into Comp values(‘A001’,’第一分公司’,’张家口’)
3、在Works表中删除调离员工“张明”的相关信息。(假设无重名)
Delete from Works where Eno = (select Eno from Emp where Ename=’张明’);
4、将Works表中所有职称为“高工”的职工的工资加300。
Update Works set Salary=Salary+300 where Eno in(select Eno from Emp where Rank =’高工’);
五、用SQL语句完成下列查询操作(每题3分,共15分)
针对第四题中的数据库,完成如下查询操作:
1、查询所有在“北京”工作的职工的职工号和姓名。
Select Emp.Eno,Ename from Emp,Comp,Works
Where Emp.Eno=Works.Eno and Comp.Cno = Works.Cno and City=’北京’
2、创建视图:F_View,查询刚入职、职称还未评定(为NULL)的职工的职工号。
Create view F_VIEW as select Eno from Emp where Rank is null
3、查询比所有女职工年龄都大的男职工的职工号和姓名。
Select Eno,Ename from Emp
Where sex=’男’ and age>all(select age from Emp where sex=’女’)
4、查询所有“王”姓职工的职工号和工资,并按工资降序排列。
Select Emp.Eno,Salary from Works,Emp where Emp.Eno = Works.Eno
And Ename like ’王%’ order by salary desc;
5、查询职工平均工资超过6000元的分公司编号和平均工资(别名)。
Select Cno,avg(salary) 平均工资 from Works group by Cno
Having avg(salary)>6000
六、综合分析题(第1题8分,第2题12分,共20分)
1、关系规范化(8分)
设有关系模式:
R(项目号,材料号,材料数量,材料价格,开工日期,完工日期,项目经理)
各属性的函数依赖情况为:{(项目号→开工日期,项目号→完工日期,项目号→项目经理,(项目号,材料号)→材料数量,材料号→材料价格}
回答下列问题:
- 关系模式R的候选码是什么?(2分)
R的主码为(项目号,材料号)
(2)分析R最高属于第几范式,并说明理由。(3分)
因为(项目号,材料号)是主码,所以有
(项目号,材料号)→(开工日期,完工日期,项目经理)
而:项目号→(开工日期,完工日期,项目经理)
所以存在着非主属性“开工日期”,“完工日期”,“项目经理”对码的部分函数依赖,所以R不是2NF,它是1NF。
【注:只要举出一个非主属性对码的部分函数依赖的例子即可。第(2)小题共3分,举例1分,说出违反2NF的原因1分,结论1分】
(3)若R不是3NF,将其规范到3NF。(3分)
对R进行模式分解,分解成:
R1(项目号,材料号,材料数量)
R2(项目号,开工日期,完工日期,项目经理)
R3(材料号,材料价格)
【注:关系模式的名字可以不统一。第(3)小题共3分,每个关系模式各1分,关系模式中多、少属性减0.5分。】
2、数据库设计(12分)
假设某百货公司有若干连锁商店,在该应用中具体有如下信息:
商店:商店编号、店名、店址、经理
职工:职工编号、职工名、性别、年龄
商品:商品编号、商品名、单价
每家商店有若干职工,但每个职工只能服务于一家商店。每家商店经营若干商品,每种商品可以在多家商店销售。职工加入某商店工作时有开始时间,某商店卖出商品有销售数量和销售时间。
(1)根据上述语义画出E-R图,要求在图中画出属性并注明联系的类型。(6分)
(2)将该E-R图转换为关系模式,划线标出每个关系模式的主码。(6分)
(要求:关系模式的个数尽可能的少)
商店(商店编号,店名,店址,经理)
职工(职工编号,职工名,性别,年龄,商店编号,开始时间)
商品(商品编号,商品名,单价)
销售(商品编号,商店编号,销售时间,销售数量,)
评分标准:
1、第1小题6分。每个实体及属性各1分,其中实体0.5分,实体属性0.5分,每错一个地方减0.5分,减至本项0分止。每个联系1.5分,其中联系0.5分,联系属性0.5分,联系类型0.5分,每错一个地方减0.5分,减至本项0分止。
2、第2小题6分。下划线为主码(答案可以按适合方式指明主码)。每个关系模式1分,每错一个地方减0.5分,减至本项0分止。每个主码0.5分。未写关系模式只写主码不给分。
3、实体、属性、联系名在ER图和关系模式中要保持一致,题目中未明确指出的可以自拟名称,每错一处减0.5分。
4、绘制形状错误:画错形状整体减0.5(2至3处)至1分(3处以上)。