Database 为什么不';不是所有的范式都使用吗?

Database 为什么不';不是所有的范式都使用吗?,database,database-normalization,Database,Database Normalization,大多数情况下,如果你看到互联网上只讨论了第三或第四个范式,如果你读到有多达7个范式,那么为什么人们不在互联网上讨论它们呢?无论是在YouTube还是任何其他地方,你几乎找不到任何与之相关的例子。主要是1的组合。忽视利益和利益2。数据库管理系统的局限性 人们可以把限制归咎于无知——设计者和实现者,但可能大部分是用户,导致没有市场,导致限制。无知不仅包括规范化的好处,还包括完整性约束的好处 所有基表都可以规范化为5NF。但是,这可能不会保留所有的函数依赖关系。保留的由键约束(某些列集是唯一的而不是N

大多数情况下,如果你看到互联网上只讨论了第三或第四个范式,如果你读到有多达7个范式,那么为什么人们不在互联网上讨论它们呢?无论是在YouTube还是任何其他地方,你几乎找不到任何与之相关的例子。

主要是1的组合。忽视利益和利益2。数据库管理系统的局限性

人们可以把限制归咎于无知——设计者和实现者,但可能大部分是用户,导致没有市场,导致限制。无知不仅包括规范化的好处,还包括完整性约束的好处

所有基表都可以规范化为5NF。但是,这可能不会保留所有的函数依赖关系。保留的由键约束(某些列集是唯一的而不是NULL)强制执行,而非保留的则需要相等依赖性约束(两个列集中的subrow值集始终相等)

DBMS的局限性问题是5NF完整性所需的声明性约束通常不可用,因此人们还没有将其规范化。但即便如此,如果他们只想使用通常可用的声明性约束(PK、UNIQUE NOT NULL、FK&CHECK),那么他们应该规范化为5NF,然后有意识地反规范化,代价是多个表更新事务来处理随后的更新异常

PS范式只是不同的条件,它们具有有用的性质。还有不同的公理和算法。从1NF到6NF的连续体上的标准形式是那些处理有问题的FD(函数依赖)和JD(连接依赖)的形式。可以对它们进行排序,以便如果关系值或变量满足某个形式,则它满足之前的形式,但不一定满足之后的形式。目前:1NF、2NF、3NF、EKNF、BCNF、4NF、ETNF、RFNF又名KCNF、SKNF、5NF又名PJ/NF、超强PJ/NF、6NF