NoSQL 数据库的四大分类
NoSQL 数据库的四大分类:
1、键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于 IT 系统来说的优势在于简单、易部署。但是如果 DBA 只对部分值进行查询或更新的时候,Key/value就显得效率低下了。例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
2、列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。
HBase:HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文“Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统(File System)所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。HBase 是 Apache 的 Hadoop 项目的子项目。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase 基于列的而不是基于行的模式。
3、文档型数据库
文档型数据库的灵感是来自于 Lotus Notes 办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如 JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,MongoDb。国内也有文档型数据库 SequoiaDB,已经开源。
Mongo DB:Mongo DB 是目前在 IT 行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前 IT 从业人员的青睐。Mongo DB 很好的实现了面向对象的思想(OO 思想),在 Mongo DB 中每一条记录都是一个 Document 对象。Mongo DB 最大的优势在于所有的数据持久操作都无需开发人员手动编写 SQL 语句,直接调用方法就可以轻松的实现 CRUD 操作。
Sequoia DB:SequoiaDB 是一款分布式非关系型文档数据库,可以被用来存取海量非关系型的数据,其底层主要基于分布式,高可用,高性能与动态数据类型设计 SequoiaDB 可以独立作为一款高性能可扩展的 NoSQL数据库使用,也可与当前主流分布式计算框架 Hadoop 紧密集成。
4、图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的 SQL 数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL 数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL 数据库都有 REST 式的数据接口或者查询 API。如:Neo4J, InfoGrid, Infinite Graph.
NoSQL 的主要优势:
(1)避免不必要的复杂性
(2)高吞吐量
(3)高水平扩展能力和低端硬件集群
(4)避免了昂贵的对象-关系映射
SQL知识大全(一):数据库的语言分类你都知道吗?
点击上方蓝字关注我们
今天是数据库语言分类的第一讲,主要会介绍数据库的四类语言,以及其语法,课程大纲详见脑图。
数据库定义语言
数据库定义语言(DDL,Data Definition Language)是负责数据的模式定义与数据的物理存取构建,主要包括CREATE建表语句,ALTER 更新表结构语句,DROP 删除语句,DECLARE 创建游标。
CREATE建表语句
创建一张名为OrderItems的空表
已有部分数据表,关联数据表,建中间表
ALTER 更新表结构
ALTER之前需要完成表的备份,因为ALTER的过程是不可逆的。
DROP 删除表
数据操纵语言
数据操纵语言(DML,Data Manipulation Language):负责数据的操纵,包括查询及增、删、改等操作,SELECT(选择),DELETE(删除),UPDATE(更新),INSERT(插入)四类语法。
SELECT(选择)
SELECT说起来大家都不陌生,它是SQL中最常见的语法,主要用法是从数据表中选择你想要的那几列数据。
DELETE(删除)
DELETE删除行,甚至删除所有的行,但是并不删除表本身。如果要快速删除所有行,可以使用TRUNCATE TABLE语句,因为不记录数据变动。下面举几个例子。
1.从表中删除特定的行
下面这个例子是从Customers 这张表中,删除cust_id = \’1000000006\’的行。
2.从表中删除所有的行
下面例子删除所有的行,但是并不删除Customers 这张表。
UPDATE(更新)
UPDATE(更新)由三部分组成,分别是要更新的表,列名和他们的新值,确定要更新那些行的过滤条件。
1.更新表中特定的列
2.更新表中所有的行
该示例将Customers表中cust_email列全部更新为\’kim@thetoystore.com\’ 。
INSERT(插入)
INSERT插入可以在数据表中插入完整的行,插入行的一部分,插入某些查询结果,下面我们将会给出几个例子进行说明。
1.插入完整的行
在Customers这张表中插入一行数据。
2.插入行的一部分
在Customers表中插入部分行,cust_contact,cust_email字段没有插入数据。
3.插入某些查询结果
从CustNew中SELECT出一些结果插入到Customers表中。
数据控制语言
数据控制语言(DCL,Data Control Language):负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,主要语法有GRANT授权,REVOKE取消授权等。大部分情况下,这部分语法主要是提供给数据库工程师以及数仓开发使用的,分析师不太能用到这些语法,所以也不细讲了。
事务控制语
事务控制语言(TCL,Transaction Control Language)包括SAVEPOINT 设置保存点,它是事务处理中设置临时的占位符,可以对它发布回退;ROLLBACK 回滚,撤销指定的SQL语句;COMMIT提交,将未储存的SQL写入数据库表。
参考书籍:《SQL必知必会》
往期推荐
史上最全的SQL知识点汇总,错过这次再等一年
数据岗知识体系及岗位介绍
【文末免费领资料】从生物医学转行到互联网数据分析师,我做对了什么?
分享数据知识,成就数据理想
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。