nosql的CAP与传统的数据库有何不同之处?

2020-04-28 17:08:20 java常见问答 4782

大家知道数据库分为几类呢?Nosql是什么含义呢?nosql的CAP跟传统的数据库有何区别呢?接下来跟着小编的步伐一起来了解下吧。

数据库分为sql以及nosql,其中nosql带来了极大的方便,可以操作大量的数据,相比之前操作的ACID数据库已经无法满足大量的数据存储。然后这个时候需要设计出好的分布式数据存储方式。而这些分布式数据存储方式受到CAP理论的约束,不可能达到高一致性,高可用性,高分区容错性的完美设计。

所以我们在设计的时候要懂得取舍,重点关注对应用需求来说比较重要的,而放弃不重要的,在CAP这三者之间进行取舍,设计出贴合应用的存储方案。

传统的关系型数据库在功能支持上通常很宽泛,从简单的键值查询,到复杂的多表联合查询再到事务机制百的支持。而与之不同的是,NoSQL系统通常注重性能和扩展性,而非事务机制(事务就是强一致性的体现) 。

传统的SQL数据库的事务通常都是支持ACID的强事务机制。A代表原子性,即在事务中执度行多个操作是原子性的,要么事务中的操作全部执行,要么一个都不执行;C代表一致性,即保证进行事务的过程中整个数据加的状态是一致的。

不会出现数版据花掉的情况;I代表隔离性,即两个事务不会相互影响,覆盖彼此数据等;D表示持久化,即事务一量完成,那么数据应该是被写到安全的,持久化存储的设备上(比如磁权盘)。

NoSQL系统仅提供对行级别的原子性保证,也就是说同时对同一个Key下的数据进行的两个操作,在实际执行的时候是会串行的执行,保证了每一个Key-Value对不会被破坏。

以上就是今天所讲的内容了,如果想要了解更多java常见问答的知识,那么请继续关注本网站哦。