MySQL数据库建模过程
1)需求分析阶段:分析客户的业务和数据处理需求
2)概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
3)详细设计阶段:应用三大范式审核数据库结构 代码编写阶段:物理实现数据库,编码实现应用
4)软件测试阶段:……
5)安装部署:……
设计数据库的步骤
1)了解需求 与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
2)标识实体 (Entity) 标识数据库要管理的关键对象或实体(名词)
3)标识每个实体的属性(Attribute)(名词)
4)标识实体之间的关系(Relationship)(动词)
小提示:在E-R图中,实体用矩形表示,属性用椭圆表示,关系用菱形表示。
E-R图设计(映射基数)
1)一对一:X中的一个实体最对与Y中的一个实体关联, 并且Y中的一个实体最多与X中的一个实体关联.
例如:一个人只有一张身份证.
2)一对多:X中的一个实体可以与Y中的任意数量的实体关联; Y中的一个实体最多与X中的一个实体关联.
例如:一个班级有多名学生.
3)多对多:X中的一个实体可以与Y中的任意数量的实体关联,反之亦然.
例如:学生和课程之间的关系,一个学生可以有多门课程,一门课程可以对应多名学生.
E-R图设计(表设计)
1)如果是1:1的关系:那么将实体转换成表,将任意1端实体的主键拿到另一端实体做外键。
2)如果是1:N的关系:那么将实体转换成表,关系不成表,将1端实体的主键拿到N端实体做外键。
3)如果是M:N的关系:将实体转换成表,关系形成表,同时将两端实体的主键拿过来作为该表的外键,形成复合主键。
数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。
在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。
要想设计一个结构合理的关系型数据库,必须满足一定的范式。
1)第一范式: 要求表的每个字段必须是不可分割的独立单元
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
2)第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。
也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
3)第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。