欢迎投稿

今日深度:

机房重构之数据库设计

机房重构之数据库设计


 

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

\

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

www.htsjk.Com true http://www.htsjk.com/sybase/19575.html NewsArticle 机房重构之数据库设计 一、画ER图 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联 系的方法,用来描述现实世界的概念模型。 绘制方法: ⑴确定所有的实...
评论暂时关闭