[MySQL]E-R图转关系模型

版权声明:本文为博主原创文章,转载请申明出处,感谢。 https://blog.csdn.net/shichimiyasatone/article/details/85636352

一、转化原则

  1. 内容不变,形式改变;
  2. 实体一一对应(即,ER图中的实体 在对应的关系模型中也一定存在)。

二、E-R图联系类型

  • 1:1
  • 1:n
  • n:m

三、实例

①1:1联系类型

部门表:

部门号(主键) 部门名
1 开发部门
2 测试部门
3 销售部门

经理表:

经理号(主键) 经理名 电话
001 张三 15230649808
002 李四 15233661143
003 王五 13072052826

转换为关系模型:

将另一端的主键作为本表的外键

部门号(主键) 部门名 经理号(外键)
1 开发部门 001
2 测试部门 003
3 销售部门 002

或者

经理号(主码) 经理名 电话 部门号(外键)
001 张三 15230649808 1
002 李四 15233661143 3
003 王五 13072052826 2

②1:n联系模型

部门表(1端)

部门号(主键) 部门名
1 开发部门
2 测试部门
3 销售部门

职工表(n端)

职工号(主键) 职工名 薪资
D1 李昆杰 8000
D2 张静安 10000
D3 王真如 9000
D4 刘千凡 7600
D5 黄之云 8000

转化关系模型:

将1端的主键合并到n端,作为n端的外键

职工号(主码) 职工名 薪资 部门号(外键)
D1 李昆杰 8000 1
D2 张静安 10000 1
D3 王真如 9000 2
D4 刘千凡 7600 2
D5 黄之云 8000 3

③m:n联系转换

教师表(m端):

教师号(主键) 教师名
T1 米新江
T2 朱红霞
T3 雷神
T4 曹慧荣

学生表(n端):

学号(主码) 学生名
S1 黄琴音
S2 刘云梦
S3 王天巧
S4 兰山晴

转换为关系模型:

新建关系模型,将两端主键作为新模型的外键

序号(主键) 教师号(外键) 学号(外键) 旷课数
1 T1 S1 0
2 T2 S1 1
3 T3 S2 1
4 T4 S2 3
5 T4 C3 0

四、总结

  • 多的(1:n中的n端)可以去合并(将1端的主键设为n端的外键)
  • 都少(1:1)均可去合并(任意一端的主键都可作为另一端的外键)
  • 都多(m:n)均不可去合并(需要新建关系,将m、n端主键作为外键)

从上面三个例子可以很明显的看出做E-R图的好处,一个正确的E-R图可以更好地设计表,使得表既保持原范式又能保存表间关系,减少数据冗余的同时保证数据的一致性。

 

参考:

https://baike.baidu.com/item/E-R%E5%9B%BE/304954?fr=aladdin

https://blog.csdn.net/hanxuemin12345/article/details/13143755

猜你喜欢

转载自blog.csdn.net/shichimiyasatone/article/details/85636352