ER模型转关系模式
2015-10-25 12:11
274 查看
ER图中的主要成分为实体类型和联系类型,转换算法将实体类型和联系类型转换为关系模式。转化为关系模式,主要确定3部分内容,关系模式的名称,属性,码。
转换分为两个步骤:1.实体的转换。2.关系模式的转换;
2.1 二元联系
1:1
(1).联系-->独立的关系模式
(2).将联系归并到关联的两个实体的任一方
1:m
(1).联系-->独立的关系模式。
(2).将联系归并到关联的两个实体的多方。
m:n
(1).只能转换成一个独立的关系模式
2.2 一元联系
与二元联系转换类似
2.3 三元联系
三元联系实体间联系分为:1:1:1 , 1:1:N , 1:M:N , M:N:P.
1:1:1:三个实体类型转换成的三个关系模式。在任一一个关系模式中加入另外两个关系模式的键(作为外键)和联系类型的属性。
1:1:N:在多端实体类型转化的关系模式中,加入两个1端实体类型的键(作为外键)和联系的类型;
联系转化为关系模式
1:M:N:联系转化为关系模式,属性是两个多端实体类型的键(作为外键)和联系类型的属性。关键码是两个多端实体键的组合;
M:N:P:联系转化为关系模式,属性为三端实体类型的键(作为外键)加上联系类型的属性。三端实体键的组合为关键码;
转换分为两个步骤:1.实体的转换。2.关系模式的转换;
1.实体的转换
将ER图中的实体逐一转换为一个关系模式关系模式 | 实体 |
名称 | 实体名 |
属性 | 实体的属性 |
关系的码 | 实体标识符 |
2.联系的转换
根据联系所连接的实体的个数划分:一元,二元,三元联系。2.1 二元联系
1:1
(1).联系-->独立的关系模式
关系模式 | 联系 |
名称 | 联系名称 |
属性 | 该联系所关联的两个实体的码和联系的属性 |
关系的码 | 取自任一方实体的码 |
关系模式 | 实体 |
名称 | 待归并一方实体名称 |
属性 | 给待归并的一方实体属性集增加另一方实体的码和该联系的属性 |
关系的码 | 归并后的实体码保持不变 |
1:m
(1).联系-->独立的关系模式。
关系模式 | 联系 |
名称 | 联系名 |
属性 | 该联系所关联的两个实体的码及联系的属性 |
关系的码 | 多方实体的码 |
关系模式 | 实体 |
名称 | 多方实体名 |
属性 | 给待归并的多方实体属性集中增加一方实体的码和该联系的属性 |
关系的码 | 归并后的多方实体码保持不变 |
m:n
(1).只能转换成一个独立的关系模式
关系模式 | 联系 |
名称 | 联系的名称 |
属性 | 关系模式的属性取该联系的两个多方实体的码及联系的属性 |
关系的码 | 两个多方实体码构成的属性组; |
与二元联系转换类似
2.3 三元联系
三元联系实体间联系分为:1:1:1 , 1:1:N , 1:M:N , M:N:P.
1:1:1:三个实体类型转换成的三个关系模式。在任一一个关系模式中加入另外两个关系模式的键(作为外键)和联系类型的属性。
1:1:N:在多端实体类型转化的关系模式中,加入两个1端实体类型的键(作为外键)和联系的类型;
联系转化为关系模式
1:M:N:联系转化为关系模式,属性是两个多端实体类型的键(作为外键)和联系类型的属性。关键码是两个多端实体键的组合;
M:N:P:联系转化为关系模式,属性为三端实体类型的键(作为外键)加上联系类型的属性。三端实体键的组合为关键码;
3.总结
ER图转关系模式主要还是确定实体类型和联系类型的转化,根据联系元数的不同,实体间联系的不同,有不同的转化方式。确定转化之后关系模式的名称,属性,主键和外键。相关文章推荐
- Oracle数据库基础(四)--视图,序列,存储过程
- Gradle之旅-can not find tools.jar问题解决
- 关于测试的一段讨论
- SQL 语法
- JAVA设计模式--辛格尔顿
- [learn ros]尝试修改task_setup.py
- java初学者 歌手打分实例练习
- asp,IIS,权限
- 【衡阳八中noip模拟题】国色天香
- 如何练好正则表达式这个基本功
- Xcode中常用的快捷键操作
- Python 中的进程、线程、协程、同步、异步、回调
- Oracle数据库基础(三)--查询
- 在iOS7下 使用@import代替#import
- Appium总结(一):安装
- R in Action 学习笔记 - 第九章-常用R函数
- EasyUI - DateBox组件
- 屏幕自动适应
- JavaScript 执行覆盖测试分析
- objective-c开发编码规范