什么是NoSQL和关系型数据库

什么是NoSQL和关系型数据库?

1. 非关系型的数据库(NoSQL)

例如:

MongDB、 Redis、Memcache

非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。

并且数据之间无关系,这样就非常容易扩展。

在大数据量,高性能的情况,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。

什么是NoSQL和关系型数据库

​2.关系数据库管理系统(RDBMS)

例如:

Oracle DB(Oracle Corporation), SQL Server(微软) ,MySQL

RDBMS强调relationship between tables. 即表与表之间是要有关系的。

当大量的数据需要保存和维护的时候就需要用到RDBMS。一个关系数据模型是需要包含indexes,PK,FK,table和table间的关系。

3.NoSQL和RDBMS的区别是什么?

3.1RDBMS的特点:

组织化结构化数据

比如Mysql是分字段的,且每个字段还有类型,做查询的时候都是针对字段的。

结构化查询语言(SQL)

解释:也就是SQL语句是有结构的查询语,类似于:

SELECT 字段 FROM 表 WHERE 条件

UPDATE 表 SET 字段名=字段值 WHERE 筛选条件

DELETE FROM 表 WHERE 筛选条件

数据和关系都存储在单独的表中。

这就好理解了,比如一对一,一对多,和表中的数据所存在的关系。

ACID

分别为:

A (Atomicity) 原子性

C (Consistency) 一致性

___I (Isolation) 独立性 ___

D (Durability) 持久性

什么是NoSQL和关系型数据库

​3.1.1所谓RDBMS遵循的ACID是?

(Atomicity) 原子性:

也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

比如银行转账,从A账户转100元至B账户,需要将A账户的钱减少100,B账户里面的钱增加100。如果A账户的钱减少了100,此时,出现死机状态,那么事务将会回滚,A账户的钱变为原来的。

(Consistency) 一致性:

可以理解为在任意时刻,所有节点中的数据是一样的。同一时间点,你在节点A中获取到key1的值与在节点B中获取到key1的值应该都是一样的。

(Isolation) 独立性:

指的是在并发环境中,当不同的事务同时操纵相同的数据时,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

(Durability) 持久性:

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

什么是NoSQL和关系型数据库

​3.2 NoSQL的特点:

键 - 值对存储,列存储,文档存储,图形数据库

高性能,高可用性和可伸缩性

数据之间无关系,这样就非常容易扩展.

非关系型的数据库,区别于关系数据库.

对比一下语句:

Redis的语句:

从这里也可以看出来 键-值对存储

什么是NoSQL和关系型数据库

​Sql Server的语句

什么是NoSQL和关系型数据库

​不保证关系数据的ACID特性。

CAP定理(Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性) )

3.2.1 CAP定理?

Consistency(一致性):

_数据一致更新,所有数据变动都是同步的。拿Redis来说,当进行修改或者保存、删除之后,redis中的数据也应该进行相应变化。否则再次读取,那么读取的就是脏数据。

什么是NoSQL和关系型数据库

​Availability(可用性):

可以理解为系统在提供服务必须一直处于可用的状态,对于操作请求总是能够在有限的时间内返回结果。

就像你去店里面买一杯奶茶,服务员必须要给你做一杯奶茶出来。

而不是你要了一杯奶茶,人家不管你。

Partition tolerance(分区容错性):

指的是分布式系统在遇到任何网络分区故障的时候,仍然能够正常运行,只是影响了机器的性能;并且保证可用性,和一致性。除非是整个网络环境都发生了故障。

就像汽车少一个轮胎也可以慢慢的开,但是发动机坏了,就瘫痪了。

山东掌趣网络科技有限公司,专业软件开发。

如果有不正确的地方,请及时指出来,以便即使进行修改。


分享到:


相關文章: