NoSQL数据库

Forums: 

NoSQL 数据库,最初的意思是 Not SQL 数据库,就是反SQL 的数据库;but 后来发现,SQL 数据库还是灰常有用的,于是就变成 Not only SQL 的说法了。

SQL

SQL 是数据库模型的一种,数据库 (database) 由表 (table) 构成,表由记录(record 或是分组) 构成,每个记录具有同样的结构或是说相同的列,每一列不能复合和嵌套。这种比较固定的模型叫 schema (模式), 数据库有时候又称 schema 。

一般一个数据库 database 包含多张表 table, 每张表都是一个二维的表格数据,每一行就是一条记录。表与表通过一些列关联起来,叫外键(列)。数据库的主要操作 : 增查改删 CRUD 。

  1. 增 Create 是添加一些记录,通常对应 sql 语句的 insert ;
  2. 查 Retrieve 是获取表中的数据,对应 sql 语句中的 select ;
  3. 改 Update 是修改某些行的内容,对应 sql 语句中的 update ;
  4. 删 Delete 是删除某些行,对应 sql 语句中的 delete ;

当然完整的 sql 还包括数据库、数据表、索引的创建 (create) 、删除 (drop) 和更改 (alter) 操作。

NoSQL 数据库

SQL 数据库的 schema 比较固定,限制比较多,对于现代的应用有时候显得不够合适。于是就有了 NoSQL 。

NoSQL 主要分为下面四类:

  • document (文档)数据库 : MongoDB ;
  • key-value 数据库 : Redis ; 最简单的 NoSQL 数据库,只能存放 key-value 对和根据 key 获取 value;只能针对简单应用、资源受限的嵌入式应用或是即时处理应用等;
  • graph (图)数据库 :
  • wide-column (面向列的)数据库 : Cassandra 和 HBase ;和 document 数据库特点一样,实现不同;