范式(下)-BC范式(BCNF)、关系模式的规范化

一、关系模式STC

假设有一个关系模式STC,包含有学号Sno、教师编号Tno、课程编号Cno、选课成绩G四个属性

即STC(Sno,Tno,Cno,G)

数据间的关系为

  • 每个学生可选修多门课程,每门课程可以被多名学生选修
  • 每个老师只能讲授一门课程,每门课程可由多名老师来讲授
  • 学生选定课程就确定了授课教师,并有一个选课成绩

该关系模式中存在有哪些函数依赖?候选键是什么?主属性是什么?非主属性是什么? 

二、BC范式(BCNF)

1、引言

对于关系模式STC,依旧存在着数据冗余(教师编号和课程号)、数据更新异常(无法插入老师教

授课程信息或无法取消学生选课信息或删除学生选课元组之后会丢失老师教授课程信息

STC只所以存在这样的问题是由于

如何解决这一问题呢?

2、BC范式的定义

对于关系模式R,若X\rightarrow YY\nsubseteq X时,X必含有候选键,即R中所有非平凡的、完全的函数依

赖的决定因素是候选键,则R\in BCNF

也就是说如果R属于BCNF,则R中没有任何属性完全函数依赖于非候选键的任何一组属性

3、分析关系模式STC

(1)在关系模式STC中,由于存在着Tno\overset{f}{\rightarrow}Cno,因此关系模式STC不属于BCNF

(2)可将决定因素不是候选键的函数依赖所涉及的属性单独构成一个关系模式,即将STC分解为TC和ST两个关系模式

则分解后的两个关系模式TC和ST均属于BCNF

(3)通过将STC分解为满足BCNF的关系模式,解决了插入教师授课信息和删除学生选课信息不

能实现的问题

4、BC范式的优点

(1)消除了“主属性对于候选键的部分函数依赖和传递函数依赖”,关系中没有任何属性完全函数

依赖于非候选键的任何一组属性

(2)进一步消除了关系模式中存在的数据冗余和更新异常等问题

5、结论:满足BCNF的关系模式要比满足3NF的关系模式要好

三、关系模式的规范化

1、BC范式

(1)BC范式使得在函数依赖范畴中,实现了数据库中数据的彻底分离,也使BCNF被广泛用来衡

量关系数据库模式是否能满足一般应用的数据处理要求,范式从低到高对关系模式的约束逐渐加

强,所以范式之间是一种包含关系

(2)从低范式到高范式,不断消除着关系模式所带来的数据冗余、更新异常和数据不一致问题,

从而把一个不好的关系模式转换为好的关系模式

2、关系模式的规范化的定义

关系模式的规范化是指将一个低一级的关系模式分解为若干高一级关系模式的集合的这个过程

3、关系模式规范化需要解决的问题

(1) 用一组函数依赖充分表达应用语义所包含的关系模式属性间的约束关系

(2)范式的判定(关键是确定关系模式的候选键)

(3)关系模式的分解

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第三范式(3NF)是指在满足第二范式(2NF)的基础上,消除非关键字列对于主键的传递依赖。而BC范式BCNF)是指在满足第三范式(3NF)的基础上,消除主属性对于候选键的部分函数依赖。 举例如下: 假设有一个学生选课表,包含以下字段: - 学生编号(主键) - 课程编号(主键) - 学生姓名 - 课程名称 - 教师姓名 该表满足第一范式(1NF)和第二范式(2NF),因为每个字段都是原子性的,且存在联合主键。 但是,该表中存在非关键字列对于主键的传递依赖,即学生姓名和课程名称对于主键的传递依赖,因为它们只与主键中的一个字段相关,而不是与整个主键相关。因此,该表不满足第三范式(3NF)。 为了将该表规范到BC范式,需要消除主属性对于候选键的部分函数依赖。由于该表的主键是由学生编号和课程编号组成的,因此任何非主键属性都应该完全依赖于这两个属性的组合。 因此,我们可以将该表拆分为两个表,一个包含学生信息,另一个包含课程信息,如下所示: 学生表(包含学生编号和学生姓名): - 学生编号(主键) - 学生姓名 课程表(包含课程编号、课程名称和教师姓名): - 课程编号(主键) - 课程名称 - 教师姓名 这样,每个表都只包含完全依赖于主键的属性,且这两个表都满足第三范式BC范式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值