跳转到内容

数据库

来自轻之舟百科

数据库(Database) ,是指按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合[1]。其核心目标是实现数据的持久化存储与高效检索,同时保证数据的完整性、一致性和安全性。数据库管理系统(Database Management System, DBMS)则是负责建立、使用和维护数据库的软件系统,它充当用户或应用程序与操作系统之间的数据管理中间层[1]。现代信息技术的基础架构高度依赖数据库系统,广泛应用于企业资源规划、金融交易、电子商务、物联网及人工智能等各类场景。

数据库
中文名 数据库
英文名 Database
定义 按照数据结构组织、存储和管理数据的仓库
核心功能 数据持久化、高效检索、完整性保障
典型系统 Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB

历史沿革

[编辑 | 编辑源代码]

早期系统与导航模型

[编辑 | 编辑源代码]

1960年代,随着计算机在商业和管理领域的应用扩展,对海量数据的存储与检索需求急剧上升。早期的信息系统采用层次模型与网状模型,数据之间通过硬编码的指针导航(Navigational)进行物理关联,用户必须了解数据的存储路径才能完成查询[2][3]。这一时期最具代表性的系统包括IBM于1960年代开发的IMS(Information Management System)以及通用电气公司的IDS(Integrated Data Store)[1]。尽管这些系统解决了基本的数据持久化问题,但其程序依赖性强、查询灵活性差,导致数据访问成本高昂。

关系模型的诞生

[编辑 | 编辑源代码]

1970年,任职于IBM圣何塞研究实验室的英国数学家埃德加·弗兰克·科德(Edgar F. Codd)发表了题为“A Relational Model of Data for Large Shared Data Banks”的论文,提出关系数据库模型[2][3]。该模型摒弃了之前基于导航指针的路径依赖性,利用基于集合论的数学关系来组织数据,将所有数据表示为元组(行)与属性(列)构成的二维表,并通过声明式的查询语言访问数据,从而实现了数据独立性——用户仅需指定“需要什么”而非“如何获取”[2]。关系模型的提出为后续数据库标准化奠定了理论基础。

商业产品与工业化

[编辑 | 编辑源代码]

科德的论文虽具有开创性,但在初期并未立即得到工业界全面采纳。IBM于1974年启动了System R研究项目,旨在验证关系模型在工业环境下的可行性,该系统成功实现了结构化查询语言(SQL)的雏形并证明了关系数据库的性能潜力[2]。几乎同一时期,加州大学伯克利分校开发了Ingres系统,进一步推动了关系数据库技术的发展。1979年,拉里·埃里森(Larry Ellison)创立的Relational Software公司(后更名为Oracle)率先发布了商用的Oracle数据库,成为首款成功商业化的RDBMS产品[2]。1980年代至1990年代,关系数据库在联机事务处理(OLTP)和决策支持领域确立了绝对统治地位,Oracle、IBM DB2、Microsoft SQL Server、Informix、Sybase等产品共同主导了企业级数据管理市场[1]

分布式与NoSQL兴起

[编辑 | 编辑源代码]

1990年代末至21世纪初,互联网服务的爆炸式增长对数据库系统提出海量数据与高并发访问的新挑战。以Google、Amazon为代表的超大规模Web服务率先遇到了传统关系型数据库在水平扩展能力上的瓶颈。Google于2004至2006年间先后发布了关于GFS、Bigtable和MapReduce的三篇重要论文,Amazon于2007年发布了Dynamo论文,共同催生了NoSQL(Not Only SQL,即“不仅仅是SQL”)运动[4]。NoSQL数据库放弃了部分关系特性(如强一致事务、复杂关联查询)以换取近乎线性的横向扩展能力与灵活的数据模型,主要分为键值存储、文档存储、列族存储和图数据库等四类[4]。代表性产品包括MongoDB(文档)、Cassandra(列族)、Redis(键值)和Neo4j(图)[1]

NewSQL与云原生时代

[编辑 | 编辑源代码]

2010年代初期,部分应用场景需要在保持NoSQL水平扩展能力的同时,依然提供完整的SQL支持和强一致性ACID(原子性、一致性、隔离性、持久性)事务。2012年,Google发表Spanner论文,首次在全球化分布式系统中实现了外部一致性事务,标志着NewSQL数据库概念的正式提出[5]。NewSQL数据库旨在融合传统RDBMS的SQL能力与NoSQL的扩展特性,代表产品有Google Spanner、CockroachDB、TiDB等[5]。同期,云计算的普及催生了云原生数据库(Cloud-native Database),通过将计算与存储分离架构实现资源的弹性伸缩和按需计费,典型产品包括Amazon Aurora、Google AlloyDB和阿里云PolarDB等[1]

主要分类

[编辑 | 编辑源代码]

关系型数据库(RDBMS)

[编辑 | 编辑源代码]

关系型数据库基于关系模型,使用SQL作为标准的查询和编程语言。数据以表(行和列)的形式组织,并通过主键与外键约束建立表间关联。RDBMS的优势在于支持复杂的事务处理(ACID)、保证数据的强一致性以及具备完善的权限管理和备份恢复机制。常见的关系型数据库产品包括商业软件Oracle、Microsoft SQL Server、IBM Db2,以及开源社区广泛使用的MySQL、PostgreSQL和SQLite等。

非关系型数据库(NoSQL)

[编辑 | 编辑源代码]

NoSQL数据库是一类使用非表格格式(如键值对、文档、列族或图结构)存储数据的数据库系统的总称,其“NoSQL”更准确的解释为“Not Only SQL”[4]。NoSQL数据库通常面向特定的数据模型,具备良好的水平扩展性、灵活的模式设计和较高的读写性能。根据数据模型,NoSQL数据库可进一步划分为四大类[4]

  • **键值存储**:以键值对的方式存储数据,适合快速读写简单数据。典型产品有Redis、Amazon DynamoDB、Riak。
  • **文档存储**:以JSON、BSON或XML等半结构化文档为单位组织数据,与应用程序代码的抽象层次接近,便于开发。典型产品有MongoDB、Couchbase、Amazon DocumentDB。
  • **列族存储**:以列族(一组列)为单位进行数据组织和存储,适合海量数据的写入和高压缩率的分析查询。典型产品有Apache Cassandra、Apache HBase、Google Bigtable。
  • **图数据库**:使用节点、边和属性来表示和存储数据,专门用于处理高度关联的复杂关系型数据。典型产品有Neo4j、Amazon Neptune、JanusGraph。

NewSQL 数据库

[编辑 | 编辑源代码]

NewSQL是一类兼具传统关系数据库的ACID事务一致性和NoSQL数据库的水平扩展能力的新型数据库系统[5]。其目标是在分布式或云原生环境下,仍然提供完整的SQL支持、强一致性事务以及与传统RDBMS相当的线性扩展性能。技术实现上通常采用分布式共识协议(如Paxos或Raft)来保证数据副本间的一致性,并通过分层架构将计算、存储与元数据管理分离[5]。主要NewSQL产品包括Google Spanner(及其开源实现CockroachDB)、PingCAP开发的TiDB以及蚂蚁集团的OceanBase。

未来发展趋势

[编辑 | 编辑源代码]

人工智能与数据库融合

[编辑 | 编辑源代码]

人工智能技术正在被集成到数据库管理的各个环节。AI赋能(AI for DB)方向利用机器学习模型实现查询优化、参数自调优、索引推荐和智能运维,部分数据库产品开始提供自治数据库(Autonomous Database)功能,能够自动完成打补丁、升级和故障修复[6]。另一方面,数据库为AI服务(DB for AI)方向则通过向量数据库、内置RAG(检索增强生成)引擎以及函数即服务(Serverless)架构,为AI应用和AI智能体提供高效的数据管理与访问能力[6]。例如,部分数据库开始原生支持向量数据类型并提供近似最近邻(ANN)检索功能,以支撑生成式AI与大语言模型的应用场景[1]

多模型数据库

[编辑 | 编辑源代码]

传统数据库往往仅支持单一数据模型(关系型或某种NoSQL模型),而多模型数据库(Multi-model Database)旨在在一个统一的数据库内核中同时支持多种数据模型,如关系表、文档、图、键值对等[1]。这种设计能消除为不同数据模型维护多套独立存储系统所带来的数据孤岛和运维复杂性,同时允许应用根据具体场景选择最合适的模型访问同一份数据。

参考文献

[编辑 | 编辑源代码]