
泛型是应遵循的规则,也称为范式
1NF: 所有字段都是原子的范式,即表的每一列都是不可分割的原子数据项,并且不能是非原子数据项,例如集合,数组或记录. 也就是说,当实体中的一个属性具有多个子属性时,必须将其拆分为不同的属性. 第一个范例是对关系的最低要求

2NF: 在1NF的基础上,非代码属性必须完全取决于代码(代码: 某个属性或关系中多个属性的组合,用于区分每个元组,该元组可以理解为一个表每个记录)
1NF问题:
1)数据冗余: 表号,名称,部门名称和部门负责人的严重数据冗余
2)插入例外: 无法在没有学生的情况下插入新部门(主要属性不能为空,代码中包含的属性为主要属性)
3)删除例外: 删除部门中的所有学生将导致删除部门和部门名称
4)异常修改: 假设李小明调任法务部,则李小明的全部三个记录都需要修改

在1NF的基础上,2NF要求非代码属性必须完全依赖于代码,也就是说,非代码属性不能部分依赖于代码
为了消除某些功能依赖性,必须将大数据表拆分为两个或多个小数据表:

形成两个表:

3NF: 在2NF的基础上,消除了非主要属性对代码的传递函数依赖性
2NF问题:
1)插入例外: 没有学生就无法插入新部门
2)删除例外: 删除所有学生将导致该部门消失
![]()
在2NF中,可能存在取决于代码的非代码属性传递函数,例如学生编号-部门名称-部门负责人
为了消除传递函数的依赖性范式,您需要继续拆分表:

形成三个表:

满足3NF要求的设计基本上解决了数据冗余过多,异常插入,删除,修改等问题.
BCNF范例:
假设:
1. 一个公司有几个仓库

2. 每个仓库只能有一个管理员,一个管理员只能在一个仓库中工作
3. 可以在一个仓库中存储多个物料,也可以将一个物料存储在不同的仓库中. 每个物品在每个仓库中都有对应的数量
关系模型仓库(仓库名称,管理员,物料名称,数量)属于3NF范例:
代码: (管理员,项目名称),(仓库名称,项目名称)
主要属性: 仓库名称,管理员,物料名称
非主要属性: 数量
非主要属性完全依赖于代码,并且没有非主要属性依赖于代码的传递函数,因此它属于3NF范式

此表的问题:

1)如果没有分配的经理且没有项目,则无法添加仓库
2)清空仓库将删除仓库和管理员信息
3)仓库更换管理员将修改仓库中的每条记录
在3NF范式中导致这些问题的主要原因是: 代码上的main属性存在部分功能依赖关系或传递函数依赖关系: main属性仓库名称对代码存在部分功能依赖关系(管理员,项)
BCNF消除了基于3NF的主要属性对代码部分和传递函数的依赖
因此,您需要将上表分为两个表:
仓库(仓库名称,管理员)
库存(仓库名称,物品名称,数量)
范式(知识)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-246882-1.html
9200吨大型驱逐舰进入12海里岛上没有雷达
#吴亦凡#
等着你们的舞台回归秀
地区
对于进入12海里的外国舰船也不是立马就给予击沉和撞击