关系型数据库 和 非关系型数据库

关系型数据库 和 非关系型数据库

1、关系型数据库

概述

关系型数据库,被称为SQL,是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。

其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据。


主流的关系型数据库

Oracle、MySQL、PgSQL、SQL Server、Microsoft Access、DB2 等。


ACID原则

  • 原子性(Atomicity)

  • 一致性(Consistency)

  • 隔离性(Isolation)

  • 持久性(Durability)

关系型数据库强调ACID规则。

可以满足对事务性要求较高或者需要进行复杂数据查询的数据操作,而且可以充分满足数据库操作的高性能和操作稳定性的要求。并且关系型数据库十分强调数据的强一致性,对于事务的操作有很好的支持。关系型数据库可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以马上回滚事务。


2、非关系型数据库

概述

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL( Structured QueryLanguage,结构化查询语言)。

NoSQL主要是指非关系型、分布式、不提供ACID (数据库事务处理的四个基本要素)的数据库设计模式。

对NoSQL 最普遍的定义是“非关联型的”,强调Key-Value 存储和文档数据库的优点。


主流的非关系型数据库

Redis、Amazon DynamoDB、Memcached、Microsoft Azure Cosmos DB、Hazelcast等。


不遵循ACID原则


使用范围

分布式数据库,近几年分布式数据库用的比较火的是redis。


3、数据库区别

1、数据存储方式不同

SQL:

关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。

NoSQL:

与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。

2、扩展方式不同

SQL和NoSQL数据库最大的差别可能是在扩展方式上。

SQL:

为了支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。

因为数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,这都需要通过提高计算机性能来客服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限。

NoSQL:

而NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。

3、对事务性的支持不同

SQL:

如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。

NoSQL:

虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。


参考文章:

关系型数据库与非关系型数据库详解

posted @ 2022-12-30 08:46  笔下洛璃  阅读(161)  评论(0编辑  收藏  举报