非关系型数据库.ppt
《非关系型数据库.ppt》由会员分享,可在线阅读,更多相关《非关系型数据库.ppt(107页珍藏版)》请在三一办公上搜索。
1、1,Cloud Computing,Autumn,2011,Chapter 5NoSQL DatabaseXu Jungang,1,2023/11/6,Cloud Computing,GUCAS,2,提纲,1.关系数据库的瓶颈2.云计算对数据库技术的要求3.NoSQL数据库 4.BigTable5.HBase,3,关系数据库的产生,1970年IBM研究员Edgar Frank Codd发表了业界第一篇关于关系数据库理论的论文A Relational Model of Data for Large Shared Data Banks,首次提出了关系模型的概念。后来Codd又陆续发表多篇文章,奠定
2、了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。,关系型数据库的概念,关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。SQL是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。,4,关系操作,关系模块中常用的操作包括:,5,关系型数据库的优点,操作方便:通过应用程序和后台连接,方便了用户对数据的操作,特别是没有编程基础的人。易于维护:丰富的完整性,包括实体完整
3、性、参照完整性和用户定义完整性,大大降低了数据冗余和数据不一致的概率。便于访问数据:提供了诸如视图,存储过程,触发器,索引等对象。更安全,更快捷:权限分配和管理,使其较以往的数据库在安全性上要高的多,,6,关系型数据库的瓶颈,(1)关系数据库所采用的二维表格数据模型不能有效地处理多维数据,不能有效处理互联网应用中半结构化和非结构化的海量数据,如Web页面、电子邮件、音频、视频等,7,关系型数据库的瓶颈,(2)高并发读写的性能低关系数据库达到一定规模时,非常容易发生死锁等并发问题,导致其读写性能下降非常严重。Web2.0网站数据库并发负载非常高,往往要达到每秒上万次读写请求。关系型数据库勉强可以
4、应付上万次SQL查询,但硬盘I/O往往无法承担上万次的SQL写数据请求。,8,关系型数据库的瓶颈,查询效率低,各种等待,关系型数据库的瓶颈,(3)支撑容量有限类似人人网,新浪微博,Facebook,Twitter,Friendfeed(已被Facebook收购)这样的网站,每天用户产生海量的用户动态信息。(a)以Facebook为例,一个月就要存储1350亿条(未得到确认)用户动态,对于关系数据库来说,在一张1350亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。(b)再例如大型Web网站或IM的用户登录系统,例如腾讯,MSN,动辄数以亿计的帐号,关系数据库也很难应付。,关系型数
5、据库的瓶颈,(4)数据库的可扩展性和可用性低当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法像Web Server那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供不间断服务的系统来说,对数据库系统进行升级和扩展往往需要停机维护和数据迁移,关系型数据库的瓶颈,关系型数据库的瓶颈,(5)建设和运维成本高企业级关系数据库的价格很高,并且随着系统的规模增大而不断上升。高昂的建设和运维成本无法满足云计算应用对数据库的需求。,2023/11/6,Cloud Computing,GUCAS,14,提纲,1.关系数据库的瓶颈2.云计算对数据库技术的要求3.
6、NoSQL数据库 4.BigTable5.HBase,大量Web 2.0网站,大量Web 2.0网站,Types of Cloud Service Provider云服务提供商类型,SaaSSoftware as a Service软件即服务,PaaSPlatform as a Service平台即服务,IaaSInfrastructure as a Service基础设施即服务,AaaSArchitecture as a ServiceBaaSBusiness as a ServiceCaaSComputing as a ServiceDaaSData as a ServiceDBaaSDa
7、tabase as a ServiceEaaSEthernet as a ServiceFaaSFrameworks as a ServiceGaaSGlobalization or Governance as a ServiceHaaSHardware as a ServiceIMaaSInformation as a ServiceIaaSInfrastructure or Integration as a ServiceIDaaSIdentity as a ServiceLaaSLending as a ServiceMaaSMashups as a ServiceOaaSOrganiz
8、ation or Operations as a ServiceSaaSSoftware or Storage as a ServicePaaSPlatform as a ServiceTaaSTechnology or Testing as a ServiceVaaSVoice as a Service,Everything as a Service任何事物都是一种服务,引用自:,Customer-Oriented客户导向,云计算对数据库技术的需求,海量数据处理:需要能够处理PB级的数据。大规模集群管理:分布式应用可以更加简单地部署、应用和管理。低延迟读写速度:快速的响应速度能够极大地提高用
9、户的满意度。较低的建设及运营成本:云计算应用的基本要求是希望在硬件成本、软件成本以及人力成本方面都有大幅度的降低。,2023/11/6,Cloud Computing,GUCAS,20,提纲,1.关系数据库的瓶颈2.云计算对数据库技术的要求3.NoSQL数据库 4.BigTable5.HBase,What is NoSQL?,In computing,NoSQL(sometimes expanded to not only SQL)is a broad class of database management systems that differ from classic relationa
10、l database management systems(RDBMSes)in some significant ways.These data stores may not require fixed table schemas,usually avoid join operations,and typically scale horizontallyWikipedia NoSQL是一种与关系型数据库管理系统截然不同的数据库管理系统,它的数据存储格式可以是松散的、通常不支持Join操作并且易于横向扩展。也可以称之为非关系型数据库。,关系型数据库,NoSQL,An Example of No
11、SQL,SQL PK NoSQL,SQLNoSQL-重量级轻量级贵便宜商业开源成熟时尚、风险企业通用特定领域、互联网,RDBMS,NoSQL,数据一致更新,所有数据变动都是同步的,尽管有一些信息丢失,系统依旧继续运转,某个节点的宕机不会影响其他节点继续完成操作,CAP理论,CAP理论,Consistency(一致性):数据一致更新,所有数据变动都是同步的Availability(可用性):某个节点的宕机不会影响其他节点继续完成操作Partition tolerance(分区容错性):尽管有一些信息丢失,系统依旧继续运转可靠性,定理:一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,
12、最多只能同时满足两个。,忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。,关系数据库的ACID特性,Atomicity(原子性):一个事务中所有操作都必须全部完成,要么全部不完成。Consistency(一致性):在事务开始或结束时,数据库应该在一致状态。Isolation(隔离性):事务将假定只有它自己在操作数据库,彼此不知晓。Durability(持久性):一旦事务完成,就不能返回。跨数据库事务:两阶段提交协议(Two-phase commit,2PC),结论:关系型数据库通过把更新操作写到事务型日志里实现了较高的可靠性,但带来的是写性能的下降,BASE模
13、式,BASE模型是反ACID模型,完全不同于ACID模型,牺牲高一致性,获得可用性或可靠性:Basically Available(基本可用):支持分区失败。Soft state(软状态):状态可以有一段时间不同步。Eventually consistent(最终一致):最终数据是一致的就可以了,而不是时时高一致。,BASE思想主要强调基本的可用性,如果你需要高可用性,也就是纯粹的高性能,那么就要以一致性或容错性为牺牲,Web 1.0时代,Web 2.0时代,Why NoSQL?,对于Web2.0网站来说,关系数据库的很多主要特性却往往无用武之地。例如:1.数据库事务一致性需求:很多Web实时
14、系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载之外另一个沉重的负担。2.数据库的写实时性和读实时性需求:对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多Web应用来说,并不要求这么高的实时性,比方说某人发一条消息之后,过几秒乃至十几秒之后,他的订阅者才看到这条动态信息是完全可以接受的。,关系数据库适合这样的场景?,对于Web2.0网站来说,关系数据库的很多主要特性却往往无用武之地。例如:3.对复杂的SQL查询,特别是多表关联查询的需求:(1)任何大数据量的Web系统,都非常忌讳多个大表的关
15、联查询,以及复杂的数据分析类型的复杂SQL报表查询。(2)特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。因此,关系数据库在这些越来越多的应用场景下显得就不那么合适了。,NoSQL的优势和劣势,优势扩展简单读写快速成本低廉,劣势不提供对SQL支持产品不够成熟很难实现数据的完整性。缺乏强有力的技术支持。开源数据库从出现到用户接受需要一个漫长的过程。,NoSQL分类(按功能),Column-oriented:列式存储,通常不支持join操作,与传统关系型数据库的行式存储相比他的存储是列式的
16、,这样会让很多统计聚合操作更简单方便。Key/Value:有点类似常见的HashTable,一个Key对应一个Value,但是它能提供非常快的查询速度、大的数据存放量和高并发操作,非常适合通过主键对数据进行查询和修改等操作。Document-oriented:Document和Key/value是非常相似的,也是一个Key对应一个Value,但是这个Value主要以JSON(JavaScript Object Notations)或者XML等格式的文档来进行存储。这种存储方式可以很容易地被面向对象的语言所使用。,Column-orientedVerticaBigTable Hypertable
17、HBaseCassandra,NoSQL分类(按功能),Key-ValueRedisScalarisMemcacheDBBerkeley DBDynamoVoldemortTokyo CabinetKAI,NoSQL分类(按功能),Document-orientedMongoDBTerrastoreCouchDBSimpleDBRiak,NoSQL分类(按功能),按CAP的组合分类,满足C和A的系统,通常在可扩展性上不太强大:Traditional RDBMSs like Postgres,MySQL,etc(relational)Vertica(column-oriented)Aster D
18、ata(relational)Greenplum(relational),按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)MemcacheDB(key-value)Berkeley DB(key-value),按C
19、AP的组合分类,满足A和P的系统,通常可能对一致性要求低一些:Dynamo(key-value)Voldemort(key-value)Tokyo Cabinet(key-value)KAI(key-value)Cassandra(column-oriented/tabular)CouchDB(document-oriented)SimpleDB(document-oriented)Riak(document-oriented),Row Store and Column Store,In row store data are stored in the disk tuple by tuple.
20、Where in column store data are stored in the disk column by column,Row Store and Column Store,So column stores are suitable for read-mostly,read-intensive,large data repositories,列式数据库是革命性的,传统行式数据库,c5,c4,c3,c2,c1,c9,c8,c7,c6,r1,r2,r3,r4,r5,列式数据库,c5,c4,c3,c2,c1,c9,c8,c7,c6,r1,r2,r3,r4,r5,数据按列存储 每一列单独
21、存放数据即是索引只访问查询涉及的列 大量降低系统IO每一列由一个线索来处理 查询的并发处理数据类型一致,数据特征相似 方便压缩,数据是按行存储的没有索引的查询使用大量I/O建立索引和物化视图需要花费大量时间和资源面对查询的需求,数据库必须被大量膨胀才能满足性能要求,Key/Value数据模型,域(Domain)+数据项(Item)域类似于“表”,但无结构;作用是容纳所有的数据项在同一个域中存储的数据项可以存在很大的差异,42,Key/Value PK Relational Database,SQL PK API,关系数据库的数据创建、更新、删除和获取都使用SQL完成,SQL查询可以从单个表或是
22、通过多个表的Join操作来获取数据,SQL查询包括聚集、复杂的数据过滤等功能,传统关系数据库还包括将一些数据处理逻辑嵌入到数据存储中的实现。例如存储过程、触发器等。Key/Value数据的创建、更新、删除和获取都是用API方法调用。,44,Key/Value应用,Amazon Dynamo,Yahoo!PNUTS等均是使用Key/Value数据结构同时也有一些Key/Value的变体,如Google Bigtable,Facebook Cassandra,HyperTable等,45,Key/value的优缺点,优点便于扩展,适用于云计算环境与应用程序代码的兼容性更好缺点数据完整性约束移至应用
23、程序目前的很多Key/Value数据存储系统之间不兼容,Document oriented database,A document-oriented database is a computer program designed for storing,retrieving,and managing document-oriented,or semi structured data,information.Document-oriented databases are one of the main categories of so-called NoSQL databases and the
24、 popularity of the term document-oriented database(or document store)has grown with the use of the term NoSQL itself.Documents encodings include XML,YAML,JSON and BSON,as well as binary forms like PDF and Microsoft Office documents(MS Word,Excel,and so on).,Document oriented database,Documents are a
25、ddressed in the database via a unique key that represents that document.this key is a simple string.In some cases,this string is a URI or path RetrievalSupport simple key-document(or key-value)lookupoffer an API or query language that will allow you to retrieve documents based on their contents,An J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库

链接地址:https://www.31ppt.com/p-6491710.html