软考中级-数据库工程师。 以下三个专题是数据库系统工程师下午案例非SQL部分的解题思路。干货不断,敬请关注点赞收藏转发~

软考中级-数据库工程师。 以下三个专题是数据库系统工程师下午案例非SQL部分的解题思路。干货不断,敬请关注点赞收藏转发~_第1张图片

本人于20240525通过软考中级数据库工程师。 以下三个专题是数据库系统工程师下午案例非SQL部分的解题思路。

专题一:数据库故障与恢复

检查点机制(CHECKPOINT在日志中设置检查点,当发生故障需要利用日志文件恢复时,反向扫描日志文件,找到检查点,确认检查点时刻正在执行的事务(活动事务),即检查点前有事务开始标志但没有事务结束标志。

对于检查点后提交的事务,执行REDO(重做)

对于检查点后未提交的事务,执行UNDO(撤销)

解题思路

1、找到检查点(CHECKPOINT)

2、观察检查点之前有START标志的事务。

3、将这些事务分为以下三类:

(1)在检查点之前提交(COMMIT)的事务:这类事务在检查点时已经正常结束,并不是活动事务,它所做的所有操作已经更新到了数据库,在恢复时不用做任何操作。

(2)在检查点之后提交的事务:这类事务在检查点时并没有正常结束,是活动事务,故障恢复时需要做REDO(重做)。

(3)在检查点之前和之后都没有提交的事务:这类事务在检查点时并没有正常结束,是活动事务,故障恢复时需要做UNDO(撤销)。

专题二:E-R图

1、两方联系:两个实体之间产生联系。说明中的句式类似AB,BA。

2、三方联系:当同一联系需要三方同时参与的时候就是三方联系。说明中的句式类似AB,BC。

3、弱实体:一个实体的存在必须以另一个实体为前提

4、聚合:将联系作为实体,与其他的实体产生联系。

即两个实体A和B先产生联系,联系本身再与C产生联系,需要用方框把A和B之间的联系框起来。

5、子实体:一个实体集可以按照某些特征区分为几个子实体。

6、同一实体集内的联系:同一实体集内的两个实体之间相互存在着一定的关系。

PS:三方联系与聚合的区别:三方联系必须要三方实体同时参与,缺一不可。而聚合是有先后顺序的,两个实体先产生联系,再与第三个实体产生联系。

专题二:E-R图总结

1、问题1补充E-R图:将题目中的说明多读几遍来确认参与联系的实体以及联系的类型。确认联系类型的时候一定要优先根据题干的说明来判断,如果题干可以得到的信息较少,或不足以判断,再根据题目中给出的关系模式来。

2、问题2补充关系模式中的属性:一般都可以从题目的说明中找到答案,带着问题再去读说明。如果一下子没有找到,再通读说明,根据具体语义以及E-R图去判断。

3、问题3稍难,仍然是仔细阅读说明,根据具体的语境再去判断。

TIPS:需求分析、概念结构设计(E-R图)、逻辑结构设计(关系模式)三者是相互关联的。我们画E-R图采取的方法为:

1、依据需求分析中的文字说明来判断。

2、依据逻辑结构设计(关系模式)来判断。

3、依据现实中的生活经验来判断。

专题三:关系规范化

1、找候选码:

     记住候选码的含义:候选码可以决定关系模式中的所有属性,且候选码的任何一个真子集都不能单独决定全属性。

2、是否满足某一范式,或最高可达到第几范式:以下内容背熟:

  1. 属性不可再分,满足1NF

(1)有非主属性对码的部分函数依赖的,不满足2NF

(2)有非主属性对码的传递函数依赖的,不满足3NF

(3)有主属性对码的部分和传递函数依赖的,不满足BCNF

(4)有非平凡且非函数依赖的多值依赖,形如X→→Y,X和Y必在一个关系模式,且只有X和Y,不能有其它多余属性。如果有,不满足4NF。

3、分解关系模式:

(1)有部分函数依赖的情况:

RABCDEF,F={A→CDEAB→F}

 分解成R1(A,C,D,E)和R2(A,B,F)

(2)有传递函数依赖的情况:

R(A,B,C,D,E,F),F={A→(B,C),B→(D,E,F)}

 分解成R1ABC和R2BDEF

(3)有多值依赖的情况:

R(A,B,C,D,E,F),F={A→→B,A→(C,D,E,F)}

分解成R1(A,B)和R2(A,C,D,E,F)

专题三:关系规范化总结

1、找候选码:

1)记住候选码的含义,看哪些属性或属性组合可以决定所有的属性。

2)有编号(ID)的,首要考虑。一般不把姓名,名称等作为候选码,但题目中没有其它更好选择的除外。

2、找函数依赖集。

首先根据题目的描述来判断,再结合现实生活中的实际。可以尝试着写一个该关系模式的范例来判断。

3、确定范式:

根据找出的函数依赖集,确实是否有部分、传递函数依赖,再来判断属于第几范式。

4、分解关系模式:

按函数依赖集来分解,即分解要保持函数依赖。

你可能感兴趣的:(经验笔记,数据库)