码迷,mamicode.com
首页 > 数据库 > 详细

机房重构之数据库设计

时间:2015-04-23 21:47:39      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:


一、画ER

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联 系的方法,用来描述现实世界的概念模型。

绘制方法:

⑴确定所有的实体集合

⑵选择实体集应包含的属性

⑶确定实体集之间的联系

⑷确定实体集的关键字,用下划线在属性上表明关键字的属性组合

⑸确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明是1n(多)来表示联系的类型

技术分享

二、将ER图转化成关系模式

1:1 :例如 CardInfo StudentInfo 1:1的关系

      CardInfoCardNo,Balance,CardState

  StudentInfo(StuID,StuName,StuDept,StuSex,StuClass,,StuState)

  转化后

  StudentInfo(StuID,CardNo,StuName,StuDept,StuSex,StuClass,,StuState)

  或

      CardInfoCardNo,StuNo,Balance,CardState

      即把主键加入到任一方均可

1:n : 例如UserInfo 和 CardInfo 是在注册方面是1n的关系   

          UserInfoUserID,Password,UserName,UserLevel

          CardInfoCardNo,Balance,CardState

          转换后

          CardInfoCardNo,UserID,Balance,CardState

          即把主键放到n

n:m :例如UserInfo 和 CardInfo 是在充值方面是nm的关系(一个用户可以充值多   张卡,一张卡可以被多个用户充值)

          CardInfoCardNo,Balance,CardState

          UserInfoUserID,Password,UserName,UserLevel

          技术分享

           转化后          

          CardInfoCardNo,Balance,CardState

          UserInfoUserID,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、第三范式(不含传递依赖)

没有在此系统中找到合适的例子,举其他例子说明此问题

StudentStuNo,StuDept,StuDeptTeacher

stuNo 可以决定stuDept

StuDept可以决定 StuDeptTeacher

这样就存在传递依赖

优化后

StudentStuNo,StuDept

Dept(StuDept,StuDeptTeacher)

4、三范式的关系

技术分享

满足第三范式必须满足第一和第二范式

机房重构之数据库设计

标签:

原文地址:http://blog.csdn.net/liubingkai1314/article/details/45227301

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!