数据库设计的规范化与非规范化:


(1)表格与面向对象:
表格包含各个字段,面向对象也是包含多个成员变量。两者有相似之处。
(2)E-R图向关系图转换:
一对一:
一对多:
多对多:


(3)规范化与非规范化:
1)规范化:
规范化设计的过程就是按不同的范式,将一个二维表不断地分解成多个二维表并建立表之间的关联,最终达到一个表只描述一个实体或者实体间的一种联系的目标。
在工程中3NF、BCNF应用得最广泛,推荐采用 3 NF作为标准。


2)规范化的优点与缺点:
优点:
消除数据冗余,比如插入,更新不会有数据冗余以及不一致的地方出现。
缺点:
将一个大的二维表分为多个子二维表,多个子二维表之间相互联系,但是在查找的时候会子表连接会浪费时间。
数据库规范化的程度越高,其中表的数量越多,表的数量越多,表的连接运算也越多;连接运算增多,必然降低数据库执行的速度,影响数据库的性能。


3)非规范化:
1.定义:
非规范化要求适当地降低甚至抛弃关系模式的范式,不再要求一个表只描述一个实体或者实体间的一种联系。其主要目的在于提高数据库的运行效率。
2.方法:
非规范化处理的主要技术包括增加冗余或派生列,对表进行合并、分割或增加重复表。
3.适用情况:
(1)大量频繁的查询过程所涉及的表都需要进行连接;
(2) 主要的应用程序在执行时要将表连接起来进行查询;
(3)对数据的计算需要临时表或进行复杂的查询。


4)非规范化的优点与缺点:
优点:
减少了查询操作所需的连接;减少了外部键和索引的数量;
可以预先进行统计计算,提高了查询时的响应速度。
缺点:
增加了数据冗余;影响数据库的完整性;
降低了数据更新的速度;增加了存储表所占用的物理空间。
非规范化设计的最大问题是难以保证数据库中数据的一致性,存在着破坏数据的危险。