数据库管理技术和理论
0.导论
0.1 数据库管理与数据库
数据库的历史
- 前关系时代
- 1960年代,二级存储的发展(磁盘、磁鼓)
- 编写数据库程序极为复杂,需要专门训练
- 代表人物:Charles W.Bachman,ACM Turing Award 1973
- 关系时代
- 1970年,Edgar(Ted)F.Codd提出关系理论:关系代数和关系演算(Ted Codd 1981 Turing Award)
- IBM System R计划,System R –> DB2
- 几乎与System R同时,UC Berkeley的 M.Stonebraker(2014 Turing Award) 和E.Wong在1973年开始开发Ingres,Ingres–>PostgreSQL
- DBMS发展简史:1959 CODASYL –> 1965 LPTF under CODASYL,IDS(网状模型) –> 1968 IMS(层次模型) –> 1974 System R
- 后关系时代
- 1980s 桌面数据库
- 1990s OODBMS
- 2000s NoSQL1, NewSQL
- …
Google的三篇论文
- 2003: GFS (Google文件系统)论文发表
– Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung: The
Google file system. SOSP 2003: 29-43 - 2004: MapReduce论文发表
– Jeffrey Dean, Sanjay Ghemawat: MapReduce: Simplified Data
Processing on Large Clusters. OSDI 2004: 137-150 - 2006: BigTable论文发表
– Fay Chang, Jeffrey Dean, Sanjay Ghemawat, et al: Bigtable: A
Distributed Storage System for Structured Data. OSDI 2006:
205-218
Hadoop
- 成为Apache的独立子项目
- Hadoop生态圈:MapReduce、HDFS、Pig(编程语言)、Hbase、Hive、Zookeeper、Avro…
NoSQL:
数据库回顾
三层视图 两层映射
数据库管理系统体系结构概览
数据库特性:
描述型查询语言
- SQL
- 关系代数/关系演算
- QBE
- Datalog
性能
- ACM SIGMOD Record. 34(2), June 2005, pp.71 - 79
- ACM SIGMOD Record. 32(1), March 2003, pp.53 - 61
– 数据库系统设计的好坏与数据库的性能有很大的关系
- 事务处理
0.2 数据库理论
查询语言基础
– 查询的计算复杂性和表达能力
数据库设计理论
– 依赖理论
事务处理原理
– 并发控制理论和数据库恢复理论
0.3 课程简介
为什么要学习和研究事务处理?
- ACID特性
- 并发控制
数据库遭遇互联网:挑战与机遇
- NoSQL从根本上来说不能算是一个数据库,因为它并没有提供任何SQL接口。但现在常常被用于指“不仅仅是SQL”,泛指非关系型的数据库。 ↩