一、数据库三范式
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