什么是ER模型?
ER或(实体关系模型 Entity Relational Model)是一个高级概念数据模型图。 实体 - 关系模型基于现实世界实体的概念以及它们之间的关系。
ER建模可帮助您系统地分析数据需求,以生成设计良好的数据库。 因此,在实现数据库之前完成ER建模被认为是最佳实践。
ER模型的历史
ER图是一种可视化工具,有助于表示ER模型。 1971年Peter Chen提出建立可用于关系数据库和网络的统一约定。 他的目标是使用ER模型作为概念建模方法。
什么是ER图?
实体关系图显示存储在数据库中的实体集的关系。 换句话说,我们可以说ER图可以帮助您解释数据库的逻辑结构。 初看起来,ER图看起来与流程图非常相似。 但是,ER图包含许多专用符号,其含义使该模型独一无二。
- ER模型允许您绘制数据库设计
- 易于使用的图形工具,用于建模数据
- 广泛用于数据库设计
- 数据库逻辑结构的GUI表示
- 识别系统中存在的实体以及这些实体之间的关系
为什么要使用ER图?
- 定义与实体关系建模相关的术语
- 预览所有表的连接方式,每个表上的字段
- 帮助描述实体,属性,关系
- ER图可以转换为关系表,允许您快速构建数据库
- 数据库设计人员可以使用ER图作为在特定软件应用程序中实现数据的蓝图
- 借助ERP图,数据库设计人员可以更好地理解数据库中包含的信息
- 允许ERD与用户的数据库逻辑结构进行通信
ER图的组成部分
该模型基于三个基本概念:
实体
属性
关系
例
例如,在大学数据库中,我们可能有学生,课程和讲师的实体。 学生实体可以具有Rollno,Name和DeptID等属性。 他们可能与课程和讲师有关系。
什么是实体?
它可能是一个物理的东西,或者仅仅是关于企业或现实世界中发生的事件的事实。
实体可以是地点,人物,对象,事件或概念,它将数据存储在数据库中。 实体的特征必须具有属性和唯一键。 每个实体都由一些代表该实体的“属性”组成。
实体示例:
- 人:员工,学生,病人
- 地点:商店,建筑
- 对象:机器,产品和汽车
- 事件:销售,注册,续订
- 概念:帐户,课程
实体的表示法
实体集:
学生:实体集是一组类似的实体。 它可能包含属性共享相似值的实体。 实体由其属性表示,也称为属性。 所有属性都有各自的值。 例如,学生实体可以具有姓名,年龄,类别作为属性。
实体示例:
大学可能有一些部门。 所有这些部门都聘请了各种讲师并提供了几个课程。学生在特定课程中注册并注册各种课程。 来自特定部门的讲师参加每门课程,每位讲师都会教授不同的学生群体。
关系
关系只不过是两个或多个实体之间的联系。 例如,汤姆在化学系工作。
实体参与关系。 我们经常可以识别动词或动词短语的关系。
例如:
- 你正在参加这个讲座
- 我正在讲课
- 只是loke实体,我们可以根据关系类型对关系进行分类:
- 一名学生参加讲座
- 讲师正在讲课。
弱实体
弱实体是一种没有键属性的实体。 可以通过考虑另一个实体的主键来唯一地识别它。
在一个例子中,“Trans No”是ATM中一组交易中的鉴别器。
让我们通过将它与强实体进行比较来了解更多有关弱实体的信息
强实体集 | 弱实体集 |
---|---|
强实体集始终具有主键。 | 它没有足够的属性来构建主键。 |
它由矩形符号表示。 | 它由双矩形符号表示。 |
它包含由下划线符号表示的主键。 | 它包含一个部分键,由虚线下划线符号表示。 |
强实体集的成员称为主实体集。 | 弱实体集的成员称为从实体集。 |
主键是其有助于识别其成员的属性之一。 | 在弱实体集中,它是强实体集的主键和部分键的组合。 |
在ER图中,使用菱形符号显示两个强实体集之间的关系。 | 通过使用双菱形符号显示的一个强实体和弱实体组之间的关系。 |
设置关系的强实体的连接线是单一的。 | 连接弱实体集以识别关系的线是双倍的。 |
属性
它是实体类型或关系类型的单值属性。
例如,讲座可能有属性:时间,日期,持续时间,地点等。
属性由椭圆表示
**属性类型** | **描述** |
---|---|
**简单的属性** | 简单属性不能再进一步划分。 例如,学生的联系电话。 它也被称为原子价值。 |
**复合属性** | 可以分解复合属性。 例如,学生的全名可以进一步分为名字,名字和姓氏。 |
**派生属性** | 此类属性不包括在物理数据库中。 但是,它们的值来自数据库中存在的其他属性。 例如,不应直接存储年龄。 相反,它应该来自该员工的出生日期。 |
**多值属性** | 多值属性可以包含多个值。 例如,学生可以拥有多个手机号码,电子邮件地址等。 |
基数
定义两个实体或实体集之间关系的数字属性。
不同类型的主要关系是:
一对一的关系
一对多的关系
愿与一个人的关系
多对多关系
- 一对一的关系:
来自实体集合X的一个实体可以与实体集合Y的至多一个实体相关联,反之亦然。
示例:一名学生可以注册多个课程。 但是,所有这些课程只有一行回到那个学生。
- 一对多的关系
来自实体集合X的一个实体可以与实体集合Y的多个实体相关联,但是来自实体集合Y的实体可以与至少一个实体相关联。
例如,一个班级由多个学生组成。
- 多对一
来自实体集合X的多于一个实体可以与实体集合Y的至多一个实体相关联。然而,来自实体集合Y的实体可以与实体集合X中的多于一个实体相关联,也可以不与之相关联。
例如,许多学生属于同一个班级。
- 多对多:
来自X的一个实体可以与来自Y的多个实体相关联,反之亦然。
例如,作为一个群体的学生与多个教师相关联,并且教师可以与多个学生相关联。
ER-图表符号
ER-图表是描述数据如何相互关联的数据的直观表示。
- 矩形:此符号表示实体类型
- 椭圆:符号 代表属性
- 菱形:这个符号 代表关系类型
- 线:它将属性与实体类型和实体类型与其他关系类型相关联
- 主键:属性带下划线
- 双椭圆:表示多值属性
参考资料
- python测试开发项目实战-目录
- python工具书籍下载-持续更新
- python 3.7极速入门教程 - 目录
- 讨论qq群630011153 144081101
- 原文地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.tutorialspoint.com/sqoop/sqoop_installation.htm
- https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html
- https://www.softwaretestinghelp.com/top-4-etl-testing-tools/
创建ERD的步骤
让我们用一个例子来研究它们:
在大学里,学生就读于课程。 必须将学生分配到至少一门或多门课程。 每门课程由一位教授授课。 为了保持教学质量,教授只能提供一门课程
实体识别
我们有三个实体
- 学生
- 课程
- 教授
关系识别
我们有以下两种关系
- 学生被分配了一门课程
- 教授开设了一门课程
基数识别
对于他们的问题陈述,我们知道,
- 可以为学生分配多个课程
- 教授只能提供一门课程
识别属性
您需要研究组织当前维护的文件,表单,报告和数据,以识别属性。 您还可以与各利益相关方进行面谈,以确定实体。 最初,识别属性而不将其映射到特定实体非常重要。
一旦有了属性列表,就需要将它们映射到已识别的实体。 确保要将属性与一个实体配对。 如果您认为属性应属于多个实体,请使用修饰符使其唯一。
映射完成后,识别主键。
对于课程实体,属性可以是持续时间,学分,作业等。为了方便起见,我们只考虑了一个属性。
创建ERD
ERD图的更现代的表示
制定有效的ER图的最佳实践
- 消除任何冗余实体或关系
- 确保所有实体和关系都已正确标记
- ER图可能有各种有效的方法。 您需要确保ER图支持您需要存储的所有数据
- 确保每个实体仅在ER图中出现一次
- 命名每个关系,实体和属性都在图表中表示
- 永远不要将关系彼此联系起来
- 使用颜色突出显示ER图的重要部分
小结
- ER模型是高级数据模型图
- ER图是一种可视化工具,有助于表示ER模型
- 实体关系图显示存储在数据库中的实体集的关系
- ER图可帮助您定义与实体关系建模相关的术语
- ER模型基于三个基本概念:实体,属性和关系
- 实体可以是地点,人物,对象,事件或概念,它将数据存储在数据库中
- 关系只不过是两个或多个实体之间的联系
- 弱实体是一种没有其关键属性的实体,实体类型或关系类型的单值属性,可以帮助您定义两个实体或实体集之间关系的数字属性
- ER-图表是描述数据如何相互关联的数据的直观表示
- 在绘制ER图时,您需要确保所有实体和关系都已正确标记。