一、数据库三范式
1NF:字段不可再分
2NF:记录完全依赖主键,消除部分依赖
3NF:在2NF基础上消除传递依赖
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
三范式是设计的标准,但不是唯一的准则,需要结合实际的业务使用情况进行数据库的设计。
二、数据库设计的原则
1、明确应用数据库的服务类型(OLTP/OLAP)
事务处理型:关注增删改查,规范化的表
分析型:分析,报表,趋势预测等,查询效率,扁平的不规范化的数据库结构
2、属性切割,结合应用将字段细分成不同的块,也不能过度细分
名字细分为姓、名;电话号码
3、关注重复不统一的数据
将可能存在同意但不同值的字段通过外键的方式处理,放入表中重构统一
4、字段的值复杂时考虑将其放入单独表,利用外键引用
5、将多对多,一对多的情形结合业务处理成单独的表,用外键引用
6、OLAP系统中可以使用派生列,将计算值一块存储,OLTP可以不使用
7、不要固执的避免冗余,冗余数据并不是坏的
8、注意名值表特点的设计,主从表的方式解决
9、树型结构数据的设计,表内字段关联业务
参考资料:http://www.oschina.net/question/267865_48311?sort=default&p=4
三、科德RDBMS设计12法则
1、信息法则:信息可用表中记录标示
2、保证访问法则:通过表明,字段等可用访问每个数据项
3、空值的系统化处理:
4、基于关系模型的动态联机目录
5、统一的数据子语言
6、数据的物理独立性
7、数据的逻辑独立性
8、数据完整性独立性
四、数据库设计阶段
规划阶段:必要性,可行性,选型
概念阶段:依照需求识别数据实体和实体间关系,理清数据流动过程,明确数据来源,数据的业务操作
相关呈现,流动过程。
逻辑阶段:主要是E-R图,建模,主要考虑实体,实体关系,属性,范围约束等
实现阶段:定义表,确定属性,约束等
物理阶段:部署数据库,调试
五、设计原则
1、低耦合,高内聚
2、性能要求内完善主外键
3、规范统一的设计定义规则
4、根据系统架构按组件进行设计
http://www.cnblogs.com/MeteorSeed/archive/2013/03/27/2880054.html