绘制E-R图:数据库概要设计阶段
在概要设计阶段,我们需要和项目团队中的其他成员及客户进行沟通,讨论数据库的设计是否满足客户的业务和数据处理需求。
数据库设计和机械、建筑等行业一样,机械行业需要机械制图,建筑行业需要施工图,而数据库设计也需要图形化的表达方式 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图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8a91cf.png)
在 E-R图中,直线可以有方向(在末端有一个箭头)的来表示实体之间的关系。
下面演示如何绘制不同关系的 E-R 图。其中一些语言可能不符合实际情况,另外,为了方便大家观看,我们省略了实体中的属性,只留下了实体和关系。
1)一对一![一对一E-R图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8b65bb.png)
上图表示为一位客人最多入住一间客房,一间客房最多被一位客人入住。
2)一对多![一对多E-R图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8c0f74.png)
上图表示一位客人可以入住多间客房,一间客房最多被一位客人入住。
3)多对一![多对一E-R图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8cb0a5.png)
上图表示一位客人最多入住一间客房,一间客房可以被多位客人入住。
4)多对多![多对多E-R图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8d4fc0.png)
上图表示一位客人可以入住多间客房,一间客房也可以被多位客人入住。
为了画图更加方便,也可以用 1 代替箭头,用*代替直线。如多对一还可以如下:
![多对一E-R图](http://ytso-blog-oss-img.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2021/07/20/20210720_60f643d8df1fc.png)
绘制 E-R 图后,我们还需要反复与客户进行沟通,让客户提出修改意见,以确认系统中的数据处理需求是否正确完整。
24061.html
html相关文章
- 【MySQL】使用Visio绘制数据库关系模型图
- Db4o数据库:快速入门「建议收藏」
- 免费享受MySQL数据库空间功能(免费mysql数据库空间)
- Oracle 数据库的动态字段变化(oracle动态字段)
- 利用Oracle触发器类型实现简单的数据库管理(oracle触发器类型)
- 备份做好MSSQL数据库的线上备份(mssql在线)
- 登录Redis:访问数据库的简易步骤(登录redis)
- MongoDB绘制图表:从数据库中发现规律(mongodb图表)
- Oracle数据库完全清除记录(oracle 全部删除)
- MySQL数据库中的Blob类型详解(mysql中blob类)
- Mac下实现Oracle数据库管理的神器(mac Oracle工具)
- 深入解析Oracle数据库中实体表(oracle中实体表)
- Oracle与EBS实现数据库管理的智能化(oracle 与ebs)