前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)

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

作者头像
是Nero哦
发布2024-01-18 18:36:56
2050
发布2024-01-18 18:36:56
举报
文章被收录于专栏:c/c++学习与分享

上一次我们介绍了数据库中关系代数查询,从选择、投影到连接等操作符,探索了数据库查询

大家可以移步我的文章:数据库系统概论期末经典大题讲解(用关系代数进行查询)-CSDN博客

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

一.范式提升

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,undefined 则将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四类

  • 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, Eundefined R类:undefined N类: Pundefined LR类: A, B, D 因为(CEP)F+=CEPDBA,所以CEP是R的唯一候选码

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.范式提升
    • 1NF
      • 2NF
        • 3NF
          • BCNF
            • 综合例子:
            • 二.求闭包
            • 三.求主码
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档