在概要设计阶段,我们需要和项目团队中的其他成员及客户进行沟通,讨论数据库的设计是否满足客户的业务和数据处理需求。
数据库设计和机械、建筑等行业一样,机械行业需要机械制图,建筑行业需要施工图,而数据库设计也需要图形化的表达方式——E-R图(Entity-Relationship),也可以称为实体-关系图。
实体关系图构成要素
E-R图是设计数据库的工具之一,一般情况下,用于建立数据库的概念模型。实体、属性和关系是构成 E-R图的基本要素。
1. 实体
实体是指现实世界中客观存在并可以相互区分的对象或事物。就数据库而言,实体往往指某类事物的集合。可以是具体的人和事物,也可以是抽象的概念、联系。例如,酒店管理系统中的客房(如 1008 客房、1018 客房等)、客人(如张三、李四、王五)等。
实体一般是名词,对应表中的一行数据。例如,用户张三是一个实体,他对应于客人表中“张三”所在的一行数据,包括客人姓名、身份证号等信息。严格的说,实体用来指表中的一行特定数据。但在开发时,我们也常常把表称为一个实体。
2. 属性
属性可以理解为实体的特征。例如,”客人“这一实体的属性有入住日期、结账日期和交付的押金等。属性用来对应表中的列。
3. 关系
关系是两个或多个实体之间的关联关系。
关系可分为以下 4 种类型,例如对于实体 X 和 Y 之间的关系就必须为以下任意一种:
1)一对一
X 中的一个实体最多与 Y 中的一个实体关联,并且 Y 中的一个实体最多与 X 中的一个实体关联。
比如,每辆汽车同一时刻只能占用一个车位,同一时刻每个车位也只停放一辆汽车,那么,汽车实体与车位实体之间就是一对一的关系。一对一关系也可以表示为 1 : 1。
2)一对多
X 中的一个实体可以与 Y 中任意数量的实体关联,Y 中的一个实体最多与 X 中的一个实体关联。
比如,一间客房可以入住多位客人,但是一位客人只能入住一间客房,所以,客房实体和客人实体之间就是典型的一对多的关系。一对多关系也可以表示为 1 : N。
3)多对一
X 中的一个实体最多与 Y 中的一个实体关联,Y 中的一个实体可以与 X 中的任意数量的实体关联。
比如,客房实体和客人实体之间是典型的一对多关系,反过来说,客人实体和客房实体之间就是多对一的关系。
4)多对多
X 中的一个实体可以与 Y 中的任意数量的实体关联,反之亦然。
比如,图书馆的每本书可以借给多个读者,每个读者也可以借阅多本书,那么,图书实体和读者实体之间就是典型的多对多关系。再如,产品和订单之间也是多对多关系,每个订单中可以包含多个产品,一个产品也可以出现在多个订单中。多对多关系也可以表示为 M : N。
绘制实体关系图
E-R 图以图形的方式来表示数据库的整个逻辑结构,如下:
- 实体:用矩形表示
- 属性:用椭圆形表示
- 关系:用菱形表示
- 使用直线连接属性和实体,以及连接实体和关系
E-R(实体关系)图的绘制一般用软件辅助,画实体关系图常用的软件有:WORD、亿图图示、Visio 等,PPT 也可以绘制出美观的实体关系图。
下图为客人实体和客房实体之间的联系。
在 E-R图中,直线可以有方向(在末端有一个箭头)的来表示实体之间的关系。
下面演示如何绘制不同关系的 E-R 图。其中一些语言可能不符合实际情况,另外,为了方便大家观看,我们省略了实体中的属性,只留下了实体和关系。
1)一对一
上图表示为一位客人最多入住一间客房,一间客房最多被一位客人入住。
2)一对多
上图表示一位客人可以入住多间客房,一间客房最多被一位客人入住。
3)多对一
上图表示一位客人最多入住一间客房,一间客房可以被多位客人入住。
4)多对多
上图表示一位客人可以入住多间客房,一间客房也可以被多位客人入住。
为了画图更加方便,也可以用 1 代替箭头,用*
代替直线。如多对一还可以如下:
绘制 E-R 图后,我们还需要反复与客户进行沟通,让客户提出修改意见,以确认系统中的数据处理需求是否正确完整。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/24061.html