一数据库设计: 将数据库中的数据实体以及这些实体之间的关系, 进行规划和结构化的过程
设计过程:
需求分析: 分析客户的业务和数据处理需求
概要设计: 绘制数据库的 ER 图, 确认需求信息的正确性和完整性
详细设计: 将 ER 图转换为多张表, 进行逻辑设计, 取人哥表的主键外键, 并应用数据库设计的三大范式进行审核最后选择具体的数据库
二数据库设计的三大范式:
(1) 第一范式
目标: 确保每列的原子性
如果每列都是不可再分的最小数据单元 (最小原子单元), 则满足第一范式
(2) 第二范式
目标: 确保表中每列都和主键相关
如果一个数据库满足第一范式, 并且主键以外的其它列全部依赖于该主键, 则满足第二范式
如果一个主键有多个列, 那么其他列必须都对这两个主键列都有依赖否则可以分开为两个表~
(3) 第三范式
目标: 确保每列都和主键列相关, 而不是间接相关
如果一个关系满足第二范式, 并且除了主键以外的其他列都只能依赖于主键, 列和列之间不存在相互依赖关系, 则满足第三范式
第三范式也是对字段冗余性的约束, 即任何字段不能由其他字段派生出来, 所以要求字段没有冗余
主键与外键在多表中的重复出现不属于数据冗余, 非键字段的重复出现才是数据冗余
来源: http://www.bubuko.com/infodetail-2546382.html