本文已参与「新人创作礼」活动,一起开启掘金创作之路。 @TOC
NoSQL 简介
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是 SQL"。在现代的计算系统上每天网络 上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDMBS)来处 理。 1970 年 E.F.Codd's 提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应 用的主导技术。 NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至 2009 年趋势越发 高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库 运用,这一概念无疑是一种全新的思维的注入。
什么是 NoSQL?
NoSQL,指的是非关系型的数据库。NoSQL 有时也称作 Not Only SQL 的缩写,是对 不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL 用于超大规模数据的存储。(例如谷歌或 Facebook 每天为他们的用户收集万 亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
为什么使用 NoSQL ?
今天我们可以通过第三方平台(如:Google,Facebook 等)可以很容易的访问和抓取数 据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍 的增加。我们如果要对这些用户数据进行挖掘,那 SQL 数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据
RDBMS vs NoSQL
RDBMS(英文全称)
- 高度组织化结构化数据
- 结构化查询语言(SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是 SQL
- 没有声明性查询语言
- 没有预定义的模式 键 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非 ACID 属性
- 非结构化和不可预知的数据
- 高性能,高可用性和可伸缩性
MongoDB 简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中 功能最丰富,最像关系数据库的。
什么是 MongoDB ?
MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,如下图:
MongoDB 主要特点
1、MongoDB 文档数据库,存储的是文档。 2、MongoDB 的内部执行引擎是 JS 解释器。当我们存储一个文档时,会将这个文档 保存成 Bson 格式存储。查询是将其转换为 JS 对象,并可以通过熟悉的 JS 语法来操作。 3、MongoDB 的数据库和集合都可以隐式创建
MongoDB 的安装与启动
1. 安装
-
通过软件安装 MongoDB 数据库
-
在安装的目录下创建 data 目录和 mongo.config 文件
-
进入 data 目录,创建 db 和 log 这两个目录
-
进入 log 目录,创建 mylog.log 文件
-
回到安装目录,打开 mongo.config 文件,并在文件中写上:
dbpath=D:\MongoDB\data\db
logpath=D:\MongoDB\data\log\mongo.log
2.启动
- 先启动服务:进入 bin 文件夹下,打开终端,输入:
mongod --dbpath D:\MongoDB\data\db
- 不关闭服务,在 bin 目录下启动终端,输入:mongo.exe 即可