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

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

今天,我们将继续沿着数据库系统的精髓探索之路,深入研究数据库系统概论中的经典大题:范式、闭包和主码。让我们深入挖掘这些概念,并为期末考试做好充分准备


一.范式提升

1NF

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


2NF

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

该关系模式属于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


综合例子:

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


根据分析可以得到一组函数依赖: F={ NO→C#,C#→CN,C#→CA,B#→BN,B#→EU,B#→UP,(NO,B#) →QUA },表中(NO,B#)为关键字


先升级为2NF

   


再分解为3NF

           



二.求闭包

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

 

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


步骤:


eg:



三.求主码

设关系模式R<U, F> (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来有更好的格式吧


目录
相关文章
|
24天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
3月前
|
数据库
数据库三范式
数据库三范式
18 0
|
3月前
|
存储 数据库
数据库设计三范式
数据库设计三范式
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据类型、运算符以及数据库范式
MySQL数据类型、运算符以及数据库范式
48 0
MySQL数据类型、运算符以及数据库范式
|
4月前
|
存储 数据库 双11
数据库的三大范式及其重要性,详细易懂
数据库的三大范式及其重要性,详细易懂
247 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据库范式
MySQL数据库范式
|
5月前
|
存储 关系型数据库 数据库
详细介绍带了你解密【数据库的三大范式】
详细介绍带了你解密【数据库的三大范式】
|
5月前
|
数据库
数据库设计:范式与反范式
数据库设计:范式与反范式
|
9天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
45 2

热门文章

最新文章