1.元组的每个分量必须是不可分的数据项
关系数据库特别强调,关系中的属性不能是组合属性,必须是基本项,并把这一要求规定为鉴别表格是否为“关系”的标准。
2.数据库中的数据冗余应尽可能少
数据冗余是数据库最忌讳的毛病。数据冗余会使数据库中的数据剧增,系统负担过重,并会浪费大量的存储空间。
数据冗余还会导致数据的不完整、增加数据维护的代价,数据冗余还会造成数据查询和统计的困难。
3.不能因为数据更新而引起数据不一致问题
关系模式设计的不好,会导致不必要的数据冗余。
当执行数据修改是可能会出现冗余数据被部分修改,从而导致数据更新异常。
4.不能出现数据插入异常
关系模式设计的不好,会导致同一关系中出现多种信息混合存储。(插入、删除异常)
多种信息之间的复杂依赖关系是导致数据不能被正确插入的关键所在。
5.不能出现删除异常
关系模式设计的不好,会导致统一关系中出现多种信息混合存储。(插入、删除异常) 多种信息之间的复杂依赖关系是出现删除异常问题的关键所在。
6.应考虑查询要求、数据组织应合理
关系模式设计时,不仅要考虑数据自身的结构完整性,还要考虑到数据的使用要求。 对于查询实时性要求高的数据库,有必要通过视图等方式增加数据冗余来增加数据库的方便性与可用性。二、关系模式的分解
- 对于有问题的关系模式,可以通过模式分解的方法使之规划化。
- 关系模式的分解是关系规范化的主要方法,关系模式的分解要遵循以下原则:
- 一事一地原则:一个关系只能表达一种信息,不能多种信息混合存储;
- 无损性原则:分解后的各个关系进行自然连接,能完成恢复以前的信息;
- 独立原则:分解后的每一个关系的变化不会影响其他关系。
- 实例如图:(存在大量数据冗余)
- 关系模式分解后,如图:(关系分解后,数据冗余度降到最小,且不会再出现插入异常、删除异常和更新异常问题)
- 可以知道其有如下意义:
- 可将每一个数据项转换为最小数据项;
- 消除不必要的冗余,并使关系检索得到简化;
- 消除插入、更新和删除异常;
- 易于使用非过程化的高级查询语言进行查询。
关系模式的好坏有一个规范的方法来评定。关系模式的规范化就是把一个存在数据冗余、插入异常、更新异常和删除异常等情况的关系模式通过模式分解,转换为符合设计要求的多个关系模式的集合。
关系数据库的设计,主要是关系模式的设计,关系模式设计的关键在于关系模式的规范化。