暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

8个步骤帮你搞懂E-R图 | 三分钟

非计算机专业数据库系统原理 2019-11-11
2923

三分钟搞懂日拱一卒

在数据库设计初期,借助E-R图可以帮你很好的理清当前业务中各实体的关系,一般E-R图出来了基本上Schema也就能定下来了,看过很多关于E-R图的范例,一般都会拿学生管理,图书管理什么的来讲解,一点儿都不生动,今天这篇我觉的没准能帮你重新认识E-R图这一利器。

Step 1: 背景介绍


上图是一个动物园之中,饲养员正在喂养几只美洲驼,也就是大家俗称的草泥马,基于这个场景,我们需要建立一份关于动物园中饲养动物的数据模型,下面会通过简单的几个步骤来说明这个过程。

Step 2: 引入第一个实体



在准备数据模型的时候,我们发现喂养这一动作(也称事件)是连接各方参与者的核心,所以我们首先为数据模型中添加一个Event的实体。

Step 3: 创建第一个关联

我们在羊驼事件之间建立一条连线,来表明二者之间的联系。



Step 4: 引入饲养员

图中我们不仅能看到羊驼喂养事件,我们还能看到饲养员,所以我们也应该在图中添加一个新实体饲养员,并在饲养事件饲养员之间建立一条连线以表明二者关系。



Step 5: 引入食物实体

既然上面的事件叫做喂养,那么食物也应该是其中必不可少的实体,所以我们再向其中添加一个Food
的实体,并建立关联。



Step 6: Review our Data Model

有了上面的实体,现在我们重新审视我们的数据模型,发现在饲养事件中饲养员可能饲养的动物会不止一种,所以可以把正在被喂养的动物提出来独立成一个实体,其它任何动物都有可能担当被饲养这一角色,这样一来动物这一实体就被下放到下一层级了,如下图:


Step 7: Food in an Event

上一步我们抽象出了正在被喂养的动物这一实体,因为动物有不同属种的,所以会需要用不同的食物来喂养不同的动物。于是顺利成章,我们又抽象出正在投放的饲料这一实体。


Step 8: 建立完成E-R图

上面根据我们分析得到的图只是个概念图,概念图用来与客户和业务方沟通再好不过了,但真正到了实施这一步,工程师之间沟通最好的还是E-R图(实体-联系图),除了能体现出实体类型,以及它们几者之间的关系外,还能更详尽的表明每个实体都拥有哪些属性,搞清楚E-R图后,再下手建立Schema之类的就不会再犯嘀咕了。


本文是我在DatabaseAnswers网站上看到的一篇E-R图教程,做了一些简单的意译,习惯看原文的可以从文末取阅。相比国内那些以图书管理系统,学生管理系统为基础的范例而言这个应该是我见到的最简单生动的E-R图教程了,希望对你有帮助。

文章转载自非计算机专业数据库系统原理,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论