引入
需求分析:–需求分析师—》原始需求—–》抽取业务模型
图书模型 : 图书名称 版本号 作者
学生模型: 学号 学生名字 手机号码
……
角色: 学生 老师 图书管理员
《需求说明书》
需求设计 :-
概要设计:
抽取实体:业务模型–》实体模型 (java类 c++类) 内存
、class Book{name,book,author}
数据库设计 数据表的设计
业务模型、实体模型 —–》数据模型(硬盘)
、如何设计?
、
详细设计:
类详细,属性和方法
—————————————————————————————————————————————三大范式
一:要求表的每个字段必须是不可分割的独立单元
student :name 违反了第一范式
小明|狗黑
查询曾用名是以姓“狗”
name like‘狗%’
student :name old name 符合第一范式
二:在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖关系。
employee :员工编号 员工姓名 部门名称 订单名称 违反第二范式
员工编号 员工姓名 部门名称
订单表 : 订单编号 订单名称 符合第二范式
三:第三范式 在第二范式的基础上,要求每张表的主键之外的其他字段只能和主键有直接决定依赖关系。
员工表 : 员工编号(主键) 员工姓名 部门编号 部门名称 违反第三范式 (数据冗余高)
员工表: 员工编号(主键) 员工姓名 部门编号 ---符合第三范式
部门表: 部门编号 部门名
总结:行唯一 列唯一 消除数据冗余