数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)

上一次我们介绍了数据库中关系代数查询,从选择、投影到连接等操作符,探索了数据库查询
大家可以移步我的文章:数据库系统概论期末经典大题讲解(用关系代数进行查询)-CSDN博客
今天,我们将继续沿着数据库系统的精髓探索之路,深入研究数据库系统概论中的经典大题:范式、闭包和主码。让我们深入挖掘这些概念,并为期末考试做好充分准备


目录

一.范式提升

1NF

2NF 

3NF

BCNF

综合例子: 

二.求闭包

三.求主码


一.范式提升

1NF

关系R中每个分量都是不可分割的数据项,则R属于1NF

2NF 

定义 若R属于1NF,且每个非主属性完全函数依赖于码,则称R属于2NF。 

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第1张图片 该关系模式属于1NF,不属于2NF。 因为有非主属性部分函数依赖于码:

  • 非主属性Sdept、 Sloc部分函数依赖于码

方法:

非主属性有两种: 一种完全依赖于码;

                           一种部分依赖于码 --- 将其分出 

就是完全依赖的单独作为一个关系模式,部分依赖的将部分依赖费主码和非主属性作为一个关系模式

 可变为SC(SNO, CNO, G)    S-L(SNO, SDEPT, SLOC)  此时便是2NF

3NF

定义:若R属于2NF, 且它的任何一个非主属性都不传递依赖于任何候选码,则R属于3NF

(不能有传递依赖)

上述例子存在  SNO->SDEPT   ,  SDEPT->SLOC (存在传递依赖了,不是3NF)

规范化过程中通过一组投影分解消除传递依赖,建议作如下分解(第二步分解):

已知关系R(A,B,C), A为主码(A->B, A->C),且B->C,     

则将R分解成为两个投影:         R1(B,C), B为主码         R2(A,B), A为主码,B为外码

 据此可分解为:SC(SNO, CNO, G)    S-L1(SNO, SDEPT,)  S-L2(SDEPT, SLOC)

BCNF

关系模式R中每一个决定因素都包含(或是)码,则R属于BCNF 

综合例子: 

某书店购书情况汇总登记表 :

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第2张图片根据分析可以得到一组函数依赖: F={ NO→C#,C#→CN,C#→CA,B#→BN,B#→EU,B#→UP,(NO,B#) →QUA },表中(NO,B#)为关键字

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第3张图片 先升级为2NF

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第4张图片    数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第5张图片数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第6张图片

再分解为3NF

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第7张图片            数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第8张图片数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第9张图片数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第10张图片


二.求闭包

在关系模式R中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+

 

设F为属性集U上的一组函数依赖,X属于U, X+F={A|X ->A能由Armstrong公理导出}, X+F称为属性集X关于函数依赖F的闭包

步骤: 

数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第11张图片 eg:

 数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)_第12张图片


三.求主码

设关系模式R (1) 将R的所有属性分为 L、 R、N和 LR四类 

1.   

  • L类: 仅出现在F的函数依赖左部的属性;    
  • R类: ………………………...右…………;    
  • N类: 在F的函数依赖左右两边都不出现的属性;    
  • LR类: …………………………都出现的属性

2.

  • 开始求L类中单个属性的闭包 ,如果最后结果是全部属性,那个那个属性即为主码
  • 所有单个属性都不能达到结果,那就开始找多个属性结合的闭包(从2到n慢慢增加,直到结果是全部属性)
  • 如果L类中用完了都不行,那就加上N类属性,先加一个,不行在增加。
  • 如果L+N都不行,最后加上LR类吧(当然老师不会出那么复杂的,一般顶多加上N类就行了)

 

eg:

设关系模式R(A, B, C, D, E, P), 其函数依赖集:     F={A→D, E→D, D→B, BC→D, DC→A}    

求R的所有候选码。

解:  L类: C, E          

R类:          

N类: P            

LR类: A, B, D

因为(CEP)F+=CEPDBA,所以CEP是R的唯一候选码


那么今天就先到这里了,之前写博客都是用富文本,今天发现好多符号都不能打出,影响大家的观感,只能截图进来,看来要去学习学习markdown了。希望下次能学会markdown来有更好的格式吧

 

 

 

你可能感兴趣的:(期末考试,经验分享,数据库)