数据库设计基本步骤:
- 需求分析
通过向客户调研,了解客户的实际需求。
总结分析客户所需要的管理系统,究竟需要处理哪些数据。 - 标识对象(实体)并设计对象的属性
对象(或实体)将来映射为数据库中的数据表。
对象的属性映射为数据表的字段。
对象应该有唯一的标识(ID)。 - 确定对象之间的映射关系
对象之间通过外键映射关系,减少数据冗余。
对象之间的映射关系是通过对象唯一标识建立的。
常见的对象映射关系有一对一和一对多或者多对多。
数据库设计合理性检验
检验数据库设计是否合理:
表结构设计的合理性是数据库设计的关键。
能够避免数据冗余。
能够解决数据库操作异常。
数据库三范式原则(保证各个数据表结构设计的合理性)
范式:是具有最小冗余的表结构
第一范式(1st NF):目标是确保每列的原子性(即不可再分的最小数据单元)
第二范式(2nd NF):要求每个表只描述一个实体的属性
如果一个关系满足1NF,并且除了主键以外的其它列,都和主键列相关,则满足第二方式(2NF)。
第三范式:要求实体各属性之间不能具有直接的依赖关系
满足条件:如果一个关系满足2NF,除了主键列之外,其它列之间都不具有直接的依赖关系,则满足第三范式。
应用第二、第三范式时,为了保证实体之间存在必要的关系,往往需要将独立的实体和当前实体通过外键关联。
数据库模型设计
规范化以后使用Viso软件创建数据库模型,再按照数据库模型实现数据库
三范式与数据库性能
- 第三范式的应用后数据库的变化
使得实体被最大限度的分割成若干个小实体。
实体增多,同时实体之间的关系变得复杂,数据分布在多个表中。
数据的查询和统计将变得复杂,多表连接查询会适当降低查询性能。 - 为满足某种商业目标,数据库性能比规范化数据库更重要
在给定的表中添加额外的字段,可大量减少需要从中搜素信息所需时间。
比如,在高考成绩表中插入“成绩总分”列(该列其实冗余),以方便查询。 - 进行规范化的同时,还需要综合考虑数据库的性能
三范式与数据库的性能要根据实际要求权衡。
根据实际需要增加或减少冗余列。