NoSQL数据库技术课件(全)全书教学教程完整版电子教案最全幻灯片.pptx
《NoSQL数据库技术课件(全)全书教学教程完整版电子教案最全幻灯片.pptx》由会员分享,可在线阅读,更多相关《NoSQL数据库技术课件(全)全书教学教程完整版电子教案最全幻灯片.pptx(676页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、NoSQL数据库技术数据库技术第第1章章 NoSQL数据库概述数据库概述 目录目录什么是什么是NoSQLNoSQL1NoSQLNoSQL种类与特点种类与特点2CAPCAP定理定理3ACIDACID与与BASEBASE4小结小结102最终一致性技术基础最终一致性技术基础5数据复制与分片数据复制与分片6NoSQLNoSQL数据库与云计算数据库与云计算7NoSQLNoSQL数据库与物联网数据库与物联网8NoSQLNoSQL数据库与区块链数据库与区块链91.1 什么是什么是NoSQL3n研究不同特点大数据存储的数据库技术;研究不同特点大数据存储的数据库技术;nNoSQLNoSQL数据库是非关系型数据存
2、储的广义定数据库是非关系型数据存储的广义定义;义;n它不同于符合它不同于符合ACIDACID理论的关系型数据库,数理论的关系型数据库,数据存储不需要固定的表结构;据存储不需要固定的表结构;n通常也不存在连接操作;通常也不存在连接操作;nNoSQLNoSQL数据库不使用传统的关系数据库模型,数据库不使用传统的关系数据库模型,而是使用键值模型、列模型、文档模型、图而是使用键值模型、列模型、文档模型、图模型等方式存储数据。模型等方式存储数据。n数据库应用需求变化数据库应用需求变化n支撑支撑OLTPOLTP型应用:事务处理型应用:事务处理,RDB,RDB的强项的强项n支撑支撑OLAPOLAP型应用:多
3、维分析处理型应用:多维分析处理n新需求:支撑面向大数据的存储、处理与应用新需求:支撑面向大数据的存储、处理与应用n新挑战新挑战none-size does not fit alln高性能、低成本高性能、低成本n不同类型非结构化数据存储与管理不同类型非结构化数据存储与管理n计算机新技术助力计算机新技术助力NoSQLNoSQLn多核、大内存,集群等技术的普及多核、大内存,集群等技术的普及1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 麻省理工麻省理工Michael Stonebraker现代主流数据库系统架构的现代主流数据库系统架构的奠基人,奠基人,20142014年获图灵奖。
4、年获图灵奖。n关系型数据库面临的问题关系型数据库面临的问题n扩展困难扩展困难:由于存在类似:由于存在类似JoinJoin这样多表查询机这样多表查询机制,使得数据库在扩展方面很艰难;制,使得数据库在扩展方面很艰难;n读写慢读写慢:这种情况主要发生在数据量达到一定:这种情况主要发生在数据量达到一定规模时由于关系型数据库系统逻辑复杂,使得规模时由于关系型数据库系统逻辑复杂,使得容易发生死锁等并发问题,所以导致大数据库容易发生死锁等并发问题,所以导致大数据库应用场景中读写速度下滑非常严重;应用场景中读写速度下滑非常严重;n成本高成本高:企业级数据库的:企业级数据库的LicenseLicense价格很惊
5、人,价格很惊人,并且随着系统规模越大,成本越高;并且随着系统规模越大,成本越高;n有限的支撑容量有限的支撑容量:现有关系型解决方案还无法:现有关系型解决方案还无法支撑支撑GoogleGoogle这样海量的数据存储;这样海量的数据存储;1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 n大大数据库存储与管理新需求呼吁技术创新数据库存储与管理新需求呼吁技术创新 n低延迟的读写速度低延迟的读写速度:应用快速地响应能极大地提:应用快速地响应能极大地提升用户的满意度;升用户的满意度;n支撑海量的数据和流量支撑海量的数据
6、和流量:对于互联网等企业级大:对于互联网等企业级大应用而言,需要高效存储处理应用而言,需要高效存储处理PBPB级的数据和百万级的数据和百万级的并发访问量;级的并发访问量;n大规模集群的管理大规模集群的管理:系统管理员希望分布式应用:系统管理员希望分布式应用能更简单的部署和管理;能更简单的部署和管理;n尽可能地降低尽可能地降低运营成本运营成本:ITIT经理们希望在硬件成经理们希望在硬件成本、软件成本和人力成本能够有大幅度地降低;本、软件成本和人力成本能够有大幅度地降低;1.1 什么是什么是NoSQL典型的典型的共性共性需求需求n假设失效是必然发生的假设失效是必然发生的:需要具有高容错性。需要具有
7、高容错性。nNOSQLNOSQL实现都建立在硬盘、机器和网络都会经常性失效假设之上。实现都建立在硬盘、机器和网络都会经常性失效假设之上。n不能彻底阻止这些失效,需要让系统能够在即使非常极端的条件下也不能彻底阻止这些失效,需要让系统能够在即使非常极端的条件下也能应付这些失效。能应付这些失效。n对数据进行分区:对数据进行分区:需要高性能需要高性能n分布式存储,将读写操作的负载分布到了不同的机器上分布式存储,将读写操作的负载分布到了不同的机器上n提高数据存储与访问的并发性。提高数据存储与访问的并发性。n保存同一数据的多个副本:需要保存同一数据的多个副本:需要具有高可用性。具有高可用性。nNOSQLN
8、OSQL提供数据副本机制,副本个数往往可配置提供数据副本机制,副本个数往往可配置n查询支持查询支持n在这个方面,不同的实现有相当本质的区别。不同实现的一个共性在在这个方面,不同的实现有相当本质的区别。不同实现的一个共性在于哈希表中的于哈希表中的 key/value key/value 匹配。匹配。1.2 NoSQL分类与特点分类与特点8类型型Top 3代表代表特点特点图数据数据库(Graph DBMS)Neo4jMicrosoftAzureCosmosDB(Multi-model)OrientDB(Multi-model)图型数据的最佳存储。相比使用传统关系数据库性能更优,存储模式设计与使用更
9、加灵活、简单。文档文档数据数据库(Document Stores)MongoDBAmazonDynamoDB(Multi-model)CoucHBase文档存储一般用类似JSON(JavaScriptObjectNotation)的格式存储,存储的内容是文档型的嵌套结构。可以对某些字段建立索引,实现类似关系数据库的某些功能。键值数据数据库(KV KV DBMS)Redis(Multi-model)AmazonDynamoDB(Multi-model)MicrosoftAzureCosmosDB(Multi-model)可以通过Key快速查询到其Value。一般来说,存储不管Value的格式,照
10、单全收。列族存列族存储(Wide Column Stores)CassandraHBaseMicrosoftAzureCosmosDB(Multi-model)顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,对某一列或者某几列的查询有非常大的性能优势。https:/db- 截止2019年11月排名如下表1.2 NoSQL种类与特点种类与特点9类型型Top 3代表代表特点特点时序序数据数据库(Time Series DBMS)InfluxDBKdb+Prometheus时间序列数据库用于支撑时间序列数据的优化存储,每个条目都有一个相关的时间戳。时间序列数据可以来自传感器、智
11、能电表等,或可以存储一个高频股票交易系统的股票价格波动情况。对象存象存储(Object oriented DBMS)InterSystemsCach(Multi-model)VersantObjectDBObjectStore通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。XML数据数据库MarkLogicOracleBerkeleyDBVirtuoso可以高效地存储XML数据,并支持XML的内部查询语法,如XQuery、Xpath等。原生类XMLDB有BaseX等。RDF数据数据库MarkLogic(Multi-model)Virtuoso(Multi-model)Apache
12、Jena-TDB资源描述框架存储数据库是一种信息的描述方法,最初用于描述元数据。目前主要用于语义网、知识图谱的存储。资源描述框架存储数据库主要以主语、谓语、宾语三元组形式表示信息。搜索引擎搜索引擎(Search Engines)ElasticsearchSplunkSolr搜索引擎是用于数据内容搜索的NoSQL数据库管理系统。除了这种应用的一般优化,专业化数据库通常还支持复杂搜索表达式、全文搜索、源搜索、搜索结果的排序和分组、空间搜索和高扩展性分布式搜索等功能。NoSQL DB的一般共性特点的一般共性特点n1 1)不需要预定义模式不需要预定义模式:不需要事先定义数据模式,:不需要事先定义数据模
13、式,预定义表结构。数据中的每条记录都可能有不同的预定义表结构。数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义它属性和格式,当插入数据时,并不需要预先定义它们的模式;们的模式;n2 2)无共享架构无共享架构:相对于将所有数据存储在网络中:相对于将所有数据存储在网络中的存储区域全共享架构,的存储区域全共享架构,NoSQLNoSQL往往将数据划分后往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,据的性能往往好于通过网络传输读取数据的性能,从而提高系统的性能。从而提高系统的性能
14、。1.2 NoSQL种类与特点种类与特点n3 3)弹性可扩展弹性可扩展:可以在系统运行的时候,:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。数据可以自动迁移。n4 4)分区分区:相对于将数据存放于同一个节点,:相对于将数据存放于同一个节点,NoSQLNoSQL数据库需要将数据进行分区,将记录数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题;保证没有单点失效的问题;n5
15、)5)分发查询到数据分发查询到数据,而非数据到查询;,而非数据到查询;1.2 NoSQL种类与特点种类与特点n6 6)异步复制异步复制:和:和RAIDRAID存储系统不同的是,存储系统不同的是,NoSQLNoSQL中的复制,中的复制,往往是基于日志的异步复往往是基于日志的异步复制制。这样,数据就可以尽快地写入一个节点,。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据;时候,可能会丢失少量的数据;n7 7)BASEBASE:相对于
16、事务严格的:相对于事务严格的ACIDACID特性,特性,NoSQLNoSQL数据库保证的是数据库保证的是BASEBASE特性。特性。1.2 NoSQL种类与特点种类与特点图图数数据据库库:将将数数据据存存储储在在图图(GraphGraph)结结构构中中。如如下下图示是一个简单的有向无环图。图示是一个简单的有向无环图。1.2 NoSQL种类与特点种类与特点n图图术语术语:节点、边、度、路径、最短距离、连通:节点、边、度、路径、最短距离、连通图、全连通图、子图等等。图、全连通图、子图等等。n图数据库可以看作是结点与关系的集合,图数据图数据库可以看作是结点与关系的集合,图数据库就是将数据存储在拥有属
17、性的结点中,并用关库就是将数据存储在拥有属性的结点中,并用关系将这些结点组织起来。系将这些结点组织起来。n数据存储的重要目的是为了检索。图的查找与搜数据存储的重要目的是为了检索。图的查找与搜索可以通过遍历算法完成。索可以通过遍历算法完成。n解决的查询问题根据算法,从开始结点到与之相解决的查询问题根据算法,从开始结点到与之相连的结点查询诸如连的结点查询诸如“某个人好友的好友的好友是某个人好友的好友的好友是哪些人哪些人”等问题。等问题。n节点与节点间的距离(?)可以反映节点间关系节点与节点间的距离(?)可以反映节点间关系的紧密程度。的紧密程度。1.2 NoSQL种类与特点种类与特点n数据可以存储为
18、一个树形结构数据可以存储为一个树形结构n文档数据库就是大量文档树形结构的集合文档数据库就是大量文档树形结构的集合n数据存储模式重点是树形、森林结构的抽象,文档模式可变数据存储模式重点是树形、森林结构的抽象,文档模式可变根节点根节点分支分支分支分支分支分支分支分支值值分支分支分支分支值值值值值值客户客户客户客户1客户客户n标识标识姓名姓名地址地址张三张三城市城市海淀区西土海淀区西土城路城路10号号北京北京112街道街道1.2 NoSQL种类与特点种类与特点文档类文档类:MongoDBMongoDBMongo Server-mongod实例,存储实际数据的模块。Config Server-存储集群
19、的元数据,如分片信息、数据块映射等。config服务器保存了两个映射关系,一个是key区间的数据都存放在那些chunk上的映射关系,另一个是chunk都存放在哪些分片节点上的映射关系。Route Server 客户端访问路由(统一接入点),查询优化,数据合并、排序、裁剪,请求推送等。客户端统一访问路由节点mongos,来进行数据操作。路由节点先访问config服务器获取信息,找到数据真正存放位置,然后再对其进行操作。文档类:文档类:MongoDBMongoDB1.2 NoSQL种类与特点种类与特点1.2 NoSQL种类与特点种类与特点键值类:键值类:RedisRedisn简洁:数据主要采用简洁
20、:数据主要采用Key-ValueKey-Value形式存储,键为唯一标识符。形式存储,键为唯一标识符。n高速:数据驻留内存,高速:数据驻留内存,RedisRedis也支持将内存中的数据持久化到也支持将内存中的数据持久化到磁盘中,重启的时候可以再次加载进行使用,同时保障数据的磁盘中,重启的时候可以再次加载进行使用,同时保障数据的高性能访问及可靠性。高性能访问及可靠性。n易扩展:根据系统负载量,灵活添加或删除服务器。易扩展:根据系统负载量,灵活添加或删除服务器。n对键可设置失效时间,丰富的配置管理功能可以精准地设定数对键可设置失效时间,丰富的配置管理功能可以精准地设定数据服务级别。据服务级别。1.
21、2 NoSQL种类与特点种类与特点列族数据库:列族数据库:HBASEHBASE,大数据技术基础中有学习,大数据技术基础中有学习该类数据库课程重点学习:该类数据库课程重点学习:CassandraCassandra1.3 CAP定理定理n一致性一致性(ConsistencyConsistency)n任何一个读操作总是能读取到之前完成的写操作结果,任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;也就是在分布式环境中,多点的数据是一致的;n可用性可用性(AvailabilityAvailability)n每一个操作总是能够在确定的时间内返回,也就是系每一个操作
22、总是能够在确定的时间内返回,也就是系统随时都是可用的。统随时都是可用的。n分区容忍性分区容忍性(Partition TolerancePartition Tolerance)n在出现网络分区(比如断网)的情况下,分离的系统在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。也能正常运行。一个分布式系统不能同时满足一致一个分布式系统不能同时满足一致性,可用性和分区容错性这三个需性,可用性和分区容错性这三个需求求 ,最多只能同时满足两个。,最多只能同时满足两个。CAPCAP理论理论 1.3 CAP定理定理数据库数据库按按CAPCAP分类分类 (1 1)关注一致性和可用性的)关注一致性和可用
23、性的 (CA)(CA)n这些数据库对于分区容忍性方面比较弱,主这些数据库对于分区容忍性方面比较弱,主要采用复制(要采用复制(ReplicationReplication)这种方式来保证)这种方式来保证数据的安全性,常见的数据的安全性,常见的CACA系统有:系统有:n传统关系型数据库,比如传统关系型数据库,比如PostgresPostgres和和MySQLMySQL等等(Relational)(Relational)nVertica(Column-oriented)Vertica(Column-oriented)nAster Data(Relational)Aster Data(Relation
24、al)nGreenplum(Relational)Greenplum(Relational)1.3 CAP定理定理(2 2)关注一致性和分区容忍性的)关注一致性和分区容忍性的(CP)(CP)n这种系统将数据分布在多个网络分区的节点上,并保证这这种系统将数据分布在多个网络分区的节点上,并保证这些数据的一致性,但是对于可用性的支持方面有问题,比些数据的一致性,但是对于可用性的支持方面有问题,比如当集群出现问题的话,节点有可能因无法确保数据是一如当集群出现问题的话,节点有可能因无法确保数据是一致性的而拒绝提供服务,主要的致性的而拒绝提供服务,主要的CPCP系统有:系统有:nBigTable(Colu
25、mn-oriented)BigTable(Column-oriented)nHypertable(Column-oriented)Hypertable(Column-oriented)nHBase(Column-oriented)HBase(Column-oriented)nMongoDB(Document)MongoDB(Document)nTerrastore(Document)Terrastore(Document)nRedis(Key-value)Redis(Key-value)nScalaris(Key-value)Scalaris(Key-value)nMemcacheDB(Key
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NoSQL 数据库技术 课件 全书 教学 教程 完整版 电子 教案 幻灯片
限制150内