数据库系统原理——ER图转换成关系模式集的算法
2014-03-21 12:21
579 查看
上一篇博文提到了ER模型和关系模型,现在就来谈一下两者之间是怎么转换的。
ER图到关系模式集的转换
以二元联系类型的转换为例
(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
(联系类型的转换):
若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性。
若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性。
若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合。
实例:教学管理的ER图转换成关系模式集
教学管理的ER图
第一步:把三个实体类型转换成三个模式:
系(系编号,系名,电话)
教师(教工号,姓名,性别,职称)
课程(课程号,课程名,学分)
第二步:
对于1:1联系“主管”,可以再“系”模式中加入教工号(教工号为外键,用波浪线表示);
对于1:N联系“聘用”,可以再“教师”模式中加入系编号和聘期两个属性(系编号为外键);
对于1:N联系“开设”,可以再“课程”模式中加入系编号(系编号为外键)
这样得到的三个模式成如下形式:
第三步:对于M:N联系“任教”,则生成一个新的关系模式:
第四步:整合后关系模式如下:
ER图到关系模式集的转换
以二元联系类型的转换为例
(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
(联系类型的转换):
若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性。
若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性。
若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合。
实例:教学管理的ER图转换成关系模式集
教学管理的ER图
第一步:把三个实体类型转换成三个模式:
系(系编号,系名,电话)
教师(教工号,姓名,性别,职称)
课程(课程号,课程名,学分)
第二步:
对于1:1联系“主管”,可以再“系”模式中加入教工号(教工号为外键,用波浪线表示);
对于1:N联系“聘用”,可以再“教师”模式中加入系编号和聘期两个属性(系编号为外键);
对于1:N联系“开设”,可以再“课程”模式中加入系编号(系编号为外键)
这样得到的三个模式成如下形式:
第三步:对于M:N联系“任教”,则生成一个新的关系模式:
第四步:整合后关系模式如下:
相关文章推荐
- 数据库系统原理(4)--数据依赖与关系模式规范化
- ER图转换成关系模式集的算法
- 数据库系统原理教程 第五章 关系数据理论
- 数据库系统原理复习题(四)——关系数据理论
- 数据库系统原理之关系运算
- 如何将ER图转换成关系模式集
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 【Dongle】【数据库系统原理】模式分解之无损分解
- 如何将ER图转换成关系模式集
- 数据库——由ER图转换为关系映射的方法
- 数据库系统原理教程 第二章 关系数据库 习题解答
- 数据库系统原理教程 第二章 关系数据库 习题解答
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 数据库 Hash Join的定义,原理,算法,成本,模式和位图
- (原创)基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 数据库系统原理教程 第四章 关系系统及其优化 习题集
- 数据库系统原理复习题(三)——关系数据库标准语言SQL
- 用三层架构与设计模式思想部署企业级数据库业务系统开发(转)
- java数据库数据源框架原理--装饰模式和适配器模式
- 算法与设计模式系列2之实现子网掩码的从数字到常用格式的转换