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

144 篇文章 13 订阅
41 篇文章 1 订阅
本文介绍了如何使用ERD(实体关系图)设计关系数据库,强调了其在理解和构建复杂数据库中的重要性。关系数据库通过表的集合和它们之间的关系存储数据,常用的关系数据库管理系统包括Oracle、SQL Server和MySQL。ERD提供了数据库的可视化表示,帮助设计者在创建数据库前规划表和关系,确保数据结构的完整性和高效性。Visual Paradigm是一款实用的工具,可用于绘制ERD并支持多种数据库系统。
摘要由CSDN通过智能技术生成

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

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

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

关系数据库的工作原理

样本关系数据库

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

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

表列

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

关系

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

示例:学校

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


学校的例子

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

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

ERD的关系数据库设计

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


创建学校数据库

如果您计划的数据库包含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键停止创建新列。 
    col添加了
  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

    到目前为止,该图应如下所示: 
    更新了
  4. 让我们联系实体。想想RouteSchedule实体。路线有许多时间表,并且时间表必须在特定路线下。因此,创建从RouteSchedule的一对多关系。将鼠标指针放在Route实体上。按资源目录图标并拖动到计划实体。
    创造一对多
  5. Schedule上释放鼠标按钮。然后,在资源目录中选择一对多关系。 
    在资源类别中选择一对多 
    当系统提示您定义外键映射时,请保留默认设置并单击“ 确定”继续。 
    关系规范 
    在Route和Schedule之间创建一对多关系: 
    rel创建
  6. 时间表由公共汽车处理,公共汽车可以在一天内处理多个时刻表。因此,创建从ScheduleBus的多对一关系。这一次,拖动资源目录从实体图标安排总线,并选择多到一- >实体从资源目录创建一个连接。 
    关联计划巴士 
    到目前为止,该图应如下所示: 
    更新了
  7. 巴士和司机现在来了。驱动器驱动总线,总线由一个驱动器驱动。从总线到驱动程序创建一对一的关系。再次,使用默认设置确认外键创建。
    关于公交车司机
  8. 对于路线和停靠站,路线包括许多公共汽车站,而公共汽车站则由许多路线共用。因此,它之间存在多对多的关系。尝试将Route和Stop与多对多关系联系起来,关系会自动分为两个一对多关系,其间产生一个链接实体Route_Stop。这是最终的ERD:
    最终结果

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

本教程的读者也阅读

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值