什么是 ER 模型?
ER 或 (实体关系模型 Entity Relational Model) 是一个高级概念数据模型图. 实体 - 关系模型基于现实世界实体的概念以及它们之间的关系.
ER 建模可帮助您系统地分析数据需求, 以生成设计良好的数据库. 因此, 在实现数据库之前完成 ER 建模被认为是最佳实践.
Sample ER Diagram
ER 模型的历史
ER 图是一种可视化工具, 有助于表示 ER 模型. 1971 年 Peter Chen 提出建立可用于关系数据库和网络的统一约定. 他的目标是使用 ER 模型作为概念建模方法.
什么是 ER 图?
实体关系图显示存储在数据库中的实体集的关系. 换句话说, 我们可以说 ER 图可以帮助您解释数据库的逻辑结构. 初看起来, ER 图看起来与流程图非常相似. 但是, ER 图包含许多专用符号, 其含义使该模型独一无二.
ER 模型允许您绘制数据库设计
易于使用的图形工具, 用于建模数据
广泛用于数据库设计
数据库逻辑结构的 GUI 表示
识别系统中存在的实体以及这些实体之间的关系
为什么要使用 ER 图?
定义与实体关系建模相关的术语
预览所有表的连接方式, 每个表上的字段
帮助描述实体, 属性, 关系
ER 图可以转换为关系表, 允许您快速构建数据库
数据库设计人员可以使用 ER 图作为在特定软件应用程序中实现数据的蓝图
借助 ERP 图, 数据库设计人员可以更好地理解数据库中包含的信息
允许 ERD 与用户的数据库逻辑结构进行通信
ER 图的组成部分
该模型基于三个基本概念:
实体
属性
关系
例
Components of the ER Diagram
例如, 在大学数据库中, 我们可能有学生, 课程和讲师的实体. 学生实体可以具有 Rollno,Name 和 DeptID 等属性. 他们可能与课程和讲师有关系.
什么是实体?
它可能是一个物理的东西, 或者仅仅是关于企业或现实世界中发生的事件的事实.
实体可以是地点, 人物, 对象, 事件或概念, 它将数据存储在数据库中. 实体的特征必须具有属性和唯一键. 每个实体都由一些代表该实体的 "属性" 组成.
实体示例:
人: 员工, 学生, 病人
地点: 商店, 建筑
对象: 机器, 产品和汽车
事件: 销售, 注册, 续订
概念: 帐户, 课程
实体的表示法
实体集:
学生: 实体集是一组类似的实体. 它可能包含属性共享相似值的实体. 实体由其属性表示, 也称为属性. 所有属性都有各自的值. 例如, 学生实体可以具有姓名, 年龄, 类别作为属性.
实体示例:
大学可能有一些部门. 所有这些部门都聘请了各种讲师并提供了几个课程. 学生在特定课程中注册并注册各种课程. 来自特定部门的讲师参加每门课程, 每位讲师都会教授不同的学生群体.
关系
关系只不过是两个或多个实体之间的联系. 例如, 汤姆在化学系工作.
实体参与关系. 我们经常可以识别动词或动词短语的关系.
例如:
你正在参加这个讲座
我正在讲课
只是 loke 实体, 我们可以根据关系类型对关系进行分类:
一名学生参加讲座
讲师正在讲课.
弱实体
弱实体是一种没有键属性的实体. 可以通过考虑另一个实体的主键来唯一地识别它.
Weak Entities
在一个例子中,"Trans No" 是 ATM 中一组交易中的鉴别器.
让我们通过将它与强实体进行比较来了解更多有关弱实体的信息
强实体集 | 弱实体集 |
---|---|
强实体集始终具有主键。 | 它没有足够的属性来构建主键。 |
它由矩形符号表示。 | 它由双矩形符号表示。 |
它包含由下划线符号表示的主键。 | 它包含一个部分键,由虚线下划线符号表示。 |
强实体集的成员称为主实体集。 | 弱实体集的成员称为从实体集。 |
主键是其有助于识别其成员的属性之一。 | 在弱实体集中,它是强实体集的主键和部分键的组合。 |
在 ER 图中,使用菱形符号显示两个强实体集之间的关系。 | 通过使用双菱形符号显示的一个强实体和弱实体组之间的关系。 |
设置关系的强实体的连接线是单一的。 | 连接弱实体集以识别关系的线是双倍的。 |
属性
它是实体类型或关系类型的单值属性.
Attributes
例如, 讲座可能有属性: 时间, 日期, 持续时间, 地点等.
属性由椭圆表示
** 属性类型 ** | ** 描述 ** |
---|---|
** 简单的属性 ** | 简单属性不能再进一步划分。 例如,学生的联系电话。 它也被称为原子价值。 |
** 复合属性 ** | 可以分解复合属性。 例如,学生的全名可以进一步分为名字,名字和姓氏。 |
** 派生属性 ** | 此类属性不包括在物理数据库中。 但是,它们的值来自数据库中存在的其他属性。 例如,不应直接存储年龄。 相反,它应该来自该员工的出生日期。 |
** 多值属性 ** | 多值属性可以包含多个值。 例如,学生可以拥有多个手机号码,电子邮件地址等。 |
基数
定义两个实体或实体集之间关系的数字属性.
不同类型的主要关系是:
一对一的关系
一对多的关系
愿与一个人的关系
多对多关系
Cardinality
一对一的关系:
来自实体集合 X 的一个实体可以与实体集合 Y 的至多一个实体相关联, 反之亦然.
示例: 一名学生可以注册多个课程. 但是, 所有这些课程只有一行回到那个学生.
一对多的关系
来自实体集合 X 的一个实体可以与实体集合 Y 的多个实体相关联, 但是来自实体集合 Y 的实体可以与至少一个实体相关联.
例如, 一个班级由多个学生组成.
多对一
来自实体集合 X 的多于一个实体可以与实体集合 Y 的至多一个实体相关联. 然而, 来自实体集合 Y 的实体可以与实体集合 X 中的多于一个实体相关联, 也可以不与之相关联.
例如, 许多学生属于同一个班级.
多对多:
来自 X 的一个实体可以与来自 Y 的多个实体相关联, 反之亦然.
例如, 作为一个群体的学生与多个教师相关联, 并且教师可以与多个学生相关联.
ER - 图表符号
ER - 图表是描述数据如何相互关联的数据的直观表示.
矩形: 此符号表示实体类型
椭圆: 符号 代表属性
菱形: 这个符号 代表关系类型
线: 它将属性与实体类型和实体类型与其他关系类型相关联
主键: 属性带下划线
双椭圆: 表示多值属性
ER- Diagram Notations
参考资料
python 测试开发项目实战 - 目录
python 工具书籍下载 - 持续更新
python 3.7 极速入门教程 - 目录
讨论 qq 群 630011153 144081101
- 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/
来源: http://www.jianshu.com/p/151b0443602f