一、画ER图
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联 系的方法,用来描述现实世界的概念模型。
绘制方法:
⑴确定所有的实体集合
⑵选择实体集应包含的属性
⑶确定实体集之间的联系
⑷确定实体集的关键字,用下划线在属性上表明关键字的属性组合
⑸确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明是1或n(多)来表示联系的类型
二、将ER图转化成关系模式
1:1 :例如 CardInfo 和StudentInfo 是1:1的关系
CardInfo(CardNo,Balance,CardState)
StudentInfo(StuID,StuName,StuDept,StuSex,StuClass,,StuState)
转化后
StudentInfo(StuID,CardNo,StuName,StuDept,StuSex,StuClass,,StuState)
或
CardInfo(CardNo,StuNo,Balance,CardState)
即把主键加入到任一方均可
1:n : 例如UserInfo 和 CardInfo 是在注册方面是1:n的关系
UserInfo(UserID,Password,UserName,UserLevel)
CardInfo(CardNo,Balance,CardState)
转换后
CardInfo(CardNo,UserID,Balance,CardState)
即把主键放到n方
n:m :例如UserInfo 和 CardInfo 是在充值方面是n:m的关系(一个用户可以充值多 张卡,一张卡可以被多个用户充值)
CardInfo(CardNo,Balance,CardState)
UserInfo(UserID,Password,UserName,UserLevel)
转化后
CardInfo(CardNo,Balance,CardState)
UserInfo(UserID,Password,UserName,UserLevel)
Recharge(CardNo,UserID,Money,OpTime)
加入一个新的关系模式并把两个的主键分别加入到新的关系模式中
三、用三范式规范数据库
1、第一范式(原子性)
本系统中没有找到很好的例子,随便举一个例子说明问题
非第一范式关系
系名称 |
高级职称人数 |
|
教授 |
副教授 |
|
计算机系 |
6 |
10 |
信息管理系 |
3 |
5 |
第一范式关系
系名称 |
教授人数 |
副教授人数 |
计算机系 |
6 |
10 |
信息管理系 |
3 |
5 |
第一个表中“高级职称人数”不是原子属性,他还包括两个子值
2、第二范式(不存在局部依赖)
Recharge(CardNo,UserID,Money,OpTime)
在这个充值关系中,CardNo,UserID 决定 OpTime,所以他俩组合做主键,但是CardNo 自己就可以决定Money,因此存在局部依赖。
优化为
Recharge(CardNo,UserID,OpTime)
Balance(CardNo,Money)
即满足第二范式要求
3、第三范式(不含传递依赖)
没有在此系统中找到合适的例子,举其他例子说明此问题
Student(StuNo,StuDept,StuDeptTeacher)
stuNo 可以决定stuDept
StuDept可以决定 StuDeptTeacher
这样就存在传递依赖
优化后
Student(StuNo,StuDept)
Dept(StuDept,StuDeptTeacher)
4、三范式的关系
满足第三范式必须满足第一和第二范式