6 1非关系型数据库 12 NOSQL的分类与特性 ¤与关系型数据库不同,非关系型数据库并没有一个统一的架构,两种非关系型 数据库之间的差异程度远远超过两种关系型数据库之间的差异。 非关系型数据库通常具有较强应用场景适应性,不同应用场景下应选用不同产品。 ■常见的非关系型数据库包括键值数据库、列族数据库、文档数据库和图形数据库。 键值 列组 文档 图性 数据库 数据库 数据库 数据库 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 与关系型数据库不同,非关系型数据库并没有一个统一的架构,两种非关系型 数据库之间的差异程度远远超过两种关系型数据库之间的差异。 ◼ 非关系型数据库通常具有较强应用场景适应性,不同应用场景下应选用不同产品。 ◼ 常见的非关系型数据库包括键值数据库、列族数据库、文档数据库和图形数据库。 6 1.2 NoSQL的分类与特性 键值 数据库 列组 数据库 文档 数据库 图性 数据库
7 非关系型数据库分类和特性 分类 相关产品 应用场景 数据模型 优点 缺点 键值数据库 Redis、 Memcached < key, value>键值对,通 内容缓存、频繁读写过散列表实现 大量操作时性能高数据无结构化 列族数据库 HBase、 Cassandra 分布式数据存储与管理以列族式存储,将同一查找速度快,复杂功能局限,不支持 列数据存储在一起 性低 事务的强一致性 文档数据库 MongoDB、 Elasticsearch WebE用、面向文档或| <key, value>,vae是s|数据结构灵活 半结构化的数据 ON结构的文档 缺乏统一查询语法 图形数掘库N640a推荐系练、构建关系图|图结构 支持复杂的图形算复杂性高,只能支 持一定的数据规模
7 分类 相关产品 应用场景 数据模型 优点 缺点 键值数据库 Redis、Memcached 内容缓存、频繁读写 <key,value>键值对,通 过散列表实现 大量操作时性能高 数据无结构化 列族数据库 HBase、Cassandra 分布式数据存储与管理 以列族式存储,将同一 列数据存储在一起 查找速度快,复杂 性低 功能局限,不支持 事务的强一致性 文档数据库 MongoDB、Elasticsearch Web应用、面向文档或 半结构化的数据 <key,value>,value是JS ON结构的文档 数据结构灵活 缺乏统一查询语法 图形数据库 Neo4j、AllegroGraph 推荐系统、构建关系图 谱 图结构 支持复杂的图形算 法 复杂性高,只能支 持一定的数据规模 非关系型数据库分类和特性
8 1非关系型数据库 1.3 CAP 口CAP理论是由 Eric Brewer在2001年提出的,他指出对于一个分布式计算系统来 说,不可能同时满足以下三点。 一致性( Consistency) 口一致性是指更新操作成功后,所有节点在同一时间的数据完全一致。 可用性( Availability) 口可用性是指用户访问数据时,系统是否能在正常响应时间返回结果。 分区容错性( Partition tolerance) ¤分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足 致性和可用性的服务。 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 CAP理论是由Eric Brewer在2001年提出的,他指出对于一个分布式计算系统来 说,不可能同时满足以下三点。 ◼ 一致性(Consistency) 一致性是指更新操作成功后,所有节点在同一时间的数据完全一致。 ◼ 可用性(Availability) 可用性是指用户访问数据时,系统是否能在正常响应时间返回结果。 ◼ 分区容错性(Partition Tolerance) 分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足 一致性和可用性的服务。 8 1.3 CAP
Redis 选择 特征 实例 一致性+可用性 2PC缓存验证 单机数据库、集群数据库、LDAP、xFS Avail ability Partition Tolerance 一致性+分区容忍性 乐观锁 分布式系统、分布式锁、大部分的协议 可用性+分区容忍性 冲突解决,乐观化coda(分布式档案系统)、网络缓存、DNS Cassandra Riak
9 选择 特征 实例 一致性+可用性 2PC缓存验证 单机数据库、集群数据库、LDAP、xFS 一致性+分区容忍性 乐观锁 分布式系统、分布式锁、大部分的协议 可用性+分区容忍性 冲突解决,乐观化 Coda(分布式档案系统)、网络缓存、DNS
10 择 例子 对应功能分类 关系型数据库 Redis 一致性+可用性 Vertica 列存储数据库 Big Table 列存储数据库 Avail ability Partition Tolerance 一致性+分区容忍性 HBase 列存储数据库 MongoDB 文档型数据库 键值存储数据库 Cassandra 可用性+分区容忍性 Cassandra 列存储数据库 Riak
10 选择 例子 对应功能分类 一致性+可用性 MySQL 关系型数据库 Vertica 列存储数据库 一致性+分区容忍性 BigTable 列存储数据库 HBase 列存储数据库 MongoDB 文档型数据库 可用性+分区容忍性 Dynamo 键值存储数据库 Cassandra 列存储数据库