er图到关系模式的转换
- 格式:pdf
- 大小:2.41 MB
- 文档页数:15
二、概念结构设计1、系统概念模型图1选课系统概念模型E-R 图(注:本例中上课时间可以抽象成实体,也可以抽象成属性。
) 2、详细说明(1)系统涉及的实体集● 班级实体集:具有属性班级名称和选课学分限制。
● 学生实体集:具有属性学号、姓名、性别和生日。
● 课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。
● 上课时间实体集:具有属性时间。
(2)系统涉及的联系● 一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:M 的联系。
● 一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是M :N 的联系。
● 一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是M :N 的联系。
班级学分限制班级名学生学号 姓名性别生日属于必修课程选修上课时间上课时间授课教师接纳人数课号课名学分1mmnmmnn一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是M:N的联系。
三、逻辑结构设计将E-R模型转换为关系模式(1)班级实体集可以转换为关系CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。
(2)学生实体集可以转换为关系STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日(3)课程实体可以转换为关系COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。
M :N 联系的示例
比如,ER 图如下:
可以转换成以下模式:
学生(学号,姓名,性别,年龄)
主键为学号
课程(课程号,课程名,任课教师)
主键为课程号
选课(学号,课程号,成绩)
主键为课程号、学号,外键为课程号,学号;
1:N联系的示例
比如,ER图如下:
可转换为如下关系模式:
商店模式(商店编号,店名,店址,店经理)
主键为商店编号
商品模式(商品编号,商品名,单价,产地,商店编号,月销售量)主键为商品编号,外键为商店编号
职工模式(职工编号,职工名,性别,工资,商店编号,开始时间)主键为职工编号,外键为商店编号。
数据库系统原理——ER图转换成关系模式集的算法
ER图到关系模式集的转换
以⼆元联系类型的转换为例
1. (实体类型的转换):将每个实体类型转换成⼀个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
2. (联系类型的转换):
a. 若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意⼀个关系模式的属性中加⼊另⼀个关系模式的键(作为
外键)和联系类型的属性。
b. 若实体间联系是1:N,则在N端实体类型转换成的关系模式中加⼊1端实体类型的键(作为外键)和联系类型的属性。
c. 若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,⽽键为
两端实体键的组合。
实例:教学管理的ER图转换成关系模式集
教学管理的ER图
第⼀步:把三个实体类型转换成三个模式:
系(系编号,系名,电话)
教师(教⼯号,姓名,性别,职称)
课程(课程号,课程名,学分)
第⼆步:
a. 对于1:1联系“主管”,可以再“系”模式中加⼊教⼯号(教⼯号为外键,⽤波浪线表⽰);
b. 对于1:N联系“聘⽤”,可以再“教师”模式中加⼊系编号和聘期两个属性(系编号为外键);
c. 对于1:N联系“开设”,可以再“课程”模式中加⼊系编号(系编号为外键)
这样得到的三个模式成如下形式:
第三步:对于M:N联系“任教”,则⽣成⼀个新的关系模式:
第四步:整合后关系模式如下:。
1:1联系的转化
第一步:联系形成的关系独立存在:
职工表(职工号,姓名,年龄)主码:职工号产品表(产品号,产品名,价格)主码:产品号负责(职工号,产品号)主码:职工号或产品号合并方案1:“负责”与“职工”两关系合并:职工(职工号,姓名,年龄,产品号)
产品(产品号,产品名,价格)
合并方案2:“负责”与“产品"两关系合并:职工(职工号,姓名,年龄)
产品(产品号,产品名,价格,职工号)
1:n联系的转化
步骤一:联系形成的关系独立存在.
仓库(仓库号,地点,面积)主码:仓库号
产品(产品号,产品名,价格)主码:产品号
仓储(仓库号,产品号,数量)主码:产品号
合并后方案:联系形成的关系与n端对象合并。
仓库(仓库号,地点,面积)
产品(产品号,产品名,价格,仓库号,数量)
m:n联系的转化
该模型可转换为三个关系模式:
学生(学号,姓名,性别,年龄)主码:学号
课程(课程号,课程名,学分)主码:课程号
选课(学号,课程号,成绩)主码:学号+课程号
这个ER图可转换4个关系模式:
商店(商店编号,商店名,地址)
职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪)商品(商品号,商品名,规格,单价)
销售(商店编号,商品号,月销售量)。
ER模型转换为关系模型规则
转换规则如下:
1.实体转换为关系表:
将ER模型中的每个实体转换为一张关系表。
每个实体的属性对应关系表的列。
2.属性转换为关系表的列:
实体的属性被转换为关系表的列,属性的名称作为列名,属性的数据类型作为列的数据类型。
3.主键属性:
如果一个实体的属性被定义为主键,那么这个属性将成为关系表的主键。
4.外键属性:
5.一对一关系:
如果两个实体之间的关系是一对一的,那么可以在任意一个实体的关系表中增加对方实体的主键,作为外键。
6.一对多关系:
如果两个实体之间的关系是一对多的,那么可以在多的一方实体的关系表中增加一的一方实体的主键,作为外键。
7.多对多关系:
如果两个实体之间的关系是多对多的,那么需要创建一个中间表来表示这种关系。
中间表中的每一行记录表示两个实体之间的关系,而关系的属性则作为中间表的列。
在完成ER模型到关系模型的转换后,可以通过对关系表进行插入、更新、删除等操作来操作数据。
同时,可以通过关系表的连接操作来获取两个实体之间的关系。
关系模型的优势在于它能够提供简单且强大的数据操作方式,同时保证数据的完整性和一致性。
2.1 E-R模型基本符号
∙实体的表示:用长方形
∙联系的表示:用菱形,1:1、1:n (m:1)、(m:n) ∙属性的表示:用椭圆形
3.1 E-R图向关系模型的转换
原则:
(1)一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;
(2)一个联系转换为一个关系模式,与该联系相连的每个实体型的键以及联系的属性都转换为关系的属性。
这个关系的键分为以下三种不同的情况:
∙若联系为1:1,则相连的每个实体型的键均是该关系模式的侯选键。
∙若联系为1:n,则联系对应的关系模式的键取n端实体型的键。
∙若联系为m:n,则联系对应的联模式的键为参加联系的诸实体型的键的组合。
1:1联系得转化
第一步:联系形成得关系独立存在:
职工表(职工号,姓名,年龄) 主码:职工号
产品表(产品号,产品名,价格) 主码:产品号
负责(职工号,产品号)主码:职工号或产品号合并方案1:“负责”与“职工”两关系合并:
职工(职工号,姓名,年龄,产品号)
产品(产品号,产品名,价格)
合并方案2:“负责”与“产品"两关系合并:
职工(职工号,姓名,年龄)
产品(产品号,产品名,价格,职工号)
1:n联系得转化
步骤一:联系形成得关系独立存在.
仓库(仓库号,地点,面积)主码:仓库号产品(产品号,产品名,价格)主码:产品号仓储(仓库号,产品号,数量) 主码:产品号合并后方案:联系形成得关系与n端对象合并。
仓库(仓库号,地点,面积)
产品(产品号,产品名,价格,仓库号,数量)m:n联系得转化
该模型可转换为三个关系模式:
学生(学号,姓名,性别,年龄)主码:学号
课程(课程号,课程名,学分)主码:课程号
选课(学号,课程号,成绩) 主码:学号+课程号
这个ER图可转换4个关系模式:
商店(商店编号,商店名,地址)
职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商品(商品号,商品名,规格,单价)
销售(商店编号,商品号,月销售量)。