1.为什么要关注数据库设计
在创建完逻辑数据库结构之后,在使用工具创建数据库。关注数据库设计是因为数据库设计对于数据库数据的一致性,信息完整性和准确性至关重要。如果数据库设计不当,就难以检索到特定类型的信息,甚至可能得到错误信息。得到错误信息大概是数据库设计不当产生的后果,因为它能对企业造成实质性的伤害。
2.理论的重要性
关系数据库基于数学的两个分支——集合论与一阶谓词逻辑。数学理论为关系数据库提供基础,使之可以预测,可靠且安全。所谓“设计”,就是指组织构建模块以达到理想的结果。
3.优秀设计的目标
- 数据库应支持设定的和即时的信息检索
- 正确且高效地构建表
- 数据完整性落实到字段,表以及关系层次
- 数据库支持与组织相关的业务规则
- 数据库适应未来发展
4.优秀设计的好处
- 数据库结构易于修改和维护
- 数据已于修改
- 信息易于检索
- 终端用户应用易于开发与创建
5.数据库设计方法
传统设计方法
数据库的传统设计方法一般来说分为三个阶段:需求分析(requirements analysis),数据建模(data modeling)以及规范化(Normalization)。
需求分析阶段考察待建模企业,评估需求。
数据建模阶段涉及使用数据建模方法构建数据库结构,比如实体关系(ER)图,语义对象建模(semantic-object modeling),对象角色建模(object-role modeling)以及UML建模。本书使用的是基本ER图。在数据建模阶段,需要定义字段并将之与相应的表联系起来。每个表都指定一个主键(primary key),确认并实现各个层次的完整性,通过外键(foreign key)建立关系。一旦初始表结构完成,并根据数据模型建立好关系,就可以进入规范化阶段了。
规范化是将大表分解为小表的过程,目的在于减少冗余数据和重复数据,并避免插入,更新以及删除数据时产生问题。在规范化过程中,表结构对照范式(normal form)进行测试。当前使用的范式是第一范式,第二范式,第三范式,第四范式,第五范式,第六范式,BC范式以及域键范式。
本书中的设计方法
将需求分析和简单ER图方法结合起来,以对数据库结构进行图解。不包含传统规范化过程,没有涉及范式使用。
6.规范化
规范化的目的是将设计拙劣或有误党的表转化为具有健全结构的表。