mysql数据库设计及E-R图
一.数据库建模过程
需求分析阶段:分析客户的业务和数据处理需求
概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
详细设计阶段:应用三大范式审核数据库结构 代
码编写阶段:物理实现数据库,编码实现应用
软件测试阶段:……
安装部署:……
二.设计数据库的步骤
1.了解需求 与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
2.标识实体 (Entity) 标识数据库要管理的关键对象或实体(名词)
3.标识每个实体的属性(Attribute)(名词)
4.标识实体之间的关系(Relationship)(动词)
tips:在E-R图中,实体用矩形表示,属性用椭圆表示,关系用菱形表示。
三.E-R图设计
1.一对一:x中的一个实体最多与y中的一个实体关联。并且y中的一个实体最多与x中的一个实体关联。
2.一对多:x中的一个实体可以与y中的任意数量的实体关联,y中的一个实体最多与x中的一个实体关联。
3.多对多:x中的一个实体可以与y中的任意数量的实体关联,反之亦然。
重要
1.如果是1:1的关系:那么将实体转换成表,将任意1端实体的主键拿到另一端实体做外键。
2.如果是1:N的关系:那么将实体转换成表,关系不成表,将1端实体的主键拿到N端实体做外键。
3.如果是M:N的关系:将实体转换成表,关系形成表,同时将两端实体的主键拿过来作为该表的外键,形成复合主键。
四.数据库设计的三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
第一范式: 要求表的每个字段必须是不可分割的独立单元
student : name -- 违反第一范式 张小名|狗娃
sutdent : name old_name --符合第一范式 张小名 狗娃
第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。
employee(员工):
员工编号 员工姓名 订单名称 --违反第二范式
员工表:员工编号 员工姓名
订单表: 订单编号 订单名称 -- 符合第二范式
第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。
员工表: 员工编号(主键) 员工姓名 部门编号 部门名 --符合第二范式,违反第三范式 (数据冗余高)
员工表:员工编号(主键) 员工姓名 部门编号 --符合第三范式(降低数据冗余) 部门表:部门编号 部门名