当前课程知识点:数据库系统原理与开发 > 第7章 NoSQL数据库技术 > 7.1 NoSQL数据库概述 > 7.1.1 NoSQL数据库概述-1
同学们大家好
我是第七章NoSQL数据库的
主讲教师张凤荔
现在我们开始学习相关的内容
今天是NoSQL数据库的的第一节
NoSQL数据库概述
我们今天的专题是
来分析一下传统数据库的局限性
本节学习的目标有三个
数据库管理的目标和内容
还有关系数据库局限
以及我们分布式大数据处理
下面我们就从第一个问题来看
数据库管理的目标与内容
这个我们看一下
这个在新的应用领域催生了
数据类型多样化
数据库中处理的数据
不仅是传统的
数字 字符 文本等
还需要视频 音频 图形 图像
动画 HTML/XML 流数据等
更复杂的类型来表达不同的应用
从数据结构设计上来看
新的应用需求要求表现在数据结构
需要结构化 半结构化 非结构化等
各种结构来表示应用的数据
新的应用对数据存储
提出了更多的要求
存储的数据结构和方式
面向不同的应用的
列式存储 图存储 文档存储等等
存储位置透明
而且存储量也等
都要满足海量数据的要求
查询结果以及其数据的存储结果
都要有多维性特征
可以从不同的角度
不同的时间粒度
不同位置粒度
不同关系粒度
和数据的关联方式等
对数据进行多特征的描述
在新的应用领域
数据操作需要满足在数据库中
数据不仅包含通用意义下的
插入 删除 修改 查询等
还需要互操作
例如视频快进 关系图的操作
区域性的操作等等
主动性操作 领域搜索浏览 时态查询等
都要能够进行自定义操作
各种数据统计分析 分类 聚类
预测 离群点发现等操作
计算机和网络技术的不断发展
使数据库技术
不断扩展在各个领域的应用
新的行业也不断出现
数据库的其他需求也必须满足
不断发展的新的应用领域的需求
下面我们的第二个问题
关系数据库局限性
关系型数据库管理系统面临的挑战
因为在关系数据库里
我们用二维表的方式
来存储数据和数据之间的关系
面临新的挑战
网络网格计算 云计算等
提供了网络环境下
数据库的透明存储和处理
数据库技术要和网络技术
紧密相结合
存储价格下降和容量的巨大提升
互联网应用的发展 数据之间的
关系越来越复杂
表达的关系也越来越丰富
在我们的太空探索 生物工程
基因工程等科学研究的数据处理
显然我们的关系数据库
是不能够满足这些需求的
在关系数据库上
进行大规模的事务操作
要解决读操作 修改操作等的
性能问题
网络环境下数据的
分布存储和大量的新事物操作
需要快速的响应
高效的处理才能保证
数据的持久性和可靠性
如何通过大量节点的并行操作
实现大规模数据的高效处理
面临着海量数据
处理方式 存储规模
交互通讯 智能分析等的问题
第二点海量数据的
高效存储和处理
在互联网环境下
各种应用层出不穷
任何一个互联网的应用
都是信息的提供者
任何一个互联网的普通用户
都是信息的提供者
用户可以根据自己的兴趣
或为满足自己的需求
可以在网上提供相关的
生活 学习 交友等
多方面的信息
所以说就产生了海量的数据
对这些数据要进行存储 处理
这个是关系数据库不能做到的
第三点数据库高扩展
和高可用性的需求
在云计算环境下
我们通过互联网
和定制IT的资源共享
按需付费的方式提供服务
使用网络 服务器 存储 应用等
这些在云计算环境下含有
虚拟化 分布式文件系统
分布式数据库 资源管理技术
能耗管理技术等
通过网络以按需
易扩展的方式获取所需的资源
对海量数据的存储和处理
下一点
在处理WEB2.0网站的时候
特别是超大规模
和高并非式社交网络类的网站
需要我们高性性能的要求
主要表现在
主从分离 分库 分表
缓解写的压力 增加读的扩展
高存储表现在海量存储
来缓解数据增长压力
高可用性和高扩展性表现在
我们可以发展
主从 控制 复制等功能
所以基于上面的要求
分布式数据库可以来解决
分布式数据库是
网络和数据库的结合
对上面的问题
提供一个可行的解决方案
第三个问题我们就是
分布式大数据的处理
在这个里面
我们分四个方面来介绍
分布式大数据处理方面的问题
一个是分布式的文件系统
分布式数据库 大数据
分布式大数据
第一个分布式文件系统
分布式文件系统是指
文件系统物理存储资源
不在本地节点上
而是通过计算机网络和节点相连
分布式文件系统
是可以通过单点访问
后台是一个整体的逻辑结构
来支持用户可以透明的访问
系统中的任何文件
分布式系统
将统一网络中的不同计算机上的
共享文件夹组织起来
形成一个
单独的 逻辑的 层次式的
文件共享系统
下面分布式文件系统的特点
第一个特点它的高可靠性
表现在云存储系统支持多个节点
保持多个数据副本的功能
以提供数据的高可靠性
第二点高访问性
根据数据的重要性和访问频率
将数据分级多个副本存储
热点数据并行读写
提高访问效率
在线迁移 复制
存储节点支持
在线迁移 复制 扩容
不影响上层应用
自动负载均衡
使可以根据当天系统的负荷
将原有节点上的数据
迁移到新增的节点上
将有的分片存储
用快为单位作为最小的存储单位
为提高存储和查询的效率
元数据和数据分离
我们可以定义用元数据
来定义数据的数据
根据这些定义的数据
对各种数据进行存储和存储管理
下一个分布式数据库系统
分布式数据库实际上
是我们的数据库技术
和网络技术
的一个结合
它是随着地理上
分布着不同物理位置上的用户
对数据库共享的要求
结合计算机网络技术的发展
使数据库系统上
产生和发展了分布式系统
分布式系统有它的思想
是将数据分散存储
海量数据逻辑分片
存储容量大 并发访问量高
我们这个图是给出了
分布式数据库系统的一个体系结构
我们所有的数据库
是通过网络来进行访问的
每一个数据库节点
包括了全局数据库系统
局部数据库系统
还有网络系统
每个节点提供节点自治
提供自己的服务
下面我们来分析一下
分布式数据库系统的特点
第一个特点是数据的物理分布性
数据库中的数据
不是集中存储在
一个场地的一台计算机上
而使分布在不同场地的
多台计算机上
数据的逻辑整体性
数据库在物理上是分布的
它们在逻辑上是相互联系的整体
它不同于通过计算机网络互连的
多个独立的数据库系统
数据的分布独立性
也称我们分布透明性
分布式数据库
除了数据的物理独立性
和数据的逻辑独立性外
还有数据的分布独立性
场地自治和协调
系统中的每个结点都具有独立性
完成局部的应用
每个结点又是整个系统的一部分
通过网络处理全局的数据
数据的冗余及冗余透明性
分布式数据库中存在适当冗余
以适合分布处理的特点
提高系统处理效率和可靠性
下面我们来讨论一下
大数据的一个特点
大数据实际上就是
我们的海量数据加复杂计算
大数据的5V特征
第一个特征是超量
第二个高速 异构 真实 价值
下面我们分别对这几个特性
作一个解释
超量Volume这个就是说数据量大
大数据的起始单位
计量单位至少是
P(1000个T) E(100万个T)或Z(10亿个T)
而且种类繁多
种类繁多就是数据的类型繁多
包括网络日志 音频 视频 图片
地理位置信息等等
多类型的数据对数据的处理能力
提出了更高的要求
第三个是价值密度低
是说数据的密度相对较低
如随着互联网的广泛应用
信息感知无处不在
信息的海量
但有价值的密度较低
如何通过强大的及其学习算法
更迅速的完成数据的价值提纯
是大数据时代存的一个解决的难题
下面一个是时效高
使大数据处理速度快
时效性要求高
而且这些数据
产生于我们日常的生活中
第五个特征价值
就是如何在大数据里
找到一些 发现一些知识
发现大数据的价值
这也是大数据时代
对人类数据驾驭能力
提出了新的挑战
也为人们获得更为深刻的
全面的洞察力
提供了全所未有的空间和潜力
下面一个我们来看一下
大数据的挑战
第一个就是
数据的异构性和不完备性
在大数据环境里面多种多样
图 文 声相貌的数据并存
而且数据的收集和产生
可能有很多不完备性
数据处理的时效性
很多数据是在某一个时刻发生
过了这个时刻
这个数据就没有用了
数据的安全与隐私保护
这个是在网络环境下
数据的安全和我们个人的隐私
这也是非常重要的
大数据的能耗问题
因为大数据需要
大量的计算资源进行处理
所以能耗也是
一个非常重要的一个问题
大数据管理易用性问题
大数据环境下
我们在不同分门别类
不同应用 不同产品的
数据的管理
提出了不同的要求
这样对它的易用性很难保证
这个对所有的环节都是适用的
所以易用性问题
也是一个非常重要的挑战
所以说有了这些问题
我们的数据库技术
就要在这个基础上
来进行易扩展
在处理灵活的数据模型
高可用 大数据量 高性能方面
提出我们新的解决方案
下面我们来看一下分布式大数据
分布式大数据实际上
也就是在我们大数据时代的一个
另外的一个要求
海量数据存储的关键技术
包括我们的数据的划分
分布式数据的一致性
可用性 负载均衡 容错处理
虚拟存储和云存储等
要求我们在分布式数据库的基础上
具有更高的数据访问速度
更强的扩展性和更高的并发控制
对可用性 一致性
高并发 高容量等的平衡
在我们大数据里面如何来考虑
由于这些问题我们进入大数据时代
我们的NoSQL提出了
一个新的解决方案
Nosql数据库
它的特点易扩展
灵活的数据模型
而且高可用
可以处理大数据量
而且性能比较高
所以说它是在
基于分布式数据库的基础
对高扩展性和高并发性
高可用性特征进行扩展
可以响应大规模用户的读/写请求
对海量数据可以进行随机读/写
而且还提供容错机制
实现对数据的冗余备份
保证数据和服务的高度可靠性
下面我们来看一下
NoSQL的基本的一些特点
也是面对海量大数据的存储和管理
需要对关系数据库进行扩充
还有它的
数据模型板简单
而且它是可扩展
避免复杂对象操作
元数据和应用是分离的
可以实现高水平的扩展
和低端硬件集群
最后它是实现了弱一致性
这个我们会在后面详细说明
-1.1 数据库及其系统概念
-1.2 数据库技术发展
-1.3 数据库应用系统
-1.4 典型数据库管理系统
-1.5 PostgreSQL对象-关系数据库系统软件
-第1章 数据库系统概论--本章单元测试
-2.1 关系及其相关概念
-2.2 关系模型原理
-2.3 PostgreSQL数据库关系操作实践
-第2章 数据库关系模型--本章单元测试
-3.1 SQL语言概述
-3.2 数据定义SQL语句
-3.3 数据操纵SQL语句
-3.4 数据查询SQL语句
-3.5 数据控制SQL语句
-3.6 视图SQL语句
-3.7 PostgreSQL数据库SQL实践
-第3章 数据库操作SQL语言--本章单元测试
-4.1 数据库设计概述
-4.2 E-R模型方法
-4.3 数据库建模设计
-4.4 数据库规范化设计
-4.5 数据库设计模型SQL实现
-4.6 基于Power Designer的数据库设计建模实践
--4.6 基于Power Designer的数据库设计建模实践
-第4章 数据库设计与实现--本章单元测试
-5.1 数据库管理概述
-5.2 事务管理
--5.2 事务管理
-5.3 并发控制
-5.4 安全管理
-5.5 数据库备份与恢复
-5.6 PostgreSQL数据库管理项目实践
-第5章 数据库管理--本章单元测试
-6.1 数据库连接技术
-6.2 数据库存储过程
-6.3 数据库触发器
-6.4 数据库游标
-6.5 嵌入式SQL编程
-第6章 数据库应用编程--本章单元测试
-7.1 NoSQL数据库概述
-7.2 列存储数据库
-7.3 键值对数据库
-7.4 文档型数据库
-7.5 图形数据库
-7.6 HBase数据库项目实践
-第7章 NoSQL数据库技术--本章单元测试
-期末测试--期末测试