Sql和NoSql的区别
SQL(Structured Query Language):关系型数据库
NoSql(No Structured Query Language):非关系性数据库
常见NoSql数据库:
-
键值型数据库(Redis)
-
文档型数据库(MongoDB)
-
列类型(HBase)
-
Graph类型(Neo4j)
区别
1. 结构化(Structured):
Sql表结构一般不建议修改。数据量大时,改动可能会锁表,导致一段时间不能使用。
NoSql非结构化,包含存储Key-value型数据库,Document型数据库,Graph型数据库。数据结构松散,结构改动影响较小。
2. 关联性(Relational):
Sql多个表之间可以有外键约束,对数据修改或删除时会有校验。
NoSql数据之间相对独立,不存在约束性关系。关联性需要在业务中主动维护,数据库本身不会维护关联性。
3. 查询语法:
Sql数据是结构化的,可以使用统一标准的Sql语句来查询。
NoSql数据库的查询语法不固定,例如:
Redis : get userList
MongoDB : db.users.find({_id: 1})
elasticsearch : GET http://localhost:9200/users/1
4. 事物:
SQL数据库:所有的关系型数据库都是满足ACID特性的。
NoSql数据库无法满足强一致性,只能满足基本的一致性。所以NoSql数据库无法全部满足ACID。BASE理论。
标签:02,P3,关联性,NoSQL,NoSql,数据库,Structured,Redis,Sql From: https://www.cnblogs.com/alvisClub/p/17092002.html