关系数据规范化理论

简介: 关系数据规范化理论

这里的问题主要是针对数据库逻辑设计中如何设计一个好的关系数据库模式出发。

一般来说,一个关系模式只要满足第一范式(每个分量是不可分的数据项),它就是合法的。但实际上,它还会存在,插入、删除、修改异常及数据冗余大等问题,这个时候,就要通过关系数据规范化理论解决这些问题。下面,先介绍一些基础知识再介绍规范化理论的具体内容。


1.基础知识


1.1函数依赖


函数依赖: 若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。

部分函数依赖: 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

完全函数依赖: 设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。、

传递函数依赖: 设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。


1.2码


码: 设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K(这个“完全”不要漏了),那么我们称 K 为候选码,简称为码。

主码: 若候选码多于一个,则选定其中一个为主码。

外码: 属性组X非该关系中码,但是是另一个关系模式中码。


主属性和非主属性:

包含在任何一个码中的属性成为主属性。除了主属性以外的就是非主属性。


规范化理论


第二范式2NF:非主属性完全函数依赖于码

第三范式3NF:非主属性完全依赖于码且不传递依赖于码

BCNF(修正的第三范式):任何属性完全依赖于码且不传递依赖于码,已经解决了插入,删除异常!

简单来说:

第一范式:列不能再分

第二范式:建立在第一范式基础上,非主属性消除部分依赖

第三范式:建立在第二范式基础上,非主属性消除传递依赖

BC范式:建立在第二范式基础上,主属性也消除传递依赖

相关文章
|
移动开发 vr&ar
数据库系统概论——关系代数详解
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是利用对关系的运算来表达查询的。任何运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。关系代数的运算对象是关系,运算结果亦为关系。集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作。
2125 1
数据库系统概论——关系代数详解
com.alibaba.excel包教程:Excel数据导出加工进阶篇
com.alibaba.excel包教程:Excel数据导出加工进阶篇
2827 0
|
11月前
|
机器学习/深度学习 运维 自然语言处理
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
791 1
大模型技术在安全威胁检测中的应用:从传统到未来的跃升
|
Web App开发 开发者
利用chrome控制台调试post请求
利用chrome控制台调试post请求
960 0
|
运维 关系型数据库 Java
DataKit6.0将MySQL8.0迁移至openGauss6.0
DataKit6.0将MySQL8.0迁移至openGauss6.0
|
小程序 开发者
【轻松开发微信小程序】实现用户增删改查功能
本篇文章主要介绍如何从零开始开发微信小程序,并以实现用户增删改查功能为例,详细讲解了小程序的目录结构、项目创建、编码等方面。通过本文的学习,读者可以了解到微信小程序开发的基本流程和常见操作,为深入学习和实践提供了基础。
909 0
|
消息中间件 存储 Kafka
ZooKeeper助力Kafka:掌握这四大作用,让你的消息队列系统稳如老狗!
【8月更文挑战第24天】Kafka是一款高性能的分布式消息队列系统,其稳定运行很大程度上依赖于ZooKeeper提供的分布式协调服务。ZooKeeper在Kafka中承担了四大关键职责:集群管理(Broker的注册与选举)、主题与分区管理、领导者选举机制以及消费者组管理。通过具体的代码示例展示了这些功能的具体实现方式。
607 2
可靠性(MTTF,MTTR,MTBF以及系统可靠性的计算,串联,并联,模冗余系统)
可靠性(MTTF,MTTR,MTBF以及系统可靠性的计算,串联,并联,模冗余系统)
3204 1
|
存储 关系型数据库 数据库
数据库原理与应用系列_04函数依赖
在关系数据库系统中,关系模型包括一组关系模式,并且关系之间不是完全孤立的(主外键)。 设计一个合适的关系型数据库系统,关键是设计关系型数据库的模式。
数据库原理与应用系列_04函数依赖
YI
|
SQL 存储 移动开发
数据库系统概论笔记(三)
数据库系统概论笔记(三)
YI
1154 1