关系数据库设计:三种范式的一般理解
【狂神说Java】MySQL的最新教程很容易理解
三大范式的作用
1、防止信息重复
2、防止更新异常
3、防止插入异常(例如不能正常显示信息) ) )。
4、防止删除异常(例如删除了不适用的有用信息) )。
第一正则表达式(1NF ) :要求数据库表中的每一列都是不可分割的原子数据项。 这是写得更细致的意思。 例如以下所示。
当第二范式(2NF )第二范式必须满足第一范式时执行。 非代码属性必须完全依赖于候选代码(基于1NF消除非主属性对主代码的部分函数依赖) )。
在第二种模式中,必须确保数据库表中的每一列都与主键相关。 它不仅仅与主键的一部分相关。 主要用于联盟主键。 表可以细分为一个独立的事情,可以理解为两件事情不能共享一个表。 例子如下。
第三范式(3NF ) )第三范式还在第二范式上尽量分离为不同的主键控制
规范性和性能问题蚂蚁的要求,相关表不得超过三个表考虑业务需求和目标,超过三个表时数据性能更为重要。 (成本和用户体验更重要) )在规范、性能时,适当考虑规范性。 故意提供冗长的字段。 目的是将优胜查询作为单表的查询,故意添加计算列。 使大数据量成为小数据量的查询,例如索引