Module 02 · The Data Engineering Ecosystem数据工程生态系统
RDBMS关系型数据库 (RDBMS):结构、优势与应用场景
关系型数据库 (Relational Database) 是一种数据集合,其数据组织成表格结构,并且表格之间可以通过共同的数据建立链接或关联。
关系型数据库的结构
- 表格 (Tables) 由行和列构成:
- 行 (Rows) 代表记录 (Records)。
- 列 (Columns) 代表属性 (Attributes)。
📝 示例:客户表与交易表
假设一个公司维护着一个客户表:
- 列/属性包括:公司 ID、公司名称、公司地址和公司主要电话。
- 每一行代表一个客户记录。
同时,公司还维护着交易表,其中包含与每个客户相关的多个独立交易数据:
- 交易表的列可能包括:交易日期、客户 ID、交易金额和支付方式。
两个表格可以通过共同的“客户 ID”字段关联起来。
关联的意义
- 新的洞察:这种基于共同数据关联表格的能力,使得您只需一个查询,就可以从一个或多个表格的数据中检索出一个全新的表格。
- 辅助决策:它允许您理解所有可用数据之间的关系,并获得新的洞察,从而做出更优的决策。
- 查询语言:关系型数据库使用结构化查询语言 (SQL) 进行数据查询。
RDBMS 与平面文件
关系型数据库建立在平面文件(如电子表格) 的组织原则之上,数据以行和列的形式组织,并遵循明确定义的结构和模式。但相似之处仅此而已。
| 特性 | 关系型数据库 (RDBMS) | 平面文件(如电子表格) |
|---|---|---|
| 设计目的 | 理想地适用于大体量数据的优化存储、检索和处理。 | 行和列的数量有限。 |
| 数据冗余 | 可以定义表之间的关系,最大限度地减少数据冗余。 | - |
| 数据一致性 | 可以限制字段为特定数据类型和值,最大限度地减少不规则性,提高一致性和数据完整性。 | - |
RDBMS 的优势
RDBMS 是一项成熟且文档完善的技术,使其易于学习并找到合格人才。
核心优势
- 创建有意义的信息
- 关系型数据库方法最显著的优势之一是其通过连接表格创建有意义信息的能力。
- 高性能查询
- 使用 SQL 进行数据查询,使您能够处理数百万条记录,并在几秒钟内检索大量数据。
- 安全性与治理
- 关系型数据库的安全架构提供对数据的受控访问,并确保可以执行数据治理的标准和政策。
- 灵活性 (Flexibility)
- 使用 SQL,您可以在数据库正在运行且正在进行查询时,添加新列、添加新表、重命名关系并进行其他更改。
- 减少冗余 (Reduced Redundancy)
- 关系型数据库最大限度地减少了数据冗余。例如,客户信息仅在客户表中出现一次,而相关的交易表仅存储到该客户表的链接。
- 易于备份和灾难恢复 (Ease of Backup and Disaster Recovery)
- 提供简单的导出和导入选项,使备份和恢复变得容易。
- 可以在数据库运行期间进行导出,便于故障恢复。
- 云端关系型数据库进行持续镜像,这意味着恢复时的数据丢失量可以以秒或更少的时间来衡量。
- ACID 合规性 (ACID-compliance)
- ACID 代表原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Isolation) 和持久性 (Durability)。
- ACID 合规性意味着即使发生故障,数据库中的数据仍能保持准确和一致,并且数据库事务得到可靠处理。
RDBMS 的应用场景
1. 联机事务处理 (Online Transaction Processing, OLTP)
- OLTP 应用专注于以高速率运行的面向事务的任务。
- 关系型数据库非常适合 OLTP 应用,因为它们能够:
- 容纳大量用户。
- 支持插入、更新或删除少量数据的能力。
- 支持频繁的查询和更新,以及快速的响应时间。
2. 数据仓库 (Data Warehouses)
- 在数据仓库环境中,关系型数据库可以针对联机分析处理 (OLAP) 进行优化,用于分析历史数据以获取商业智能。
3. 物联网 (IoT) 解决方案
- 物联网解决方案需要速度以及从边缘设备收集和处理数据的能力,这需要轻量级的数据库解决方案。
RDBMS 的局限性
尽管 RDBMS 仍是处理结构化数据的主导技术,但它也存在一些限制:
- 非结构化数据:RDBMS 不适用于半结构化和非结构化数据,因此不适合对这类数据进行广泛分析。
- 迁移限制:在两个 RDBMS 之间迁移时,源表和目标表的模式和数据类型需要完全相同。
- 数据字段长度限制:关系型数据库对数据字段的长度有限制,这意味着如果您尝试输入比字段容量更多信息,信息将不会被存储。
流行关系型数据库
关系型数据库的规模从小型桌面系统到大型云端系统不等。它们可以是开源内部支持、开源商业支持,或商业闭源系统。
| 类别 | 流行示例 | 备注 |
|---|---|---|
| 传统关系型数据库 | IBM DB2、Microsoft SQL Server、MySQL、Oracle Database、PostgreSQL | - |
| 云端关系型数据库 | Amazon RDS、Google Cloud SQL、IBM DB2 on Cloud、Oracle Cloud、SQL Azure | 也称为 Database-as-a-Service,因拥有云的无限计算和存储能力而被广泛使用。 |