什么是NoSQL和关系型数据库?
1. 非关系型的数据库(NoSQL)
例如:
MongDB、 Redis、Memcache
非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。
并且数据之间无关系,这样就非常容易扩展。
在大数据量,高性能的情况,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) 持久性

3.1.1所谓RDBMS遵循的ACID是?
(Atomicity) 原子性:
也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
比如银行转账,从A账户转100元至B账户,需要将A账户的钱减少100,B账户里面的钱增加100。如果A账户的钱减少了100,此时,出现死机状态,那么事务将会回滚,A账户的钱变为原来的。
(Consistency) 一致性:
可以理解为在任意时刻,所有节点中的数据是一样的。同一时间点,你在节点A中获取到key1的值与在节点B中获取到key1的值应该都是一样的。
(Isolation) 独立性:
指的是在并发环境中,当不同的事务同时操纵相同的数据时,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
(Durability) 持久性:
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
3.2 NoSQL的特点:
键 - 值对存储,列存储,文档存储,图形数据库
高性能,高可用性和可伸缩性
数据之间无关系,这样就非常容易扩展.
非关系型的数据库,区别于关系数据库.
对比一下语句:
Redis的语句:
从这里也可以看出来 键-值对存储
Sql Server的语句
不保证关系数据的ACID特性。
CAP定理(Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性) )
3.2.1 CAP定理?
Consistency(一致性):
_数据一致更新,所有数据变动都是同步的。拿Redis来说,当进行修改或者保存、删除之后,redis中的数据也应该进行相应变化。否则再次读取,那么读取的就是脏数据。
Availability(可用性):
可以理解为系统在提供服务必须一直处于可用的状态,对于操作请求总是能够在有限的时间内返回结果。
就像你去店里面买一杯奶茶,服务员必须要给你做一杯奶茶出来。
而不是你要了一杯奶茶,人家不管你。
Partition tolerance(分区容错性):
指的是分布式系统在遇到任何网络分区故障的时候,仍然能够正常运行,只是影响了机器的性能;并且保证可用性,和一致性。除非是整个网络环境都发生了故障。
就像汽车少一个轮胎也可以慢慢的开,但是发动机坏了,就瘫痪了。
山东掌趣网络科技有限公司,专业软件开发。
如果有不正确的地方,请及时指出来,以便即使进行修改。
閱讀更多 掌趣科技 的文章