什么是关系数据库?
深入了解 IBM 的关系数据库解决方案 订阅 AI 主题最新消息
包含云朵、饼图、象征符号图形的拼贴插图
什么是关系数据库?

关系数据库是一种将数据组织成行和列的数据库,而这些行和列可共同形成一个表,且其中的数据点相互关联。

数据结构通常跨越多个表,这些表可以通过主键或外键连接在一起。这些唯一标识符表明了表之间存在的不同关系,这些关系通常通过不同类型的数据模型来说明。分析师使用 SQL 查询来组合不同的数据点并汇总业务绩效,使组织能够获得洞察分析、优化工作流并发现新机会。

例如,假设您的公司维护着一个包含客户信息的数据库表,其中包含帐户级别的公司数据。可能还有一个不同的表,用于描述与该帐户对应的所有单个交易。这些表可以一起提供购买特定软件产品的不同行业的信息。

客户表的列(或字段)可能包括客户 ID公司名称公司地址行业等;交易表的列可能包括交易日期客户 ID交易金额付款方式等。这些表可以通过共有的客户 ID 字段连接在一起。因此,您可以通过查询该表来生成有价值的报告,例如,按行业或公司划分的销售报告,这些报告可以向潜在客户传递消息。

通常,关系型数据库也与事务型数据库相关,而后者会批量执行命令或事务。用于说明这一点的一个广为人知的示例便是银行转账。从一个帐户中提取规定的金额,然后将其存入另一个帐户。取款和存款的金额均为全额,而此交易不能存在任何片面性。交易具有特定的属性。ACID(缩写)属性的定义如下:

  • 原子性:对数据的所有更改都像单个操作一样进行。也就是说,要么执行所有更改,要么不执行任何更改。
  • 一致性:数据从始至终保持一致状态,增强了数据完整性。
  • 隔离性:某个事务的中间状态对其他事务不可见,因此并发运行的事务看起来是序列化的。
  • 持久性:在事务成功完成后,即使系统发生故障,对数据的更改仍然会持续存在并且不会被撤消。

这些特性确保了可靠的事务处理。

关系数据库与关系数据库管理系统

关系数据库基于关系数据模型组织数据,而关系数据库管理系统 (RDBMS) 是对基础数据库软件的更具体的引用,使用户能够进行维护。这些程序允许用户在系统中创建、更新、插入或删除数据,并且它们提供:

  • 数据结构
  • 多用户访问
  • 权限控制
  • 网络接入

流行的 RDBMS 系统示例有 MySQL、PostgreSQL 和 IBM DB2。此外,关系数据库系统与基本数据库管理系统 (DBMS) 的不同之处在于,它将数据存储在表中,而 DBMS 则以文件形式存储信息。

面向企业的生成式 AI 和 ML

了解生成式 AI 的主要优势,以及组织如何将生成式 AI 和机器学习融入到业务中。

相关内容

阅读数据领导者指南

只需单击几下即可在 Amazon RDS 上设置、运行和扩展 Db2 数据库
什么是 SQL?

结构化查询语言 (SQL) 由 IBM 的 Don Chamberlin 和 Ray Boyce 发明,它是与关系数据库管理系统交互的标准编程语言,支持数据库管理员轻松添加、更新或删除数据行。SQL 最初称为 SEQUEL,后因商标问题简化为 SQL。SQL 查询还支持用户仅使用几行代码就能从数据库中检索数据。鉴于这种关系,不难理解为什么关系数据库有时也被称为“SQL 数据库”。

使用上面的示例,您可以使用以下代码构造一个查询,以按公司查找特定年份的前 10 个交易记录:

SELECT COMPANY_NAME, SUM(TRANSACTION_AMOUNT)

FROM TRANSACTION_TABLE A

LEFT JOIN CUSTOMER_TABLE B

ON A.CUSTOMER_ID = B.CUSTOMER_ID

WHERE YEAR(DATE) = 2022

GROUP BY 1

ORDER BY 2 DESC

LIMIT 10

此数据联接能力有助于我们减少数据系统内的冗余,以便数据团队为客户维护一个主表,而不是在未来出现其他交易时复制这些信息。要了解更多信息,Don 在其位于此处(IBM 外部链接)的论文中详细介绍了 SQL 的更多历史。

关系数据库简史

在关系数据库出现之前,公司使用具有树状结构数据表的分层数据库系统。这些早期的数据库管理系统 (DBMS) 使用户能够组织大量数据。但是,它们很复杂,通常是特定应用程序专有的,并且它们在数据中的展示方式也受到限制。这些限制最终促使 IBM 研究员 Edgar F. Codd 于 1970 年发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的 论文(IBM 外部链接)(PDF,1.5 MB),将关系数据库模型理论化。在提出的这个模型中,无需专门的计算机知识即可检索信息。他建议根据有意义的关系将数据排列成元组或属性-值对。元组集被称为关系,这最终实现了跨表合并数据。

1973 年,San Jose Research Laboratory(现名为 Almaden Research Center)启动了一项名为 System R(R 表示关系)的计划,以所谓的“工业级实现”来证明这种关系理论。它最终也成为了 SQL 的试验场,使其能够在短时间内得到更广泛的采用。但是,Oracle 对 SQL 的采用并没有影响其在数据库管理员中的受欢迎程度。

到 1983 年,IBM 推出了 DB2 系列关系数据库,之所以这样命名,是因为它是 IBM 的第二个数据库管理软件系列。如今,它已成为 IBM 最成功的产品之一,每天在云基础设施上处理数十亿项事务,并为机器学习应用程序奠定了基础。

关系数据库与非关系数据库

虽然关系数据库会将数据划分为表格格式,但非关系数据库却没有如此严格的数据库架构。事实上,非关系数据库会根据数据库类型按不同方式组织数据。无论非关系数据库的类型如何,它们均旨在解决关系模型中固有的灵活性和可扩展性问题,而这些模型对于非结构化数据格式(如文本、视频和图像)来说却并非理想之选。这些类型的数据库包括:

  • 键值存储:此无模式数据模型采用由键值对组成的字典形式,且每个项目均有一个键和一个值。键可为类似于 SQL 数据库中存在的某种对象(例如,购物车 ID),而值则为一个数据数组(例如,该用户购物车中的每个单品)。它通常会用于缓存和存储用户会话信息,例如购物车。但是,需要同时提取多条记录时,此方法便不太理想。Redis 和 Memcached 是采用此数据模型的两例开源数据库。
  • 文档存储:顾名思义,文档数据库以文档形式存储数据。它们可以帮助管理半结构化数据,并且数据通常以 JSON、XML 或 BSON 格式存储。这样,在应用程序中使用数据时,数据可以保存在一起,从而减少使用数据所需的转换量。开发人员还获得了更大的灵活性,因为不需要跨文档匹配数据模式(例如 name 与 first_name)。不过,这对于复杂的事务来说可能会造成问题,导致数据损坏。文档数据库的常见用例包括内容管理系统和用户配置文件。面向文档的数据库的一个示例是 MongoDB,它是 MEAN 堆栈的数据库组件。
  • 宽列存储:这些数据库以列形式存储信息,支持用户仅访问他们需要的特定列,而无需为不相关的数据分配额外的内存。该数据库试图弥补键值存储和文档存储的缺陷,但由于它可能是一个更复杂的系统,因此不建议较新的团队和项目使用。Apache HBase 和 Apache Cassandra 是开源宽列数据库的例子。Apache HBase 建立在 Hadoop 分布式文件系统之上,它提供了一种存储稀疏数据集的方法,这在许多大数据应用程序中很常见。另一方面,Apache Cassandra 设计用于管理跨多个服务器和跨多个数据中心集群的海量数据。它已被用于各种用例,如社交网站和实时数据分析。
  • 图形存储:这种类型的数据库通常存储来自知识图谱的数据。数据元素以节点、边缘和属性的形式存储。任何对象、地点或人都可以是节点。边缘定义了节点之间的关系。图形数据库用于存储和管理图形中元素之间的连接网络。Neo4j(IBM 外部链接)是一种基于 Java 的图形数据库服务,具有开源社区版本,用户可以在其中购买在线备份和高可用性扩展的许可证,或者包含备份和扩展的预打包许可版本。

NoSQL 数据库也优先考虑可用性而不是一致性。

当计算机在网络上运行时,它们始终需要决定是优先考虑一致的结果(每个答案总是相同)还是较长的正常运行时间(称为“可用性”)。这被称为“CAP 理论”,它代表一致性、可用性或分区容错性。关系数据库确保信息始终同步且一致。一些 NoSQL 数据库(例如 Redis)倾向于始终提供响应。这意味着您从查询中获得的信息可能会有几秒钟甚至长达半分钟的误差。在社交媒体网站上,这意味着如果最新的个人资料照片刚刚发布不久,您仍会看到旧的个人资料照片。或者可能出现超时或错误。另一方面,在银行和金融交易中,出错后重新提交可能要好于旧的、不正确的信息。

有关 SQL 和 NoSQL 之间差异的完整概述,请参阅“SQL vs. NoSQL Databases: What's the Difference?

关系数据库的优势

关系数据库方法的主要优势在于能够通过连接表来创建有意义的信息。通过连接表,可以了解数据之间的关系,或表之间的连接方式。SQL 包括计数、添加、分组以及组合查询的功能。SQL 可以执行基本的数学和小计函数以及逻辑转换。分析师可以按日期、名称或任意列对结果进行排序。这些特点使关系方法成为当今商业领域最流行的查询工具。

与其他数据库格式相比,关系数据库具有多种优势:

使用便捷

由于关系数据库的产品生命周期较长,因此围绕它的社区较多,这在一定程度上使它可以持续使用。SQL 还可以轻松地从多个表中检索数据集,并执行简单的转换,例如筛选和聚合。在关系数据库中使用索引还能让他们快速找到此信息,而无需搜索所选表中的每一行。

虽然关系数据库历来被视为一种更加僵化和缺乏灵活性的数据存储选项,但技术的进步和 DBaaS 选择正在改变这种看法。虽然与 NoSQL 数据库产品相比,开发模式的开销仍然较大,但随着向云环境迁移,关系数据库正变得越来越灵活。

减少冗余

关系数据库可以通过两种方式消除冗余。关系模型本身通过一个称为规范化的过程来减少数据冗余。如前所述,客户表应仅记录客户信息的唯一记录,而不是为多个事务复制此信息。

存储程序还有助于减少重复性工作。例如,如果数据库访问仅限于特定角色、职能或团队,则存储程序可以帮助管理访问控制。这些可重复使用的功能为应用程序开发人员腾出了宝贵的时间来处理来处理具有重大影响的工作。

易于备份和灾难恢复

关系数据库是事务性的,它们保证整个系统的状态在任何时候都是一致的。大多数关系数据库都提供简单的导出和导入选项,使得备份和恢复变得简单。这些导出操作甚至可以在数据库运行时发生,从而便于进行故障恢复。基于云的现代关系数据库可以进行连续镜像,使得在恢复时数据的损失以秒或更短的时间来衡量。大多数云托管服务都允许您创建只读副本,例如在 IBM Cloud Databases for PostgreSQL 中。这些只读副本使您能够在云数据中心存储数据的只读副本。副本也可以提升为读/写实例,以用于灾难恢复

相关解决方案
IBM Db2

了解 IBM Db2,这是一款云原生数据库,旨在支持低延迟事务和大规模实时分析。

深入了解 IBM Db2
IBM Cloud Databases for PostgreSQL

探索 PostgreSQL 即服务,构建为企业级就绪并与 IBM Cloud 本机集成。

深入了解 IBM Cloud Databases for PostgreSQL
IBM Hyper Protect Virtual Servers for Virtual Private Cloud

Hyper Protect Virtual Servers for Virtual Private Cloud (VPC) 是一个完全托管的机密计算容器运行时,支持在具有技术保障的高度隔离的环境中部署敏感的容器化工作负载。

深入了解 Hyper Protect Virtual Servers
IBM EDB Postgres 企业版和标准版

基于开源 PostgreSQL,在高度安全的企业级数据库上开发和运行应用程序。

深入了解 IBM EDB Postgres 企业版和标准版
资源 Db2 和 50 年的关系数据库设计

追溯 Db2 的开端。

采取后续步骤

借助 IBM watsonx.data 随时随地扩展所有数据的 AI 工作量,IBM watsonx.data 是基于开放式湖仓一体架构构建的适用数据存储。

深入了解 watsonx.data 预约实时演示