机房重构之数据库设计


一、画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、三范式的关系


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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值