NoSQL数据库
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NoSQL数据库
14信管一班2组23殷月园
内容大纲
定义
产生
共同特征
分类 适用场景 发展现状 挑战
一.什么是NoSQL数据库?
NoSQL: 即Not Only SQL 与关系型数据库相对应的,也可理解为 no relational ,即非关系型数据库
。
二.NoSQL数据库的产生
关系数据库
A 面临挑战
2、数据库的写实时性和读实时性需求对关系数据库来说,插 入一条数据之后立刻查询,是肯定可以读出来这条数据的, 但是对于很多web应用来说,并不要求这么高的实时性。
3、对复杂的SQL查询,特别是多表关联查询的需求。任何 大数据量的web系统,都非常忌讳多个大表的关联查询, 以及复杂的数据分析类型的复杂SQL报表查询,特别是 SNS类型的网站,从需求以及产品设计角度,就避免了这 种情况的产生。往往更多的只是单表的主键查询,以及单 表的简单条件分页查询,SQL的功能被极大的弱化了。
3、High Scalability && High Availability- 对数据库的高可扩 展性和高可用性的需求
在基于web的架构当中,数据库是最难进行横向扩展的,当 一个应用系统的用户量和访问量与日俱增的时候,你的数据 库却没有办法像web server和app server那样简单的通过添 加更多的硬件和服务节点来扩展性能和负载能力。对于很多 需要提供24小时不间断服务的网站来说,对数据库系统进行 升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁 移,为什么数据库不能通过不断的添加服务器节点来实现扩 展呢?
三.共同特征
对于NoSQL并没有一个明确的范围和定义,但是他们都 普遍存在下面一些共 同特征:
1.不需要预定义模式
不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同 的属性和格式。当插入数据时,并不需要预先定义它们的模式。
2. 无共享架构
相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据 划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于 通过网络传输读取数据的性能,从而提高了系统的性能。
2.列存储数据库 这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但 是它们的特点是指向了多个列。这些列是由列家族来安排的。
3.文档型数据库 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种 键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档 以特定的格式存储。文档型数据库可 以看作是键值数据库的升级版,允 许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
3. 弹性可扩展
可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可 以自动迁移。
4. 分区
相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分 散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能, 又能保证没有单点失效的问题。
5. 异步复制
和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这 样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不 总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
1、High performance - 对数据库高并发读写的需求; 2、Huge Storage - 对海量数据的高效率存储和访问的需求; 3、High Scalability && High Availability- 对数据库的高可扩 展性和高可用性的需求;
1、High performance - 对数据库高并发读写的需求
在上面提到的“三高”需求面前,关系数据库遇到了难以克 服的障碍,而对于web2.0网站来说,关系数据库的很多主要 特性却往往无用武之地,例如:
1、数据库事务一致性需求很多web实时系统并不要求严格的 数据库事务,对读一致性的要求很低,有些场合对写一致性 要求也不高。因此数据库事务管理成了数据库高负载下一个 沉重的负担;
大数据 B 发展
关系数据库面对超大规模和 高 并 发 的 SNS 类 型 的 web2.0 纯 动 态 网 站 显 得 力 不从心,暴露了很多难以克 服的问题
大规模数据集合,多重 数据带来了许多挑战, 尤其是大数据应用难题 厄待解决
关系数据库面临的挑战
传库在应付web2.0网站,特别是超大规模和高并发的SNS类 型的web2.0纯动态网站已经显得力不从心,暴露了很多难以 克服的问题统的关系数据,例如:
web2.0网站要根据用户个性化信息来实时生成动态页面和提 供动态信息,所以基本上无法使用动态页面静态化技术,因 此数据库并发负载非常高,往往要达到每秒上万次读写请求。 关系数据库应付上万次SQL查询还勉强顶得住,但是应付上 万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于 普通的BBS网站,往往也存在对高并发写请求的需求。
6. BASE
相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终 一致性和软事务。
四.NBiblioteka BaiduSQL数据库的四大分类
1.键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特 定的键和一个指针指向特定的数据。Key/value模型对于IT系 统来说的优势在于简单、易部署。但是如果DBA只对部分值 进行查询或更新的时候,Key/value就显得效率低下了。
4.图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不 同,它是使用灵活的图形模型,并且能够扩展到多个服务器 上。NoSQL数据库没有标准的查询语言(SQL),因此进行数 据库查询需要制定数据模型。许多NoSQL数据库都有REST 式的数据接口或者查询API。
2、Huge Storage - 对海量数据的高效率存储和访问的需求
对于大型的SNS网站,每天用户产生海量的用户动态,以国 外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对 于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查 询,效率是极其低下乃至不可忍受的。再例如大型web网站 的用户登录系统,若没有能够支撑海量数据的高效率存储和 访问需求的数据库,那又如何满足用户的需求?
14信管一班2组23殷月园
内容大纲
定义
产生
共同特征
分类 适用场景 发展现状 挑战
一.什么是NoSQL数据库?
NoSQL: 即Not Only SQL 与关系型数据库相对应的,也可理解为 no relational ,即非关系型数据库
。
二.NoSQL数据库的产生
关系数据库
A 面临挑战
2、数据库的写实时性和读实时性需求对关系数据库来说,插 入一条数据之后立刻查询,是肯定可以读出来这条数据的, 但是对于很多web应用来说,并不要求这么高的实时性。
3、对复杂的SQL查询,特别是多表关联查询的需求。任何 大数据量的web系统,都非常忌讳多个大表的关联查询, 以及复杂的数据分析类型的复杂SQL报表查询,特别是 SNS类型的网站,从需求以及产品设计角度,就避免了这 种情况的产生。往往更多的只是单表的主键查询,以及单 表的简单条件分页查询,SQL的功能被极大的弱化了。
3、High Scalability && High Availability- 对数据库的高可扩 展性和高可用性的需求
在基于web的架构当中,数据库是最难进行横向扩展的,当 一个应用系统的用户量和访问量与日俱增的时候,你的数据 库却没有办法像web server和app server那样简单的通过添 加更多的硬件和服务节点来扩展性能和负载能力。对于很多 需要提供24小时不间断服务的网站来说,对数据库系统进行 升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁 移,为什么数据库不能通过不断的添加服务器节点来实现扩 展呢?
三.共同特征
对于NoSQL并没有一个明确的范围和定义,但是他们都 普遍存在下面一些共 同特征:
1.不需要预定义模式
不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同 的属性和格式。当插入数据时,并不需要预先定义它们的模式。
2. 无共享架构
相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据 划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于 通过网络传输读取数据的性能,从而提高了系统的性能。
2.列存储数据库 这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但 是它们的特点是指向了多个列。这些列是由列家族来安排的。
3.文档型数据库 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种 键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档 以特定的格式存储。文档型数据库可 以看作是键值数据库的升级版,允 许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
3. 弹性可扩展
可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可 以自动迁移。
4. 分区
相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分 散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能, 又能保证没有单点失效的问题。
5. 异步复制
和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这 样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不 总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
1、High performance - 对数据库高并发读写的需求; 2、Huge Storage - 对海量数据的高效率存储和访问的需求; 3、High Scalability && High Availability- 对数据库的高可扩 展性和高可用性的需求;
1、High performance - 对数据库高并发读写的需求
在上面提到的“三高”需求面前,关系数据库遇到了难以克 服的障碍,而对于web2.0网站来说,关系数据库的很多主要 特性却往往无用武之地,例如:
1、数据库事务一致性需求很多web实时系统并不要求严格的 数据库事务,对读一致性的要求很低,有些场合对写一致性 要求也不高。因此数据库事务管理成了数据库高负载下一个 沉重的负担;
大数据 B 发展
关系数据库面对超大规模和 高 并 发 的 SNS 类 型 的 web2.0 纯 动 态 网 站 显 得 力 不从心,暴露了很多难以克 服的问题
大规模数据集合,多重 数据带来了许多挑战, 尤其是大数据应用难题 厄待解决
关系数据库面临的挑战
传库在应付web2.0网站,特别是超大规模和高并发的SNS类 型的web2.0纯动态网站已经显得力不从心,暴露了很多难以 克服的问题统的关系数据,例如:
web2.0网站要根据用户个性化信息来实时生成动态页面和提 供动态信息,所以基本上无法使用动态页面静态化技术,因 此数据库并发负载非常高,往往要达到每秒上万次读写请求。 关系数据库应付上万次SQL查询还勉强顶得住,但是应付上 万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于 普通的BBS网站,往往也存在对高并发写请求的需求。
6. BASE
相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终 一致性和软事务。
四.NBiblioteka BaiduSQL数据库的四大分类
1.键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特 定的键和一个指针指向特定的数据。Key/value模型对于IT系 统来说的优势在于简单、易部署。但是如果DBA只对部分值 进行查询或更新的时候,Key/value就显得效率低下了。
4.图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不 同,它是使用灵活的图形模型,并且能够扩展到多个服务器 上。NoSQL数据库没有标准的查询语言(SQL),因此进行数 据库查询需要制定数据模型。许多NoSQL数据库都有REST 式的数据接口或者查询API。
2、Huge Storage - 对海量数据的高效率存储和访问的需求
对于大型的SNS网站,每天用户产生海量的用户动态,以国 外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对 于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查 询,效率是极其低下乃至不可忍受的。再例如大型web网站 的用户登录系统,若没有能够支撑海量数据的高效率存储和 访问需求的数据库,那又如何满足用户的需求?