结构化查询语言SQL
SQL (Structured Query Language) 是结构化查询语言的简称,是关系数据库的标准语言。SQL是一种通用的、功能极强的关系数据库语言,是对关系数据存取的标准接口,也是不同数据库系统之间互操作的基础。
SQL基于关系代数和元组关系演算,集数据查询、数据操作、数据定义和数据控制功能于一体。SQL的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
(openGauss主要支持的是基于2011和2003两个版本)
NoSQL
NoSQL,泛指非关系型的数据库,NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。依据结构化方法以及应用场合的不同,主要分为以下几类:
面向高性能并发读写的key-value数据库: key-value数据库的主要特点是具有极高的并发读写性能。Key-value数据库是一种以键值对存储数据的一种数据库,类似Java中的map.可以将整个数据库理解为一个大的map, 每个键都会对应一个唯一的值。 (例如: redis 、 Amazon 、Dynamodb 、memcached 、microsoft Azure 、cosmosDB 、 Hazelcast)
面向海量数据访问的面向文档数据库: 这类数据库的主要特点是在海量的数据中可以快速的查询数据。文档存储通常使用内部表示法,可以直接在应用程序中处理,主要是JSON。JSON文档也可以作为纯文本存储在键值存储或关系数据库系统中。 (例如:mongoDB 、Amazon 、 Dynamodb 、couchbase 、microsoft Azure、 cosmosDB、couchDB)
面向搜索数据内容的搜索引擎: 搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统。主要是用于对海量数据进行近实时的处理和分析处理,可用于机器学习和数据挖掘。 (例如:Elasticsearch、splunk、5olr、marklogic、sphinx)
面向可扩展性的分布式数据库 (例如:cassanelra、Hbase、microsoft Azure、cosmosDB、datastax、 Enterpise、accumulo)
NoSQL - CAP理论
NoSQL的基本需求就是支持分布式存储,严格一致性与可用性需要互相取舍。
CAP理论: 一个分布式系统不可能同时满足C (一致性)、A (可用性)、P (分区容错性)三个基本需求,并且最多只能满足其中的两项。对于一个分布式系统来说,分区容错是基本需求,否则不能称之为分布式系统,因此需要在C和A之间寻求平衡。
C (Consistency) 一致性 一致性是指更新操作成功并返回客户端完成后, 所有节点在同一 时间的数据完全一致。与ACID中的C不同。
A (Availability) 可用性 是指对于每一次请求, 都能够得到一个及时的、非错的响应,但 是不保证请求的结果是基于最新写入的数据。
P (Partition tolerance)分区容错性 分区容错性是指分布式系统在遇到某节点或网络分区故障的时候, 仍然能够对外提供满足一致性和可用性的服务。 NoSQL相比于SQL,所具有的优势: 1、成本低 2、查询速度快 3、存储格式扩展起来容易 劣势: 1、不能持久性地储存 2、不支持对事务进行处理
NewSQL
NewSQL被定义为下一代数据的发展方向,是对各种新的可扩展/高性能数据库的简称,兼具Nosql数据库的海量存储管理能力和关系数据库的ACID特性和SQL便利性。
简单的来说: SQL+NoSQL = NewSQL。 NewSQL系统虽然在的内部结构变化很大,但是它们有三个显着的共同特点,它们都支持关系数据模型;它们都使用SQL作为其主要的接口;满足分布式数据库特点。
NewSQL 系统虽然在内部结构变化很大,主要表现在支持关系数据库事务特性和SQL机制已经支持分布式数据库特性上。可以从架构,SQL引擎,分片模式三个角度进行了解。
1、新架构:代表数据库有Google Spanner,VoltDB,Clustrix,NuoDB 这类数据库工作在分布式节点集群上,数据分片存储, SQL查询在不同节点上分片计算。 2、SQL引擎:代表数据库有TokuDB,MemSQL。 这类数据库有高度优化的SQL引擎。 3、透明分片:代表数据库有ScaleBase, dbShards,Scalearc。 系统提供分片中间件层,数据自动分割在多个节点运行。
|