数据库原理技术与应用
一.单项选择题
- 设有属性A,B,C,D,以下表示中不是关系的是( C)
A、R(A) B、R(A, B, C, D) C、R(AxBxCxD) D、R(A,B)
- 在SQL语言中的视图VIEW是数据库的(A)。
A、外模式 B、模式 c、内模式 D、存储模式
-
事务了在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是(A)
A、一级封锁协议 B、二级封锁协议 C、三级封锁协议 D.零级封锁协议
-
o p1 (o p2 ®)等价于( B)。
A、o p1 v p2 ® B、o p1 ^ p2 ® C、op1® D、op2®
- 在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建©。
A、另一个表 B、游标 C、视图 D、索引
- 有关系SC(S_ID,C_ID,AGE,SCORE),查找年龄大于22岁的学生的学号和分数,正确的关系代数表达式是( D)。
i. Πs_id,score ( o age>22(SC) )
ii. Π age>22 (Πs_id,score(SC) )
iii.Π s_id,score (o age>22 (Πs_id,score,age(SC)))
A、i和ii正确 B、只有ii正确 C、只有 i正确 D、i和iii正
-
两个原来不包含空值的关系进行左外连接运算,结果中(B)会出现空值?
A、原来左关系的属性 B、原来右关系的属性C、左右关系的属性都会 D、左右关系的属性都不会
-
规定关系的所有主属性都不能取空值,是用来实现哪一类完整性约束(A)
A、实体完整性 B、域完整性 C、参照完整性 D、用户自定义的完整性
-
学生关系(学号,姓名,性别,年龄,系号,系名)中,"系名"对主关键字"学号"的函数依赖是©。
A、完全函数依赖 B、部分函数依赖 C、传递函数依赖 D、平凡函数依赖
- B表字段a类型int中有100条记录,值分别为1至100。如下语句
SELECT a FROM B
WHERE a BETWEEN 1 AND 50 OR (a IN (25,70,95) AND a BETWEEN 25 AND
75)
则如下哪个值在这个8ql语句返回的结果集中(A)
A、30 B、51 C、75 D、95
- 事务的一致性是指(D).
A、事务中包括的所有操作要么都做,要么都不做
B、事务一旦提交,对数据库的改变是永久的
C、一个事务内部的操作及使用的数据对并发的其他事务是隔高的
D、事务必须是使数据库从一个一致性状态变到另一个一致性状态
- 数据库系统由(D)组成。
A、数据库及其必备的硬件系统
B、数据库及相应的硬件、软件系统
C、数据库及相应的软件系统
D、数据库及相应的硬件、软件系统和各类相关人员
- 下述哪一条是并发控制的主要方法(B)。
A、授权 B、封锁 C、日志 D、索引
14 .在关系R中,U是主码,X是一个属性集,如果X→U,那么X是一个(B)
A、候选码 B、超码 C、主码 D、外部码
- 员工表staff表结构如下:
staffNO varchar2(10),
Email varchar2(50)
哪一个SQL语句查询出没有E_mail地址的员工号 ©
A.select staffno from Staff where Emai = NULL
B. select staffno from Staff where Email NULL
C. select staffno from Staff where Email is mull
D.select staffno from Staff where Email is not mull
- 不属于视图的优点是(A)
A、视图能够加快查询的速度 B、视图使用户能以多种角度看待同一数据
C、视图对重构数据库提供了一定程度的逻辑独立性
D、视图能够对机密数据提供安全保护
- 关系数据库规范化是为了解决关系数据库中( A)的问题而引入的。
A、插入、删除异常和数据冗余 B、提高查询速度
C、减少数据操作的复杂性 D、保证数据的安全性和完整性
- 已知表T1中有2行数据 ,T2中有3行数据,执行SQL语句"select a,* from T1 a,T2 b"后,返回的行数为(D)。
A、2行 B.3行 C、5行 D、6行
- 数据库恢复的基础是利用转储的冗余数据,这些转储的冗余数据包括(C)
A、数据字典,应用程序,审计档案,数据库后备副本
B.数据字典,应用程序,审计档案,日志文件
C、日志文件,数据库后备副本
D. 数据字典,应用程序,数据库后备副本
- 关于索引(index)的说法哪些是错误?(A)
A、创建索引能提高数据插入的性能
B、索引应该根据具体的检索需求来创建,在选择性好的列上创建索引
C、索引并非越多越好
D、建立富引可使检索操作更迅速
二.判断题
-
超码一定是候选码。(X)
-
遵守两段锁协议的调度一定是可串行化调度。(√)
-
在关系数据库中,用主码来保证参照完整性。(X)
-
单码的1NF一定是 2NF。(√)
-
自然连接要求相等的分量必须有共同的属性名,等值连接则不要求。(√)
-
遵守三级封锁协议不一定遵守两段锁协议。(×)
-
基本的关系运算是:并、交、积、选择、投影。(×)
-
UPDATE语句是用来修改表结构的,ALTER 语句是用来修改表中数据的。(X)
三.填空题
-
并发操作带来的数据不一致性包括三类:(丢失修改 )、(读"脏"数据 )和(不可重复读)
-
一般地,当删除被参照关系的某个元组,而参照关系存在若干元组,其外码值与被参照关系删除元组的主码值相同,这时可有三种不同的策略:(级联删除)、受限删除、置空值删除。
-
存在两个结构相同的数据库表T1(col1,co12,co13)、T2(col1,co12,col3).写出相应SQL语句将所有T1数据导入到T2表(insert into T2 select * from T1)
-
在数据库的三级模式体系结构中,模式与内模式之间的映象(模式/内模式),实现了数据库的(物理)独立性。
-
在关系A(S, SN, D)和B(D,CN,NM)中,A的主健是S,B的主键是D,则D在A中称为(外码).
-
设有关系模式R(U,F),其中U=(A,B,C,D,E); F=(AB→C,B→D,C→E,EC→B,AC一B):那么(AB)~为(ABCDE),
-
(日志)是用来记录事务对数据库的更新操作的文件。
-
在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用(GRANT )语句,收回所授的权限使用(REVOKE )语句。如果想让授权的用户,也可以将这些权限转授给其他用户,需要选项( WITH GRANT OPTION)。
-
系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲没来得及写入数据库。因此恢复操作就是要(撤销UNDO)故障发生时未完
四.分析与应用题
- R(U,F) U=(A,B,C,D ) F= (D->B,B->D, AC->D)
(1)分析关系R的候选码为?
(2)分析是否属于2NF范式?关系是否属于3NF范式?需分析
(3)如果关系不是3NF,将其规范到3NF
- 某社商业集团数据库中有3个实体集:
"商店"实体集,属性有商店编号、商店名、地址:
"商品"实体集,属性有商品号、商品名,规格、单价:
"职工"实体集,属性有职工编号、姓名、性别、业绩。
商店与商品之间存在"销售"联系,每个商店可销售多种商品,每中商品也可以放在多个商店销售,每个商店销 售的一种商品有月销售量:商店与职工之网存在"聘用"联系,每个商店有许多职工,每个职工只能在一个商店 工作
(1)设计满是上述要求的E-R图。(4分)
(2)将你的E-R图转化为关系模型,并指出关系的主键和外键。(4分)
商店(商店编号,商店名,地址) 商店编号为主码
职工(职工编号,姓名,性别,业绩,商店编号,聘期,工资)职工编号为主码,商店编号为外码
商品(商品号,商品名,规格,单价)商品号为主码
销售(商店编号,商品号,月销售量)商店编号+商品编号为主码
五.请用SQL语句完成以下操作
现有关系数据库如下:
Student(Sno,Sname,Sex, Age,City, Class) 学生关系,以上属性含义为;学号,姓名,性别,年龄,籍贯,所在班级
Course(Cno,Cname, Grade, Tno)课程关系,以上性含义为:课程程名,开设年级,任课教师号
Teacher(Tno,Tname, Age, City)教师关系,以上属性含义为:教师号,教师名,年龄,籍贯
SC(Sno, Cno, Score)选修关系,以上属性含义为:学号,课程号,成绩
-
试写出学生关系Student创建的SQL语句,在创建时给学生关系Student添加约束;学号为主键;性别的默认值为"男";学生的年龄必须大于13岁
create table Student(
Sno char(10) primary key,
Sname char(10),
Sex char(2) default '男'
Age int check(age>13),
City char(20),
Class char(20)
)
-
删除Course的某些记录,条件为"李梅"老师负责授课的课程。
delete from Course where Tno = (select Tno from T where Tname = '李梅')
-
修改SC的某些成绩,条件为课程名为"数据库"的所有成绩增加5分。
update SC set Score = Sscore+5 where cno = (select cno from Course where Cname='数据库')
-
查询哪些学生的考试平均成绩高于全体学生的平均成绩,列出这些学生的学号、姓名、平均成绩。
select student.sno,sname,avg(score) from student join sc on student.sno=sc.sno
group by student.sno,sname
having avg(score)>(select avg (score) from sc)
-
哪些学生的籍贯与教师李梅的籍贯相同。列出这些学生的学号、姓名、籍贯。
select student.sno,sname,city from student where city = (select city from t where tname = '李梅')