FChao
发布于 2026-05-16 / 60 阅读
0
0

数据库系统工程师⑱:案例题1-ER图分析

注意:2020年之前的强弱实体关系(实线和虚线)已不考察

2025真题:

【需求描述】

(1)网络平台进驻若干个二手房商家,每套房只需要通过一个商家进行交易,网络平台和商家之间按比例收取手续费。

(2)记录房屋信息,包括房屋ID,面积,房主ID,每套房只有一个房主

(3)记录二手房商家信息,包括商家ID,名称,手续费比例

(4)记录买家信息,包括买家ID,电话,信誉评分

(5)记录交易信息,包括房屋ID,商家ID,买家ID,成交金额,成交时间

【关系模式】

房屋(房屋ID,面积,房主ID)

商家(商家ID,名称,手续费比例)

买家(买家ID,电话,信誉评分)

交易(房屋ID,(a),(b),成交金额,成交时间)

1.要求补全E-R图,不添加新的实体

我们看到交易这个联系中,房屋ID,商家ID,买家ID都是外键。与另外三个表都产生了联系,只有成交金额,成交时间是这个联系自己的属性。因此:

  • 交易 —— 房屋

  • 交易 —— 商家

  • 交易 —— 买家,连三条实线

交易的属性:画椭圆连接到交易这个棱形属性

  • 成交金额

  • 成交时间

交易(房屋ID,商家ID,买家ID,成交金额,成交时间)

2.补全(a)(b)的值,标识主键和外键

首先根据题目需求直接可以推测出关系模式交易中,a为商家ID,b为买家ID。(顺序交换也可以)

外键为房屋ID,商家ID,买家ID

由于考生回忆题缺失信息,若认为一套房只能交易一次,不可能重复交易,则每次交易房屋ID都是唯一可以标识的。我们假设房屋是可以多次交易的,那么主键为房屋ID和买家ID,一套房可能每个人只会住一段时间...

3.若一套房可以由多位房主共同拥有,一位房主可以拥有多套房屋。增加房主实体和相应属性。去掉原图中多余的属性,并给出增加的关系模式。

一套房可以由多个房主共同拥有

一个房主可以拥有多套房屋

新增加了这个多对多关系,因此房主必须是个独立的实体,且两个实体多对多的联系需要新增一个联系表。联系房主和房屋。

房主(房主ID)

拥有(房屋ID,房主ID)

2024真题:

【关系模式】

关系模式

供应商(供应商名称,电话)

停车(车牌号,进场时间,出场时间,停车费)

充电桩(充电桩编码,供应商名称)

充电(车牌号,(a),充电开始时间,(b),充电费用)

【问题1】(4分)

补充缺失的ER图,包括缺失的联系和主要的属性(不需要增加实体)。

【问题2】 (4分)

补充关系模式中缺失的内容,并标注出主键和外键。

充电必然是停车和充电桩之间的联系,因此充电这个联系要有双方的主键且有连线。显然充电桩和停车是多对多的。要计算充电费用,则还根据题目提示需要充电结束时间。

充电费用、充电开始和结束时间是这个联系自己的属性。

【问题3】 (7分)

停车场可以洗车,有对应的洗车商。

洗车商记录洗车商名称,以及一个电话。

洗车记录洗车时间。

对图1-1进行修改,并给出新增的关系模式。

洗车商(洗车商名称,电话)
洗车(车牌号,洗车商名称,洗车时间)

E-R图知识回顾

  • 实体(Entity):一张表

    • 对应现实世界的“对象”,有属性(Attributes)

    • 例如:供应商表,里面有供应商诸多信息、零件表

    • E-R图中通常用矩形表示

  • 属性(Attribute):表中的字段

    • 实体或联系的特征

    • 例如:供应商的名称、地址、电话

    • 用椭圆表示,连线到它所属的实体或联系

  • 联系(Relationship)

    • 实体之间的关系,是描述‘谁和谁发生了什么事’的实体,联系属性总是依赖于多个实体

    • 例如:供应商和零件之间有采购的关系,有一张采购表,里面的外键分别来自供应商和零件表。

    • 用菱形表示,可以有自己的属性(例如采购数量、采购日期)

    • 如果一个表包含多个实体的主键作为外键,通常这个表就是联系表。

    • 我们在分析题目的时候发现,如果一个实体和另一个实体有多对多联系→ 必然需要联系表。

      • 1对1是可以完美写在一张表里面

      • 一对多考虑冗余需要拆分,但是可以用外键来关联两张表

      • 多对多联系无法被表完整存储,需要新构造一个中间表

1.

【说明】
某新能源汽车公司为了提升效率,需要开发一个汽车零件采购系统。请根据下述需求描述完成该系统的数据库设计。
【需求描述】
(1)记录供应商的信息,包括供应商的名称、地址和一个电话。
(2)记录零件的信息,包括零件的编码、名称和价格。
(3)记录车型信息,包括车型的编号、名称和规格。
(4)记录零件采购信息。某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件:还包括采购数量和采购日期。
【概念结构设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图1-1所示。

【逻辑结构设计】
根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):
供应商(名称,地址,电话)

零件(编码,名称,价格)

车型(编号,名称,规格)
采购(车型编号,供应商名称,(a),,(b),采购日期)

【问题1】(5分)
根据问题描述,补充图1-1的实体联系图(不增加新的实体)

考试的时候必须选椭圆工具不要选错成圆角矩形了!!

某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件:还包括采购数量和采购日期。

说明车型 ↔ 零件是多对多关系

零件 ↔ 供应商是多对多关系

这三个实体之间都需要中间联系

题目明确说:还包括采购数量和采购日期。

因此采购关系是:采购(车型编号, 供应商名称, 零件编码, 采购数量, 采购日期)。车型编号、供应商名称、零件编码都是外键采购数量和采购日期才是自己的属性。


关系线上的参与度/基数

实现、虚线和圈Φ

首先,我们从表联系实际看,采购(车型编号, 供应商名称, 零件编码, 采购数量, 采购日期)。发生一次采购记录的时候,有可能车型、供应商、零件不存在吗?这不符合现实,所以说每次采购记录都必然存在这三,这是“联系对实体”的依赖。因此它们是实线。

如果是存在某种情况,一个实体可能在联系中不存在,那就是可能出现0,线上有圆圈Φ,还有虚线表示弱实体的情况,在近几年考试中均不涉及。

理解参与度的两个方式(Min-Max):

方式1️⃣:某一侧标注的数字,表示:“另一侧一个实体实例最多能对应几个本侧实体”。

方式2️⃣:一个实体的实例在某个关系(联系)中可能出现的次数或必须参与的情况,所以,标注在实体端,而不是菱形的联系端。

(联系是多个实体间的抽象关联,它没有现实存在的数量限制,分析它没有意义)

车型端:

理解方式1️⃣:特定的某一个【供应商】和某一个【零件】,可以有多个【车型】使用过这个组合。因此是 * ,它是多方。

理解方式2️⃣:某个特定车型在采购这个关系里至少/最多参与多少次?

每个车型至少采购1种零件吗? → 否,它可能一次也没出现(最小=0)

每个车型可能采购多种零件吗? → 是,同一车辆采购多少次就能在表中出现多少次(最大=*)

所以在车型端,有标识0,*。但是最小参与度一般省略不写,故标记*号。

“采购”存在 ⇒ 必须有“车型”

不等于

“车型”存在 ⇒ 必须有“采购”

由此逻辑可得,只要产生联系的记录,零件和供应商最小参与度是0,可出现任意次,因此均标记为*

哪怕实体每次出现都是同一个值,就是说联系表里面出现的总是同一辆车,那也是多次。我们看的是实体出现的次数,不是实体的属性有出现了多少种类!

【问题2】(3分)
补充逻辑结构设计结果中的(a)、(b)两处空缺,并标注主键和外键完整性约束。

(a)零件编码

(b)采购数量

主键:(车型编号,供应商名称,零件编码,采购日期)

外键:车型编号,供应商名称,零件编码

首先由于车型、供应商、零件互相之间的多对多关系,它们谁都无法单独标识一行(光是一对多都没发标识一行了),候选键需要它们三个都在其中,但是我们分析还有一个不同日期,车型供应商零件编码相同的情况,只能多加上这个属性,得是它们四个才能成为主键。

E-R图新增实体/关系模式

【问题3】(7分)
该汽车公司现新增如下需求:记录车型在全国门店的销售情况。门店信息包括门店的编号、地址和电话:销售包括
销售数量和销售日期等。
对原有设计进行以下修改以实现该需求:
(1)在图1-1中体现门店信息及其车型销售情况,并标明新增的实体和联系,及其必要属性。
(2)给出新增加的关系模式,并标注主键和外键元整性约束。

首先根据题目,门店这个实体有属性编号、地址、电话

“销售"不是一个实际存在的实体,它是门店和汽车之间产生的销售联系,它有自己的属性:销售数量和销售日期

汽车公司的门店和车型的销售情况和零件、零件的供应商没有关联

每次产生销售记录,必须有真正存在的车和门店,因此是实线,这是“联系对实体”的依赖。

按照现实逻辑车可以在多个门店有卖,一个门店有多辆车。它们都可以在联系表中出现一次或多次。因此均有*星号

一个门店可售出多种车型 → 门店端在表中出现多次:*

一个车型可在多个门店销售 → 车型端在表中出现多次:*

销售(门店编号,车型编号,销售数量,销售日期)。主键:(门店编号,车型编号,销售日期);外键:门店编号,车型编号。

门店(门店编号,地址,电话)。主键:门店编号;外键:无。

2.

【说明】
某市为了规范疫苗接种工作,提升效率,并为抗击疫情提供疫苗接种数据支撑,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。
【需求描述】
(1)记录疫苗供应商的信息,包括供应商名称、地址和一个电话。
(2)记录接种医院的信息,包括医院名称、地址和一个电话。
(3)记录被接种者个人信息,包括姓名、身份证号和一个电话。
(4)记录接种者的疫苗接种信息,包括接种医院信息、被接种者信息、疫苗供应商名称和接种日期。

为了提高免疫力,接种者可能需要进行多次疫苗接种(每天最多接种一次),但每次都可以在全市任意一家医院进行疫苗接种。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图1-1所示。

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整 ):
供应商(供应商名称,地址,电话 )
医院(医院名称,地址,电话)
供货(供应商名称,(a),供货内容)
被接种者(姓名,身份证号,电话)
接种(被接种者身份证号,(b),医院名称,供应商名称)

从关系模式看关系线和参与度

【问题1】(4分)
根据问题描述,补充图1-1的实体联系图(不增加新的实体 )。

第一第二问同时分析得知接种日期是接种自己的属性,接种除了被接种者和医院,要从关系模式中看见:接种联系包括了供应商名称这个外键,必须和供应商有连线!!

它们三者均在此联系表记录中至少出现一次,可出现多次记录。因此是实线,参与度为*。(被接种者可以去任意医院,医院当然有多个被接种者。)

题目没有显示告诉我们供应商,但是我们知道供应商在这个联系中接种多少次就出现多少次,因此是*

这里的"多次"指的是实体在联系中出现的记录条数,而不是属性值的种类数。即使每次都是同一个值,只要它在联系表中出现了多行,就意味着该实体参与了多次联系。
【问题2】(4分)
补充逻辑结构设计结果中的(a)、(b)两处空缺,并标注主键和外键完整性约束。

供货(供应商名称,(a),供货内容)

供货这个联系,它自己的属性供货内容已经写在关系模式里了,剩下的肯定是联系和两端实体的外键-主键关系,因此a肯定是医院的主键,医院名称

接种(被接种者身份证号,(b),医院名称,供应商名称)

题目:记录接种者的疫苗接种信息,包括接种医院信息、被接种者信息、疫苗供应商名称和接种日期。

接种日期没出现,b是接种日期

供应商,主键:供应商名称

医院,主键:医院名称

供货,主键:供应商名称,医院名称;外键:供应商名称,医院名称

被接种者,主键:被接种者身份证号

被接种者一天接种一次这个信息的作用就是:作为主属性来标识同一个人在不同天接种的情况

接种,主键: (被接种者身份证号,接种日期);外键:被接种者身份证号,医院名称,供应商名称
【问题3】(7分)
若医院还兼有核酸检测的业务,检测者可能需要进行多次核酸检测(每天最多检测1次 ),但每次都可以在全市任意一家医院进行检测。
请在图1-1中增加“被检测者”实体和相应的属性、
医院和被检测者之间的“检测”联系和必要的属性,并给出新增加的关系模式。
“被检测者”实体包括姓名、身份证号、住址和一个电话。“检测”联系需要包括检测日期和检测结果等。

题目信息:“被检测者”实体包括姓名、身份证号、住址和一个电话

“检测”联系需要包括:检测日期、检测结果,它首先肯定是医院和被检测者之间的联系,和供应商有联系吗?注意题目关键词:“医院和被检测者之间的“检测”联系”。我们之间按照题目关键词来画。

被检测者存在进行多次检测的可能(单个实例可以多次参与联系),医院可以无数次被不同的被检测者选择而出现,医院和检测者都是*(答案这里漏画了)

被检测者(姓名,身份证号,住址,电话 ),主键:身份证号。

检测(被检测者身份证号,医院名称,检测日期,检测结果 ),主键:(被检测者身份证号,检测日期);外键:被检测者身份证号,医院名称。

看到每天最多检测一次就要有敏锐意识!!每次选取主键的时候要注意能不能缩小,实际上某个患者某一天只会去一个医院,因此医院是可以省去的

3.

【说明】

某小区快递驿站代为收发各家快递公司的包裹,为规范包裹收发流程,提升效率,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。

【需求描述】

(1)记录快递公司和快递员的信息。快递公司信息包括公司名称、地址和一个电话;快递员信息包括姓名、手机号码和所属公司名称。一个快递公司可以有若干快递员,一个快递员只能属于一家快递公司。

(2)记录客户信息,客户信息包括姓名、手机号码和客户等级。驿站对客户进行等级评定,等级高的客户在驿站投递包裹有相应的优惠。

(3)记录包裹信息,便于快速查找和管理。包裹信息包括包裹编号、包裹到达驿站时间、客户手机号码和快递员手机号码。快递驿站每个月根据收发的包裹数量,与各快递公司结算代收发的费用。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图1-1所示。

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整 ):  
快递公司(公司名称,地址,电话)
快递员(姓名,快递员手机号码,  (a)  )
客户(姓名,客户手机号码,客户等级)
包裹(编号,到达时间,  (b)  , 快递员手机号码)

二元联系参与度分析

【问题1】(6分)
根据问题描述,补充图1-1的实体联系图。

一个快递公司可以有若干快递员,一个快递员只能属于一家快递公司。

在二元联系中:

某一侧标注的数字,表示:“另一侧一个实体最多能对应几个本侧实体”。

公司侧写 1对于一个快递员,能关联的公司数量最多为1。

快递员侧写 *,对于一个公司最多能关联多个快递员

根据对问题二的补充可以得知,包裹这个关系,一个外键是客户,一个外键是快递员,另外两个是和快递公司无关的属于自己的属性(编号,到达时间),因此包裹与客户和快递员连线,且添加两个编号、到达时间的属性。

实线和虚线问题:

在大多数标准E-R图表示法中,实体与联系之间的连线通常是实线。有些教材会用虚线菱形来表示标识联系,并用虚线连接弱实体和标识联系,以强调弱实体的存在依赖于其他实体。在考试中,除非题目明确说明了这种虚线的含义,否则应遵循最常见的标准表示法(即画实线)。

【问题2】(4分)
补充逻辑结构设计结果中的(a)、(b) 两处空缺及完整性约束关系。

题目:快递员信息包括姓名、手机号码和所属公司名称。

a是公司名称

记录包裹信息,便于快速查找和管理。包裹信息包括包裹编号、包裹到达驿站时间、客户手机号码和快递员手机号码。

b是客户手机号码

编号 为主键

客户手机号码 为外键 参照 客户(客户手机号码)

快递员手机号码 为外键 参照 快递员(快递员手机号码)
【问题3】(5分)
若快递驿站还兼有代缴水电费业务,请增加新的“水电费缴费记录"实体,并给出客户和水电费缴费记录之间的“缴纳”联系,对图1-1进行补充。

“水电费缴费记录”实体包括编号、客户手机号码、缴费类型、金额和时间,请给出“水电费缴费记录”的关系模式,并说明其完整性约束。

根据题目,缴纳这个联系并没有属于自己的额外属性。且要发现关键词“客户和水电费缴费记录之间的缴纳联系”

客户一侧:某个水电缴纳费用实例只对应一个人,因此写1

水电缴纳费用记录:某个特定的客户可以不限制的有多次,因此写*

答案省略了属性,要注意补齐!

4.

【说明】

某社区蔬菜团购网站,为规范商品收发流程,便于查询客户订单情况,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。

【需求描述】

(1)记录蔬菜供应商的信息,包括供应商编号、地址和一个电话。

(2)记录社区团购点的信息,包括团购点编号、地址和一个电话。

(3)记录客户信息,包括客户姓名和一个电话。客户可以在不同的社区团购点下订单,不直接与蔬菜供应商发生联系。

(4)记录客户订单信息,包括订单编号、团购点编号、客户电话、订单内容和日期。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图1-1所示。

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
蔬菜供货商(供货商编号,地址,电话)
社区团购点(团购点编号,地址,电话)
供货(供货商编号,(a))
客户(姓名,客户电话)
订单(订单编号,团购点编号,订单内容,日期,(b))

【问题1】(6分)
根据问题描述,补充图1-1的实体联系图。
【问题2】 (4分)
补充逻辑结构设计结果中的(a)、(b)两处空缺及完整性约束关系。

首先供货这个联系,连线到了供应商和团购店两个实体,那他必然有两个外键是指向这两个表的主键的,这个供货也就两个字段,那肯定另一行是团购点编号

记录客户订单信息,包括订单编号、团购点编号、客户电话、订单内容和日期。

b是客户电话

供货关系(供货商编号,团购点编号)

主键:(供货商编号,团购点编号)#多对多实体主键体现在联系表中

外键:供货商编号,团购点编号

订单(订单编号,团购点编号,客户电话,订单内容,日期)

主键:订单编号

外键:团购点编号、客户电话

画订单联系的时候,团购点编号、客户电话是外键,剩下的三个就是要画出来的自己的属性

客户可以在不同的社区团购点下订单,不直接与蔬菜供应商发生联系。

客户一端:

某个特定的蔬菜供应商实例和团购点实例还是可以有多名不同的客户,因此为 *

团购点一端:

某个特定的客户,没有限制地可以去多个不同的社区团购点。属于多对多关系,为 *

【问题3】(5分)

若社区蔬菜团购网站还兼有代收快递的业务,请增加新的“快递”实体,并给出客户实体和快递实体之间的“收取”联系,对图1进行补充。“快递” 关系模式包括快递编号、客户电话和日期。

直接按照题目关键词判断,收取是只连线客户和快递的。快递中客户电话是外键,其余快递编号,日期是自己的属性。

客户一端:某个特定的快递实例,只对应一个客户

快递一端:某个特定的客户实例,有多个快递

5.

【说明】

某创业孵化基地管理若干孵化公司和创业公司,为规范管理创业项目投资业务,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。

【需求描述】

(1)记录孵化公司和创业公司的信息。孵化公司信息包括公司代码、公司名称、法人代表名称、注册地址和一个电话;创业公司信息包括公司代码、公司名称和一个电话。 孵化公司和创业公司的公司代码编码不同。

(2)统一管理孵化公司和创业公司的员工。员工信息包括工号、身份证号、姓名、 性别、所属公司代码和一个手机号,工号唯一标识每位员工。

(3)记录投资方信息,投资方信息包括投资方编号、投资方名称和一个电话。

(4)投资方和创业公司之间依靠孵化公司牵线建立创业项目合作关系,具体实施由孵化公司的一位员工负责协调投资方和创业公司的一个创业项目。一个创业项目只属于一个创业公司,但可以接受若干投资方的投资。创业项目信息包括项目编号、创业公司代码、 投资方编号和孵化公司员工工号。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整): 孵化公司(公司代码,公司名称,法人代表名称,注册地址,电话)
创业公司(公司代码,公司名称,电话)
员工(工号,身份证号,姓名,性别,(a),手机号)
投资方(投资方编号、投资方名称,电话)
项目(项目编号,创业公司代码,(b),孵化公司员工工号)

同时存在多个待分析的联系

【问题1】(5分)
根据问题描述,补充图2-1的实体联系图。

项目有三个外键,肯定和创业公司、投资方、员工有连线。自己的属性是项目编号。

孵化公司的一位员工负责协调投资方和创业公司的一个创业项目。一个创业项目只属于一个创业公司,但可以接受若干投资方的投资。

孵化公司的某个员工实例对于某个投资方和某个创业公司而言是只有1个

某个特定的员工和他对接的某个创业公司,可以接受多个不同的投资方投资,投资方实体一端是 *

创业公司对于某个特定的员工和特定的投资而言是只有一项

注意下方管理联系虽不在关系模式中,但是题目已描述

这里要特别小心区分,员工和创业公司之间,有一个是项目联系,有一个是管理联系。参考孵化公司,创业公司对于员工的管理关系也是一对多的,一个创业公司有多位员工,应该填写 * 。但是参与项目的员工只有一个!!!是 1

【问题2】(4分)
补充逻辑结构设计结果中的(a)、(b)两处空缺及完整性约束关系。

员工信息包括工号、身份证号、姓名、 性别、所属公司代码和一个手机号,工号唯一标识每位员工。

创业项目信息包括项目编号、创业公司代码、 投资方编号和孵化公司员工工号。

a是公司代码,该关系主键是工号,外键是公司代码

b是投资方编号,该关系主键是投资方编号,和项目编号,其中投资方是外键

多个实体组成的联系,如果是多方实体的主键都应该体现在联系的主键中

分析是否需要新增实体

【问题3】(6分)
若创业项目的信息还需要包括投资额和投资时间,那么:
(1)是否需要增加新的实体来存储投资额和投资时间?

创业项目的信息还需要包括投资额和投资时间,本题项目关系主键为(项目编号,投资方),本身关系就可以有自己的属性,且添加不会造成主键不唯一问题,可以据此添加投资额和投资时间,因此不需要增加实体,可以直接在项目关系模式中增加这2个属性即可。
(2)如果增加新的实体,请给出新实体的关系模式,并对图2-1进行补充。如果不需 要增加新的实体,请将“投资额”和“投资时间”两个属性补充并连线到图2-1合适的对象上,并对变化的关系模式进行修改。 

关系模式修改:项目增加属性-投资额、投资时间

6.带有聚合的旧考题

【说明】
某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。请根据下述需求描述完成系统的数据库设计。
【需求描述】
1.公司拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。每幢公寓楼中有多套公寓,每套公寓在楼内有唯一的编号(不同公寓楼内的公寓号可相同)。系统需记录每套公寓的卧室数和卫生间数。
2.员工和租客在系统中有唯一的编号(员工编号和租客编号)。
3.对于每个租客,系统需记录姓名、多个联系电话、一个银行账号(方便自动扣房租)、一个紧急联系人的姓名及联系电话。
4.系统需记录每个员工的姓名、类别、一个联系电话和月工资。员工类别可以是经理或维修工,也可兼任。每个经理可以管理多幢公寓楼。每幢公寓楼必须由一个经理管理。 系统需记录每个维修工的业务技能,如:水暖维修、电工、木工等。
5.租客租赁公寓必须和公司签订租赁合同。

一份租赁合同通常由一个或多个租客(合租)与该公寓楼的经理签订,一个租客也可租赁多套公寓。合同内容应包含签订日期、开始时间、租期、押金和月租金。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1 所示。

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
联系电话( 电话号码,租客编号
租客( 租客编号,姓名,银行账号,联系人姓名,联系人电话)
员工 ( 员工编号,姓名,联系电话,类别,月工资, ( a )
公寓楼( (b) ,地址,经理编号)
公寓( 楼编号,公寓号,卧室数,卫生间数)
合同( 合同编号,租客编号,楼编号,公寓号,经理编号,签订日期,起始日期,租期, (c ),押金)

产生聚合形式联系的分析

【问题1】(4.5分)

补充图2-1中的“签约”联系所关联的实体及联系类型。

将一个联系当作实体参与另一联系,称为聚合,聚合画图将把联系和它的实体一起圈起来

“一份租赁合同通常一个或多个租客 与该公寓楼的经理签订”,

可以得出是经理跟租赁【由租客和公寓组合成一个大的实体集】有签约关系,用聚合的方法。将租赁的这个联系作为实体和经理建立签约联系。

一个经理能签多个租赁合同,租赁合同为多方

一个租赁合同内就只有一个经理,经理是1方

经理不应当通过签约关系,单独和租客连线,因为签约联系中的各种信息还需要公寓和租赁关系来提供,如果说签约联系自己又重复存储属性则造成了冗余

【问题2】(4.5分)
补充逻辑结构设计中的(a)(b)(c ) 三处空缺。

每幢公寓楼必须由一个经理管理。 系统需记录每个维修工的业务技能,如:水暖维修、电工、木工等。

公司拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。

合同内容应包含签订日期、开始时间、租期、押金和月租金

(a)业务技能

(b)楼编号

(c)月租金

【问题3】

题干中“租期内,公寓内设施如出现问题,租客可在系统中进行故障登记,填写故障描述,每项故障由系统自动生成唯一的故障编号,由公司派维修工进行故障维修,系统需记录每次维修的维修日期和维修内容”

说明,维修应该与租赁(由租客和公寓组合成一个大的实体集)之间存在多对多的联系,同时需要有自己的属性:故障编号、维修日期、维修内容

因此,该关系模式为:维修(故障编号,故障描述,维修工,维修日期,维修内容,楼编号,公寓号,租客编号)

其中维修工、楼编号、公寓号、租客编号为外键需要联系

维修应该与租赁(由租客和公寓组合成一个大的实体集)之间存在多对多的联系,同时需要有自己的属性:故障编号、维修日期、维修内容。

【问题3】

维修( 故障编号,故障描述,维修工,维修日期,维修内容,楼编号,公寓号,租客编号)

7.带有聚合的旧考题

【说明】

某销售公司当前的销售业务为商城实体店销售。现该公司拟开展网络销售业务,需要开发一个信息化管理系统。请根据公司现有业务及需求完成该系统的数据库设计。

【需求描述】

(1)记录公司所有员工的信息。员工信息包括工号、身份证号、姓名、性别、出生日期和电话,并只登记一部电话。

(2)记录所有商品的信息。商品信息包括商品名称、生产厂家、销售价格和商品介绍。系统内部用商品条码唯一区别每种商品。一种商品只能放在一个仓库。

(3)记录所有顾客的信息。顾客信息包括顾客姓名、身份证号、登录名、登录密码、和电话号码。一位顾客只能提供一个电话号码。系统自动生成唯一的顾客编号。

(4)顾客登录系统之后,在网上商城购买商品。顾客可将选购的商品置入虚拟的购物车内,购物车可长期存放顾客选购的所有商品。顾客可在购物车内选择商品、修改商品数量后生成网购订单。订单生成后,由顾客选择系统提供的备选第三方支付平台进行电子支付,支付成功后系统需要记录唯一的支付凭证编号,然后由商城根据订单进行线下配送。

(5)所有的配送商品均由仓库统一出库。为方便顾客,允许每位顾客在系统中提供多组收货地址、收货人及联系电话。一份订单所含的多个商品可能由多名分检员根据商品所在仓库信息从仓库中进行分拣操作,分拣后的商品交由配送员根据配送单上的收货地址进行配送。

(6)新设计的系统要求记录实体店的每笔销售信息,包括营业员、顾客、所售商品及其数量。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图3-1所示。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整): 

员工(工号,身份证号,姓名,性别,出生日期,电话)

商品(商品条码,商品名称,生产厂家,销售价格,商品介绍,  (a)  

顾客(顾客编号,姓名,身份证号,登录名,登录密码,电话)

收货地点(收货ID,顾客编号,收货地址,收货人,联系电话)

购物车(顾客编号,商品条码,商品数量)

订单(订单ID,顾客编号,商品条码,商品数量,  (b)  

分检(分拣ID,分拣员工号,  (c)  ,分拣时间)  

配送(配送ID分拣ID,配送员工号,收货ID,配送时间,签收时间,签收快照)

销售(销售ID,营业员工号,顾客编号,商品条码,商品数量)

【问题1】(4分)

补充图3-1中的“配送”联系所关联的对象及联系类型。  

【问题2】(6分)

补充逻辑结构设计中的(a)、(b)和(c)三处空缺。

记录所有商品的信息。商品信息包括商品名称、生产厂家、销售价格和商品介绍。系统内部用商品条码唯一区别每种商品。一种商品只能放在一个仓库。

(a):所在仓库

且某个商品和他所在的仓库是一对多关系,一对多关系通常将“一”方的主键仓库作为外键添加到“多”方。

允许每位顾客在系统中提供多组收货地址、收货人及联系电话。一份订单所含的多个商品可能由多名分检员根据商品所在仓库信息从仓库中进行分拣操作,分拣后的商品交由配送员根据配送单上的收货地址进行配送。

支付成功后系统需要记录唯一的支付凭证编号,然后由商城根据订单进行线下配送。

订单(订单ID,顾客编号,商品条码,商品数量,(b)):支付凭证编号

分检(分拣ID,分拣员工号,(c),分拣时间)

注意看图中的分拣是和订单有关系线,它空缺的属性可以从订单表和分拣表推理。分拣需要商品信息,而目前分拣表中没有,从前面的练习题可以总结联系的表就应该包含实体的主键作为联合主键,特别是多对多关系

因此应该去取订单表中的订单ID

多个聚合分析

配送(配送ID,分拣ID,配送员工号,收货ID,配送时间,签收时间,签收快照)

配送员工号分拣ID看出必然是与配送员和分拣有联系实线。“配送”和“地点”的关联,通过:收货ID建立。且按照常识配送应当有配送地点。

将联系当作实体参与另一联系,称为聚合,为什么题目中右上角有聚合?

购物车作为顾客和商品之间的联系,而订单由顾客从购物车中选择商品生成,因此将购物车这一联系当作实体,与订单实体产生联系。

分拣后的商品交由配送员根据配送单上的收货地址进行配送。可以知道,配送是与分拣联系相关的联系,同样的,将分拣联系进行聚合,参与配送联系。

题目没有对这三者有限定对应条件,三者为没有限制条件的多对多模式

【问题3】(5分)

对于实体店销售,若要增加送货上门服务,由营业员在系统中下订单,与网购的订单进行后续的统一管理。请根据该需求,对图3-1进行补充,并修改订单关系模式。

实体店的订单是营业员根据销售结果生成的,将销售联系聚合成实体,与订单产生联系

一笔销售对应一个订单,一个订单对应一笔销售,为一对一联系。转换为关系模式时,将此联系归入订单关系,即取销售的标识符销售ID加入到订单关系模式中。

原先:

订单(订单ID,顾客编号,商品条码,商品数量,支付凭证编号):

关系模式:订单( 订单ID,顾客编号(FK),商品条码(FK),商品数量,销售ID(FK))。

8.2015年真题

【说明】
某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。
【需求分析】
(1)系统需要维护球队、球员、主教练、主裁判、比赛等信息。
球队信息主要包括:球队编号、名称、成立时间、人数、主场地址、球队主教练。
球员信息主要包括:姓名、身份证号、出生日期、身高、家庭住址。
主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。
主裁判信息主要包括:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。
(2)每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。每支球队都有自己的唯一主场场地,且场地不能共用。
(3)足球联赛采用主客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。
(4)一场比赛有两支球队参加,一支球队作为主队身份、另一支作为客队身份参与比赛。一场比赛只能有一名主裁判,每场比赛有唯一的比赛编码,每场比赛都记录比分和日期。
【概念结构设计】
根据需求分析阶段的信息,设计的实体联系图(不完整)如图3-1所示。

【逻辑结构设计】
根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):
球队( 球队编号,名称,成立时间,人数,主场地址)
球员(姓名, 身份证号,出生日期,身高,家庭住址,   (1)  
主教练(姓名, 身份证号,出生日期,资格证书号,级别,   (2)  
主裁判(姓名, 身份证号,出生日期,资格证书号,获取证书时间,级别)
比赛( 比赛编码,主队编号#,客队编号#,主裁判身份证号#,比分,日期)

同一实体集以不同角色参与同一联系

【问题1】(6分)

补充图3-1中的联系和联系的类型。
图3-1中的联系“比赛”应具有的属性是哪些?

根据对第二问的分析,首先应该补上球员和球队的联系和关系线。球队对应球员是一对多关系。钦此球队是1方球员是*方。

需求明确说:“一场比赛有两支球队参加,一支作为主队,另一支作为客队。”

这里:虽然参与者都是“球队”实体,但:两支球队在比赛中的语义不同。这叫:同一实体集以不同角色参与同一联系。可以理解成“球队”这个实体,在比赛中出现两次,所以图里需要两条线。

【问题2】(4分)
根据图3-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(2)补充完整。

球员信息主要包括:姓名、身份证号、出生日期、身高、家庭住址

主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。

发现主教练是和球队有聘任联系,但是却没有相应的字段。因此其应该具有外键球队编号,对于球员一侧应当是同理,也是球队编号。

【问题3】(5分)
现在系统要增加赞助商信息,赞助商信息主要包括赞助商名称和赞助商编号。
赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队。赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言。请根据该要求,对图3-1进行修改,画出修改后的实体间联系和联系的类型。

根据题意由“赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队”可知赞助商和球队之间为1:*联系。

“赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言”

赞助商肯定可以赞助不止一个球员,一名球员可以为多个赞助商代言(比如说,我们限定球员这个实例是张三,他是可以有好几个赞助商的),为多对多关系。

9.数据流图(2019)

【说明】
学校欲开发一个学生跟踪系统,以更自动化、更全面地对学生在校情况(到课情况和健康状态等相关信息)进行管理和追踪,使家长能及时了解子女的到课情况和健康状态,并在有健康问题时及时与医护机构对接。该系统的主要功能是:
(1)采集学生状态。通过学生卡传感器,采集学生心率、体温(摄氏度)等健康指标及其所在位置等信息并记录。每张学生卡有唯一的标识(ID)与一个学生对应。
(2)健康状态告警。在学生健康状态出现问题时,系统向班主任、家长和医护机构 健康服务系统发出健康状态警告,由医护机构健康服务系统通知相关医生进行处理。
(3)到课检查。综合比对学生状态、课表以及所处校园场所之间的信息对学生到课 情况进行判定。对旷课学生,向其家长和班主任发送旷课警告。
(4)在校情况汇总。定期汇总在校情况,并将报告发送给家长和班主任。
(5)家长注册。家长注册使用该系统,指定自己子女,经学校管理人员审核后,向 家长发送注册结果。
(6)基础信息管理。学校管理人员对学生及其所用学生卡和班主任、课表(班级、 上课时间及场所等)、校园场所(名称和所在位置区域)等基础信息进行管理,对家长注册申请进行审核,将家长ID加入学生信息记录中使家长与其子女进行关联,一个学生至少有一个家长,可以有多个家长。课表信息包括班级、班主任、时间和位置等。
现采用结构化方法对学生跟踪系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。 

看懂数据流图的元素:

外部实体(E)

就是:“系统之外的人/系统”。

图中的小矩形

例如:家长,医护,系统,学校管理员

特点:给系统输入,或接收系统输出

加工(P)

就是:“系统做的功能”。

图中的圆角矩形

例如:到课检查,家长注册,汇总在校情况

数据存储(D)

就是:“数据库里的表/记录”。

图中左边是一个框,然后跟着两条平行线

例如:学生信息,课表,学生状态

数据流

就是:“箭头上的文字”。

表示:什么数据从哪流到哪。

【问题1】(5分)
使用说明中的词语,给出图1-1中的实体E1~E5的名称。

E1 = 学生

E1:需求:“通过学生卡传感器采集学生状态”,这个E1是一个外部的实体,在DFD题中外部实体一般不是硬件,而是业务服务的对象。

E2 = 学校管理人员

需求:“学校管理人员负责审核、管理基础信息”

E3 = 班主任

需求:“向班主任发送健康警告、旷课警告、在校汇总”

E4 = 家长

E4在图中做了什么?

  • 提交注册信息

  • 接收子女在校情况

  • 接收注册结果

  • 接收警告

家长注册使用该系统,指定自己子女,经学校管理人员审核后,向 家长发送注册结果。还有前面诸多在校情况等符合描述。

E5 = 医护机构健康服务系统

“系统向医护机构健康服务系统发出健康状态警告”,这里名称注意符合题目要求

【问题2】(4分)
使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

D1:学生状态记录表

首先,题目要求:“通过学生卡传感器,采集学生心率、体温(摄氏度)等健康指标及其所在位置等信息并记录”,存在记录学生状态信息的需求。

找到全部的D,看看谁往里写,谁从里读,箭头上的名字就暴露了它是什么。

发现每次D1出现,都是学生状态流入、取出流向加工P

D2:学生信息表

D2数据流总是学生信息、学生基础信息

D3:校园场所记录表

D4:课表信息记录

“学校管理人员对学生及其所用学生卡和班主任、课表(班级、 上课时间及场所等)、校园场所(名称和所在位置区域)等基础信息进行管理” 仔细观察D3和D4的数据流名称即可得出

【问题3】(3分)
根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点(三条即可)。

该问题分析的是:“逐个分析题目中的功能想完成任务,它必须拿到哪些数据?处理的结果给谁?”

P3到课检查需要什么?系统要判断:

“学生此时此刻,是否出现在应该出现的地方。”

那么必须知道:当前时间应该上什么课,应该在哪上课。因此必须得到D4课表信息记录。因此D4→到课检查

同理,需要知道:“学生现在的位置属于哪个校园场所”。这些信息来自:D3:校园场所记录表

P6:基础信息管理

需求:“学校管理员审核后,将家长ID加入学生信息记录中,使家长与子女关联。”

P6负责处理这个需求,它处理的结果是假如学生信息记录表:因此终点:D2 学生信息表
【问题4】(3分)
根据说明中的术语,说明图1-1中数据流“学生状态”和“学生信息”的组成。

“通过学生卡传感器,

采集学生心率、体温(摄氏度)

等健康指标及其所在位置等信息并记录。

每张学生卡有唯一标识(ID)。”

“学生状态”包括:学生卡ID,学生心率,体温(摄氏度)等健康指标及其所在位置等信息。

“将家长ID加入学生信息记录中,使家长与子女关联。”

“每张学生卡唯一对应学生”

题目有隐含信息,学生信息是要用来做各种到课检查、健康状态报告、汇总在校情况,系统需要给班主任发送,因此必须有班主任这个外键。


“学生信息”包括:家长ID,学生ID,学生卡ID,班主任等信息。


评论