step1:
收集信息,与谈系统有关的人员进行交流、座谈,充分了解数据库需要完成的任务。
示例:blog系统
基本功能:发表和编辑文章,多用户支持,全文检索,RSS支持,图片收藏,管理站内短消息。
step2:
标识对象(实体Entity)
标识数据库要管理的关键对象或实体。
实体一般是名词:
博主账号:发表和管理文章、图片管理。
文章类别
文章
文章回复
图片分类
图片
连接分类
连接
短消息
step3:
标识每个实体的属性
E-R图(Entity-Relationship)
| 符号 | 含义 |
| 矩形 | 实体,一般是名词 |
| 椭圆 | 属性,一般是名词 |
| 菱形 | 关系,一般是动词 |
step4:
将E-R图转换为对应的表
step1.将各实体转换成各对应的表。
step2.将各属性转换成表对应的列。
step3.标识每个表的主键列。
需要注意:没有主键的表要添加ID编号列作为主键。它没有实际含义。
step4.在表之间建立主外键,体现实体间的映射关系。
一对多关系用主外键关联。
多对多关系增加一个中间表处理关联关系。
数据库设计的3范式:
第一范式(1NF):在关系模式中每一个具体关系中,必须要有主键,并且每个属性值都是不可再分的最小数据单位。则称为第一范式关系。
第二范式(2NF):如果关系模式中的所有非主属性都完全依赖于主关键字,则称为第二范式。
第三范式(3NF):关系模式中的非主关键字不能依赖其他非主关键字,即非主关键字之间不能有函数(传递)依赖关系,则称为第三范式。
隐患:
数据冗余
更新异常
插入异常
删除异常