第五章非关系型数据库.ppt
《第五章非关系型数据库.ppt》由会员分享,可在线阅读,更多相关《第五章非关系型数据库.ppt(107页珍藏版)》请在三一文库上搜索。
1、Cloud ComputingCloud Computing Autumn, 2011 Chapter 5 NoSQL Database Xu Jungang 1 1 *Cloud Computing, GUCAS2 提纲 1. 关系数据库的瓶颈 2. 云计算对数据库技术的要求 3. NoSQL数据库 4. BigTable 5. HBase 2 3 关系数据库的产生 l1970年IBM研究员Edgar Frank Codd发表了业界第一篇关于关系 数据库理论的论文A Relational Model of Data for Large Shared Data Banks,首次提出了关系 模型
2、的概念。 l后来Codd又陆续发表多篇文章 ,奠定了关系数据库的基础。关 系模型有严格的数学基础,抽象 级别比较高,而且简单清晰,便 于理解和使用。 3 关系型数据库的概念 关系数据库,是建立在关系模型基础上的数据库, 借助于集合代数等数学概念和方法来处理数据库中 的数据。现实世界中的各种实体以及实体之间的各 种联系均用关系模型来表示。 SQL是一种基于关系数据库的语言,这种语言执行 对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完 整性约束三部分组成。 4 4 关系操作 关系模块中常用的操作包括: 5 数据查询数据操作 投影增加 连接删除 并修改 除更新 差 5
3、 关系型数据库的优点 操作方便:通过应用程序和后台连接,方便了用户 对数据的操作,特别是没有编程基础的人。 易于维护 :丰富的完整性,包括实体完整性、参照 完整性和用户定义完整性,大大降低了数据冗余和 数据不一致的概率 。 便于访问数据:提供了诸如视图,存储过程,触发 器,索引等对象。 更安全,更快捷 :权限分配和管理,使其较以往的 数据库在安全性上要高的多, 6 6 关系型数据库的瓶颈 (1)关系数据库所采用的二维表格数据模型不能 有效地处理多维数据,不能有效处理互联网应用中 半结构化和非结构化的海量数据,如Web页面、电 子邮件、音频、视频等 7 7 关系型数据库的瓶颈 (2)高并发读写的
4、性能低 关系数据库达到一定规模时,非常容易发生死锁等并发 问题,导致其读写性能下降非常严重。 Web2.0网站数据库并发负载非常高,往往要达到每秒上 万次读写请求。 关系型数据库勉强可以应付上万次SQL查询,但硬盘I/O 往往无法承担上万次的SQL写数据请求。 8 8 关系型数据库的瓶颈 查询效率低 各种等待 9 关系型数据库的瓶颈 (3)支撑容量有限 类似人人网,新浪微博,Facebook,Twitter,Friendfeed (已被Facebook收购)这样的网站,每天用户产生海量 的用户动态信息。 (a)以Facebook为例,一个月就要存储1350亿条(未得 到确认)用户动态,对于关系
5、数据库来说,在一张1350亿 条记录的表里面进行SQL查询,效率是极其低下乃至不可 忍受的。 (b)再例如大型Web网站或IM的用户登录系统,例如腾 讯,MSN,动辄数以亿计的帐号,关系数据库也很难应付 。 10 关系型数据库的瓶颈 (4)数据库的可扩展性和可用性低 当一个应用系统的用户量和访问量与日俱增的时候,传统 的关系型数据库却没有办法像Web Server那样简单地通过 添加更多的硬件和服务节点来扩展性能和负载能力。 对于很多需要提供不间断服务的系统来说,对数据库系统 进行升级和扩展往往需要停机维护和数据迁移 11 关系型数据库的瓶颈 12 关系型数据库的瓶颈 (5)建设和运维成本高
6、企业级关系数据库的价格很高,并且随着系统的规模增大 而不断上升。 高昂的建设和运维成本无法满足云计算应用对数据库的需 求。 13 *Cloud Computing, GUCAS14 提纲 1. 关系数据库的瓶颈 2. 云计算对数据库技术的要求 3. NoSQL数据库 4. BigTable 5. HBase 14 大量Web 2.0网站 15 大量Web 2.0网站 16 Types of Cloud Service ProviderTypes of Cloud Service Provider 云服务提供商类型云服务提供商类型 SaaSSaaS Software as a ServiceSo
7、ftware as a Service 软件即服务软件即服务 PaaSPaaS Platform as a ServicePlatform as a Service 平台即服务平台即服务 IaaSIaaS Infrastructure as a ServiceInfrastructure as a Service 基础设施即服务基础设施即服务 17 AaaSArchitecture as a Service BaaSBusiness as a Service CaaSComputing as a Service DaaSData as a Service DBaaSDatabase as a
8、Service EaaSEthernet as a Service FaaSFrameworks as a Service GaaSGlobalization or Governance as a Service HaaSHardware as a Service IMaaSInformation as a Service IaaSIaaS Infrastructure or Integration as a ServiceInfrastructure or Integration as a Service IDaaSIdentity as a Service LaaSLending as a
9、 Service MaaSMashups as a Service OaaSOrganization or Operations as a Service SaaSSaaSSoftware or Storage as a ServiceSoftware or Storage as a Service PaaSPaaSPlatform as a ServicePlatform as a Service TaaSTechnology or Testing as a Service VaaSVoice as a Service Everything as a ServiceEverything as
10、 a Service任何事物都是一种服务任何事物都是一种服务 引用自 : https:/ Customer-OrientedCustomer-Oriented 客户导向客户导向 18 云计算对数据库技术的需求 海量数据处理:需要能够处理PB级的数据。 大规模集群管理:分布式应用可以更加简单地部署 、应用和管理。 低延迟读写速度:快速的响应速度能够极大地提高 用户的满意度。 较低的建设及运营成本:云计算应用的基本要求是 希望在硬件成本、软件成本以及人力成本方面都有 大幅度的降低。 19 *Cloud Computing, GUCAS20 提纲 1. 关系数据库的瓶颈 2. 云计算对数据库技术的要
11、求 3. NoSQL数据库 4. BigTable 5. HBase 20 What is NoSQL? In computing, NoSQL (sometimes expanded to “not only SQL“) is a broad class of database management systems that differ from classic relational database management systems (RDBMSes) in some significant ways. These data stores may not require fixed
12、table schemas, usually avoid join operations, and typically scale horizontallyWikipedia NoSQL是一种与关系型数据库管理系统截然不同的 数据库管理系统,它的数据存储格式可以是松散的 、通常不支持Join操作并且易于横向扩展。也可以 称之为非关系型数据库。 21 NameAgeGenderBirthday a20M1990-10-1 b40F1970-8-24 c30M1980-1-18 关系型数据库 Name : a Age : 20 Gender : M Birthday : 1990-10-1 Hob
13、by : travel Name : b Age : 40 Birthday : 1970-8-24 Tel : 12345678 Name : c Age : 30 Gender : M NoSQL An Example of NoSQL 22 SQL PK NoSQL SQLNoSQL - 重量级轻量级 贵便宜 商业开源 成熟时尚、风险 企业通用特定领域、互联网 23 Availability 可用性 Partition Tolerance 分区容错性 Consistency 一致性 RDBMS NoSQL 数据一致更新,所有 数据变动都是同步的 尽管有一些信息丢失 ,系统依旧继续运转 某
14、个节点的宕机不会影 响其他节点继续完成操 作 CAP理论 24 CAP理论 Consistency(一致性): 数据一致更新,所有数据 变动都是同步的 Availability(可用性):某个节点的宕机不会影响其 他节点继续完成操作 Partition tolerance(分区容错性):尽管有一些信息 丢失,系统依旧继续运转可靠性 定理:一个分布式系统不可能满足一致性,可用性和分 区容错性这三个需求,最多只能同时满足两个。 忠告:架构师不要将精力浪费在如何设计能满足三者的 完美分布式系统,而是应该进行取舍。 25 关系数据库的ACID特性 Atomicity(原子性):一个事务中所有操作都必须
15、全部完 成,要么全部不完成。 Consistency(一致性): 在事务开始或结束时,数据库 应该在一致状态。 Isolation(隔离性): 事务将假定只有它自己在操作数据 库,彼此不知晓。 Durability(持久性):一旦事务完成,就不能返回。 跨数据库事务:两阶段提交协议(Two-phase commit, 2PC) 结论:关系型数据库通过把更新操作写到事务型日志里实 现了较高的可靠性,但带来的是写性能的下降 26 BASE模式 BASE模型是反ACID模型,完全不同于ACID模型, 牺牲高一致性,获得可用性或可靠性: Basically Available(基本可用):支持分区失败
16、。 Soft state(软状态):状态可以有一段时间不同步。 Eventually consistent(最终一致):最终数据是一致的 就可以了,而不是时时高一致。 BASE思想主要强调基本的可用性,如果你需要高可用性 ,也就是纯粹的高性能,那么就要以一致性或容错性为牺 牲 27 Web 1.0时代Web 2.0时代 28 Why NoSQL? 对于Web2.0网站来说,关系数据库的很多主要特 性却往往无用武之地。例如: 1. 数据库事务一致性需求: 很多Web实时系统并不要求 严格的数据库事务,对读一致性的要求很低,有些场合 对写一致性要求也不高。因此数据库事务管理成了数据 库高负载之外另
17、一个沉重的负担。 2. 数据库的写实时性和读实时性需求: 对关系数据库来 说,插入一条数据之后立刻查询,是肯定可以读出来这 条数据的,但是对于很多Web应用来说,并不要求这么 高的实时性,比方说某人发一条消息之后,过几秒乃至 十几秒之后,他的订阅者才看到这条动态信息是完全可 以接受的。 29 关系数据库适合这样的场景? 对于Web2.0网站来说,关系数据库的很多主要特 性却往往无用武之地。例如: 3. 对复杂的SQL查询,特别是多表关联查询的需求: (1)任何大数据量的Web系统,都非常忌讳多个大表的关联查 询,以及复杂的数据分析类型的复杂SQL报表查询。 (2)特别是SNS类型的网站,从需求
18、以及产品设计角度,就避 免了这种情况的产生。往往更多的只是单表的主键查询,以及单 表的简单条件分页查询,SQL的功能被极大的弱化了。 因此,关系数据库在这些越来越多的应用场景下 显得就不那么合适了。 30 NoSQL的优势和劣势 优势 扩展简单 读写快速 成本低廉 劣势 不提供对SQL支持 产品不够成熟 很难实现数据的完整性。 缺乏强有力的技术支持。 开源数据库从出现到用户 接受需要一个漫长的过程 。 31 NoSQL分类(按功能) Column-oriented:列式存储,通常不支持join操作,与传统 关系型数据库的行式存储相比他的存储是列式的,这样会让 很多统计聚合操作更简单方便。 Ke
19、y/Value:有点类似常见的HashTable,一个Key对应一个 Value,但是它能提供非常快的查询速度、大的数据存放量 和高并发操作,非常适合通过主键对数据进行查询和修改等 操作。 Document-oriented:Document和Key/value是非常相似的 ,也是一个Key对应一个Value,但是这个Value主要以 JSON(JavaScript Object Notations)或者XML等格式的文 档来进行存储。这种存储方式可以很容易地被面向对象的语 言所使用。 32 Column-oriented Vertica BigTable Hypertable HBase C
20、assandra NoSQL分类(按功能) 33 Key-Value Redis Scalaris MemcacheDB Berkeley DB Dynamo Voldemort Tokyo Cabinet KAI NoSQL分类(按功能) 34 Document-oriented MongoDB Terrastore CouchDB SimpleDB Riak NoSQL分类(按功能) 35 按CAP的组合分类 满足C和A的系统,通常在可扩展性上不太强大: Traditional RDBMSs like Postgres, MySQL, etc (relational) Vertica (c
21、olumn-oriented) Aster Data (relational) Greenplum (relational) 36 按CAP的组合分类 满足C和P的系统,通常性能不是特别高: BigTable (column-oriented/tabular) Hypertable (column-oriented/tabular) HBase (column-oriented/tabular) MongoDB (document-oriented) Terrastore (document-oriented) Redis (key-value) Scalaris (key-value) Me
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 关系 数据库
链接地址:https://www.31doc.com/p-2625597.html