ER模型转换为关系模型规则
- 格式:doc
- 大小:41.00 KB
- 文档页数:2
将以下E-R图转换为关系模型,并指出各表的主键和外键:1.设有商业销售记帐数据库。
一个顾客可以购买多种商品,一种商品可供应给多个顾客。
每个顾客购买每种商品都有购买数量。
一种商品由多个供应商供应,一个供应商供应多种商品,供应商每次供应某种商品都有相应的供应数量。
各实体的属性有:顾客:顾客编号,顾客姓名,单位,电话号码商品:商品编号,商品名称,型号,单价供应商:供应商号,供应商名,所在地址,联系人,联系电话顾客(顾客编号,顾客姓名,电话号码,单位)商品(商品编号,商品名称,型号,单价)供应商(供应商号,供应商名,所在地址,联系电话,联系人)购买(顾客编号,商品编号,购买数量)供应(商品编号,供应商号,供应数量)2.设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。
假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。
商品(商品编号,地址,电话,商品名)顾客(顾客编号,姓名,性别,年龄,地址)购物(商品编号,顾客编号,消费金额,日期)3.某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。
工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。
工厂(工厂编号,地址,厂名)产品(产品编号,产品名)职工(职工号,姓名,工厂编号)生产(工厂编号,产品编号,计划数量)聘用(聘期,工资)4.设有教师、学生、课程等实体,其中:教师实体包括工作证号码、教师名、出生日期、党派等属性;学生实体包括学号、姓名、出生日期、性别等属性;课程实体包括课程号、课程名、预修课号等属性。
设每个教师教多门课程,一门课程由一个教师教。
二、概念结构设计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表示接纳人数。
实验报告课程名称__管理信息系统(本科)___ 实验名称__ER图及与关系模型转换__系别_ _________________________专业班级__指导教师______ 学号____________姓名____________实验日期_____________实验成绩___________一、实验目的本实验要求掌握ER图绘制及ER图向关系模型转换方法。
二、实验内容(1) 了解ER图的各种符号。
(2)绘制出案例中的ER图。
(3)将ER图转换成相应的关系模型。
三、实验过程及结果(1) 在校田径运动会中设置了各类比赛,每一比赛类别有类别编号、类别名称和主管等属性,每一比赛类别包含很多比赛项目:每一比赛项目有项目编号、项目名称、比赛时间和级别等属性;各个系团队有团编号、团名称、领队等属性,每一代表团有多名运动员组成,运动员有编号、姓名、年龄、性别等属性;每一名运动员可以参加多个比赛项目,每一比赛项目也有多名运动员参加,运动员参加比赛有成绩,成绩限定在0~7分?答:1)根据案例画出ER图。
2)将ER图转换成关系模式,并指出每个关系模式的主键。
比赛类别(类别编号、类别名称、主管)比赛项目(项目编号、项目名称、比赛时间、级别)参加(项目编号、运动员编号、团编号、项目名称、成绩)运动员(运动员编号、姓名、年龄、性别)系团队(团编号、团名称、领队)四、实验思考题1、数据库设计包括哪几个步骤?答:(1)用户需求分析了解用户的数据需求、处理需求、安全性及完整性要求。
(2)概念结构设计通过数据抽象,设计系统概念模型,一般为E-R模型。
(3)逻辑结构设计设计系统的模式和外模式,对于关系模型主要是基本表和视图。
(4)物理结构设计设计数据的存储结构和存取方法,如索引的设计。
(5)验证设计组织数据入库、编制应用程序、试运行。
(6)运行与维护设计系统投入运行,长期的维护工作。
2、简述ER模型转换为关系数据模型的规则。
答:(1)(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
如何把ER模型转换为关系模型这是数据库工程设计进行到逻辑设计的一重大环节,简单的说,如果概念设计是用ER模型,整合为全局的ER模型,那么在逻辑设计这块,主要任务就是把ER模型转换为关系模型。
转换只需知道三个转换准则:1:1遇到1:1 关系的话在两个实体任选一个添加另一个实体的主键即可。
1:N1:N 遇到1:N 关系的话在N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以容纳多个学生,但是一个学生只能选择一个班级,因此班级和学生是1:N的关系,现在要转换为关系模型,我们只需在学生的这端加上班级的唯一标识即可,这样做的原因是,因为一个学生只能有一个班级,班级是相对学生唯一的。
N:M遇到N:M我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。
例如有学生和老师两个实体,一个学生可以由多名老师来授课,一名老师也可以授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,因此当我们把它转换为关系模型时,我们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)作为自己的主键,值得注意的是,授课实体的外键分别是学号和教师编号,但是它的主键是(学号,教师编号),另外它还拥有自己的一个属性成绩。
1:1:N这是三元联系的对应关系,但是当转换为关系模型时,和1:N的情况是差不多的。
我们只需将N端添加另外两端的主键即可。
M:N:P这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并不是那么复杂了,我们要做的仅仅是将其中的联系转换为联系实体,然后在联系实体上添加M 端N端P端的主键,然后加上联系实体自身的属性,就行了。
例子:说了这么多看个小例子。
这是一份关于商店商品仓库的ER图。
先看仓库和商品之间是M:N的关系,于是我们首先想到的应该是把联系库存转换为库存实体。
库存(仓库号,商品号,日期,库存量)然后是商品实体和仓库实体商品(商品号,商品名,单价)仓库(仓库号,仓库名,地址)除此之外仓库和商品还有一个供应关系,同样是M:N关系:供应(仓库号,商品号,月份,月供应量)在上图的商店和仓库之间的关系可能写漏了,但是它们应该也是M:N的关系,一个商店可以被多个仓库供应,一个仓库也可以供应多个商店。
数据库第6章数据库设计客观题及答案一、选择题1、在数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。
A 需求分析阶段B 概念设计阶段C 逻辑设计阶段D 物理设计阶段答案:B解释:概念设计阶段通常使用 ER 图来描述信息结构,主要是对现实世界中的事物及其关系进行抽象和建模,不考虑具体的计算机实现。
2、数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是()。
A 建立库结构B 扩充功能C 加载数据D 系统调试解释:扩充功能一般不属于数据库实施阶段的工作,实施阶段主要是按照物理设计的结果建立数据库的实际结构、加载数据并进行调试。
3、在数据库设计中,将 ER 图转换成关系数据模型的过程属于()。
A 需求分析阶段B 概念设计阶段C 逻辑设计阶段D 物理设计阶段答案:C解释:逻辑设计阶段的主要任务就是将概念模型(如 ER 图)转换为具体的关系数据模型。
4、规范化理论是关系数据库进行逻辑设计的理论依据。
根据这个理论,关系数据库中的关系必须满足:其每一属性都是()。
A 互不相关的B 不可分解的C 长度可变的D 互相关联的解释:规范化理论要求关系数据库中的关系每一属性都是不可分解的,以避免数据冗余和操作异常。
5、从 ER 模型关系向关系模型转换时,一个 M:N 联系转换为关系模式时,该关系模式的关键字是()。
A M 端实体的关键字B N 端实体的关键字C M 端实体关键字与 N 端实体关键字组合D 重新选取其他属性答案:C解释:在 M:N 的联系中,转换后的关系模式关键字应为两端实体关键字的组合,这样才能唯一标识一个联系。
6、设有关系模式 R(A,B,C,D),其函数依赖集 F ={A→B,B→C,C→D,D→A},则 R 的候选关键字为()。
A ABB BCC CDD 不存在答案:D解释:由于该函数依赖集中存在循环依赖,所以不存在候选关键字。
7、关系数据库规范化是为解决关系数据库中()问题而引入的。
如何绘制E-R图并将其转换成关系数据模型E-R图是描述概念数据模型的主要工具,利用E-R图实现概念结构设计的方法叫做E-R方法;而概念设计是数据库设计的第一个阶段,所以E-R图是个极其重要的考点。
E-R图也称为实体-联系模型(E-----entity, R-----relation),由实体,属性,联系三个要素构成。
图形符号为:实体(长方形),属性(椭圆),联系(菱形)绘制E-R图的方法:1,绘制数据流程图2,数据字典分析3,确定局部E-R图:A,画出部分实体E-R图B,画出分E-R图,即实体之间的联系图:4,集成完整的E-R图,即全部实体之间的联系图E-R图转换成关系模型的方法:只要记住以下转换原则,即可:(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码(2)一个联系也转换为一个关系,联系的属性即联系所连接的实体的码都转换为关系的属性,但是关系的码会根据联系的类型变化,如果是:1:1联系,两端实体的码都成为关系的候选码1:多联系,端实体的码成为关系的码多:多联系,两端实体码的组合成为关系的码(3)具有相同码的关系可以合并以自底向上设计概念结构的方法为例,它通常分为两步:第一步:首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分E-R图。
第二步:集成局部视图。
概念结构是对现实世界的一种抽象,一般有三种抽象:⑴分类( is member of )⑵聚集 ( is part of)⑶概括 (is subset of ) 设计分E-R图的步骤是:⑴选择局部应用在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统。
设计分E-R图的第一步,就是要根据系统的具体情况,在多层的数据流图中选择一个适当层次的(经验很重要)数据流图,让这组图中每一部分对应一个局部应用,我们即可以以这一层次的数据流图为出发点,设计分E-R图。
ER模型转换为关系模型规则
关系模型是一种用于描述数据之间关系的模型,而ER模型是一种用于描述实体、实体之间关系、实体的属性的模型。
将ER模型转换为关系模型的规则如下:
1. 实体转换为关系表:
- 实体的每个属性转换为关系表中的一个列。
- 实体的主键属性作为关系表中的主键列。
- 若实体存在多值属性,则将其拆分为独立的关系表,与实体的关系表之间通过主键-外键关系连接。
2. 实体之间的一对多(1:N)关系:
- 子实体的主键作为父实体的外键列。
3. 实体之间的多对多(N:N)关系:
- 将多对多关系转换为独立的关系表,并包含两个实体的主键作为外键列。
4. 实体之间的一对一(1:1)关系:
- 将一对一关系的实体合并为一个关系表。
5. 属性与属性之间的关系:
- 若两个属性之间存在函数依赖关系(其中一个属性根据另
一个属性能够确定),则将其合并为同一个关系表的不同列。
这些规则可以帮助将ER模型转换为关系模型,并保持数据的一致性和完整性。
转换后的关系模型可以进一步用于数据库设计和数据处理。
1:1联系得转化
第一步:联系形成得关系独立存在:
职工表(职工号,姓名,年龄) 主码:职工号
产品表(产品号,产品名,价格) 主码:产品号
负责(职工号,产品号)主码:职工号或产品号合并方案1:“负责”与“职工”两关系合并:
职工(职工号,姓名,年龄,产品号)
产品(产品号,产品名,价格)
合并方案2:“负责”与“产品"两关系合并:
职工(职工号,姓名,年龄)
产品(产品号,产品名,价格,职工号)
1:n联系得转化
步骤一:联系形成得关系独立存在.
仓库(仓库号,地点,面积)主码:仓库号产品(产品号,产品名,价格)主码:产品号仓储(仓库号,产品号,数量) 主码:产品号合并后方案:联系形成得关系与n端对象合并。
仓库(仓库号,地点,面积)
产品(产品号,产品名,价格,仓库号,数量)m:n联系得转化
该模型可转换为三个关系模式:
学生(学号,姓名,性别,年龄)主码:学号
课程(课程号,课程名,学分)主码:课程号
选课(学号,课程号,成绩) 主码:学号+课程号
这个ER图可转换4个关系模式:
商店(商店编号,商店名,地址)
职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商品(商品号,商品名,规格,单价)
销售(商店编号,商品号,月销售量)。
数据库设计中的ER模型与关系模型映射在数据库设计中,存在着多种模型和方法来描述和表示数据库的结构和关系,其中ER(Entity-Relationship)模型和关系模型是最常用和最重要的两个模型。
ER模型是用于描述实体、属性和实体之间关系的图形模型,而关系模型则是基于数学理论的集合模型,通过使用表格来表示数据和数据之间的关系。
ER模型和关系模型之间的映射是将ER模型转换为关系模型的过程,下面将详细介绍这一转换过程。
首先,需要了解ER模型中的基本概念和元素。
ER模型由实体(Entity)、属性(Attribute)和关系(Relation)三个主要组成部分组成。
实体代表了数据库中的一个对象或概念,而属性则描述了实体的特征和信息。
关系表示了实体之间的连接和联系。
在ER模型中,实体通过矩形框来表示,属性通过椭圆形框表示,而关系则通过菱形框表示。
在ER模型中,实体之间的关系分为一对一关系、一对多关系和多对多关系。
在将ER模型转换为关系模型时,需要将ER模型中的实体、属性和关系映射为关系数据库中的表(Table)、属性(Attribute)和外键(Foreign Key)。
以下是一些常用的映射规则:1. 实体映射为表:将ER模型中的实体映射为关系数据库中的表。
每个实体对应一个表,表中的行代表实体,列表示属性。
表的主键通常使用实体的唯一标识符。
2. 属性映射为属性:将ER模型中的属性映射为关系数据库中表的属性。
每个属性对应表中的一个列。
3. 关系映射为外键:将ER模型中的关系映射为关系数据库中表之间的关系。
在一对多关系中,多的一方的外键将作为另一个表的主键。
在多对多关系中,需要引入一个中间表,该表包含两个实体的主键作为外键,以表示实体之间的多对多关系。
除上述基本的映射规则外,还需要注意下面几点:1. 一对一关系:在ER模型中,一对一关系可以通过将两个实体合并为一个表来实现。
这样,两个实体具有相同的主键,且表中的属性也包含两个实体的属性。
1.E-R模型向关系模型的转换规则:
(1)实体类型的转换
将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。
(2)联系类型的转换
1)实体间的联系是1:1
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)如实体间的联系是1:N
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3)如实体间的联系是M:N
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
三元联系转换
•1:1:1可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模式的键(作为外键)和联系类型的属性
•1:1:N在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性
•1:M:N将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合
•M:N:P将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,而键为三端实体键的组合
•仓库(仓库号#,仓库名,地址)
•商店(商店号#,商店名)
•商品(商品号#,商品名)
•进货(商店号#,商品号#,仓库号#,日期#,数量)。