数据库理论与应用
实验 1 任务:解决方案
提供了一个建议的 E-R 图:
• 狗的主人(实体)有名字(属性)和联系方式,例如。电话号码(属性)。
• 狗(实体)有名称(属性)、主人(与实体主人相关联)、品种名称(属性)和狗舍(属性)。在这
个建议的解决方案中,我们假设一只狗有一个唯一的主人。当然,我们可以假设一只
狗可能有不止一个主人,这只会改变基数度。
• 显示(实体)有名称、开始日期和结束日期。这场演出由它的名字和开幕日期的组合来确
定。
一只狗可以参加许多表演,在每个表演中,狗都有一个由排名评估的特定表现。另一方面,一
场表演可以有很多狗参加。因此,我们得出了一个多对多的关系:狗和表演。然而,我们需要
“存储”特定狗参加特定表演的排名信息。也就是说,我们需要引入一个新的属性“rank”,它可
以取值之一,。1:黄金、2:白银、3:青铜或 4:无,然后将此排名与参加特定表演的特定狗相关联。
在这种情况下,我们引入了一个关系实体“出席”,它用于通过两个一对多关系将实体“狗”和
“展示”关联起来。这意味着,我们将“狗”和“秀”之间的多对多关系拆分为两个一对多关系:(狗,
出席)和(出席,表演)。此外,我们将属性“等级”附加到出勤关系实体。
总之,我们确定了以下类型的关系:
• 一对多(1:M),一个主人可能有多只狗,但每只狗只有一个主人(在这个建议的解决方案
中)。
• 多对多(N:M),每只狗参加几场演出,每场演出不止一只狗参加。我们引入了关系-实体
出席,将狗和出席特定节目的人联系起来。出勤率在相应的表演中存储关于狗的表现
(等级)的信息。因此,我们将这种多对多关系分为两种一对多关系:
o 一对多(1:N),每只狗与许多(N)次出席相关联(每次出席对应于特定的表演)。也
就是一只狗参加了 N 场演出。
o 一对多(1:M),每场演出都有许多(M)观众(每个观众对应一只特定的狗)。也就是
说,有 M 只狗参加了一场表演。
数据库理论与应用
因此,E-R 模型是:
示例:让我们通过向实体添加一些实例来实例化 E-R 图。假设有三只狗:鲍勃、爱丽丝和吉姆,
两个主人:菲尔和克里斯,两个节目:节目 1和节目 2.Bob在 Show1排名第一,Show2排名第二,
Alice 仅在 Show1 排名第三,Jim 在 Show1 排名第二,Show2 排名第一.克里斯拥有鲍勃和爱丽
丝,而菲尔拥有吉姆。然后,基于我们的概念模型,我们可以用这些事实/实例“填充”我们的
实体,如下所示:
• 实体:所有者;实例:{克里斯,菲尔}
• 实体:狗;实例:{鲍勃、爱丽丝、吉姆}
• 实体:显示;实例:{显示 1,显示 2}
• 实体:出席情况;实例:{(鲍勃,表演 1,第 1),(鲍勃,表演 2,第 2),(爱丽丝,表演 1,
第 3),(吉姆,表演 1,第 2),(吉姆,表演 2,第 1)}
//注意:本例中并未包含实体的所有属性。
现在,这些实例反映了引入出席实体的必要性,其中我们将狗的实例与存储相应排名的显示的
实例相关联。
Dog Owner
Show
Name Phone Name
Close
Date
Open
Date
Name
Rank
owns
1 M
Attendance
1
N
M
1
Kennel
Name
Breed
Name