一、填空题

 

  1. 能够唯一标识实体的属性或属性组称为____实体的码______。
  2. 如果两个关系没有公共属性,则其自然联接操作与____笛卡尔积_____操作等价。
  3. SQL中聚合函数“COUNT(*)”的功能是___统计元组个数________。
  4. 关系模式如果为1NF,则在对数据操作时存在的问题包括____插入异常______、删除异常、修改异常。
  5. 视图是一个虚表,它一经定义就可以和基本表一样被查询,但 _更新______ 操作将有一定的限制。
  6. 在SQL的授权语句中的关键字PUBLIC表示__全体用户_______。
  7. 若要求分解保持函数依赖,那么模式分解可以达到的范式级别是__3NF________。
  8. 数据库设计分为以下六个设计阶段:需求分析阶段、概念结构设计阶段、___逻辑结构设计阶段________、数据库物理设计阶段、数据库实施阶段、数据库运行和维护阶段。
  9. 当数据库被破坏后,如果事先保存了数据库副本和 __日志文件______ ,就有可能恢复数据库。
  10. 多个事务执行的次序称为___调度______。

二、单项选择题

 

1.数据库的存储设备和存取方法变化不影响整体逻辑结构的特点,称为数据库的( B  )

A.实体独立性 B.物理数据独立性

C.客观独立性 D.逻辑数据独立性

2.以下活动中,一般情况下不属于DBA任务的是   ( C  )

A.在系统运行过程中,对数据库的空间增长情况进行监控

B.在系统运行过程中,对数据库系统各时段CPU和内存使用情况进行监控

C.建立关系表以后编写系统应用程序

D.定期进行数据备份

3.R为4元关系R(A,B,C,D),S为3元关系S(B,C,D),则R∞ S构成的结果集为______元关系。 (  D )

A.4 B.2

C.7 D.6

4.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是 ( B  )

A.多对多 B.一对多

C.多对一 D.一对一

5.一个关系中的候选关键字 ( B  )

A.至多一个 B.可多个

C.必须多个 D.至少 3 个

6.下列哪些属性不适合建立索引 ( D  )

A.经常出现在GROUP BY字句中的属性

B.经常参与连接操作的属性

C.经常出现在WHERE字句中的属性

D.经常需要进行更新操作的属性

7.SQL语言具有数据操作功能,SQL语言的一次查询的结果是一个 (  D )

A.数据项 B.记录

C.元组 D.表

8.在SQL语言中,用于测试列值非空的语句是 ( B  )

A.IS NOT EMPTY B.IS NOT NULL

C.NOT UNIQUE D.NOT EXISTS

9.在SQL中,与“NOT IN”等价的操作符是 (  A )

A.<>ALL B.<>SOME

C.=SOME D.=ALL

10.下列SQL语句中,能够实现“将查询SC表的权限授予用户U1,并允许该用户将此权限授予其他用户”这一功能的是 (  D )

A.GRANT SELECT TO SC ON U1 WITH PUBLIC

B.GRANT SELECT ON SC TO U1 WITH PUBLIC

C.GRANT SELECT TO SC ON U1 WITH GRANT OPTION

D.GRANT SELECT ON SC TO U1 WITH GRANT OPTION

11.被命名的一组与数据库操作有关的权限称为 ( C  )

A.用户组 B.用户

C.角色 D.模式

12.下面给出的关系表r(A,B,C,D)满足下述哪个函数依赖 (  B )

数据库系统概论练习3_期末复习

 

A.A→B

B.B→D
C.D→C

D.A→D

 解析:根据函数依赖的定义:关系R上不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,从表中看来只有B→D,所以本题的答案为B

13.某供应商关系模式为

Provider(PID,Pname,Tel,GoodsID,GoodsClassID,GoodsName,GoodsPrice)

该关系模式应满足如下函数依赖:

PID→Pname,PID→TEL,GoodsID →GoodsClassID,

GoodsID→GoodsName,GoodsName→GoodsPrice

则这个关系模式的主码为 ( C  )

A.(PID,GoodsName) B.(PID,GoodsClassID)

C.(PID,GoodsID) D.(PID,GoodsPrice)

14.在关系数据库中,从关系规范化的意义看,如果关系R中的非主属性对码有传递函数依赖,那么R至多是 ( B  )

A.1NF B.2NF

C.3NF D.BCNF

15.最小函数依赖集Fm要求所有函数依赖的右部 (   )

A.最多有一个属性 B.最少有一个属性

C.可以有多个属性 D.属性个数无要求

解析:F中任一函数依赖的右部仅含有一个属性。

16.并发事务的交叉执行破坏了事务的 ( B  )

A.原子性 B.隔离性

C.一致性 D.永久性

17.要求事务在读取数据前先加共享锁,且读完数据后即可释放S锁,这种封锁协议是

( B  )

A.一级封锁协议 B.二级封锁协议

C.三级封锁协议 D.四级封锁协议

18.以下哪一个将用来记录对数据库中数据进行的每一次更新操作  (  C )

A.数据字典 B.后援副本

C.日志文件 D.数据库

19.设有事务T1和T2,其并发操作顺序如下表所示。该并发操作带来的问题是(C   )

 

T1

T2

READ(A)

 

A=A*2

 

WRITE(A)

 

 

READ(A)

ROLLBACK

 

A.丢失了修改 B.不能重复读

C.读脏数据 D.写错误

20.已知事务T1的封锁序列为:

LOCK (A)…LOCK (B)…LOCK (C)…UNLOCK(B) …UNLOCK (A) …UNLOCK (C)

事务T2的封锁序列为:

LOCK (A) …UNLOCK (A) …LOCK (B)…LOCK (C) …UNLOCK (C) …UNLOCK (B)

则遵守两段封锁协议的事务是 ( A  )

A.T1 B.T2

C.T1和T2 D.没有

 

三、简答题

 

四、应用题

 

假设有如下三个关系模式:

  • 商场表:M(MNO,MNAME,CITY) 各属性含义依次为商场编号、商场名和商场所在城市;主键为商场编号。
  • 商品表:P(PNO,PNAME,CITY,COLOR) 各属性含义依次为商品编号、商品名、产地和商品颜色;主键为商品编号。
  • 销售表:S(MNO,PNO,QTY) 各属性含义依次为商场编号、商品编号和销售数量;主键为(商场编号,商品编号)

基于以上关系模式

使用关系代数实现以下查询

1.查询销售了’红色’商品的商场编号、商品名称和销售数量。

2.查询能销售所有商品的商场编号。

  1. ∏mno,pname,qty (σ color=’红色’ (P∞S∞M) )

【条件color=’红色’,查询结果为MNO,PNAME,QTY分别用到了P表和S表】

∏mno,pname,qty (σ color=’红色’ (P∞S) )

  1. ∏mno,pno (S)÷∏pno(P)

【能销售所有商品(pno),说明用除法,结果为商场编号(mno),用销售表的pno,mno除商品表的商品编号便得到能销售所有商场编号。一般包括最多,包括什么什么在内的条件,一般都用除法。】

使用SQL语句实现以下操作

  1. 查询能够在’北京’市购买到的商品的商品编号和商品名称。

【city=’北京’,商场编号(mno),商品名称(MNAME)】

4.查询只在本地供货的商品的商品编号和商品名称。

5.建立视图ACC,要求包含商品编号PNO和销售总数量ACNT。

6.查询销量最好的商品名称(可以使用视图ACC)。

  1. 将没有产地信息的商品记录更新其产地为’中国’。

3.Select distinct pno,pname from m,p,s where m.mno=s.mno and p.pno=s.pno and m.city=’北京’;
    Select pno,pname from p where pno in ( select distinct pno from m,s where m.mno=s.mno and m.city=’北京’);
    Select pno,pname from p where exists(select * from m,s where p.pno=s.pno and m.mno=s.mno and m.city=’北京’)

4.Select pno,pname from p where not exists(select * from m,s where p.pno=s.pno and m.mno=s.mno

5.Create view acc as select pno,sum(qty) acnt from s group by pno

【商品编号PNO和销售总数量ACNT,求pno,并且需要求和并重命名acnt】

  1. Select pname from p where pno in (select pno from acc where acnt=(select max(acnt) from acc)); //大小写对应更正!

   【求PNAME,在商品表中(P),然后根据销售表找到销量最好的产品号(pno),where销量最好】select pname from p where pno in(select pno from ACC where acnt=(select max(acnt) from ACC));  //因为聚集函数只能在select和having中,故使用视图ACC会方便一些,另一种方法就是不使用ACC,使用having,group by语句找到最大的商品的pno,然后进行嵌套查询,可以自己尝试。

  1. Update p set city=’中国’

//注意,这里不能用等号!

 

五、综合题

 

有运动员参加比赛的关系模式R(运动员号码,比赛项目,成绩,项目类别,比赛主管),如果规定:每个运动员参加一个比赛项目只有一个比赛成绩,每个比赛项目只属于一个项目类别,每个项目类别只有一个比赛主管。

1.根据上述规定,写出模式R的基本FD和关键码。

2.R最高为第几范式?

3.将R规范为3NF。

解:1、模式R的函数依赖关系

由规定中每个运动员参加一个比赛项目只有一个比赛成绩,可得出:  (运动员号码,比赛项目)->成绩

由每个比赛项目只属于一个项目类别,可得出:比赛项目->项目类别【注意:这里不能写反,意思是一个比赛项目能唯一确定一个类别,类别能确定一个项目或多个项目并没有说明!】

由每个项目类别只有一个比赛主管,可得出:项目类别->比赛主管

如果设关系模式R(运动员号码,比赛项目,成绩,项目类别,比赛主管)为R(A,B,C,D,E),则上述函数依赖可描述为F={AB->C,B->D,D->E}  【全写中文个人感觉也问题不大。】

因为所有函数依赖的右边化为单一属性;A+={A},B+={D,E}说明C对A没有依赖对B也没有依赖,那么C就是完全函数依赖于AB,所有函数依赖左边的没有冗余属性,且没有冗余的函数依赖,所以关系模式R的最小函数依赖FD={(运动员号码,比赛项目)->成绩,比赛项目->项目类别,项目类别->比赛主管}。

设AB为候选码,求AB的闭包(AB)+ F={C,D,E,A,B} =U,所以R的关键码为AB,即(运动员号码,比赛项目)

【有点多,上面的意思就是求关键码,文字叙述有点多。其实就是求一个序列能够确定所有元素。因为元素比较少,可以一眼看出AB的闭包能确定所有元素,故AB就是关键码。】

2、关系模式R中的主属性为A、B,非主属性C、D、E,因为非主属性D对主属性AB是部分函数依赖,所以R达不到2NF,只是属于1NF。

3、分解R:(1) 先对F极小化:F已是最小依赖集F={AB->C,B->D,D->E}

     (2) 分离无关属性:所有属性均出现,无需分离。

     (3) 判是否需分解:需要。

     (4) 分解:按左部相同的原则分组,则 r ={ R1(A,B,C), R2(B,D),R3(D,E) },

即R1(运动员号码,比赛项目,成绩);R2(比赛项目,项目类别);R3(项目类别,比赛主管)为一个保持函数依赖且达到3NF 的分解。

六、数据库设计题

某汽车维修厂的维修工单如下表所示:

维修工单号:2011008          下达日期:××××××      完工日期:××××××

故障说明:××××××××××

机动车牌照号:××××××        机动车型号:××××

更换

零件

零件号

零件名称

规格

单价

更换数量

 

LJ002

×××

××

××

××

LJ517

×××

××

××

××

LJ441

×××

××

××

××

LJ086

×××

××

××

××

维修工编号:×××       维修工姓名:×××

(1)试为某汽车维修厂设计一个优化的ER模型,要求标注联系类型。(5分)

(2)将ER模型转换为关系模型,标注每个关系模式的主键和外键(如果存在)。(5分)

(1)

数据库系统概论练习3_sql_02

 

有点东西,设计ER图,首先根据题意分析所具有的实体,属性,关系。

实体:实体一般都是名词,整好表格给的比较巧,一层是一个实体,第一层维修工单,第二层(更换零件,但是这个是动词,不能当实体)所以选零件为实体。第三层是维修工的属性,所以选维修工为实体。补充:第一层还有一个机动车的属性,因为它和维修工单不是所属关系,所以单独做一个实体。

属性:【维修工单号,下达日期,完工日期,故障说明】---维修工单

  【机动车牌照号,机动车型号】--机动车  //注意:属性尽量不要缩写

【零件号,零件名称,规格,单价】--零件,注意:更换数量为动词,动词一般为关系,所以把该属性暂时保留到关系中。

【维修工编号,维修工姓名】--维修工

关系:根据表找关系是比较难的,所以还是第一原则,观察和找动词。四个实体之间有什么关系。维修工单,维修工,零件,机动车。如果能找到动词直接写上两个实体之间的关系,没找到动词就根据观察和实际进行书写。

上面都是分析过程,实际书写的时候直接画E-R图即可!!!

(2)

维修工单(工单号,机动车牌照号,维修工编号,下达日期,完工日期,故障说明) 外键:机动车牌照号,维修工编号

机动车(机动车牌照号,机动车型号) 【主码就是主键,外码就是外键】

维修工(维修工编号,维修工姓名)无外码

零件(零件号,零件名称,规格,单价)无外码

更换(工单号,零件号,更换数量)外键:工单号,零件号