ER图向关系模型的转换遵循原则(转载)

摘要:
E-R图向关系模型的转换一般遵循如下原则:1.一个实体型转换为一个关系模式。l如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。一种方法是使其成为一个独立的关系模式:组成其中学号为“组成”关系的码。)该关系模型由12个关系模式组成。

E-R图向关系模型的转换一般遵循如下原则:
1. 一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号为学生关系的码:
学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。
2. 一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码则有三种情况:
l 若联系为1:1,则每个实体的码均是该关系的后选码。
l 若联系为1:n,则关系的码为n端实体的码。
l 若联系为m:n,则关系的码为诸实体码的组合。
2.1 联系为1:1
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
l 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
l 如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
例如在我们的例子中,“管理”联系为1:1联系,我们可以将其转换为一个独立的关系模式:
管理(职工号,班级号)或 管理(职工号,班级号)
管理”联系也可以与班级或教师关系模式合并。如果与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:
班级:{班级号,学生人数,职工号}
同样,如果与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:
教师:{职工号,姓名,性别,职称,班级号,是否为优秀班主任}

2.2 联系为1:n
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
l 如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
l 如果与n端对应的关系模式合并,则在n端实体对应模式中加入1端实体所对应关系模式的码,以及联系本身的属性。而关系的码为n端实体的码。
例如在我们的例子中,“组成”联系为1:n联系,将其转换为关系模式。
一种方法是使其成为一个独立的关系模式:
组成(学号,班级号)
其中学号为“组成”关系的码。

另一种方法是将其学生关系模式合并,这时学生关系模式为:
学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)
后一种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。
2.3 联系为m:n
一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
例如在我们的例子中,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:
选修(学号,课程号,成绩)
三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
例如在我们的例子中,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、教师号和书号为关系的组合码:
讲授(课程号,教师号,书号)
3.同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。
例如,如果教师实体集内部存在领导与被领导的1:n自联系,我们可以将该联系与教师实体合并,这时主码职工号将多次出现,但作用不同,可用不同的属性名加以区分,比如在合并后的关系模式中,主码仍为职工号,再增设一个“系主任”属性,存放相应系主任的职工号。
4.具有相同码的关系模式可合并。
为了减少系统中的关系个数,如果两个关系模式具有相同的主码,可以考虑将他们合并为一个关系模式。合并方法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。
例如我们有一个“拥有”关系模式: 拥有(学号,性别)
有一个学生关系模式: 学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)
这两个关系模式都以学号为码,我们可以将它们合并为一个关系模式,假设合并后的关系模式仍叫学生:
学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩)

按照上述4条原则,学生管理子系统中的18个实体和联系可以转换为下列关系模型:
学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩,档案号)
性别(性别,宿舍楼)
宿舍(宿舍编号,地址,性别,人数)
班级(班级号,学生人数)
教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)
教学(职工号,学号)
课程(课程号,课程名,学分,教室号)
选修(学号,课程号,成绩)
教科书(书号,书名,价钱)
教室(教室编号,地址,容量)
讲授(课程号,教师号,书号)
档案材料(档案号,……)
该关系模型由12个关系模式组成。其中学生关系模式包含了“拥有”联系、“组成”联系、“归档”联系所对应的关系模式;教师关系模式包含了“管理”联系所对应的关系模式;宿舍关系模式包含了“住宿”联系所对应的关系模式;课程关系模式包含了“开设”联系所对应的关系模式。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sniperit8/archive/2008/01/29/2071627.aspx

免责声明:文章转载自《ER图向关系模型的转换遵循原则(转载)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DataTables warning (table id = 'myTable'): Requested unknown parameter '0' from the data source for row 0为什么不要将spring-boot相关依赖打入二方包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

序列化器关系 (Serializer relations)

糟糕的程序员担心代码。好的程序员担心数据结构和它们的关系。—— Linus Torvalds 关系字段用于表示模型关系。它们可以应用于 ForeignKey,ManyToManyField 和 OneToOneField 关系,以及反向关系和自定义关系 (例如:GenericForeignKey)。 注意:关系字段在 relations.py 中声明,但...

北京行数据库建模工具的使用PowerDesigner ER图

powerdesigner 创建E-R图(CDM)—PDM及生成SQL教程 PowerDesigner数据模型(CDM—PDM—SQL脚本的转换流程) 在开发的过程中会经常遇到 做一个模块功能,首先让你根据需要先画一个E-R图出来, 很多的朋友对 E-R图 都不是很熟悉,或者说有的朋友在开发的项目过程中,根本就没有用到E-R图,因为对于有些对E-R图不是...

iOS -转载-使用Navicat查看数据表的ER关系图

Navicat软件真是一个好东西。今天需要分析一个数据库,然后想看看各个表之间的关系,所以需要查看表与表之间的关系图,专业术语叫做ER关系图。  默认情况下,Navicat显示的界面是这样的:              软件将表当做一个对象,然后显示了所有的表。仅仅通过这些表名,我们很难分析出表与表之间的关系。所以,如果能够显示一下ER关系图,那么我们就可...

数据流图的绘制方法

数据流图(Data Flow Diagram,DFD),从数据传递和加工的角度,以图形的方式刻画系统内数据的运动情况。它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储的情况。 数据流图具有抽象性和概括性:抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理和存储;概括性表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体...

用PowerDesigner15自动将数据库里的表生成ER图

Sybase的PowerDesigner可以将数据库里的表关系反应到ER中。   操作方法:   一,配置Windows ODBC(也可根据不同数据库选择相应jar的方式连接数据库)   控制面板=>管理工具=>数据源(ODBC) 点击添加=>名称选择 sql server =>数据源名称项填写一个标识符(mydb) 用户名称填写要...

图形数据库 Neo4j 开发实战

本人用途:知识图谱 neo4j:图状数据库 官网地址:http://neo4j.com/docs/java-reference/current/ 中文API:https://www.w3cschool.cn/neo4j/neo4j_building_blocks.html Neo4j 简介 数据存储一般是应用开发中不可或缺的组成部分。应用运行中产生的...