数据库设计是软件开发的重要步骤,数据库设计不合理可能造成前台功能无法实现。如查询的返回结果出错。要正确设计一个数据库应该遵循以下步骤:
第一步:通过与客户的会谈,收集用户的数据需求,并写出具体的调研报告
第二步:对用户的数据需求进行尽可能详细的分析,作出具体的需求分析报告
第三步:通过需求分析报告,找出其中的具体的实体即(类和对象),并准确确定他们之间的关系(一对一,一对多或多对多)
第四步:通过使用工具(PowerDesigner)绘制出实体的关系图(ER图),即概念数据模型(CDM)
第五步:根据3个范式修改实体的关系图(ER图)
3个范式分别为:
NF1:行不可重复(必须能区分不同的实体,否则计算机不能区别不同的数据),列不可再分(每个实体属具有原子性,否则计算机不容易查询和分析),1每个实体的属性要相同(每个对象关注的属性是属于同一业务)。
NF2:非主键列必须依赖于PK列。(PK列不是编号,代表了不同的实体。它表示实体属性必须依赖于实体,即属性必须是实体的固有属性。如学生的固有属性有学号,姓名,年龄,但班级编号就不是。班级编号属于关系)。
NF3:非PK之间必须相互独立。两个列之间不相互独立,通常表示一个列可以通过另一个计算出来。如学号,成绩,考试是否通过。考试是否通过就依赖于成绩。通常其中一个列可以不要。或者保留,保留的原因提高查询效率,如生肖与出生日期。提高查询查询通常是牺牲空间,减少查询时间。
以上范式中NF1必须满足,NF2通常都要满足,NF3可以不满足。
第五步:将概念模型转换为关系模型,也可以使用工具PowerDesigner.