E-R 图
E-R(Entity-Relationship)图又叫实体 - 联系图,是描述现实世界的概念模型。构成 E-R 图的基本要素是实体、属性和联系。下面就来详细地讲解如何绘制 E-R 图。
1. 绘制 E-R 图的基本要素
在 E-R 图中涉及的基本要素有实体、联系以及属性,下面就对这 3 个要素进行详细说明。
1.1. 实体(Entity)
实体是客观存在并可以相互区别的事物。实体既可以是人、物,也可以是抽象的概念。例如,一个学生、一个老师、一个产品都可以认为是实体。相同类型的实体可以构成一个实体集。例如,全体学生就是一个实体集。在 E-R 图中实体一般用矩形表示,矩形框内写明实体的名称。例如,写一个老师的实体,如图所示。
1.2. 属性(Attribute)
属性是实体所具有的某一特性,一个实体可由若干个属性来刻画。在 E-R 图中一般用椭圆形表示,并用无向边将其与相应的实体连接起来。例如,产品的名称、价格、类型等都是属性。例如,给老师实体加上属性:姓名、年龄、所教专业、所属院系,如图所示。
1.3. 联系(Relationship)
联系,即在信息世界中反映实体内部或实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在 E-R 图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。
实体之间存在着 3 种联系类型,分别是一对一、一对多、多对多,它们反映到 E-R 图中即为相应的联系类型,即 1:1、1:n 和 m:n。
-
一对一关系(1:1)
一对一关系是指实体集 A 与实体集 B,A 中的每一个实体至多与 B 实体集中一个实体有联系;反之,在实体集 B 中的每个实体至多与实体集 A 中一个实体有联系。例如,给学生排座,
学生
实体和座位
实体之间的关系,每一个学生最多可以分得一个座位,同时每一个座位最多只能有一个学生来坐。用图形表示如图所示。 -
一对多关系(1:n)
一对多关系是指实体集 A 与实体集 B 中至少有 n(n>0)个实体有联系,并且实体集 B 中每一个实体至多与实体集 A 中一个实体有联系。例如,
学生
实体和班级
实体之间的关系,一个班级里面可以有若干个学生,而每一个学生都属于这个班级。用图形表示如图所示。 -
多对多关系(m:n)
多对多关系是指实体集 A 中的每一个实体与实体集 B 中至少 m(m>0)个实体有联系,并且实体集 B 中的每一个实体与实体集 A 中的至少 n(n>0)个实体有联系。例如,顾客在商场购买商品,顾客与商品之间就是多对多的关系,每一个顾客都可以购买多种商品,而每一种商品又可以被多个顾客购买。用图形表示如图所示。
其实,实体之间的这 3 种关系,不仅对两个实体有效,也可以表示多个实体之间的关系。
2. E-R 图绘制实例
绘制一个网上购物系统的 E-R 图,在网上购物系统中简单分析出顾客、商品、商品类型、订单 4 个实体。下面分别绘制每个实体属性图并在最后绘制一个整体的 E-R 图。
-
顾客实体属性图
顾客实体主要包括用户编号、姓名、年龄、性别、身份证号、联系方式、送货地址、银行卡卡号 8 个属性,实体属性图如图所示。
-
商品实体属性图
商品实体主要包括商品编号、商品名称、商品价格、商品数量、商品描述 5 个属性,实体属性图如图所示。
-
商品类型实体属性图
商品类型实体主要包括商品类型编号和商品类型两个属性,实体属性图如图所示。
-
订单实体属性图
订单实体主要包括订单编号、送货地址、顾客姓名、是否付款、联系方式、所购商品 6 个属性,实体属性图如图所示。
-
网上购物系统 E-R 图
在绘制整体的 E-R 图之前,先要了解一下网上购物系统的购物流程。
首先由顾客选择要购买的商品,之后把购买商品的列表生成一个订单,然后网站的售后人员会根据订单的地址送货,在这个网上购物系统里要求一个顾客每次只能生成一个订单。
那么,这 4 个实体之间是什么关系呢?首先商品和顾客之间的关系是多对多的关系,多个商品可以被一个顾客购买,同时多个顾客也可以购买相同的商品;
订单和商品之间的关系是一对多的关系,一个订单是由多个商品组成的,多个商品组成一个订单;
顾客和订单之间的关系是一对一的关系,一个顾客可以生成一个订单,一个订单只能属于一个顾客;
商品和商品类型之间的关系是一对一的关系,一个商品属于一种商品类型。
网上购物系统的 E-R 图如图所示。