初识NoSql

随着互联网的发展,人们对互联网的应用也越来越多,同时产生数据也在飞速的增加,据统计,数据量以每年百分之五十的增长速度不断进行增加(数据摩尔定律)。大数据飞速的发展,然而,大数据在推动技术变革的同时,企业对海量数据的存储、并发访问、扩展等要求越来越高。由于传统关系型数据库的ACID原则、结构规整以及表连接操作等特性成为制约海量数据存储、并发访问以及扩展的瓶颈。

产生的数据据统计:

10%为结构化数据(结构化数据大多都是数据库中数据)
90%为非结构化数据(这些数据杂,并且多)

关系型数据库在面对这些非结构化的数据:

无法适应多变的数据结构:数据的数据结构不安变化,但是关系型数据库如果改变数据结构,会非常的复杂和麻烦。
高并发读写的瓶颈 :关系型数据库的关联性很强,系统逻辑非常复杂,并发处理时非常容易发生死锁,导致其读写速度下滑严重。
可扩展性的限制: 应用系统可能在短时间内出现业务量和业务类型的快速变化,而这些变化要求支撑数据库在底层硬件和数据库设计中提供极强的扩展性。由于关系型数据库存在类似的join操作,使得数据库在扩展方面很困难

大数据时代对数据存储的挑战:

高并发读写需求
高效率存储和访问需求
高扩展性

大数据的时代背景下,必须对传统的关系数据库做出改变,才能适应大数据
时代的要求。

放松数据一致性的要求
改变固定的表结构
去除事务、关联等复杂操作

为了改变关系型数据库的不足,适应当前大数据库时代海量的非结构化数据存储的需要,一种新型数据库类型-NoSQL(非关系型数据库 )诞生了。NoSQL是一种非关系型、分布式、无需遵循ACID原则、不提供SQL功能的数据库

分布式分布是相对于集中式数据库:

集中式数据库是指数据库中的数据集中存储在一台计算机上,数据的处理也集中在一台机器上完成。
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。

NoSQL特点:

易扩展:NoSQL数据库去掉关系数据库的关系型特性,数据之间均无关系,这就使得数据库可以非常容易地扩展,这是完全区别于传统关系型数据库的一大特性。
高性能:NoSQL数据库具有高并发读写性能,这一点是得益于NoSQL数据库的无关系性,NoSQL数据库的结构比较简单。
灵活的数据模型: NoSQL数据库不需要事先为要存储的数据建立相应的字段,用户可以随时存储自定义的各种数据格式。
高可用:NoSQL在不太影响性能的情况下,可以方便地实现高可用的架构。如Hbase集群、MongoDb副本集等。

CPA原则又称CPA定理。它包括一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三大要素

一致性Consistency(强一致性):系统在执行过某项操作后,仍然处于一致的状态。
可用性Availability系统的结果必须在给定的时间内返回,若超市,则被认为是不可用,
分区容错性Partition Tolerance:分区容错性可理解为系统对节点动态加入和离开的处理能力(集群一直处于可用状态),因为节点的加入和离开可认为是集群内部的网络分区。

CAP原则认为一个分布式系统最多可以同时实现两个要素,即AP或CP或AC。
但是NoSQL是分布式的所以P必须有,即有两种一种AP,一种CP。也因此BASE思想产生。给出了权衡A与C的一种可行方案

BASE理论是对CAP原则中一致性和可用性权衡的结果,也是对CAP原则的延伸。BASE理论的核心思想是即使无法保证系统的强一致性(Strong
Consistency,即CAP的一致性就是强一致性),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual
consistency)。
BASE理论与CAP原则类似,它也包含三大要素,即基本可用(Basically Available)、软状态(Soft-State)和最终一致性(Eventually Consistent)

初识NoSql_第1张图片

NoSQL数据库分类:

键值对存储数据库
键值对存储数据库的结构实际上是一个映射,即Key是查找每条数据的唯一标识符,Value是该数据实际存储的内容。键值对存储数据库结构是采用哈希函数来实现键到值的映射,当查询数据时,基于Key的哈希值会直接定位到数据所在的位置,实现快速查询,并支持海量数据的高并发查询。(应用场景:会话存储应用场景,购物车应用场景)代表:Redis。
文档存储数据库
键值对存储数据库的结构实际上是一个映射,即Key是查找每条数据的唯一标识符,Value是该数据实际存储的内容。键值对存储数据库结构是采用哈希函数来实现键到值的映射,当查询数据时,基于Key的哈希值会直接定位到数据所在的位置,实现快速查询,并支持海量数据的高并发查询。代表MongoDB(应用场景:内容管理应用程序应用场景,电子商务应用程序应用场景)初识NoSql_第2张图片
列式存储数据库:
列式存储数据库是以列为单位存储数据,然后将列值顺序地存入数据库中,这种数据存储方法不同于基于行式存储的传统关系型数据库。列式存储数据库可以高效地存储数据,也可以快速地处理批量数据实时查询数据。代表
HBase(应用场景:事件记录应用场景,博客网站应用场景) 图形存储数据库:
图形存储数据库:
是NoSQL数据库的一种类型,其主要是以图形理论为基础,使用图作为数据模型来存储数据(实体之间的关系信息),其中,实体被视为图形的“节点”,关系被视为图形的“边”,“边”按照关系将“节点”进行连接。代表Neo4j(应用场景:欺诈检测应用场景
推荐应用应用场景)
初识NoSql_第3张图片

你可能感兴趣的:(NoSql,nosql,数据库,redis)