【云原生数据库:原理与实践】1- 数据库发展历程

1-数据库发展历程

1.1 数据库发展概述

从1960年:Integrated Database System(IDS),该系统是一个网状模型(Network Model)到 IMS(Information Management System),使用了层次模型(Hierarchical Model)支持事务处理。

再到IBM的E.F.Codd提出:A Relational Model of Data for Large Shared Data Banks 中 提 出 了 关 系 模 型(Relational Model),Michael Stonebraker 开 发 出PG的前身INGRES(Interactive Graphics and Retrieval System),后续便是DB2 Oracle...

1.1.4 云原生与分布式时代

随着业务处理规模增加,一种方法是垂直扩展(Scale up),提升数据库各个组件的容量,使用更好的硬件,比如小型机、高端存储,如著名的"IOE"解决方案,数据库系统架构使用多个计算节点共享一份存储,称为Shared-Storage架构

另一种方法是水平扩展(Scale out),还是保持原来单个数据库实例的容量不变,用更多的数据库节点组合为一个无共享(Shared-Nothing)分布式系统来解决问题,每个节点根据分布规则(Sharding Rule)存储一部分数据(Shard),处理一部分请求。

然后就是Google三驾马车,GFS、BigTable、MapReduce。

在处理频繁变化的业务和一些专用的特殊结构时殊为不便。一些使用更灵活的数据模型定义(Schemaless)或特殊的数据模型的数据库出现了,统称为NoSQL系统。NoSQL数据库主要包括键值(KeyValue,KV)数据库、文(Document)数据库、图(Graph)数据库三大类。键值数据库的代表为Redis、HBase和Canssandra;文档数据库的代表为MongoDB;图数据库的代表为Neo4j等。

1.2 数据库技术发展趋势

1.2.1 云原生与分布式

对于云数据库而言,基于资源解耦的高可用性是其基本特征。

面对高并发与大数据处理需求,云数据库应该具备水平扩展与分布式处理能力,包括但不限于负载均衡、分布式事务处理、分布式锁、多租户下的资源隔离与调

度、CPU混合负载和大规模并行处理等。

1.2.2 大数据与数据库一体化

要使云数据库具备大数据处理能力,一方面需要借助云基础设施的快速弹性、分布式并行处理特性,打造强劲的内核引擎,实现计算与存储资源效能的最大化,以可接受的性价比对外输出海量数据分析处理能力。另一方面,需要有与大数据分析处理相配套的生态工具,主要是数据流转迁移工具、数据集成开发工具以及数据资产管理能力。

1.2.3 软硬件一体化

利用异构计算设备GPU加速这些计算操作、还有FPGA、NVM。

网络上 RDMA、InfiniBand等。

1.2.4 多模

图(Graph)、键值(Key-Value)、文档(Document)、时序(Time Series)和时空(Spatial)等,以及图片、流媒体等非结构化数据

1.2.5 智能化运维

1.2.6 安全可信

1.3 关系数据库主要技术原理

  1. 接入管理

主要是ODBC JDBC

  1. 查询引擎

SQL引擎子系统负责将用户发送过来的SQL请求进行解析、语义检查、生成逻辑计划(Logical Plan),经过一系列重写(Rewrite)与优化(Optimize),生成物理计划(Physical Plan),交由计划执行器(Plan Executor)执行

  1. 事务处理

并发控制,根据异常不同等级定义了多个隔离级别(Isolation Level)选项,以严格程度依次增加分为:读未提交(ReadUncommitted)、读已提交(Read Committed)、可重复读(RepeatableRead)和可串行化(Serializable)。

主要的并发控制技术有以下几种:2PL、MVCC、OCC

日志与恢复系统:日志系统是数据库存储引擎中的核心部分,主要功能是保证已提交事务中的持久性(D),使得数据库在崩溃后仍然能将之前已提交的事务恢复过来,并且确保回滚中止执行的事务的原子性(A)。目前主要是根据ARIES论文的日志机制进行设计。

  1. 存储引擎

数据组织和索引管理:行列存储以及混合存储

缓冲区管理等。

相关推荐
阿里云云原生18 小时前
阿里云正式发布 RCA Benchmark,业界首个面向 Agentic Ops 的根因分析开源基准体系
云原生
我爱cope18 小时前
【Agent智能体4 | 智能体AI的应用】
数据库·人工智能·职场和发展
知识分享小能手19 小时前
Flask入门学习教程,从入门到精通,数据库操作 — 知识点详解与案例代码(4)
数据库·学习·flask
我是一颗柠檬19 小时前
【MySQL全面教学】MySQL基础SQL语句Day3(2026年)
数据库·后端·sql·mysql·oracle
marsh020620 小时前
56 openclaw与Serverless:无服务器架构下的应用实践
云原生·架构·serverless
XS03010620 小时前
MyBatis动态SQL
数据库·sql·mybatis
MandalaO_O20 小时前
MyBatis 与 MySQL 执行流程
数据库·mysql·mybatis
l1t21 小时前
DeepSeek总结的将 Rust Delta Kernel 集成到 ClickHouse
数据库·clickhouse·rust
qq_2837200521 小时前
万字深度:Chroma 向量数据库全解析 — 核心原理、实战操作、性能优化与工程最佳实践
数据库·性能优化
黄筱筱筱筱筱筱筱21 小时前
二进制包安装MySql服务
数据库