1、数据库和文件的主要区别

1、 数据库有数据库表、行和列的概念,让我们存储操作数据更方便

2、 数据库提供了非常方便的接口,可以让 nodejs、php java .net 很方便的实现增加修改删除功能。

2、NoSql 介绍

 2.1 NoSQL 介绍

 NoSQL  就是为了解决大规模数据与多样数据种类等问题,尤其是其中大数据的相关问题。 

 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL”, 它指的是非关系型的数据库,是以 key-value形式存储,和传统的关系型数据库不一样, 不一定遵循传统数据库的一些基本要求,比如说遵循 SQL 标准、ACID 属性、表结构等等。 NoSQL 最早被提出是在 20 世纪 80 年代,在当时更多是强调的是与关系数据库区别对待, 最近这些年被提及的更多是强调协助解决大数据等相关问题。 NoSQL 在大数据时代有自己的意义。 

      2.2  NoSQL 应用情况介绍

国内的互联网蓬勃发展,不仅涌现出 BAT(百度,阿里巴巴,腾讯)之类的巨头,也带动了整个互联网行业的发展,大量的创业型公司如春笋般的涌出,在国家层面也提出了“互联网+”和“万众创业”的口号。更多传统的行业也开始拥抱互联网。但是无论是做所谓的生态平台还是传统业务的转型,涉及到的业务是多种多样的。这个时候企业架构师对于应用系统的核心——数据库管理 不仅有传统的 SQL 选项也有了NoSQL 这种适合特定场景需求的选项。 

NoSQL 数据库在以下的这几种情况下比较适用:

1、数据模型比较简单;

2、需要灵活性更强的 IT 系统;

3、对数据库性能要求较高;

4、不需要高度的数据一致性;

5、对于给定 key,比较容易映射复杂值的环境。

NoSQL 发展现状

国外: Google 的 BigTable 和 Amazon 的 Dynamo 使用的就是NoSQL 型数据库。

国内: 百度、阿里、腾讯、新浪微博、视觉中国、优酷运营数据分析、飞信空间、豆瓣社区等..

3、什么时候建议使用 NoSql

1、对数据库高并发读写的需求

2、对海量数据的高效率存储和访问的需求

3、对数据库的高可扩展性和高可用性的需求

4、NoSql 和传统数据库简单对比。

4、NoSql 和传统数据库简单对比

1、非结构型数据库。没有行、列的概念。用 JSON 来存储数据。

2、集合就相当于“表”,文档就相当于“行”。

nosql数据库实训总结_数据库

5、NoSql 种类

nosql数据库实训总结_数据库_02

6、MongoDb 介绍

MongoDB  是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

MongoDB是开源,高性能的NoSQL数据库;支持索引、集群、复制和故障转移、各种语言的驱动程序丰富;高伸缩性;
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的。

主要特点

  • MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。

7、MongoDb 安装

官网:https://www.mongodb.com/

手册:https://docs.mongodb.org/manual/

github: https://github.com/mongodb/

nodejs驱动:https://github.com/mongodb/node-mongodb-native

 

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

 

nosql数据库实训总结_数据库_03

7.1 下载地址

https://www.mongodb.com/download-center/v2/community

nosql数据库实训总结_mongodb_04

 7.2 文件目录

下载好后的压缩文件,解压后文件可以直接使用,无需安装,下图中我将解压后的文件默认装到C盘

nosql数据库实训总结_数据库_05

 7.3 添加到path环境变量中

如何添加环境变量  https://jingyan.baidu.com/article/b24f6c82cba6dc86bfe5da9f.html

以我文件放置的路径为例,需要将 C:\Program Files (x86)\mongodb\bin 添加到path环境变量中去 

nosql数据库实训总结_mongodb_06

7.4 创建数据目录

MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下((如: C:\ 或者 D:\ 等 )。

在本案例中,我在 C 盘安装了 mongodb,现在我在C盘创建一个 data 的目录然后在 data 目录里创建 db文件和log文件。

nosql数据库实训总结_关系数据库_07

 7.5 命令行下运行 MongoDB 服务器

打开cmd

windows+ R

nosql数据库实训总结_nosql数据库实训总结_08

 

输入 

mongod --dbpath c:\data\db

nosql数据库实训总结_mongodb_09

 7.6 连接MongoDB

mongo

nosql数据库实训总结_mongodb_10

 7.7 配置 MongoDB 服务

创建配置文件

创建一个配置文件位于 C:\Program Files (x86)\mongodb\mongod.cfg,其中指定 systemLog.path 和 storage.dbPath。具体配置内容如下:

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

nosql数据库实训总结_nosql数据库实训总结_11

安装 MongoDB服务

通过执行mongod,使用--install选项来安装服务,使用--config选项来指定之前创建的配置文件。

mongod --config "C:\Program Files (x86)\mongodb\mongod.cfg" --install

启动MongoDB服务

net start MongoDB

nosql数据库实训总结_关系数据库_12

关闭MongoDB服务

net stop MongoDB

nosql数据库实训总结_关系数据库_13

8、MongoDb 使用

显示所有数据库

show dbs

使用数据库

use xxx

nosql数据库实训总结_数据库_14