建立实体-关系模型(案例)

一、标识实体

通常有用户、角色这两个实体。
在这里插入图片描述

二、标识关系

用户与角色间为多对多的互相拥有关系。
在这里插入图片描述

三、标识实体、关系的属性

不仅仅是实体有属性,关系同样也有属性,这些属性在实体间建立关系时才会存在。
在这里插入图片描述
有时属性太多,无法在图上一一列出,可以用表格,在后面的步骤中这个表格同样会用到,如下:
在这里插入图片描述

四、确定属性域

  属性域就是属性的取值范围。
  这时,可以用表格将属性的数据类型、数据长度、取值范围及是否可为空、简单/复合、单值/多值、是否为派生属性等域信息定义出来。
  这个过程,事实上包含了逻辑结构设计中的数据类型、NULL、CHECK、DEFAULT等信息。
在这里插入图片描述

五、确定键

键就是可用于标识实体的属性,有:主键、唯一键、外键。
在这里插入图片描述

六、实体的特化/泛化

  也就是面向对象模型中父类和子类的概念,这是个可选的步骤。
  举个例子,用户中大部分人都是普通员工,但有一小部分是从事销售的,销售人员有个负责区域的属性,如果将这个属性放在用户实体中,如下图:
在这里插入图片描述
  这时我们会发现,除了销售人员外,其他非销售人员这个属性全都不存在,这就是特化的过程。可以另建一个销售人员的实体来泛化用户实体,如下图:
在这里插入图片描述
  这样就完成了对用户实体的泛化,泛化的过程也就是抽出实体间公共属性的过程,但通常,除非特化的部分太多,才会考虑将一个实体抽象成两个1对1关系的实体,所有这个步骤是可选的。

七、检查模型

(1)检查冗余
  首先检查实体:1对1关系的实体中有没有非外键的重复属性,或者就是同一个实体;
  其次检查关系:有没有通过其他关系也可以得到的重复属性;
  当然有时,需要考虑时间维度,因为有些属性是有时效性的,也就是虽然是同一个属性,但不同的时间表示的却是不同的内容,这一点在后面的逻辑结构设计中会提到,这并不是真正的冗余。
(2)检查业务
  检查当前的实体-联系模型是否满足当前业务的场景。可以从某个实体开始,沿着当前E-R模型的各个节点去模拟业务场景。尤其需要和《需求规格说明书》去做校验。
  到这里,也就完成了实体-R模型建立的全过程,有时,对于比较复杂的实体-关系模型,一张图可能显得太过局促,可以建立全局、局部实体-关系模型图,以便于查看和分析。

转自:百度百科,https://baike.baidu.com/item/数据库的逻辑结构设计/5719552?fr=aladdin

数据库设计中,实体-联系模型(ER模型)是一种重要的概念模型,它用于描述现实世界中数据的组织和数据之间的关系。有效地应用ER模型不仅可以提高数据检索的效率,还能增强数据管理的可维护性。 参考资源链接:[数据库基础与管理:NP2013 计算机导论第11章](https://wenku.youkuaiyun.com/doc/7mvivoswfk?spm=1055.2569.3001.10343) 首先,需要识别出数据系统中的所有实体,以及实体之间的关系实体通常对应于系统中的主要对象,如客户、订单等。每种实体类型都会具有若干属性,如客户的姓名、地址、联系方式等。实体之间的联系则描述了实体间是如何相互作用的,例如一个客户可以下多个订单,这就形成了客户实体和订单实体之间的一对多关系。 其次,要通过ER图来可视化实体和它们之间的关系。ER图中,实体以矩形表示,关系以菱形表示,属性以椭圆表示,并通过线将它们连接起来。这样不仅帮助设计者理解数据结构,也为数据库的规范化提供依据。 在实际应用中,例如设计一个电子商务网站的数据库时,可以创建客户(Customer)、商品(Product)、订单(Order)等多个实体。通过明确这些实体的属性和实体间的关系,如一个订单可以包含多个商品,可以优化数据检索过程。例如,当需要快速检索所有属于某个客户的订单时,由于在设计时已经预设了客户与订单之间的关系,SQL查询就可以利用这些预设的关系来加速查询过程,提高检索效率。 同时,为了保持数据的可维护性,设计者应遵循数据库规范化原则,避免数据冗余和更新异常。规范化过程将帮助确保数据模型满足第一范式、第二范式、第三范式等要求,从而减少数据存储的复杂性并避免维护困难。 综上所述,合理运用ER模型不仅可以帮助数据库设计者更清晰地组织数据,还能通过规范化设计提高数据检索的速度和数据库的可维护性。要深入学习数据库设计的细节和技巧,可以参考《数据库基础与管理:NP2013 计算机导论第11章》。这份资源详细讲解了数据库设计的各个方面,包括实体-联系模型建立和规范化设计,为解决你当前的问题提供了丰富的知识支持。 参考资源链接:[数据库基础与管理:NP2013 计算机导论第11章](https://wenku.youkuaiyun.com/doc/7mvivoswfk?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值