如何使用ERD设计关系数据库?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


数据库在我们的日常生活中变得越来越不可或缺。我们每天和每个地方处理数据 - 手机联系人,医疗记录,后勤数据和交易记录等。它们都存储在数据库中。没有数据库,很难想象世界会是什么样子。也许没有ATM,没有信用卡,没有GIS,也没有航空公司的预订...

数据库的历史可以追溯到电子计算的早期阶段。多年来,出现了许多数据库类型,例如​​分层数据库​​​,​​关系数据库​​​,​​对象数据库​​​,​​XML数据库​​等。它们的硬件要求,效率以及数据的存储,组织和访问方式各不相同。

关系数据库将数据存储在表的集合中。在表之间定义关系以进行交叉引用。它存储数据的方式使用户易于理解数据的结构和内容。开发人员可以使用​​结构化查询语言(SQL)​​​来查询数据,并将​​索引​​​添加到数据库以便更快地进行查询,从而使关系数据库即使在数据量随时间增加时也能很好地运行。因此,尽管受到对象数据库多年的挑战,关系数据库仍然是迄今为止存储企业数据的最普遍方式。​​Oracle​​​,​​Microsoft SQL Server​​​,​​MySQL​​​和​​PostgreSQL​​ 是一些流行的关系数据库管理系统。

关系数据库的工作原理

如何使用ERD设计关系数据库?_数据

关系数据库将数据存储为表的集合。每个表都提供一组列,这些列是值得且需要持久化的表的属性。可以在表之间添加关系,关系数据库中的关键元素,以指示两组数据是相互关联的。

关系数据库由一组表(即实体)组成,我们希望从中寻找信息。表由列(表的属性)和作为要存储和检索的记录的行组成。

表列

列指的是表中的一组字段。列描述了我们有兴趣为其所属的表存储的属性。

关系

关系是两个实体之间的连接。它以有意义的方式将数据(表格中)连接在一起。例如,在不知道执行交易的客户的情况下,知道交易的信息是没有意义的。因此,我们将关联客户和交易表以获取有关交易的完整信息。

示例:学校

的​​实体关系图(ERD)​​是关系数据库的可视形式。人们使用ERD来建模和设计关系数据库。以下是描述简单学校系统表格的ERD。

如何使用ERD设计关系数据库?_数据库_02

学校和学生是实体(注意:在ERD中,通常使用术语“实体”而不是“表”。它们实际上是相同的)。在School表中,有两列--id和name。id是主键(PK)列,以粗体显示,旁边有一个键符号。主键能够唯一地定义表中的记录。换句话说,不得有两个(或更多)学校记录共享相同的ID。学生,另一个表,有一个外键列,即SchoolId。它是对School表中主键ID的引用。请注意,外键不必是唯一的。多个学生记录可以共享相同的学校ID。在现实世界中,可以有多个学生在同一所学校学习,因此具有相同的学校ID。

学校和学生实体之间有一个连接器。我们称之为关系。在这种情况下,它是一对多的关系。这意味着具有主键(即学校)的实体仅包含一个与引用实体(即学生)中的零个,一个或多个记录相关联的记录。我们可以通过以下方式描述日常用语中的关系:学校吸收了许多学生。

ERD的关系数据库设计

如果要构建的数据库仅包含几个表,则根本不需要设计它。您可以简单地使用数据库管理系统提供的管理工具,或运行一些SQL语句来构建数据库。然而,在现实世界中情况并非如此。

如何使用ERD设计关系数据库?_数据库_03

如果您计划的数据库包含10个以上的表,甚至多达数百个表,那么最好在构建数据库之前考虑设计数据库。以下是数据库设计的一些好处:

  1. 它为您提供了一种研究数据结构的方法,以确保包含必要的表和关系。此外,精心设计的数据库可实现高效的数据添加和检索。
  2. 在设计过程中,您不仅可以了解数据结构,还可以更好地了解目标系统。这有助于您的团队开发系统的其余部分。
  3. 假设您最近开发了一个系统。三年后,您的客户已更新业务计划和策略,并要求您升级现有数据库以满足新要求。通过查看数据库来研究表定义来规划和执行更改将是一件痛苦的事。数据库设计总能让您清楚地了解自己所做的工作。
  4. 数据库设计不仅适合您。它还允许您的客户审查和评论您的工作。客户端不太可能具备了解数据库工作原理的技术知识。但是,高级视觉设计可以帮助他们了解您的设计是否满足他们的需求。

用​​Visual Paradigm​​​绘制​​ERD​

良好的数据库设计确实需要时间和精力来开发和构思。一个有用的数据库设计软件可以帮助您减少花费的时间和精力。​​Visual Paradigm​​不仅为您提供ERD工具,还提供一组可视化建模功能,帮助您更轻松,更快速地表达您的设计理念。它支持当今市场上大多数流行的关系数据库管理系统。以下是受支持的数据库列表:

  1. 神谕
  2. MS SQL Server
  3. MySQL的
  4. PostgreSQL的
  5. SYBASE
  6. HSQL
  7. 云景/德比
  8. DB2
  1. 安格尔
  2. OpenEdge
  3. Informix的
  4. 火鸟
  5. FrontBase
  6. 高速缓存
  7. Slite
  8. H2

在本节中,我们将在Visual Paradigm中使用ERD为总线路由管理系统设计关系数据库。

首先,我们需要决定要创建的实体。在此过程中,您可能会找到许多候选人。以下是一些帮助您识别实体的指南:

  1. 实体必须是名词(例如交易)或名词短语(例如PurchaseOrder)
  2. 只接受对系统有意义的名词(“乘客”被取消资格,因为公交路线管理系统不记录任何有关乘客的信息)
  3. 只接受具有要存储属性的名词(“票价”被取消资格,因为它没有任何有意义的属性来存储。但是,“票价”可以是潜在实体“路线”的列)

最后,获得以下实体:

  1. 总线
  2. 时间表
  3. 路线
  4. 司机
  5. 停止(这是一个公共汽车站)

现在,让我们开始设计过程。

  1. 通过从工具栏中选择Project> New,在Visual Paradigm中创建一个新项目。在“ 新建项目”窗口中,将项目命名为“ 总线路径管理系统”,然后单击底部的“ 创建空白项目 ”。
  2. 要创建ERD,请从工具栏中选择“ 图表”>“新建 ”。在New Diagram窗口中,选择Entity Relationship Diagram,然后单击Next。输入First Draft作为图表名称,然后单击“ 确定”
  3. 从图工具栏中选择实体
  4. 单击图表以创建实体。输入Bus作为实体的名称。请注意,无论实体在现实世界中有多少实例,我们通常都会对实体使用单数命名。
  5. Enter键。这为您提供了第一个实体。
  6. 创建其他实体以创建如下图:

现在,我们可以指定实体的列。与标识实体类似,您需要仔细考虑每个实体中需要存储的列。不要为没有系统值的数据添加列。

  1. 右键单击实体总线,从弹出菜单中选择“ 新建列 ”。
  2. 输入+ vehicle_id:integer(10)添加主键列,然后按Enter键。加号字符用于指定主键列。如果要添加非主键列,则不需要它。(注意:vehicle_id是列的名称。) 
    Esc键停止创建新列。 
  3. 将列添加到其他实体: 

实体


时间表

+ schedule_id:整数(10) 

出发: 

到达日期:日期

路线

+ route_id:整数(10) 

票价:float(10)

停止

+ stop_id:integer(10) 

name:varchar(255) 

terminus:blob

司机

+ driver_id:integer(10) 

name:varchar(255) 

employ_date:date

  1. 到目前为止,该图应如下所示: 
  2. 让我们联系实体。想想RouteSchedule实体。路线有许多时间表,并且时间表必须在特定路线下。因此,创建从RouteSchedule的一对多关系。将鼠标指针放在Route实体上。按资源目录图标并拖动到计划实体。
  3. Schedule上释放鼠标按钮。然后,在资源目录中选择一对多关系。 

    当系统提示您定义外键映射时,请保留默认设置并单击“ 确定”继续。 

    在Route和Schedule之间创建一对多关系: 
  4. 时间表由公共汽车处理,公共汽车可以在一天内处理多个时刻表。因此,创建从ScheduleBus的多对一关系。这一次,拖动资源目录从实体图标安排总线,并选择多到一- >实体从资源目录创建一个连接。 

    到目前为止,该图应如下所示: 
  5. 巴士和司机现在来了。驱动器驱动总线,总线由一个驱动器驱动。从总线到驱动程序创建一对一的关系。再次,使用默认设置确认外键创建。
  6. 对于路线和停靠站,路线包括许多公共汽车站,而公共汽车站则由许多路线共用。因此,它之间存在多对多的关系。尝试将Route和Stop与多对多关系联系起来,关系会自动分为两个一对多关系,其间产生一个链接实体Route_Stop。这是最终的ERD:

  1. ​什么是实体关系图(ERD)?​


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 数据库