什么是数据库?

2024 年 9 月 30 日

作者

Matthew Kosinski

Enterprise Technology Writer

什么是数据库? 

数据库是用于存储、管理和保护有序数据集合的数字存储库。 

不同类型的数据库以不同的方式存储数据。例如,关系型数据库将其存储在有行和列的定义表中,而非关系型数据库可以将其存储为各种数据结构,包括键值对或图形。

各组织使用这些不同类型的数据库来管理不同类型的数据。关系数据库擅长处理结构化数据,例如财务记录。非关系型数据库最适合文本文件、音频和视频等非结构化数据类型。矢量数据库以矢量嵌入的形式存储数据,这是许多生成式 AI 应用所使用的格式。

从客户交易和产品库存到内部流程和专有研究,企业拥有大量的数据——通常以 PB 或四万亿比特为单位。这些数据必须以一致的数据架构来组织,以便用户和应用程序在需要时能够访问。  

数据库是构建这种数据架构的基础。它们不仅仅是存储信息的地方。相反,它们使组织能够集中管理数据,执行数据完整性和安全标准,并促进数据访问。 

有了适当的数据库系统,组织就可以将高质量的数据集用于关键业务计划,包括商业智能 (BI)、人工智能 (AI) 和机器学习 (ML) 项目。

数据库不是什么

人们通常对“数据库”一词的使用比较宽泛,这可能会导致人们对数据库的定义和非定义产生混淆。

数据库是存储和管理数据的系统,包括存储数据的物理硬件以及组织和控制数据访问的软件。 

数据库是许多现代 IT 基础设施的基础,包括网站、应用程序以及 Amazon 和 Google 等平台。这些服务本身并不是数据库,但它们确实依赖数据库来管理信息,例如产品库存或搜索结果。

还值得注意的是,Microsoft Excel 不是数据库,而是电子表格应用程序。Excel 电子表格以行和列的形式组织数据,这一点与关系数据库非常相似,但该电子表格是一个单独的文件。然而,数据库是强大的集中管理系统,可以以多种不同格式存储多种不同类型的数据,同时支持更高级的查询。  

数据库类型

各组织使用不同类型的数据库来管理不同类型的数据和支持不同的应用程序。一些最常见的数据库类型包括:

  • 导航数据库
  • 关系数据库
  • 非关系型数据库或 NoSQL 数据库
  • 面向对象的数据库
  • 矢量数据库
  • 云数据库

导航数据库

导航数据库将数据存储在链接记录集中。用户必须在这些记录之间进行导航,才能找到他们想要的数据,这也是该名称的由来。

导航数据库最常见的两种类型是分层数据库和网络数据库。

  • 分层数据库以父记录和子记录的树状结构排列数据。每条子记录只能有一条父记录,但父记录可以有多条子记录。要找到想要的记录,用户必须从树的顶端开始向下查找。 

  • 网络数据库的行为很像分层数据库,只是允许每个子记录链接到多个父记录。用户仍然必须浏览链接记录,通常是使用指针来获取所需数据。

导航数据库曾经很常见,但随着数据库技术的进步,特别是关系数据模型的发展,导航数据库已不再那么流行。

关系数据库

关系数据库将数据存储在包含行和列的格式化表中。它们有时被称为“SQL Database”,因为许多关系数据库支持使用结构化查询语言 (SQL) 来查询和操作数据。(更多信息,请参阅“数据库语言”)。

关系数据库中的每个表都包含一种实体类型的信息。例如,一个组织可能有一个包含所有客户信息的表格,以及详细记录每个客户购买历史记录的单独表格。 

IBM 科学家 Edgar F. Codd 在 20 世纪 70 年代提出了关系模型。该模型很快就超过了导航模型,因为它大大简化了检索数据的行为。用户可以使用 SQL 语句来命名他们想要的数据,而不是指定记录之间的路径。数据库会找出检索相关记录的方法,通常是使用索引而不是全表扫描来加快此过程。

关系数据库还可以减少冗余,因为每个数据点只需存储一次。来自不同表格的数据可以合并到单一视图中,而无需重复数据。

关系数据库是当今最常见的数据库之一。它们非常适合管理具有标准格式的结构化数据集,例如金融交易或用户联系信息。

最近出现的一类关系数据库被称为“NewSQL 数据库”,其目的是通过采用分布式数据库架构(即把数据分布在多个数据库服务器上)来提高关系模型的可扩展。

非关系型数据库或 NoSQL 数据库

“非关系数据库”本质上是一个包罗万象的术语,指不以严格格式存储数据(例如表格)的任何数据库。它们有时被称为“NoSQL 数据库”,因为它们通常不需要 SQL 来导航。

非关系数据库的出现是为了支持非结构化和半结构化数据类型,例如自由格式的文本和图像,这些数据类型不能完全适合关系表。

常见的非关系数据库类型包括:

  • 图形数据库以“节点”(代表实体)和“边缘”(代表实体之间的关系)的形式存储数据。图形数据库通常用于跟踪各种关系,例如社交网站用户之间的联系。 

  • 文档数据库将数据存储为文档,包括 JSON、XML 和 BSON 等格式。文档数据库在内容管理系统中很常见。 

  • 键值数据库以键值对的形式存储信息,其中键是唯一标识符(如数字购物车 ID),值是数据数组(如购物车中的商品)。 

  • 宽列数据库使用的行和列与关系数据库非常相似。不同之处在于,每一行都可以有自己独特的列集,存储与其他行不同的信息。宽列数据库通常用于支持数据仓库,因为数据仓库必须从多个来源提取数据并集中管理。

面向对象的数据库

面向对象数据库,也称对象数据库,以面向对象程序设计的方式将数据存储为对象。 

对象基本上是信息和相关代码的组合。每个对象代表一个实体。对象以类为单位,具有描述其特征的属性和定义其行为的方法。 

例如,“猫”类中的一个对象可能具有“颜色”和“重量”属性以及“呼噜”和“狩猎”方法。

20 世纪 90 年代,面向对象数据库与面向对象编程同时流行起来。关系数据库可能会给一些使用面向对象语言构建的应用程序带来问题,因为数据对象必须转换成表格才能存储在这些数据库中。面向对象数据库可以让开发人员避免这个问题。

矢量数据库

矢量数据库将信息存储为称为“矢量”的数字数组,并根据相似性对其进行聚类。例如,天气模型可能会以矢量形式存储单日的最低气温、平均气温和最高气温 [62、 77、85]。

矢量还可以表示复杂的对象,例如文字、图像、视频和音频。这种高维矢量数据对于机器学习、自然语言处理 (NLP) 和其他 AI 任务至关重要。    

向量数据库在 AI 和 ML 用例中很常见。例如,许多检索增强生成 (RAG) 框架的实现都使用了向量数据库,这些框架使大型语言模型 (LLM) 能够从外部知识库中检索事实。

云数据库

云数据库是托管在云中的数据库。任何类型的数据库(关系型、非关系型或其他类型)都可以成为 Cloud Databases。

云数据库主要有两种类型。第一种,也是最基本的一种,是在云中运行的自我管理数据库系统。第二种叫做数据库即服务 (DBaaS)。

DBaaS 是一种云计算服务,用户可以访问和使用数据库软件,而无需自己管理系统。顾名思义,DBaaS 提供商提供一整套数据库服务,包括升级、备份、数据库安全等。

Cloud Databases 比本地数据库更具可扩展性。如果组织需要更多存储空间或性能开始下降,可以根据需要启动更多资源。  

其他类型的数据库

  • 多模型数据库可以存储多种类型的数据。例如,IBM Db2 Cloud Databases 可在单个数据库实例中支持 XML、JSON、文本和空间数据。 

  • 内存数据库将信息存储在设备的主内存或 RAM 中。与传统数据库相比,应用程序从内存中检索数据的速度通常更快,因此内存数据库通常用于缓存数据和支持实时数据处理。但是,由于 RAM 比标准数据库更不稳定,因此存储容量更加有限,数据也很容易丢失。

黑人女性正在使用笔记本电脑

掌握最新科技新闻

《Think Newsletter》每周为您提供 AI、安全、云等领域的深入洞察分析、研究和专家观点。

数据库与数据湖、数据仓库和湖仓一体

数据库不是组织数据的唯一方式,组织通常使用不同的数据存储来支持不同的计划。

  • 数据库主要用于自动数据采集、快速查询和交易处理。 

  • 数据湖是低成本的存储环境,旨在处理大量原始结构化和非结构化数据。与数据库不同,数据湖通常不会清理、验证或规范化数据。它们通常存储大量数据来支持 AI 训练和大数据分析等实时性能不太重要的活动。

  • 数据仓库的建立是为了支持数据分析、商业智能和数据科学工作。他们从各种数据库中汇总数据,对其进行清理和准备,以便随时使用。 

  • 湖仓一体将仓库和数据湖的功能合并为一个数据管理解决方案。数据湖将低成本存储与高性能查询引擎和智能元数据治理相结合。这使组织能够存储大量结构化和非结构化数据,并轻松将这些数据用于 AI、ML 和分析工作。

数据库如何工作

从较高层次来看,数据库系统具有两个关键组成部分:数据存储系统(物理或逻辑上存放数据)和数据库管理系统(DMBS)(使用户能够与存储的数据集交互)。

人们还可以更详细地了解数据库系统的组件,以更好地理解数据库的运作原理。

数据库硬件

数据库必须将其数据存储在某种硬件上的某个位置。不过,数据库并不需要专门的机器。

相反,大多数数据库系统都由运行在计算机、服务器或其他设备上的数据库软件组成。机器提供运行数据库的物理硬件。软件负责处理数据的逻辑排列。例如,将数据格式化为关系数据库中的表格或图形数据库中的图形。 

数据库和使用数据库的应用程序可以在同一硬件上运行,但如今,大多数数据库系统都采用多层架构,将应用程序服务器和数据库服务器分开。这种安排提供了更高的可扩展性和可靠性。应用程序和数据库服务器可以彼此独立地扩展,并且一层的中断不会影响其他层。 

数据模型和数据库模型

数据模型是信息系统的可视化表示。模型是数据库管理员和设计人员用来了解他们必须跟踪的数据类型、数据点之间的关系以及如何最好地组织数据的概念工具。

数据模型有助于确定正确的数据库模型,即数据库系统的实际实现,包括技术要求和存储空间格式。例如,上述逻辑数据模型可能会产生如下所示的关系数据库: 

数据库架构

数据库模式从技术和逻辑上定义了数据在数据库中的组织方式。换句话说,它将数据模型转换为数据库要遵循的一组规则。 

例如,关系数据库架构将定义表名、字段、数据类型以及这些内容之间的关系等内容。

架构可以通过可视化图表来表示,用 SQL 语句或其他编程语言写出,或以其他方式定义。这取决于架构的类型和相关数据库系统。

所有关系型数据库系统都有架构。有些非关系型数据库有架构,有些没有,有些允许但不要求。

数据库管理系统 (DBMS)

数据库管理系统 (DBMS) 是一种软件,可使数据库管理员、用户和应用程序轻松连接数据库中的数据。  

数据库管理系统支持用户执行关键的数据管理任务,例如格式化数据库、管理元数据、查询数据集以及添加、更新或删除数据。

一些 DBMS 可帮助实施数据安全措施,例如应用数据库访问控制和记录用户活动。它们还可以跟踪数据库性能。

与数据库本身一样,DBMS 也有不同的模式。例如,关系数据库管理系统(RDBMS)是为关系数据库而构建的,而面向对象数据库管理系统 (OODBMS) 则管理面向对象的数据库。  

一些常见的数据库管理系统包括:

  • MySQL 是一种开源 RDBMS,通常用于电子商务网站和其他 Web 应用程序。

  • PostgreSQL 以其对可扩展性和交易可靠性的重视而著称。

  • Microsoft SQL Server 被拥有 Microsoft 网络的组织广泛使用。

  • Oracle Database 是一种多模型 DBMS,可以管理结构化和非结构化数据。 

  • IBM Db2 是一种云原生数据库系统,包括数据库管理、仓储、存储和其他功能,可支持实时分析和 AI 应用程序。

数据库语言

数据库语言是人们用来与数据库交互的专门编程语言。它们为用户提供了编写查询语法,以便获取、合并、更新或以其他方式使用数据。

最常见的数据库语言是结构化查询语言 (SQL),这是大多数关系数据库都使用的语言。SQL 由 IBM 科学家在 20 世纪 70 年代开发,可帮助数据库管理员、开发人员和数据分析师执行数据定义、访问控制、数据共享、数据集成和分析查询等任务。

其他数据库语言包括对象查询语言 (OQL)(适用于面向对象的数据库)和 XQuery(适用于 XML 文档数据库)。

还有特定于数据库的语言,例如 MongoDB 的 MongoDB 查询语言 (MQL) 和 Apache Cassandra 的 Cassandra 查询语言 (CQL)。 

为什么数据库很重要

从使用关系数据库跟踪金融交易的银行应用程序,到使用矢量数据库提高准确性的 AI 助手,数据库对当今人们依赖的许多技术都至关重要。数据库之所以如此普遍,正是因为它们是支持以下各项的关键:

  • 数据可用性
  •  数据完整性
  • 数据安全性与合规性

数据可用性

当今,组织拥有大量数据,但如果人们不能使用这些数据,那么这一切都没有多大意义。 事实上, IBM Data Differentiator 报告称,多达 68% 的企业数据从未被分析过。 通常,这是因为人们不知道它的存在,或者孤岛阻止他们访问它。

数据库为组织提供了一种策划、存储和集中管理数据集合的方法。它们还可以帮助自动执行大部分数据收集过程,包括实时捕获事件和交易。

组织选择、设计和实施其数据库应用程序的方式可以决定关键业务计划的成败。当数据井井有条并可随时访问时,它就能推动决策,促进商业智能,并为 AI 和 ML 项目提供动力。

数据完整性

与容易出错、冗余和不准确的电子表格和其他手工记录程序相比,数据库具有明显的优势。

由于数据库可以集中管理,因此可以更轻松地执行清理和格式化规则、监控使用情况并跟踪数据沿袭。数据库还消除了分发多个数据集副本的需要,因为随着时间的推移,数据集可能会变得不同步。取而代之的是,每个应用程序和用户都可以在同一个共享存储库中工作。 

最终,数据库可以帮助将各种用户(人员、应用程序、API)与干净、值得信赖的数据联系起来。

数据安全性与合规性

根据地点和行业的不同,组织必须遵守数据保护数据隐私法规,如美国《健康保险流通和责任法案》(HIPAA) 和欧盟《通用数据保护条例》(GDPR)

除了法律要求外,组织还需要防止未经授权的数据访问损害其商业利益。根据 IBM 的《数据泄露成本报告》数据泄露平均造成 488 万美元的损失,包括业务损失、系统宕机、修复工作和其他成本。

数据库可以通过执行数据安全措施(例如基于角色的访问控制 (RBAC))来帮助保护数据并保持合规性,从而确保只有正确的用户才能访问正确的数据。 

数据库在 AI 计划中的作用

75% 的 CEO 认为,拥有最先进的生成式 AI 将成为未来组织竞争优势的决定性因素。为了支持这种先进的 AI,组织需要能够存储、管理和治理大量结构化和非结构化数据。它们只有在建立了正确的数据库系统的情况下才能做到这一点。

不同类型的数据库可以以不同的方式支持 AI 和 ML 工作。例如,矢量数据库通常用于实现有助于减少幻觉的 RAG 框架。键值数据库可加快数据检索和处理速度。内存数据库可支持缓存和 Streaming Analytics。

数据库注意事项

有几个因素会影响组织为特定项目选择的数据库类型。其中最明显的一些包括:

  • 数据类型:每种类型的数据库都能比其他数据库更好地处理某些类型的数据。例如,图形数据库通常比 SQL 数据库更适合映射关系。

  • 目的:不同类型的数据库也更适合不同的应用程序。例如,矢量数据库通常是 RAG 框架的最佳选择。 

  • 性能要求:如果应用程序持续实时提取数据,组织就需要一个能优化查询速度的数据库。但是,如果组织在将数据发送到数据湖之前需要一个存储数据的地方,那么性能可能就不那么重要了。

  • 价格:组织需要存储的数据量、数据格式和性能要求都会影响数据库成本。

  • 可扩展性:一些数据库只能垂直扩展,这意味着必须向现有服务器或计算机添加更多资源。其他服务器可以水平扩展,这意味着可以添加更多服务器以分布式方式支持数据库。