多对多ER图
习题-ER图(附答案)-学校中各实体及属性
7、一个图书馆借阅管理数据库要求提供下述服务:(1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号惟一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:(1)构造满足需求的E-R图。
(2)转换为等价的关系模式结构。
答:(1)满足上述需求的E-R图如图11所示。
(2)转换为等价的关系模式结构如下:借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)出版社(出版社名,电报编号,电话可,邮编,地址)借阅(借书证号,书号,借书日期,还书日期)8、工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息:(1)一个工厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
(3)一个车间生产多种产品,产品有产品号和价格。
(4)一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
(5)一个产品由多种零件组成,一种零件也可装配出多种产品。
(6)产品与零件均存入仓库中。
(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
试:(1)画出该系统的E-R图。
(2)给出相应的关系模式。
(3)画出该系统的层次模式图。
答:(1)该系统的E-R图如图12所示。
各实体的属性为:工厂:厂名、厂长姓名车间:车间号、车间主任姓名、地址、电话工人:职工号、姓名、年龄、性别、工种仓库:仓库号、仓库主任姓名、电话零件:零件号、重量、价格产品:产品号、价格(2)相应的关系模式如下:工厂(厂名、厂长姓名)车间(车间号、车间主任姓名、地址、电话、厂名)工人(职工号、姓名、年龄、性别、工种、车间号)仓库(仓库号、仓库主任姓名、电话、长名)产品(产品号、价格、车间号、仓库号)零件(零件号、重量、价格、仓库号)制造(车间号、零件号)(3)该系统的层次模型图如图13所示。
ER图对象联系图和UML类图
ER图、对象联系图和UML类图0124086 梁斌一. 引言从文件系统到数据库系统,标志着数据管理技术在质上的飞跃。
数据库系统的出现使信息系统的研制中心从加工数据的程序转向共享的数据库。
通常把20世纪70年代广泛流行的层次、网状数据库系统称为第一代DBS,而把70年代处于实验阶段、80年代起广泛流行的关系数据库系统称为第二代DBS。
关系数据库系统的出现使数据库的应用达到了空前的普及,同时使数据库技术成为社会信息化的基本技术。
这两代DBS的应用领域主要在商务领域,其特点是所处理的事务比较小,如存款取款、购票订票、财务管理、仓库管理、人事管理、统计管理等。
随着计算机应用领域的拓广,这两代DBS已不能适用新的应用需要,例如多媒体数据、空间数据、时态数据、复合数据等。
同时,传统数据库的数据结构比较简单,不能支持新的数据类型和嵌套、递归的数据结构,因此很难满足计算机辅助设计/制造(CAD/CAM)、计算机辅助软件工程(CASE)、图象处理、地理信息系统(CIS)等新的应用的需要。
因此,时代呼唤新一代DBS的诞生。
于是在序设计中的面向对象概念基础上,形成了新一代数据库的理念,为对象数据库系统。
为了直观的表示出对象数据库系统中各个对象及其关系,人们先后采用了ER图,对象联系图,类图等等方式。
二.概念(1)ER图E-R方法(实体-联系方法),是P·S·Chen于1976年提出的。
在描述现实世界中和数据库设计中广泛应用,是一种语义模型,也是一种方法。
E-R模型中用到实体,属性,联系等概念:1.实体(Entity)是所关心的客体,是信息管理的对象2.属性(Attributes)是实体的特征。
一个实体总是通过其属性来描述的。
对管理对象进行分析时不是针对个别实体,而是对同一类实体进行的。
实体-属性的关系可以通过图直观地表示,在E-R图中,实体用方框表示,属性用椭圆框表示。
3.联系(Relationship)因为现实世界中客体是彼此有联系的,因此在信息世界中实体间也是也有联系的,用菱形表示它们之间的联系。
实体关系模型(E-R图)
3
1 E—R模型
1.1 E-R图的组成要素及其画法
1.E-R图要素:实体集、联系、属性、主关键字
2.绘制方法 把相互联系的实体集(方框)通过联系(菱形框)连 接起来,注明联系方式,再把实体集的属性(椭圆框) 连到相应实体集上。
25
3.1 两实体集间联系的转换 1.两实体集间1:n联系 两实体集间1:n联系,可将“一方”实体集 的主关键字纳入“n方”实体集对应的关系中作 为“外关键字”,同时把联系的属性也一并纳 入“n方”对应的关系中。 例如,图3所示的一对多的联系,可转换成 下面的两个关系模式 。
26
2.两实体集间m:n联系 对于两实体集间m:n联系,必须对“联系”
注意:一个系统的总体E—R图不是惟一的,强调不
同的侧面画出的E—R图可能有很大不同。总体E—R
图所表示的实体联系模型,只能说明实体间的联系,
还需要把它转换成数据模型才能被实际的DBMS所接
受。
19
【例7】某学校管理系统中有三个部门:教务处、人事处和 财务处。教务处职能是管理学生选课和教师任课;人事处职 能是管理人员的隶属关系;财务处职能是发放教师的工资。
作者和图书可用以下属性来描述: 作者——编号,姓名,职称 图书——书号,书名,出版日期
另外,在“创作”联系中应能反映出该书的合同时间 和完成时间。请根据描述画出能够反映实体之间的信 息关系的E-R图。
9
10
11
1.3 同一实体集内部不同联系情况的E-R图表示法
【例4】同一实体集内部的一对多联系的绘制方法。 假设在某单位里,职工实体集中的实体可分成两类: 领导者和被领导者。领导者可以领导多个被领导者, 而被领导者只有一个顶头上司,从而实现层层负责制。 而对于一个具体职工而言,他既可能是其他职工的领 导者,又可能被别的职工领导。
武汉大学数据库系统概论 第十三讲 实体联系图(ER图)
一.为什么需要ER模型(图) 二.ER模型的基本概念 三.弱实体类型和强实体类型 四.结构化约束 五.ER模型的问题
3
为什么需要ER 模型(图)
4
为什么需要ER模型(图)
1.
现实世界是复杂的 如何将现实世界的不规则 的手工信息处理方式转换 为规则的计算机信息处理 方式?
5
为什么需要ER模型(图)
当一个模型暗示某些实体类型之间存在联系,而这些 实体实例间却不存在相应的道路
37
E R 模 型 的 问 题
27
结
1.
构
化
约
束
结构化约束 基数约束(cardinality constraints) —— 描述一个特定联系类型中的一个 实体最多可参与联系的实例数目 参与约束(participation constraints) —— 说明是否所有的实体实例都参与 了联系
28
结
2.
构
化
约
束
联系中实体的基数
30
结
4.
构
化
约
束
二元联系的多样性 —— 就是两个实体中实例之间的联系 E
R
F
E
R
F
E
R
F
一对一联系 1:1
多对一联系 N:1
多对多联系 M:N 31
结
4.
构
化
约
束
二元联系的多样性
4.
联系类型
联系类型(relationship type) —— 实体类型间的一组有意义的关联 联系实例(relationship occurrence) —— 一个可唯一标识的关联,涉及参与该联系的每个实体类型 的一个实例 联系类型的度(degree of a relationship type) —— 参与联系的实体类型的个数。度为2的联系称为二元联系; 度为3的称为三元联系;度为3或更高的联系,称为多元联系 递归联系(recursive relationship) —— 是这样一种联系类型,其同一个实体类型参与的次数大于1, 并且每次参与具有不同角色.递归联系也称为一元联系
实验一 ER图
实验一 用E-R 图设计数据库第一部分:E-R 模型 1. 实验步骤1) 设计能够表示出班级与学生关系的数据库。
① 确定班级实体和学生实体的属性。
学生(学号,姓名,年龄,性别,班级号) 班级(班级号、年级号、班级人数)② 确定班级和学生之间的联系,给联系命名并指出联系的类型。
一个学生只能属于一个班级,一个班级可以有很多学生,所以和学生间是1对多关系,即1:n③ 确定联系本身的属性。
属于④ 画出班级与学生关系的E-R 图。
⑤ 将E-R 图转化为关系模式,写出各关系模式并标明各自的主码或外码。
学生(学号,姓名,年龄,性别,班级号) 班级(班级号、年级号、班级人数)2) 设计能够表示出顾客与商品关系的数据库。
① 确定顾客实体和商品实体的属性。
商品(商品编号,商品名称,产地) 顾客(顾客号,地址,商品号)② 确定顾客和商品之间的联系,给联系命名并指出联系的类型。
一个顾客可以购买多种商品,一种商品可以被多个顾客购买 所以顾客和商品间是多对多关系, 即m:n ③ 确定联系本身的属性。
购买⑥ 画出顾客与商品关系的E-R 图。
N1学生班级学号姓名 年龄班级号年级号班级人班级号属于⑦ 将E-R 图转化为关系模式,写出表的关系模式并标明各自的主码或外码。
商品(商品编号,商品名称,产地) 顾客(顾客号,姓名,地址,商品号) 3) 设计能够表示学校与校长关系的数据库。
① 确定学校实体和校长实体的属性。
学校(学校编号,学校名,校长号,地址) 校长(校长号,姓名,年龄)② 确定学校和校长之间的联系,给联系命名并指出联系的类型。
一个校长只能管理一个学校,一个学校只能有一个校长,所以 学校和校长是1对1的联系, 即1:1 ③ 确定联系本身的属性。
管理④ 画出学校与校长关系的E-R 图。
⑤ 将E-R 图转化为关系模式,写出表的关系模式并标明各自的主码或外码。
学校(学校编号,学校名,校长号,地址) 校长(校长号,姓名,年龄)11学校校长校长号年龄学校编号姓名校长号地址管理学校名NN商品顾客商品编号产地商品名称姓名地址购买顾客号4) 设计能够表示出房地产交易中客户,业务员和合同三者之间关系的数据库。
ER图是啥?
ER图是啥?E-R图也称实体-联系图(Entity Relationship Diagram),提供了表⽰实体类型、属性和联系的⽅法,⽤来描述现实世界的概念模型。
⽤矩形表⽰实体型,矩形框内写明实体名;⽤椭圆表⽰实体的属性,并⽤⽆向边将其与相应的实体型连接起来;⽤菱形表⽰实体型之间的联系,在菱形框内写明联系名,并⽤⽆向边分别与有关实体型连接起来,同时在⽆向边旁标上联系的类型(1:1,1:n或m:n)。
实体联系模型,是概念数据模型的⾼层描述所使⽤的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。
下⾯是⼀个最常见的ER图,基本上只要讲解ER图就会碰到它。
通俗的讲,ER图是把现实⽣活中的各种关系,以图⽚的形式,抽象出来,形成⼀个思维导图,通过ER图可以了解现实中的各种关系,⽐如⼀个班有很多学⽣组成。
ER图的应⽤,最最难的地⽅我觉得是抽象思维能⼒,你需要把现实⽣活中各种关系映射到⼤脑⾥⾯,然后以ER图的形式输出可分析和可视化的东西。
通过实例来拆解ER图⼀、学校⾥的那点事⼉现实⽣活⼀个班级有N多的学⽣组成,每个班级有⼀个班级号,每⼀名学⽣有⼀个学号;学⽣可以根据⾃⼰的兴趣爱好选修课程,对于选修的课程需要考试,然后出成绩有学分;⼀名⽼师可以教授⼏门课程。
ER图通过现实的描述分解出⼏个实体,分别为班级、学⽣、课程、教师。
出现了⼏组关系,分别为⼀个班级由多名学⽣组成(1对多)、⼀名学⽣可以选多门课程,同时⼀门课程可能被多名学⽣选修(多对多)、⼀名教师可传授多门课程,同时⼀门课程可能被多名教师传授(多对多)。
这个场景⾥⾯没有⼀对⼀的关系。
关系数据库ER图画出来以后,如何映射到关系数据库中的表呢?这⼀步就⾮常简单了,分步骤进⾏创建:把实体映射为表、把关系映射为表。
实体映射为表,⽐较简单,不再赘述。
关系映射为表,相对来说⽐较复杂,以这⾥的ER图为例,存在1对多和多对多两类关系。
1对多或者多对1时,在多⽅添加⼀个外键,对应到1⽅,如学⽣表⾥的所在班级这个外键。
er图课程设计
er图课程设计一、课程目标知识目标:1. 学生能够理解ER图的基本概念,掌握其组成元素,如实体、属性、关系等。
2. 学生能够运用ER图表示实体之间的关系,包括一对一、一对多和多对多关系。
3. 学生能够通过ER图对现实世界中的问题进行分析,提取关键信息,构建合理的数据库结构。
技能目标:1. 学生能够独立绘制ER图,准确地表示实体、属性和关系。
2. 学生能够根据ER图,设计出合理的数据库表结构,实现数据的存储和查询。
3. 学生能够运用ER图解决实际问题,提高数据处理和分析能力。
情感态度价值观目标:1. 培养学生对数据库知识的兴趣,激发他们主动探究和学习的精神。
2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题。
3. 培养学生运用所学知识为现实生活服务的意识,提高他们的信息素养。
课程性质:本课程为数据库基础知识课程,以理论与实践相结合的方式进行教学。
学生特点:学生处于高年级阶段,具备一定的逻辑思维能力和信息技术基础,对新鲜事物充满好奇心。
教学要求:教师应注重启发式教学,引导学生主动思考,培养学生的实际操作能力,关注学生的个体差异,提高教学质量。
通过本课程的学习,使学生能够掌握ER图的知识,为后续数据库学习打下坚实基础。
二、教学内容1. 引入ER图概念,介绍其基本组成元素:实体、属性、键、关系以及约束。
- 教材章节:第三章 数据模型与ER图2. 详细讲解一对一、一对多和多对多关系的表示方法,并通过实例进行演示。
- 教材章节:第三章 数据模型与ER图3. 指导学生绘制简单的ER图,学会将现实世界问题转化为ER模型。
- 教材章节:第三章 数据模型与ER图;第四章 ER图的设计与应用4. 讲解如何根据ER图设计数据库表结构,包括表的设计、字段的定义以及关系约束的设置。
- 教材章节:第四章 ER图的设计与应用;第五章 数据库设计5. 分析实际案例,让学生通过小组合作,运用ER图对问题进行数据库设计。
- 教材章节:第五章 数据库设计;第六章 数据库应用案例6. 安排课堂练习,让学生巩固所学知识,提高实际操作能力。
学校E-R图绘制
解:描述教师和课程之间的E-R图可如下图所示。
教师号
教师名
教师 m
职称
质量
讲授
n 课程 课程号 课程名 班级
E—R图的设计方法
E-R图通常都应经过以下两个阶段:
(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联 系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。 (2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次, 还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的 所有局部视图,包括实体、属性和联系。 【例3-4 】某学校管理系统中有三个部门:后勤部、学生处和财务处。后勤部用来管理 学生的住宿;教务处用来管理学生选课和教师任课;财务处用来管理发放教师的工资。
专业
入学时间
学生 n 住 1 租金
楼号
房 间 号
档次 (a) 后勤部的局部E-R图
宿舍
教师号
姓 名
性 别
职称
ห้องสมุดไป่ตู้专 业
教师 课程
课程号 课程名 质量 学时数 专业
教师
m
成绩
讲授 m 学生 选修 n
n
课程
(b) 教务处的局部E-R图(学生同(a)图)
基本工 资
加班工 资
扣税
工资编 号
月份 1 领 工资
两实体集间1:n联系
两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应 的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应 的关系中。
两实体集间m:n联系
对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双 方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键 字”,并且如果联系有属性,也要归入这个关系中。
E-R图详细讲解
CODASYL用系描述联系
系:命名了的联系。
SET:相互关联的数据 的集合。
系由一个父记录型和 一个或多个子记录型 构成。
系是一个二级树。
网络结构
理解系的概念
关系数据模型
用关系(表格数据)表示实体和实体之 间联系的模型称为关系数据模型。
实现存储数据独立性
概念数据独立性
修改概念文件的结构时应用程序不用 修改的特性。
实现概念数据独立性
数据库的三层模式结构
存储、概念和外部模式
定义存储模型的模式叫做存储模式; 定义概念模型的模式叫概念模式,或简 称模式; 定义外部模型的模式叫外部模式,又称 做子模式。
各级模式之间的关系
存储数据库示例
ST O R A G E SC H E M A F O R ST O R A G E -A C C O U N T IN G D ATA B A SE . STO R A G E FIL E SE C T IO N .
一对一的联系
如果实体集A与实体集B之间存在联系, 并且对于实体集A中的任意一个实体,实体 集B中至多只有一个实体与之对应;而对实 体集B中的任意一个实体,在实体集A中也至 多只有一个实体与之对应,则称实体集A到 实体集B的联系是一对一的,记为1 : 1 。
一对一联系的例子
有车间和车间主任两个 实体,并且有语义:一个车间 只能有一名车间主任,一个职 工也只能在一个车间当主任。 那么车间和车间主任之间的联 系是一对一的,我们把这种联 系命名为任职。
多对多联系
面积 500 450 200 300
器 显声解 散
E-R图和用例图
E-R图和⽤例图E-R图和⽤例图图1E-R 图⽬录E-R 图概念E-R ⽅法概念E-R 模型历史构成E-R 图的基本要素作E-R 图的步骤作E-R 图举例设计分E-R图的步骤展开编辑本段E-R图概念E-RE-R图也称实体-联系图(Entity Relationship Diagram),提供了表⽰实体类型、属性和联系的⽅法,⽤来描述现实世界的概念模型。
编辑本段E-R⽅法概念E-R⽅法是“实体-联系⽅法”(Entity-Relationship Approach)的简称。
它是描述现实世界概念结构模型的有效⽅法。
是表⽰概念模型的⼀种⽅式,⽤矩形表⽰实体型,矩形框内写明实体名;⽤椭圆表⽰实体的属性,并⽤⽆向边将其与相应的实体型连接起来;⽤菱形表⽰实体型之间的联系,在菱形框内写明联系名,并⽤⽆向边分别于有关实体型连接起来,同时在⽆向边旁标上联系的类型(1:1,1:n或m:n)。
编辑本段E-R模型历史ER模型最早由Peter Chen于1976年提出,它在数据库设计领域得到了⼴泛的认同,但很少⽤作实际数据库管理系统的数据模型。
即使对SXL-92数据库来说,设计好的数据库也是具有挑战性的。
它们可以在许多关于数据库设计的⽂献中找到,⽐如Toby Teorsey 的著作(1994 )。
⼤部分数据库设计产品使⽤实体-联系模型(ER模型)帮助⽤户进⾏数据库设计。
ER数据库设计⼯具提供了⼀个“⽅框与箭头”的绘图⼯具,帮助⽤户建⽴ER 图来描绘数据。
实体联系模型,实体关系模型或实体联系模式图(ERD)是由美籍华裔计算机科学家陈品⼭(Peter Chen)发明,是概念数据模型的⾼层描述所使⽤的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。
这种数据模型典型的⽤在信息系统设计的第⼀阶段;⽐如它们在需求分析阶段⽤来描述信息需求和/或要存储在数据库中的信息的类型。
但是数据建模技术可以⽤来描述特定论域(就是感兴趣的区域)的任何本体(就是对使⽤的术语和它们的联系的概述和分类)。
ER模型详解
Entity Relationship Model - ER模型- 实体关系模型1976年Peter Chen首次提出了Entity Relationship Modeling(实体关系建模)概念,并发明了陈氏表示法Peter Chen's Notation,因此ER模型也可以叫做Chen's Model(陈氏模型)。
下面是一个ER模型(ERD - ER diagram - Entity Relationship diagram)示例:图:ER模型- Peter Chen's Notation图:ER模型- Peter Chen's Model,实际上这是一个EER - Enhanced Entity-Relationship Model,扩展ER模型Entity 实体:使用方框表示Attribute 属性:使用圆或椭圆表示。
实体和实体关系都可以拥有属性,例如图中的Order-Line 关系拥有3个属性Relationship 关联关系:使用菱形表示,菱形中写上关联关系的名字ER模型中关联关系也可以拥有属性,在多对多关联关系中不需要使用额外中间关联实体来表示,关联关系本身就可以作为这个中间实体。
另外ER模型的关联关系不限于2个实体之间,可以在多个实体间使用一个关联关系Unique Identifier 唯一标识陈氏表示法没有很好的解决唯一标识问题,仅使用一种简单的标记方法,下图表示Party的ID 作为Purchase Order唯一标识一员的情况,关联关系名称改为E,朝依赖实体方使用一个箭头,依赖实体使用一个额外的方框括起来图:ER模型中唯一标识的表示方法图:ER模型中唯一标识的表示方法Sub-type 子类型最初的陈氏表示法中不包含子类型概念,后来Robert Brown和Mat Flavin添加了子类型表示法,这种ER模型称为扩展ER模型。
上图ER模型中有一个子类型例子,超类Party派生出子类Organization和PersonConstraints between relationships 关联关系的约束最初的陈氏表示法中关联关系的每一端只使用一个数字表示,比如一对多的关联关系,在一端使用1,另一端实体上使用n表示,这对关联关系约束不充分。
ER图,对象联系图和类图的特征与比较
ER图、对象联系图和类图的特征与比较第一部分:简述ER图,对象联系图和类图的基本概念和特点ER图:ER图是用来表示实体联系模型(Entity Relationship Model)的方式,这个模型可以直接从现实世界中抽象出实体类型和实体间的联系。
举个例子来说。
下面对上述例子做一个说明,同时给出ER图的约定表示方法。
(1)矩形框,表示实体类型(即考虑问题的对象)(2)菱形框,表示联系类型(即实体间的联系)(3)椭圆形框,表示实体类型和联系类型的属性(对于键的属性,在属性下面划一条横线)(4)直线,联系类型与其涉及的实体类型之间用直线相连,用来表示他们之间的联系,在直线端部标注联系的种类(1:1,1:N,M:N)再通过一个例子来说明用ER图表示现实世界的特点:1)考虑零件和工程的关系,零件可以服务于不同的工程,一个工程也需要各种不同的零件,因此,建模的时候零件和工程是一个多对多的联系。
a)首先确定实体类型,这个例子中,实体只有两个,就是工程和零件b)再确定联系类型,正如前面所述,工程和零件的关系是M:N的关系c)把实体类型和联系类型组合成ER图(见图1)d)确定实体类型和联系类型的属性。
在这个例子中,project的属性有项目号J#、项目名称JNAME、项目开工日期DATE;而part的属性有零件号P#、零件名PNAME、零件颜色COLOR以及零件重量WEIGHT。
联系类型P_P的属性是项目需要的零件数量TOTLE。
从上面的可以看出,ER图作为对现实世界的抽象,可以很方便的表示出现实中实体以及实体间的联系,不同形状的框代表不同的概念,让读者一目了然哪些是实体,哪些是联系,哪些是属性。
实体间的数量对应关系也通过连线两端的数字记号体现出来了。
可以说,ER图是一种简洁的模拟现实世界的符号方法。
对象联系图:使用类型构造图的思想,可以把ER图扩充成为对象联系图。
对象联系图可以完整地揭示数据间的联系。
对象联系图有一下几个基本成分:(1)椭圆,表示对象类型(相当于ER图中的实体类型)(2)小圆圈,表示属性是基本数据类型(例如整型、实型、字符串型等)(3)椭圆之间的边,表示对象之间的嵌套或引用(4)单箭头(->)表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型,即元组类型)(5)双箭头(->>)表示属性是多值(属性可以是基本数据类型,也可以是另一个对象类型,即关系类型)(6)双线箭头(=>)表示对象类型之间的超类与子类联系(从子类指向超类)(7)双向箭头(<――>)表示两个属性之间的联系为逆联系。
习题ER图(附答案)
7、一个图书馆借阅管理数据库要求提供下述服务:(1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号惟一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:(1)构造满足需求的E-R图。
(2)转换为等价的关系模式结构。
答:(1)满足上述需求的E-R图如图11所示。
(2)转换为等价的关系模式结构如下:借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)出版社(出版社名,电报编号,电话可,邮编,地址)借阅(借书证号,书号,借书日期,还书日期)8、工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息:(1)一个工厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
(3)一个车间生产多种产品,产品有产品号和价格。
(4)一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
(5)一个产品由多种零件组成,一种零件也可装配出多种产品。
(6)产品与零件均存入仓库中。
(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
试:(1)画出该系统的E-R图。
(2)给出相应的关系模式。
(3)画出该系统的层次模式图。
答:(1)该系统的E-R图如图12所示。
各实体的属性为:工厂:厂名、厂长姓名车间:车间号、车间主任姓名、地址、电话工人:职工号、姓名、年龄、性别、工种仓库:仓库号、仓库主任姓名、电话零件:零件号、重量、价格产品:产品号、价格(2)相应的关系模式如下:工厂(厂名、厂长姓名)车间(车间号、车间主任姓名、地址、电话、厂名)工人(职工号、姓名、年龄、性别、工种、车间号)仓库(仓库号、仓库主任姓名、电话、长名)产品(产品号、价格、车间号、仓库号)零件(零件号、重量、价格、仓库号)制造(车间号、零件号)(3)该系统的层次模型图如图13所示。
习题-ER图(附答案)
7、一个图书馆借阅管理数据库要求提供下述服务:(1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号惟一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:(1)构造满足需求的E-R图。
(2)转换为等价的关系模式结构。
答:(1)满足上述需求的E-R图如图11所示。
(2)转换为等价的关系模式结构如下:借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)出版社(出版社名,电报编号,电话可,邮编,地址)借阅(借书证号,书号,借书日期,还书日期)8、工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息:(1)一个工厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
(3)一个车间生产多种产品,产品有产品号和价格。
(4)一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
(5)一个产品由多种零件组成,一种零件也可装配出多种产品。
(6)产品与零件均存入仓库中。
(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
试:(1)画出该系统的E-R图。
(2)给出相应的关系模式。
(3)画出该系统的层次模式图。
答:(1)该系统的E-R图如图12所示。
各实体的属性为:工厂:厂名、厂长姓名车间:车间号、车间主任姓名、地址、电话工人:职工号、姓名、年龄、性别、工种仓库:仓库号、仓库主任姓名、电话零件:零件号、重量、价格产品:产品号、价格(2)相应的关系模式如下:工厂(厂名、厂长姓名)车间(车间号、车间主任姓名、地址、电话、厂名)工人(职工号、姓名、年龄、性别、工种、车间号)仓库(仓库号、仓库主任姓名、电话、长名)产品(产品号、价格、车间号、仓库号)零件(零件号、重量、价格、仓库号)制造(车间号、零件号)(3)该系统的层次模型图如图13所示。
数据库设计(一对一、一对多、多对多)
数据库设计(⼀对⼀、⼀对多、多对多)
关联映射:⼀对多/多对⼀
存在最普遍的映射关系,简单来讲就如球员与球队的关系;
⼀对多:从球队⾓度来说⼀个球队拥有多个球员即为⼀对多
多对⼀:从球员⾓度来说多个球员属于⼀个球队即为多对⼀数据表间⼀对多关系如下图:
关联映射:⼀对⼀
⼀对⼀关系就如球队与球队所在地址之间的关系,⼀⽀球队仅有⼀个地址,⽽⼀个地址区也仅有⼀⽀球队。
数据表间⼀对⼀关系的表现有两种,⼀种是外键关联,⼀种是主键关联。
⼀对⼀外键关联,图⽰如下:
⼀对⼀主键关联:要求两个表的主键必须完全⼀致,通过两个表的主键建⽴关联关系。
图⽰如下:
关联映射:多对多
多对多关系也很常见,例如学⽣与选修课之间的关系,⼀个学⽣可以选择多门选修课,⽽每个选修课⼜可以被多名学⽣选择。
数据库中的多对多关联关系⼀般需采⽤中间表的⽅式处理,将多对多转化为两个⼀对多。
数据表间多对多关系如下图:。
E-R设计实例
E-R图设计示例:例 1 设有某医院有以下事实:每个科室聘用多位医生可接诊病人;每位医生属于属于一个科室;病人根据自己的症状选择相应的科室就诊;一位病人在同一科室中多次看病时,每次可能由不同的医生为其诊断。
设科室的属性包括科室代码、科室名称,医生的属性包括工号、姓名、职称,病人的属性包括姓名、年龄、工作单位,设计其E-R图。
分析:“科室”与“医生”间的“聘用”关系为一对多的联系,可有聘用日期、聘用期限等属性;“医生”与“病人”间的“主治”关系为多对多的联系,可有就诊日期等属性;“科室”与“病人”间的“就诊”关系为多对多联系,但该关系可通过“科室”与“医生”间的“聘用”关系以及“医生”与“病人”间的“主治”关系来反映,可不必画出来。
E-R图结果:例 2 设某高校有若干个系,每个系有若干老师和学生,每位老师可担任多门课程,并可参与多个科研项目,每门课程可由多位老师担任,每个科研项目也可由多位教师共同参与,每位学生可选修本系或外系的多门课程。
试设计E-R图,给出每个实体、联系的属性,并将该E-R图转化为关系模型。
分析:由题意可知ER图中应包括5个实体:系、教师、学生、项目和课程,各实体的属性设计如下:系(系号,系名,系主任)、教师(工号,姓名,职称)、学生(学号,姓名,年龄,性别)、项目(项目号,项目名称,负责人)、课程(课程号,课程名,学分)。
个实体之间的联系包括:教师担任课程的“任课”联系;教师参加项目的“参加”联系;学生选修课程的“选修”联系;教师与系之间的“聘用”联系、学生与系之间的“隶属”联系。
其中“参加”联系可有项目排名属性。
“选修”联系应有成绩属性。
画出ER图后,可根据ER 图向关系模型转化。
E-R图结果:关系模式:由ER图转换而得的关系模型如下:系(系号,系名,系主任)、教师(工号,姓名,职称)、学生(学号,姓名,年龄,性别)、项目(项目号,项目名称,负责人)、课程(课程号,课程名,学分),任课(课程号,工号)、参加(工号,项目号,排名)、选修(学号,课程号,成绩)、聘用(工号、系号)、隶属(学号,系号),其中带下划线的为各关系模式中的主关键字。
多对多关系表
数据库建表-- 一对多/多对一/一对一/多对多关系关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多:从球队角度来说一个球队拥有多个球员即为一对多多对一:从球员角度来说多个球员属于一个球队即为多对一数据表间一对多关系如下图:关联映射:一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。
数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。
图示如下:一对一外键关联:一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系关联映射:多对多多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。
数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。
数据表间多对多关系如下图:----------------------------------------------------------------------------------------------------------前言:多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。
按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者select * from 主表where id in (select 主表id from 关系表)1,角色任命型特点:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。
界面特点:显示主表,用checkbox或多选select设置多选关系。
例如:任命版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。