数据库期考考点

第一题 概念模型设计 关系模型转换

看懂ER图,转换成3NF关系表

 

实体 属性 关系

弱实体集合:形成它的主键需要关联的其他实体的主键,即它的主键包括外键。

 

 

第二题 3NF和BCNF范式

判断无损连接和保持函数依赖的分解

属性闭包求键

 

1. 3NF的判断

X->A:X不是superkey且A不是prime时,违背3NF

X->A violates 3NF if and only if X is not a superkey and also A is not prime.

 

2. 3NF分解

(1) 求最小函数依赖集合和所有键

(2) 对函数依赖左部相同的函数依赖进行分组

(3) 保证不存在子模式的包含情况

(4) 观察是否有某个关系含有key,若含有则分解终止,若不含则添加key关系作为新表

 

3. BCNF判断

X->A:X不是superkey时,违背BCNF

 

4. BCNF分解

(1) 找出违背BCNF的函数依赖 X->A

(2) 求该函数依赖左部属性的闭包 X+

(3) R1=X+; R2=R-(X+ - X)

(4) 考察R1和R2是否违背BCNF,对违背BCNF的关系进行分解

 

第三题 故障恢复

 

先写日志后写磁盘

 

undo日志:对于没有commit或abort的操作,从后往前回滚

redo日志:对于commit的日志,从前往后重新执行

undo-redo日志:两者的结合

 

动态检查点:

1. 求commit事务集合S

2. 对于commit了的事务(S中的事务),从ckpt点开始redo日志中的操作

3. 对于没有commit的事务(不在S中的事务),从后往前undo日志中的操作

直到ckpt,如果事务在ckpt时仍然活跃,则undo溯源到事务的start点

 

第四题 并发控制

(1)是不是可串行化调度 (有向图有没有环)

等价的串行化调度

两阶段锁 自己添加读写锁

规则1:形式良好的事务,l1(A) p1(A) u1(A),对事务操作的前后要加锁和解锁

规则3:两段锁协议 对于同一个事务,必须先全部加锁再全部解锁。但是不同的事务之间可以交叉

l1(A) l2(B) l1(C) ... p1(A) p2(B) p1(C) ... u1(A) u2(B) u1(C)

(2)规则2(不考)

(3)死锁 (不考)

 

第五题 关系代数

九种运算:

1 并 * AUB

2 交 A∩B

3 差 * A-B

4 笛卡尔积 *

5 除 A÷B

6 选择* σ (where)

7 投影* π (select)

8 连接 θ连接

9 自然连接

 

把查询操作用关系代数表现出来

 

查询优化过程:逻辑查询计划、物理查询计划

1. 解析SQL语句(parse-tree)

2. 生成逻辑查询计划

3. 逻辑优化

4. 估计中间运算结果大小

5. 生成物理查询计划

6. 执行最佳查询计划

 

最小完备集(五种):并U、差-、笛卡尔积、选择σ、投影π

 

逻辑层优化:把选择σ和投影π操作往叶子节点移(尽早做)

 

4NF 多值函数依赖:

和BCNF定义类似,只是面向的是多值函数依赖

A->->B,A是superkey

 

多粒度锁,共享锁,意向锁:

粒度:表 tables、行 tuples、值fields

共享锁:Is1(A) x1(A) u1(A)

意向锁:IS IX 对祖先节点上意向锁

课后习题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值