- **1960s - IDS** - Integrated Data Store - 特点: - Network data model - Tuple-at-a-time queries - **1960s - CODASYL** - Lead by Charles Bachman. - **1960S - IBM IMS** - Information Management System - 用来跟踪 Apollo 登月计划的订单购买 - 特点: - Hierarchical data model - Programmer-defined physical storage format - Tuple-at-a-time queries - **1970s - Relational Model** - Ted Codd(IBM Research) - Database抽象: - 使用简单数据结构存储 database(相比于 network/hierarchical data model) - 使用高级语言访问数据 - Physical storage left up to implementation - relational DBMS 早期的实现: - Peterlee Relational Test Vehicle(IBM Research - UK) - System R(IBM Research - San Jose) - INGRESS(U.C. Berkeley) - Oracle(Larry Ellison) - Mimer(Uppsala University) - **1980s - Relational Model** The relational model wins。 - IBM 1981年首次发布 SQL/DS - IBM 1983 发布 DB2 - SEQUEL 成为标准 - **1980s - Object-Oriented Databases** - 避免 relational-object impedance mismatch > 编程语言开始流行面向对象,而 database 是面向关系的 - **1990s - Boring Days** - Microsoft forks Sybase and create SQL Server - MySQL 替代 mSQL - Posgres 支持 SQL - SQLite started in early 2000 - pre-computd data cubes - **2000s - Internet Boom** - 流量增长,许多公司定制中间件来扩展单机 DB(另一个原因是oracle等大型DB比较贵) - **2000s - Data WareHouse** - 出现专门的 OLAP DBMSs - 分布式 / Shared-Nothing - Relational / SQL - 通常闭源 - 列存模型 - **2000s - MapReduce Systems** - 分布式编程和执行模型(用于分析大数据) - Google提出 - Yahoo!开源实现(Hadoop) - Data model 由 user-written functions 决定 > People (eventually) realized this was a bad idea and grafted SQL on top of MR. That was a bad idea **too**(checkpoint等导致的低效). - **2000s - NoSQL Systems** - 聚集高可用和高扩展性 - Schemaless - 非关系模型(文档、KV、Column-family) - 无 ACID 事务 - Custom APIs(非SQL) - 通常是开源的 - 每个 NoSQL DBMS(除了 Redis)现在都支持了 SQL - **2010s - NewSQL Systems** - OLTP worloads 下提供像 NoSQL DBMSs 一样的性能,同时不牺牲 ACID - Relational / SQL - Distributed - 成功的系统(第二波): - Tidb - Cockroach - Yugabyte - Comdb2 - **2010s - Cloud Systems** - DBaas,运行在 cloud 上 - snowflake、Aurora、spanner等 - cloud-native - **2010s - Shard-Disk Enginges** - 使用分布式存储 - 存算分离 - 倾向于 log-structured 方式 - deta lake - **2010s - Graph Systems** - graph-centric query API - SQL:2023 添加了 graph query 语法 - **2010s - TimeSeries Systems** - 专门的系统设计用来存储 时序/事件 数据 - **2020s - Blockchain Databases** - Decentralized distributed log with incremental checksums (Merkle Trees). - **2020s - Sepecialized Systems** - Embedded DBMSs - Multi-Model DBMSs - 硬件加速 - Array / Matrix / **Vector** DBMSs