数据库关系理论大题详解

提醒:知识点内容均为了便于理解而口语化的,因此考察定义时建议使用官方语言

知识点:

非平凡函数依赖:X->Y,且Y不是X的子集

完全函数依赖:X->Y,且对于X的任意子集,都不能推出Y

部分函数依赖:X->Y,X的某个子集也能推出Y,Y部分函数依赖于X

候选码(主码):能唯一决定其他属性的属性组

        例如:学号        姓名        专业        GPA

        有可能出现重名的情况,因此,同一个姓名可能推出两个学号,因此,姓名不能为候选码,但是学号只能推出一个姓名,专业,GPA,因此,学号是候选码,请注意,这只是一个简单的例子,在复杂的情况,可能有多个属性才能决定其他的属性,因此是属性组

超码:能推出所有属性的属性组的集合,候选码是最小的超码

主属性:在任何一个候选码中都出现的属性

非主属性:在任何一个候选码中都没出现的属性

外码:关系模式R中,若有一个属性或属性组X,不是R的码,是另一个关系模式S的码,X是R外码

全码:整个属性组都是码

1NF:所有属性都不可分割        例如:学校,如果可以分成高中和大学,就不满足1NF

2NF: 没有部分函数依赖

3NF:没有传递函数依赖        传递函数依赖:A->B        B->C        A->C

BCNF:在函数依赖集中,左侧包含整个候选码(属性组)

        例如:F = {AB->C   ACD->F}如果ABC为候选码,则不满足BCNF范式

4NF:没有多值依赖(一般不考)

模式分解的准则:无损连接,保持函数依赖

大题一:求所有候选码的方法

实际就是求哪几个元素可以推出剩下的元素

1.分类:一定:只在左边,或不出现,B,D

                可能:左右都出现,A,C,E

                不属于:只在右边出现,G

2.闭包运算:一定是候选码的闭包运算,看是否包含全部内容,不能则与可能是的组合,进行闭包运算        B,D的闭包是{B,D}        A,B,D的闭包是{A,B,C,D,E,G}可以        B,C,D也可以

同理,{(ABD)  (BCD)  (BDE)}都是候选码

判断X->Y是否成立        使用闭包运算

大题二:范式的判断和分解方法

例题二:设R{A,B,C,D}若码是AB,F中为{A->C,AB->D},是否满足2NF(第二函数依赖)?

由于C可以直接由A推出,不需要B,因此,有部分函数依赖,不满足2NF,分解很简单,把不符合的拿出来就行        R1{A B D}        R2{A C}

例题三:设R{A,B,C,D}若码是AB,F中为{AB->C,C->D},是否满足3NF(第三函数依赖)?

有传递函数依赖,不满足3NF,分解很简单        R1{A B C}        R2{C D}

例题四:若R是(A,B,C)F是{AC->B AB->C B->C} 候选码是AC和AB        B->C中不包含码,因此,不满足BCNF范式

大题三:最小函数依赖集

1.拆分右侧        如果A->BC        则拆分成A->B和A->C

2.去除自身求闭包        若有AB->C        BC->E        AE->G,如果去除AB能推出的C,我们发现还可以推出C,则AB->C可以去掉了

        请注意:这里是只去除AB->C,然后看AB这个组合能不能运用其他的关系推出C

3.左侧最小化        如果ABC->D        我们就找ABC之间的关系,看看是否能将其减少 

大题四:模式分解

1.画表格,列表示所有的属性(A,B,C,D,E),行表示分解的关系(R1,R2,R3,R4,R5)

2.填内容,如果关系R中含有某一列的就写为a,没有就写为b,a的下标是列的顺序,b的坐标是它自身的坐标

3.更新:看F,依次执行,例如,题目中我们先执行A->C,然后是C->D,以此类推,循环往复

        更新表格内容:对于A->C,我们就看A那一列,A的哪一列含有a,就将其对应到同行的C中,如果所有对应的C列的数值都为b,则将所有b改为坐标最小的b,一旦对应的含有a,就将b中对应的全部改为a        如果A中有b的坐标完全相同的,就将其再次对应C,没有则不需要操作

4.循环,直到某一行全部变为a,或经过多次扫描后表格没有更新,则循环结束

5.如果某行全为a,则该分解具有无损连接性

练习题可查看CSDN:

数据库作业15:第六章: 关系数据理论 总结+习题_例题 已知关系模式 判断属于第几范式,写出函数依赖,写出主码候选码,规范化到-CSDN博客

关系数据库规范化理论——范式练习及答案讲解_关系规范化理论试题-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值