二、数据库技术发展史
1、数据库技术产生与发展
数据库技术应数据管理任务的需要而产生
数据管理的发展
应用需求推动
软硬件的飞速发展为基础
三个阶段
2、数据库系统阶段发展
3、数据库管理三个阶段比较
4、数据库系统优势
整体数据的结构化
数据面向整个系统而不是单个应用,被多个应用共享
数据的共享性高,冗余度低且易扩充
数据独立性高
物理独立性:应用程序与数据库中数据的物理存储是相互独立的
逻辑独立性:应用程序与数据库的逻辑结构是相互独立的
统一管理和控制
数据的安全性保护
数据的完整性检查
并发控制
数据库恢复
5、数据库系统发展特点
数据库系统已经成为计算机信息系统和智能应用系统的核心技术之一和重要基础
数据库系统的发展特点
数据库的发展集中表现在数据模型的发展上
与其他计算机技术交叉结合
面向应用领域发展数据库新技术
6、层次、网状、关系模型
Codd博士继续发表多篇文章,阐述范式理论和衡量关系系统的12条标准,用数学理论奠定了关系模型的基础
关系模型是建立在集合代数基础上的
关系模型是一组关系组成的,每个关系的数据结构都是一张规范化的二维表,如胶片中的学生信息表为例
一个关系通常对应一张表
元组:表中的一行为一个元组
属性:表中的一列为一个属性
码:也称为键
域:一组相同数据类型的值的集合
关系模式:关系名(属性1,属性2,属性3,......属性n)
比如例子中的关系就是学生(学号,姓名,年龄,性别)
7、结构化查询语言
SQL语言
高级的非过程化编程语言,允许用户在高层数据结构上工作
不要求用户指定数据存放方法
不需要用户了解具体数据存放方式
底层结构完全不同的各种关系型数据库系统可以使用相同的SQL语言作为数据操作和管理的接口
8、关系型数据库ACID特性
原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中的操作,要么全做,要么全不做
一致性(Consistency)
事务的执行结果必须是使数据库从一个一致性状态转到另一个一致性状态
隔离性(Isolation)
数据库中一个事务的执行不能被其他事务干扰,即一个事务的内部操作及使用的数据对其他事务是隔离的,并发执行的各个事务不能相互干扰
持久性(Durability)
事务一旦提交,对数据库中数据的改变是永久的,提交后的操作或者故障不会对事务的操作结果产生任何影响
9、关系型数据库产品历史回顾
10、其他数据模型
面相对象数据模型(Object Oriented Data Model,OO模型)
将语义数据模型和面向对象程序设计方法结合起来,用一系列面向对象核心概念构成模型基础
由于面向对象数据库操作语言过于复杂,没有得到开发人员认可
XML数据模型
随着互联网迅速发展,出现了大量的半结构化和非结构化数据源,XML成为网上交换数据的标准之一以及研究热点,相应的出现了半结构化数据的XML数据模型
纯XML数据库基于XML节点数模型,可以支持XML数据管理,但是同样要解决传统关系型数据库所面临的各种问题
RDF数据模型
互联网的信息没有统一表达方式,W3C提出资源描述框架(Resource Description Framework,RDF)来描述和注解互联网资源
RDF是描述互联网资源的标记语言,结构为(主语,谓语,宾语)
主要用于语义网、知识库的基础数据模型,是当前知识图谱技术的基石
11、数据管理技术的新挑战
高度可扩展性和可伸缩性
随着数据获取手段的自动化,多样化和智能化,导致数据量急剧增大
数据类型多样和异构处理能力
结构化数据到半结构化/非结构化数据
文本到图形图像,音频视频等多媒体数据
流数据、队列数据
数据处理时效性要求
传感、网络和通信技术发展对于数据快速流入和处理,实时性方面提出了更高要求
大数据时代来临
传统关系型数据库面临海量异构、形式复杂、高速增长、价值密度低的数据问题遇到全面挑战
NOSQL技术顺应大数据发展的需要,蓬勃发展
12、NoSQL技术特点和类型
NoSQL(Not Only SQL)
非关系型的、分布式的、不保证满足ACID特性的一类数据管理系统
技术特点
对数据进行分区(partitioning),利用大量节点并行处理获得高性能,同时能够采用横向扩展方式(scale out)
降低ACID一致性约束,允许暂时不一致,接受最终一致性,遵循BASE(Basically Available,Softstate,Eventual Consistency)原则
各数据分区提供备份(一般是三份),对应节点故障,提高系统可用性
13、主要NoSQL数据库简介
NoSQL并不是为了取代RDBMS
优势显著,缺点也较为明显
与RDBMS一起构建完整的数据生态系统
14、NewSQL浅谈
NewSQL浅谈指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景
能够支持SQL作为主要的使用语言
NewSQL的分类
采用了新架构重新构建产品
shared-nothing,多节点并发控制,分布式处理,利用复制实现容错,流式控制等技术架构
Google Spanner,H-Store,VoltDB等
采用Transparent Sharding中间件技术
数据分片(sharding)的过程对于用户来说是透明的(transparent),用户的应用程序不需要做出变化
Oracle Mysql Proxy,MariaDB MaxSacle等
DAAS(Database-as-a-Service,数据库即服务)
云服务商提供的数据库产品,云服务商提供具备NewSQL特性的数据库产品
Amazion Aurora,阿里云的Oceanbase,腾讯云的CynosDB