江南体育·(中国)APP下载官方网站

案例展示

案例展示
<<返回上一页

实体关系数据建模JN体育官方网址案例CDGP可参考

发布时间:2024-01-28 02:17:55点击:

  数据建模是数据工程中的一个关键过程,涉及创建可视化数据库表示。此流程定义并分析支持组织中业务发展所需的数据需求。存在多种数据建模,例如实体关系(ER)、关系、层次、维度等。在本文中,重点关注 ER 数据建模。在深入研究主题 ER 数据建模之前,让我们先了解一下为什么需要数据建模。

  数据模型是数据元素及其与现实世界实体属性的关系的蓝图。数据模型分为三种主要类型,每种类型代表不同的抽象级别,并在数据建模过程中服务于不同的目的。

  数据建模是创建数据模型以将数据存储在数据库中的过程和技术。此过程涉及识别和定义数据元素及其关系。数据建模的类型包括关系建模、维度建模、面向对象建模、层次建模、网络建模、文档建模(NoSQL)、语义建模和实体关系建模。

  数据建模是数据库设计的基础,也是确保数据结构和存储符合业务需求和流程的重要步骤。它为构建高效、可靠和可扩展的数据库奠定了基础,这对于组织的顺利运营和发展至关重要。良好的数据模型有助于以连贯和逻辑的方式构建和组织数据。以下是精心设计的数据模型对组织的影响:

  现在了解了数据建模的意义,回到我们的主题,ER 建模,什么是 ER 建模,我们如何构建它?

  ER 数据建模是一种专注于识别实体及其关系的技术。它广泛用于关系数据库设计。ER 图用于说明数据库的结构,包括实体或表等元素、它们的属性或列以及它们之间的关系。ER 建模基于两个概念:

  一个订单可以包含多本书(订单和书之间的多对多关系,通过orderdetails实体实现)。

  该图说明了一个逻辑模型,是设计书店数据库的蓝图,确保有组织的数据存储和针对不同操作(如客户管理、订单处理和库存跟踪)的高效数据检索。

  数据建模涉及创建表示数据对象及其在数据库或系统内的关系的图表或模型。模型分为三种类型:

  - 概念模型:这些高级模型概述了需要哪些数据以及如何组织数据,而无需深入研究技术细节。

  - 逻辑模型:这些模型提供更多细节,显示数据及其结构之间的关系,通常独立于特定技术。满足数据库设计的需要还有待考虑。

  - 物理模型:这些是最详细的并且特定于特定的数据库管理系统,详细说明了数据如何存储在数据库中。物理 ERD 代表数据库的实际设计。

  每个实体都有描述它的特定“属性”。江南体育官网例如,一个 STUDENT 实体由学生的姓名、年龄JN体育官方网址、地址、注册的课程等定义(例如,一个名叫 小王 的学生,22 岁,住在北京,注册了数据科学课程等)。

  那么,什么是实体类型?实体类型是具有相同属性的实体的集合,这些属性称为“实体集”。

  请注意,实体类型在 ER 图中表示为包含实体类型名称的矩形框。我将在本文后面的 ER 图中提供一个示例。

  复合属性:属性可以分为独立的更小的部分。例如,江南体育官网地址属性可以包括街道号码、公寓/套房号码、城市、省和国家。

  多值属性:每个实体的一组值。例如,学生 A 加入了一个俱乐部,学生 B 没有加入任何俱乐部,学生 C 是两个或多个俱乐部的成员。因此,不同的学生可以有不同数量的俱乐部属性值。

  派生属性:包含从其他属性计算得出的值的属性。例如,学生有“成绩”属性,GPA 可以从“成绩”属性导出,因为 GPA 是根据学生每学期获得的成绩计算的。

  键或键属性是对实体类型的实体的重要约束。实体类型通常具有一个或多个属性,这些属性的值对于实体集中的每个实体都是唯一的。这样的属性称为键属性。例如,STUDENT 实体类型中的典型键属性是学生 ID。

  为属性赋予键意味着设置一个约束,禁止任何两个实体同时具有相同的键属性值。我们将此属性称为“主键”。

  但是如果单个属性不够唯一怎么办?—我们将两个或多个属性组合起来形成一个独特的集合。

  让我们以 ENROLLMENT 实体类型为例,该实体类型跟踪哪些学生注册了哪些课程。实体集包括:

  在这种情况下,student_id 和 course_id 都无法唯一标识 ENROLLMENT 表中的一行,因为一个学生可以注册多个课程,并且一个课程可以有多个学生。因此,我们将 Student_id 与 course_id 组合起来,形成我们所说的复合键 (student_id, course_id)。该组合键确保学生和课程的每个组合在 ENROLLMENT 表中都是唯一的。

  复合键的概念确保每个记录都是唯一的,而单个键是不够的。它们有助于表示实体之间的多对多关系,并通过防止相同键属性组合的重复条目来帮助维护数据完整性。

  关系是两个实体之间的关联,例如,实体 STUDENT ENROLLS_IN COURSE 是另一个实体。与实体类型和实体集的情况类似,关系中也有关系类型及其对应的关系集。在 STUDENT_COURSE 示例中,ENROLLS_IN 是关系类型。由于不同的学生可以注册不同的课程,因此两个实体之间相似关联的集合称为关系集。让我们看一下下面的图:

  映射基数描述了给定实体可以通过关系类型关联的最大实体数。两个实体类型之间关系类型的基数为一对一 (1:1)、一对多 (1:N) 和多对多 (M:N)。

  参与根据实体通过关系类型与另一个实体的关系来指定实体的存在。参与约束有两种类型:完全参与和部分参与。

  完全参与指定实体集中的每个实体必须参与关系集中的至少一个关系。实体类型和关系类型之间的双线说明了总体参与。

  部分参与指定实体集中的每个实体可以参与也可以不参与关系集中的关系。部分参与使用实体类型和关系类型之间的单线. 案例研究

  我在下面展示的案例研究是公司、机构等基本设置的简单示例;因此,这些数据库距离适合大型组织的数据库还有很长的路要走。这些案例研究旨在说明本文的主题、ER 建模以及如何构建逻辑模型。

  MountGame 是一家游戏公司,其数据库存储有关员工、部门以及所从事项目(完成项目后的进度和结果)的信息。考虑以下要求:

  JetPink 是一家航空公司,首席执行官希望建立一个数据库来存储有关航空公司机队、航班和乘客的数据。考虑以下要求:

  本文将理论与实践和现实例子相结合。我希望它可以帮助新手和经验丰富的数据工程师更好地理解数据建模基础知识,特别关注 ER 建模、各种类型的数据模型以及 ER 数据建模中最有效的方法。

网站地图