什么是关系型数据库,什么是非关系型数据库?
关系型数据库,是指采用了关系模型来组织数据的数据库(关系模型可以简单理解为二维表格模型),其以行和列的形式存储数据,以便于用户管理。
关系型数据库中有表的概念,表中包含了行和列,多张(或1张)表可以组成数据库。
关系型数据库具有以下几个特点:
1、传统的关系型数据库中的数据以行和列的方式进行存储。
2、关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询。
3、关系型数据库强调ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
4、关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价。
5、关系型数据的数据通常存储在硬盘中。
我们常见的MySQL、Oracle等都是关系型数据库。但是因为关系型数据库强调强一致性、以及基于硬盘存储,所以存在着一定的性能问题,相比之下,非关系型数据库在这方面就会相对有些优势。
NoSQL表示非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统,主要代表如Redis、MongoDB等。
非关系型数据库的存储方式是基于键值来存储的,对于值的类型也有不同的支持,所以没有固定的要求和限制。
关系型数据库和非关系型数据库的主要区别?
1、关系型数据库以表的形式进行存储数据,而非关系型数据库以Key-value的形式存储数据。
2、关系型数据库需要保证事务的ACID,而非关系型数据库中的事务一般无法回滚。(也有部分数据库可以回滚,如MongoDB在集群模式下)
3、关系型数据库可以通过一张表中的任意字段进行查询,非关系型数据库需要通过key进行查询
4、一般来说,关系型数据库是基于硬盘存储,非关系型数据库基于内存存储。 (Mongodb基于磁盘存储)
5、关系型数据库支持各种范围查询、公式计算等,非关系型数据库不一定支持。