- **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