规范化,从为什么要规范化,到范式的判断,分解

说白了,规范化就是收缩数据库表,通过分解打破不必要的数据连接。
我们先来说说最重要的事情。
比如我们去年开发的电商项目,表格设计就没有做好。
一位用户的订单表包含客户信息,例如地址和电话号码。
结果地址要改五六处,数据各种错——这就是典型的更新异常。
还有一点是,当你的数据有3 000级左右的时候,你发现删除一个产品,实际上是删除了创建它的用户的信息。
这是删除异常。
还有另一个重要的细节。
例如,客户姓名会重复存储在订单明细表中。
不仅访问慢,而且改名也需要同步。
这称为数据冗余。
说实话,这很令人困惑。
很多人没有注意到这一点。
后来他们发现它是错误的,并很快用范式理论重构了它。
实施3 NF后,数据一致性立即提高了9 0%以上。

一开始我以为只要满足3 NF就万事大吉了,但后来我发现不对劲。
例如,某些链接表必须在所需的冗余字段上牺牲一些性能,否则联表查询将慢得要命。
等等,还有一件事。
用俚语来说,这称为雪崩效应。
事实上,前端的一点滞后就会导致后端的一切崩溃。
例如,表具有许多依赖项,并且对字段的更改需要完全重建。
建议不要拘泥于范式层面,根据业务场景灵活调整,但基本规则还是要了解的。
你怎么认为?

何谓数据规范化?规范化的方法有哪些

BCNF比3 NF有更严格的要求。
说白了,所有属性都不能传递依赖于候选键。
上周我刚刚完成了 BCNF 转换,这非常令人困惑。
如果仔细观察示例中的 S 关系,您会发现 DNO 实际上是中间转换。
这是第一个。

数据库设计的基本原则有哪些

昨天,在帮朋友整理杂乱的照片库时,突然遇到一个现象:同一张照片出现了多次。
我想到了数据库设计中的“一表一用”原则。
如果存储在数据库中,这会浪费存储空间。
我简单计算了一下,如果每张照片平均占用1 MB的空间,光是这些重复的照片就浪费了5 GB的空间!等等,还有一件事,我突然想到,如果每个表只存储相同的数据,维护起来不是容易得多吗?就像整理照片库一样,类别清晰简单。