《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第1章 NoSQL数据库基础.pptx
- 文档编号:30855105
- 上传时间:2024-03-14
- 格式:PPTX
- 页数:46
- 大小:4.13MB
《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第1章 NoSQL数据库基础.pptx
《《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第1章 NoSQL数据库基础.pptx》由会员分享,可在线阅读,更多相关《《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第1章 NoSQL数据库基础.pptx(46页珍藏版)》请在冰豆网上搜索。
第一章NoSQL数据库基础NoSQL本期导读随着信息化时代的不断发展,数据量急剧增长,关系型数据库遇到了发展瓶颈,于是,一种结构简单、分布式、易扩展的非关系型数据库NoSQL应运而生了。
本章从数据库系统的基本概念入手,介绍关系型数据库及其遇到的瓶颈,从而引出NoSQL数据库,然后介绍分布式数据管理的特点和分布式系统的数据一致性,最后介绍NoSQL数据库的分类。
学习目标了解数据库系统的基本概念和关系型数据库的基本原理。
了解NoSQL数据库的特点和应用场景。
理解分布式数据管理的特点。
掌握CAP理论、BASE理论和最终一致性。
熟悉NoSQL数据库的分类。
目录数据库系统典型应用NoSQL在国内的应用分布式数据管理的特点1.11.21.3分布式系统的数据一致性1.41.5NoSQL数据库分类1.1数据库系统数据库数据库管理系统数据库管理人员数据库系统(databasesystem,DBS)是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
1.1.1数据库系统的基本概念DBS一般由4部分组成应用程序数据库(database,DB)是长期存储于计算机内的、有组织的、可共享的大量数据的集合。
1.1.1数据库系统的基本概念1数据库集合中大量复杂的数据按照一定的数据模型组织、描述和存储,并经过进一步的操作处理之后,能够提供给用户使用。
最早用于数据库系统的数据模型。
该模型使用树形结构表示各类实体和实体间的联系,实体间的联系按照自上而下的层次关系组织起来。
层次模型1.1.1数据库系统的基本概念常见的数据模型有层次模型、网状模型和关系模型。
结构简单清晰查询率高图1-1某学校的组织结构使用网络结构来表示实体间的联系,它弥补了层次模型不适合表示非层次结构数据的缺点。
该模型允许多个节点无双亲,一个节点也可以有多个双亲,各节点之间是多对多的关系(mn)。
网状模型1.1.1数据库系统的基本概念更加直观越来越复杂不易掌握图1-2某学校的教务管理系统无论是实体还是实体间的联系都可用一个满足一定规范条件的二维表(也称为关系)来表示。
关系模型1.1.1数据库系统的基本概念结构简单易懂操作方便有较高的数据独立性表1-1学生信息表有较好的安全保密性1数据定义2数据操纵DBMS提供数据定义语言(datadefinitionlanguage,DDL),用户使用DDL语句定义数据库中数据对象的组成与结构。
1.1.1数据库系统的基本概念2数据库管理系统DBMS提供数据操纵语言(datamanipulationlanguage,DML),用户通过DML语句对数据表中的数据进行操作。
3数据组织、存储和管理1.1.1数据库系统的基本概念由于数据库中会存储大量数据,DBMS须确定以何种文件结构和存取方式对这些数据进行分类组织、存储和管理,从而实现数据之间的联系。
数据组织和存储的基本目标是提高存储空间的利用率,和选择合适的存取方法来提高存取效率。
4数据库的运行管理1.1.1数据库系统的基本概念DBMS提供数据库的运行控制和管理功能,包括多用户环境下的数据库的并发控制、数据库的完整性控制、数据库的安全性控制及发生故障后的数据库恢复,这些功能保证了数据库系统的正常运行。
5数据库的维护1.1.1数据库系统的基本概念包括数据库初始数据的输入、转换,以及数据库的转储、恢复、重组织、性能监控和分析等。
6接口与通信DBMS提供了负责处理数据传送的接口,这些接口与操作系统的联机处理、分时系统及远程作业输入相关。
DBMS还具有与网络中其他软件系统的通信功能和数据库之间的互操作功能。
1.1.1数据库系统的基本概念3应用程序应用程序由开发人员编写,作用是让用户通过应用程序实现对数据库中数据的插入、删除、更新和查询等操作。
这些操作请求首先会发送给DBMS,由DBMS在数据库中进行相应的操作,从而实现用户和数据的交互,同时给用户呈现出一个可视化的界面。
1.1.1数据库系统的基本概念4数据库管理人员主要任务是负责数据库从设计、测试到部署交付的全生命周期的管理和维护,提高数据库管理系统的稳定性和安全性,使数据库具有更高的性能。
1.1.2关系型数据库1关系型数据库简介关系型数据库使用关系模型对数据进行组织。
一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
常见的关系型数据库有MySQL、Oracle、SQLServer和PostgreSQL等。
2SQL技术标准结构化查询语言(structuredquerylanguage,SQL)是关系型数据库的标准语言,是集数据查询、数据定义、数据操纵和数据控制于一体的综合性语言。
1.1.2关系型数据库功能动词命令数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、DELETE、UPDATE数据控制GRANT、REVOKE表1-2SQL中的动词命令不能引用被参照表中不存在的数据。
实体完整性参照完整性实施计划与措施表中必须有主键(能唯一标识一个实体)且不能取空值。
结果与目标对比1.1.2关系型数据库3完整性约束用户自定义完整性在某一具体应用中数据应满足的具体要求。
实施计划与措施事务是数据库管理系统执行过程中的一个逻辑单位,由一系列有限的数据库操作构成。
关系型数据库的事务机制能够提供用户在并发操作时数据的安全性、正确性和一致性。
关系型数据库支持事务的ACID特性,即原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。
1.1.2关系型数据库4.事务机制硬盘I/O是一个瓶颈高并发读写需求纵向扩展会遇到硬件性能的瓶颈海量数据的高效率读写1.1.3关系型数据库的瓶颈处理的复杂度高扩展性1.1.4NoSQL数据库的特点灵活的数据模型易扩展高性能和高可用1.2典型应用NoSQL在国内的应用1.2.1NoSQL在视觉中国网站的应用视觉中国网站是国内最大的创意人群的专业网站。
MongoDB是一个文档数据库,它既有键值数据库的灵活性,又兼容关系型数据库的大部分操作,因此开发效率较高。
不过在最初使用MongoDB时,技术人员也会遇到一些困难,这是因为MongoDB是一个比较新的数据库,相关资源和应用案例较少,但是通过技术人员的不断探索,最后都得以有效解决。
优酷最初使用关系型数据库MySQL存储大量数据,后来针对不同的业务场景选择了不同的、更合适的NoSQL数据库。
部分在线评论业务使用的是MongoDB,运营数据分析及挖掘处理使用的是HBase,在key/value产品方面,使用Redis替代Memcached,在搜索产品中使用的是TokyoTyrant,还对Cassandra等产品进行了研究。
1.2.2NoSQL在优酷的应用豆瓣网以书影音起家,为广大用户提供了一个可以描述和评论书籍、电影、音乐等作品的平台,也提供了书影音推荐和小组话题交流等多种服务功能,致力于帮助都市人群发现生活中有用的事物。
1.2.3NoSQL在豆瓣社区的应用随着数据量(包含非结构化数据)的不断增加,MySQL数据库在存储大文本数据时性能会下降。
而且当时NoSQL数据库还不成熟,所以豆瓣网的工程师团队开始研发贴合自身业务的开源数据存储系统,即BeansDB。
BeansDB是一个针对大数据量、高可用性的分布式key/value存储系统。
目前BeansDB在豆瓣内部建立了两个针对不同场景的集群,分别是DoubanFS和DoubanDB。
1.2.3NoSQL在豆瓣社区的应用DoubanFS是为解决可扩展图片存储问题而提出的,可以直接按照文件名寻找节点,主要存储图片和音频等数据。
DoubanDB是技术人员在DoubanFS的基础上,参照Amazon的Dynamo思想搭建的,主要存储影评、用户个人介绍、帖子等大文本数据,目的是降低MySQL数据库的压力,从而保证了它的性能。
1.2.3NoSQL在豆瓣社区的应用BeansDB最大的特点是伸缩性好。
1.3分布式数据管理的特点1分布透明性在分布式系统中,数据分别存储在通过网络连接的计算机上,但是在逻辑上却是一个统一的整体。
这些数据被所有用户共享,用户访问数据时不需要考虑数据的存储场地和操作的执行场地。
1.3.1透明管理2分片透明性分片是将一个关系分为几个子关系,每个子关系称为一个分片。
一个分片可能会根据具体需求存储在不同场地上,片段是场地上的实际存储副本。
分片透明性指的是用户无须考虑物理层数据分片的具体细节,分片到片段的映射是由系统自动完成的。
1.3.1透明管理图1-6数据分片3复制透明性复制透明性指的是用户只看到单一的数据副本,无须关心各个节点的复制情况,副本数据由系统统一管理。
1.3.1透明管理在分布式环境下,通常将数据复制为多个副本进行存储,但是这种多副本存储的方式会带来一些问题。
1.3.2数据多副本管理
(1)需要副本的数量是多少,以及如何对这些副本进行存储。
(2)当用户发起对副本的写请求时,是否只能写入指定副本。
(3)用户修改了某一个副本的数据,如何将修改同步到系统的所有副本中。
1.4分布式系统的数据一致性CAP指的是分布式系统中的一致性(consistency)、可用性(availability)和分区容错性(partitiontolerance)。
1.4.1CAP理论C一致性在分布式系统中完成某写操作后,任何读操作都应该获取到该写操作写入的那个值。
A大多数应用系统都会响应用户的读写请求,而CAP可用性强调的是响应的时效性。
P当分布式系统中的一部分节点无法和其他节点进行通信时,集群系统仍然能够提供正常服务。
可用性分区容错性1.4.1CAP理论图1-7CAP理论CAP理论指的是在分布式系统中一致性、可用性和分区容错性这3个特性不可兼得,最多同时满足其中的两个。
(1)CA保证了一致性和可用性而放弃分区容错性。
(2)CP保证了一致性和分区容错性而放弃可用性。
(3)AP保证了可用性和分区容错性而放弃一致性。
BASE的基本含义是基本可用(basicallyavailable)、软状态(soft-state)和最终一致性(eventualconsistency)。
1基本可用分布式系统中如果部分节点或功能出现故障,其核心功能或当前重要的功能仍然可以正常运行。
2允许系统出现“中间状态”。
它在NoSQL数据库中体现为允许不同节点的副本之间出现短暂的不一致,但是短暂的不一致不会影响系统的整体可用性。
3系统的状态或者多个副本之间无须保证实时一致,只要最终数据是一致的就可以。
软状态最终一致性1.4.2BASE理论一致性是指如何尽快将更新后的数据复制分布到整个系统,从而保证数据最终一致。
数据更新后,根据其他进程访问到该数据的时间和访问方式的不同,可以将最终一致性分为以下5种。
1.4.3最终一致性
(1)因果一致性。
(2)“读己之所写”一致性。
(3)会话一致性。
(4)单调读一致性。
(5)单调写一致性。
1.5NoSQL数据库分类键值数据库主要应用于少量数据存储、高速读写访问的场合,如存储会话信息、配置文件信息及购物车数据等。
键值数据库采用key/value(键值对)的数据模型。
它用一个哈希表来存储一个特定的键(key)和一个指针指向特定的值(value),用户可通过key对具体的value进行存储和检索,1.5.1键值数据库图1-8键值数据库列族数据库采用面向列的数据模型,用来区别关系型数据库中面向行的存储模式。
列族数据库由多个行组成,每一行由多个列族组成,不同行中列族数量可以是不同的。
列族是多个列的集合,列族中列的数量也可以不同,属于同一个列族的数据会存放在一起。
1.5.2列族数据库1.5.2列族数据库图1-9列族数据库列族数据库主要应用于分布式数据存储与管理的场合。
使用列族数据库的公司有Ebay(Cassandra数据库)、Twitter(Cassandra和HBase数据库)、Facebook(HBase数据库)和Yahoo!
(HBase数据库)等。
文档数据库的数据模型采用的是版本化的文档,用来存储并检索文档数据。
文档以特定的格式进行存储。
文档数据库是通过key对文档进行定位,文档数据库中存储的文档,相当于键值数据库中存储的value。
文档数据库主要应用于存储、索引并管理面向文档或没有固定数据类型的数据,如用户评论、用户注册等。
1.5.3文档数据库图数据库采用图形结构的数据模型,通过节点、边对数据进行高效的存储,节点代表实体,边代表两个节点之间的关系,如图1-10所示。
1.5.4图数据库图1-10图数据库图数据库主要应用于大量复杂、互连接、低结构化的图结构场合,1.5.4图数据库表1-3NoSQL数据库分类数据库分类数据模型优点缺点典型产品键值数据库key/value扩展性好、大量写操作时性能高无法存储结构化信息、条件查询效率较低Redis、Memcached列族数据库列式查找速度快、可扩展性强、复杂性低功能相对局限,不支持事务强一致性HBase、Cassandra文档数据库版本化的文档数据结构很灵活、适合高并发场景缺乏统一的查询语句MongoDB、RavenDB、CouchDB图数据库图结构支持复杂的图形算法、可用于构建复杂的关系图谱复杂性高、不易做分布式集群方案Neo4j、FlockDB谢谢NoSQL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NoSQL数据库原理与应用案例教程 NoSQL数据库原理与应用案例教程PPT课件共9单元第1章 NoSQL数据库基础 NoSQL 数据库 原理 应用 案例 教程 PPT 课件 单元 基础