关系型数据库:关系模式设计原则
1.范式与数据冗余度
从0NF到1NF、2NF、3NF、BCNF、4NF、5NF?
数据库设计的过程是个拆分表的过程,拆分的目的是降低数据的冗余度。
数据的冗余度越低,事务持续时间就越短(它不需要额外的操作去维持数据一致性和完整性)。
与此同时,拆得越细,查询的代价越高(需要更多耗时的连接运算)。
2.关系模式的设计原则
如果表(集)主要用于数据更新(Online),表的分解就应该尽可能接近3NF,
BCNF从前面的例子看没有必要,至于4NF、5NF更多属于理论研究领域,在实际应
用中无此必要。
如果表(集)主要用于数据查询(统计、分析),表的分解到1NF、2NF就可以了。
对于常用的查询,甚至可以采用数据持续化技术,
即用专门的表(集)提供对数据查询的支持。