什么是数据库?定义及类型

⚡ 智能摘要

什么是数据库?数据库是系统化的、结构化的数据集合,支持电子存储、检索和管理。它为从电话簿到社交网络等日常系统提供支持,并通过称为数据库管理系统 (DBMS) 的软件进行操作。

  • 📚 定义数据和数据库: 数据是原始事实;数据库对这些事实进行组织,以便多个用户可以可靠地存储、搜索和更新它们。
  • 🗂️ 了解主要类型: 分布式数据库、关系型数据库、面向对象数据库、集中式数据库、云数据库、NoSQL 数据库、图数据库、层次型数据库和网络数据库各自服务于不同的工作负载。
  • 🧩 识别五个组成部分: 硬件、软件、数据、程序和数据库访问语言共同协作,使数据库能够正常使用。
  • ⚙️ 使用数据库管理系统进行控制: 数据库管理系统集中管理访问、安全、并发性和完整性,以便应用程序能够获得一致的结果。
  • 🤖 利用人工智能提高生产力: AI 助手可以设计模式、建议索引,并将简单的英语问题翻译成可运行的 SQL 查询。

什么是数据库?

什么是数据?

简单来说, data 这些都是关于感兴趣对象的事实。你的姓名、年龄、身高和体重都是关于你的数据。图片、图像、文件和PDF也可以算作数据,因为它们都包含可以存储和处理的信息。

什么是数据库?

A 数据库 数据库是对数据进行系统性收集。数据库支持数据的电子存储、检索和处理,从而简化了大规模数据管理。

想想几个熟悉的例子。在线电话簿使用数据库来存储人员信息、电话号码和联系方式。电力供应商使用数据库来处理账单、客户问题和故障记录。Facebook 存储成员、好友关系、帖子、消息、广告等等——所有这些都存储在数据库中。各行各业的模式都一样:组织信息,以便应用程序和用户能够可靠地查询。

数据库类型

下面总结了最常见的数据库类型。每种类型都适用于特定的数据结构和工作负载。

分布式数据库

分布式数据库将数据分布在多个站点或位置。每个站点维护自己的数据切片,而客户端看到的只是一个逻辑数据库。这种模型常见于需要低延迟和本地可用性的全球性应用。

关系数据库

关系型数据库将数据存储在包含行和列的表中,并使用键将表关联起来。它通常被称为关系数据库管理系统(RDBMS),仍然是最流行的数据库类型。 DBMS 市场上的家庭。例如: MySQL, Oracle Database, PostgreSQL和 Microsoft SQL Server.

面向对象的数据库

面向对象数据库将数据存储为对象,每个对象都包含属性和方法,用于定义允许对数据执行的操作。它们与面向对象编程语言无缝对接,无需 ORM 层。

集中数据库

集中式数据库将所有记录保存在单个中央服务器上。用户可以从多个地点连接到同一家商店,这简化了管理,但也使服务器成为单一的资源争用点。

开源数据库

开源数据库以宽松的许可证发布其源代码,因此任何人都可以使用、修改和重新分发它们。 MySQL, PostgreSQL, SQLite, MariaDB和 MongoDB 都是广泛应用的例子。

云数据库

云数据库针对虚拟化、按需基础架构进行了优化。它以托管服务的形式交付,可弹性扩展存储和计算资源,并通过内置复制功能提供高可用性。例如: Amazon RDS, Azure SQL数据库,以及 Google Cloud 扳手。

数据仓库

A 数据仓库 它集中管理来自多个源系统的历史和累积数据,以支持决策、报告和预测。它通过为组织提供单一、可信的真实数据,简化了分析过程。

NoSQL数据库

NoSQL 数据库能够处理非常庞大且通常非结构化的数据集,这些数据集无法简单地用行和列来表示。文档型、键值型、列族型和图型存储分别针对不同的访问模式,并提供传统关系型数据库难以匹敌的横向扩展能力。

图数据库

图数据库利用图论——节点和边——直接存储和查询关系。它非常适合欺诈检测、推荐引擎和社交网络分析,在这些应用中,实体之间的连接与实体本身同样重要。

OLTP 数据库

OLTP(在线事务处理)数据库专注于多用户环境下的高吞吐量、低延迟事务处理。它们保证了 ACID 特性,并针对驱动销售点和银行应用程序等运营系统的众多小规模读写操作进行了优化。

个人数据库

个人数据库将数据存储在单台计算机上,供单个用户或小型团队使用。 Microsoft 访问和 SQLite 这些都是典型的例子。

多模态数据库

多模态数据库支持在单个引擎内使用多种数据模型,例如文档型、图型和键值型。ArangoDB 和 Microsoft Azure Cosmos DB 是流行的多模态选项。

文档/JSON 数据库

在面向文档的数据库中,每条记录都是一个独立的文档,通常采用 JSON、BSON 或 XML 格式。单个文档可以包含丰富的嵌套数据和不同的字段,这使得该模型能够灵活地适应快速变化的应用场景。 MongoDB Couchbase 就是众所周知的例子。

分层数据库

层次型数据库使用树状结构,并具有父子关系。节点代表记录,分支代表字段。 Windows 注册表 Windows XP和 IBM IMS是层次化数据库的经典示例。

网络数据库

网络型数据库管理系统支持记录间的多对多关系,从而产生比层次模型更复杂的结构。RDM Server 就是一个实现网络模型的数据库管理系统示例。

数据库组件

数据库组件

数据库组件。

每个数据库都是由五个相互协作的组件构建而成的:

硬件

硬件是物理层——包括计算机、I/O设备、存储介质和网络。它提供数据库与外界之间的接口。

软件

软件涵盖管理和控制数据库的一切:数据库管理系统本身、操作系统、允许多个用户共享数据的网络软件,以及通过数据库管理系统进行读写操作的应用程序。

时间

数据是指数据库存储的原始事实、观察结果、数字、符号和图像。原始数据本身毫无意义;数据库会对其进行组织和处理,使其成为有用的信息。

程序

程序是记录在案的指令和规则,用于指导数据库的设计、运行和维护。它们告诉管理员和用户如何可靠地运行系统。

数据库访问语言

数据库访问语言(通常是 SQL)允许用户和应用程序插入、更新、删除和查询数据。用户发出特定的命令,数据库管理系统 (DBMS) 会解析、规划并执行这些命令,以访问底层存储。

什么是数据库管理系统 (DBMS)?

A 数据库管理系统 (DBMS) 是允许用户定义、存储、检索、更新和保护数据的软件层。 DBMS 协调多个用户和应用程序之间的访问,强制执行完整性,并控制谁可以查看或更改哪些内容。

数据库管理系统技术并非新生事物——查尔斯·巴赫曼 集成数据存储(IDS)通用电气公司在 20 世纪 60 年代初开发的 SQL Server 被广泛认为是第一个数据库管理系统 (DBMS)。自那时起,该领域经历了层次型、网络型、关系型、面向对象型和 NoSQL 等模型的演变,每一种模型都旨在应对下一代数据工作负载。

数据库管理系统的历史

以下里程碑 trace 数据库技术的演进。

  • 1960s — Charles Bachman 在通用电气设计了第一个 DBMS(集成数据存储)。
  • 1968 - IBM 船舶信息管理系统(IMS)是最早的分层数据库管理系统之一。
  • 1970 — Edgar F. Codd 发表了《大型共享数据库的关系模型》,介绍了关系模型。
  • 1976 — Peter Chen 正式提出了实体关系 (ER) 模型。
  • 1980s - 那个 关系模型 成为主流数据库范式,SQL 也实现了标准化。
  • 1985 —面向对象的数据库管理系统似乎与面向对象编程语言的兴起相契合。
  • 1990s — 对象关系特性进入主流关系数据库管理系统。
  • 1992 - Microsoft 发布第一个版本 Microsoft 访问个人数据库。
  • 1995 — Web 应用程序开始推动互联网规模的数据库使用。
  • 1997 — XML 既可以作为格式进入数据库,也可以作为查询目标进入数据库。
  • 2009 NoSQL 一词的普及 trac随着文档存储、键值存储和图存储的快速增长,这种趋势愈发明显。
  • 2010及以后 — 云原生和分布式 SQL 数据库(Aurora、Spanner、 CockroachDB出现。

DBMS的优势

一个运行良好的数据库管理系统可以为组织带来诸多实际好处:

  • 提供了多种高效存储和检索数据的技术。
  • 平衡多个共享同一数据的应用程序的需求。
  • 提供统一的行政管理程序。
  • 保护应用程序员免受存储细节的干扰。
  • 通过约束和访问控制来保证数据的完整性和安全性。
  • 安排并发访问,确保只有有效操作才能成功。
  • 通过可重用服务缩短应用程序开发时间。

DBMS的缺点

数据库管理系统模型也有其优缺点:

  • 硬件和软件成本可能相当高昂。
  • 大多数系统都很复杂,因此用户和管理员都需要接受培训。
  • 将数据集中到一个数据库中,会使数据库更容易受到故障、数据损坏或攻击,从而成为高价值目标。
  • 并发访问需要精心设计,以避免丢失更新和死锁。
  • 数据库管理系统并非为繁重的数值计算而设计;专门的工具能更好地处理这类工作负载。

常见问题

数据是指诸如姓名、数字或图像之类的原始事实。数据库则是对这些数据进行组织化的集合,以及使用户能够可靠地存储、搜索和更新这些数据的软件服务,这些服务可以跨多个用户共享。

数据库是存储的数据集合。数据库管理系统(DBMS)是定义、存储、检索、保护和管理这些数据的软件。如果没有DBMS,数据库就只是磁盘上的文件而已。

SQL(结构化查询语言)是关系数据库的标准语言。它定义模式,插入和更新记录,使用 SELECT 查询数据,并通过 GRANT 和 REVOKE 控制访问权限。

SQL 数据库以严格的模式将数据存储在表中,并使用 SQL 进行查询。NoSQL 数据库以灵活的模式存储文档、键值对、列或图,并可水平扩展以处理非常大的数据集。

ACID 代表 Atom完整性、一致性、隔离性和持久性。它们共同保证数据库事务能够完全完成、保持数据有效、独立运行,并且在提交后即使发生崩溃也能继续运行。

四种经典的数据库管理系统模型分别是层次型、网络型、关系型和面向对象型。现代系统在此基础上扩展了模型种类,增加了 NoSQL、NewSQL、图数据库、时间序列数据库和多模态数据库等,以应对特定的工作负载。

人工智能工具可以推荐模式和索引设计、对慢查询进行分类、检测异常情况,并将自然语言问题转换为可运行的 SQL 语句。它们可以加快数据库管理员的日常工作,并帮助分析师更快地探索数据。

是的。人工智能助手可以将“上季度各地区总销售额”之类的请求转换成包含正确连接和聚合的可执行 SELECT 语句,并解释查询,以便分析师可以进行验证。

总结一下这篇文章: