Linux系统之关系型数据库与非关系型数据库

一、关系型数据库

1.1 什么是关系型数据库?

关系型数据库一般是处理一些结构化的数据,即把复杂的数据结构归结为简单的二元关系列表形式。以二维表的形式对数据的存储,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。关系型数据库是依据关系型模型来创建的数据库,通过关系型数据可以很好地存储一些关系型数据,如一对一、一对多、多对多等关系模型。关系模型包括数据结构、操作指令集、完整性约束等。在实际应用中,常见到的关系型数据库有MySQL数据库、Oracle数据库、MariaDB 数据库、SQL Server 数据库等。

1.2 关系型数据库的优点

  • 易于维护:在存储数据时采用二维表形式存储,格式统一,方便管理和维护;
  • 可通过SQL结构化查询语句来存储、管理数据,可用于复杂查询;
  • 支持SQL,可用于单表或多表之间非常复杂的数据查询;
  • 在保持数据安全性和一致性方面很强,其遵循ACID理论。

1.3 关系型数据库的缺点

  • 对于大数据的存取,其读写性能较差;
  • 因其固定的表结构,故灵活度稍差;
  • 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

二、非关系型数据库

2.1 什么是非关系型数据库?

非关系型数据库又被称为NoSQL(Not Only SQL ), 不需要事先定义结构,也就是不需要建表建库等,每条记录可以又不同的类型和约束条件。它是作为传统数据库的一个有效补充,它打破了长久以来关系型数据库与ACID理论大一统的局面。在特定的场景下可以发挥难以想象的高效率和高性能。特别是对于规模日益扩大的海量数据。

2.2 非关系型数据库种类

(1)键值(Key-Value)存储数据库

  • 键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性。这个表中有一个特定的键和一个指针指向特定的数据。Key-Value模型对于IT系统来说的优势在于简单、易部署、高并发。
  • 典型产品:Memcached、Redis、MemcachedB、Berke ley DB

(2)列存储(Column-Oriented)数据库

  • 列存储数据库将数据存储存在列族(Column Family)中,一个列族存储经常被一起查询的相关数据。举个例子,如果有一个 Person 类,通常会一起查询他们的姓名和年龄而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另一个列族中。这部分数据库通常用来应对分布式存储的海量数据。键仍然存在,但是他们的特点是指向了多个列。这些列是由列家族来安排的。
  • 典型产品:Cassandra,HBase

(3)面向文档(Document-Oriented)的数据库

  • 面向文档数据库会将数据以文档的形式存储,数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON等多种形式存储。
  • 典型产品:MongDB、CouchDB

(4)图形(Graph)数据库

  • 图形数据库允许我们将数据以图的方式存储。图形结构的数据库同其他行列以及刚性结构的 SQL 数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
  • 典型产品:Neo4J、InfoGr id

2.3 非关系型数据库的优点

  • 格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等
    等,使用灵活,应用场景广泛;
  • 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
  • 高扩展性;
  • 成本低:nosql数据库部署简单,基本都是开源软件。

2.4 非关系型数据库的缺点

  • 不提供sql支持,学习和使用成本较高;
  • 无事务处理;
  • 数据结构相对复杂,复杂查询方面稍欠。

猜你喜欢

转载自blog.csdn.net/IT_ZRS/article/details/108285875
今日推荐