什么是关系数据库?
关系数据库是数据项之间具有预定义关系的数据点的集合。
关系模型将数据组织成表中,每行代表一条单独的记录,每列由包含值的属性组成。这种表格数据库结构可以轻松地在数据点之间建立关系,因此无需重新组织数据本身即可通过各种不同的方式访问信息。
您可以联接关系数据库中的表,以更深入地了解不同数据点之间的相互关系。例如,“客户”表的“名称”和“地址”列的行值为“John”和“加利福尼亚”。同样,“产品”表的“名称”和“成本”列的行值为“鞋子”和“12 美元”。您将“客户”表与“产品”表联接起来,以确定客户更经常购买的热门产品。
简而言之,关系数据库是存储和访问具有预定义关系的数据的一种方法。
什么是关系数据库管理系统
关系数据库管理系统(RDBMS)是管理关系表的工具和服务的软件层。在实践中,术语 RDBMS 和关系数据库被认为是同义词。关系数据库在应用程序、用户和关系数据库之间提供一致的接口。组织使用 RDBMS 来管理来自各个部门的大量业务关键信息。
多个用户可以以不同的方式使用同一个数据库。例如,他们可以在不产生数据冗余的情况下执行数据库操作和聚合关键数据点。关系数据库管理系统还为您的数据库管理员提供了对数据的更大访问控制。
为什么关系数据库很重要
自从计算机发明以来,人们一直在研究如何在机器上管理和存储数据。在关系数据库出现之前,组织使用分层数据库系统,这类似于计算机上的文件夹。这些早期的数据库系统可以组织大量数据。但是,它们在揭示数据关系的方式上存在限制。而且,它们也十分复杂,专用于特定的应用,并且需要技术专业知识才能使用。
关系数据库模型的出现就是为了解决这些问题。它将物理数据存储与数据库管理和使用分开。新式关系数据库使用户无需管理物理数据存储即可存储和检索数据。您还可以通过编程方式操作逻辑数据结构。
关系数据库有哪些优势
关系数据模型的主要优势在于能够从数据中获取有意义的信息。例如,您可以对表中的数据进行计数、排序和分组,以及执行数学运算并生成复杂的报告。因此,关系数据库系统仍然是当今最受欢迎的数据存储系统。我们在下面列举了更多优势。
数据完整性
数据完整性指的是数据的整体完整性、准确性和一致性。关系数据库使用一组约束来强制确保数据库中数据的完整性。它们包括主键、外键、“Not NULL”约束、“Unique”约束、“Default”约束和“Check”约束。
这些完整性约束有助于在表中的数据上强制实施业务规则,以确保数据的准确性和可靠性。除此之外,大多数关系数据库还允许将自定义代码嵌入到触发器中,这些触发器根据对数据库中数据点的操作执行。自定义代码也可以嵌入到存储过程中,这些存储过程在客户端或应用程序调用时执行。
安全性
大多数关系数据库管理系统都具有复杂的访问控制。您的数据库管理员可以精确地确定谁有权访问哪些数据。即使在单个单元格级别,您也可以限制读取、修改和删除数据的访问权限。这种精细的访问控制使关系数据库非常安全。
备份和灾难恢复
大多数关系数据库都具有导入和导出功能,因此您可以快速创建数据备份。基于云的新式关系数据库执行连续镜像,使您能够在几秒钟或更短的时间内恢复丢失的数据。
社区支持
一些关系数据库技术是开源的,可以免费使用。开源数据库拥有活跃的社区,不断改进和调整特性和功能。开发人员和数据工程师可以访问各种工具和软件,以便使用关系数据库。
关系数据库的工作原理
关系数据库的工作原理是提供一个环境,应用程序可以在该环境中访问数据并以各种方式重组数据,而无需从应用程序代码中重新组织数据表。我们在下面给出了关系数据库系统的一些关键特征。
数据模型
关系数据库由表示现实世界对象或概念(通常称为实体)的表组成。表中的每一列都保存着某种称为属性的数据,字段存储属性的实际值。表中的行和列表示一个对象或实体的相关值的集合。
您可以使用称为主键的唯一标识符来标记表中的每一行。外键引用另一个现有表的主键并创建逻辑连接。因此,多个表之间的行使用主键/外键配对关联在一起。例如,订单表的每一行都可以包含一个包含客户 ID 的外键,该外键标识客户表中包含有关客户的所有信息的行。
SQL
结构化查询语言(SQL)是与关系数据库通信的主要接口。SQL 于 1986 年成为美国国家标准协会(ANSI)的标准。所有热门的关系数据库引擎都支持标准 ANSI SQL。您可以使用它来更新、删除或存储数据、检索数据子集以及管理关系数据库的各个方面。
SQL 很容易学习,因为它的语句中使用的是常见的英语关键字。它还可以与不同的编程语言很好地集成。例如,您可以使用 Java 编程语言嵌入 SQL 查询,以使用主要 SQL 数据库系统构建高性能数据处理应用程序。
事务处理
关系数据库事务是作为构成单个逻辑工作单元的操作序列运行的一个或多个 SQL 语句。事务提供“全有或全无”的主张,这意味着整个事务必须作为一个单元完成。如果关系数据库管理系统无法完成事务的任何部分,则所有单个组件都无法通过。在关系模型术语中,事务会导致 COMMIT 或 ROLLBACK。数据库管理系统连贯可靠地对待每个事务,独立于其他事务且与之隔离。
ACID 合规性
所有关系数据库事务都必须是原子的、一致的、隔离的和持久的(ACID),以确保数据的完整性。
原子性
原子性要求整个事务应该成功执行。如果事务的某个部分失败,则作为事务的一部分所做的任何更改都将回滚。
一致性
一致性要求作为事务一部分写入关系数据库的数据必须遵守所有定义的规则及限制,后者包括约束、级联和触发器。
隔离性
隔离性要求每个事务彼此独立。当多个用户尝试同时修改关系数据库中的数据时,并发控制机制会阻止他们覆盖彼此的更改。
持久性
持久性要求在成功完成事务后,对关系数据库所做的所有更改都是永久性的。
有哪些不同类型的数据库
有许多不同类型的数据库旨在优化某些数据模型的灵活性和可扩展性。这些数据库类型包括:
- 关系型:数据以表格式存储,使用行存储各个记录,使用列存储与记录相关的属性或数据点。
- 键值:数据以字典格式存储,每个项都有一个键和值。
- 文档:数据使用 JSON、XML 或其他半结构化数据格式存储为文档。
- 图表:数据以知识图的形式存储,使用节点和边来定义这些节点之间的关系,以及存储单个数据点的属性。
关系数据库和非关系数据库有什么区别
关系数据库和非关系数据库(也称为 NoSQL)之间的区别与其所包含的数据的结构有关。关系数据库模型将数据组织成表、索引和视图。这种表格结构让您可以使用 SQL 等查询语言轻松创建、读取、修改和删除相关数据。每行的结构都是相同的,与电子表格非常相似。
非关系数据库不使用表格数据结构。相反,数据可以存储为键值对、JSON、图表或几乎任何其他类型的数据结构。许多非关系数据库也称为 NoSQL 数据库,因为数据是以不需要 SQL 的方式存储和查询的。
非关系数据库或 NoSQL 数据库是专为特定数据模型而构建的,并具有用于构建现代应用程序的灵活模式。该数据库因其易于大规模开发、强大的功能和良好的性能而获得广泛认可。一些差异点包括:
数据存储机制
关系数据库将结构化数据存储在基于规则的行和列中。相反,NoSQL 数据库将各个数据元素存储在单独的文件中。
灵活的结构
关系数据库以表格形式存储数据,并遵循有关数据种类和表关系的严格规则。非关系数据库提供了更大的灵活性,因为它们不需要结构化数据。您可以使用它们来存储文件、视频和其他非结构化内容。
数据完整性机制
关系数据库模型遵循严格的 ACID 属性。传统上,非关系数据库提供更灵活的 BASE(基本可用、软状态、最终一致性)模型。它们保证可用性,但不保证强一致性。数据库状态可能会随着时间的推移而发生变化,并最终保持一致。新式非关系数据库还提供 ACID、强一致性、高可用性等。
选择关系数据库时应该注意什么
关系数据库的应用场景可能会有所不同,具体取决于所存储数据的类型和数量以及访问数据所需的性能级别。这就是开发各种关系数据库引擎的原因 — 从 Amazon Aurora、Oracle 和 Microsoft SQL Server 到 MySQL 和 PostgreSQL — 每种引擎都有自己的优缺点。
选择关系数据库时,务必要考虑是否需要找到支持该关系数据库的托管云服务提供商。Amazon 关系数据库服务(RDS)是一项完全托管的数据库服务,可处理最流行的关系数据库的配置、修补、备份等基本任务。这意味着您可以选择符合自身应用场景的数据库引擎,而不必担心其维护要求。
AWS 如何满足您的关系数据库管理系统要求
Amazon Relational Database Service(Amazon RDS)是一个托管式服务的集合,可以简化在云中设置、运营和扩展关系数据库的过程。云数据库具有许多优势,例如性能、规模和成本效益。下面我们给出了 Amazon RDS 上的关系数据库引擎的一些示例。
Amazon Aurora
Amazon Aurora 是一个兼容 MySQL 和 PostgreSQL 的关系数据库引擎。它兼具高端商用数据库的速度和可用性,以及开源数据库的简单性和成本效益。Amazon Aurora 的吞吐量高达 MySQL 的 5 倍,PostgreSQL 的 3 倍,而成本仅为商业数据库的十分之一。
Oracle
借助 Amazon RDS for Oracle,您可以在几分钟内部署 Oracle Database 的多个版本,不仅经济高效,而且可以调整硬件容量大小。您可以使用现有的 Oracle 许可证,也可以按小时支付许可证使用费。RDS 可以管理复杂的数据库管理任务,包括配置、备份、修补、监控和硬件扩展,让您能够专注于应用程序开发。
Microsoft SQL Server
Amazon RDS for SQL Server 让用户能够在云中轻松设置、操作和扩展 SQL Server。您可以部署多个版本的 SQL Server,如 Express、Web、Standard 和 Enterprise。Amazon RDS for SQL Server 可以让您直接访问 SQL Server 的原生功能,因此您的应用程序和工具应当能在不进行任何更改的情况下正常运行。
MySQL
MySQL 是一种开源关系数据库管理系统 (RDBMS),被大量基于 Web 的应用程序所使用。Amazon RDS for MySQL 让您能够访问非常熟悉的 MySQL 数据库的完整功能。这意味着用于现有数据库的代码、应用程序和工具也可以用在 Amazon RDS 上,且不必进行任何更改。
PostgreSQL
PostgreSQL 是一个开源对象关系数据库系统,侧重于可扩展性和标准遵从性。Amazon RDS for PostgreSQL 可以管理无差别的耗时数据库管理任务,例如 PostgreSQL 软件安装、存储管理和升级。您可以在几分钟之内部署并开始使用。
MariaDB
MariaDB 是一个与 MySQL 兼容的数据库引擎,是 MySQL 的一个分支。它是由 MySQL 的原始开发人员开发的。Amazon RDS for MariaDB 让您可以轻松地在云中设置、操作和扩展 MariaDB 部署。借助 Amazon RDS,您可以在几分钟内部署可扩展的 MariaDB 数据库,不仅经济实惠,而且可以调节硬件能力。
立即创建免费帐户,开始使用 AWS 上的关系数据库!