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