MongoDB基础(一)—简介

2017年12月7日18:34:44 发表评论 642 views

第1章 NoSQL数据库简介

1.1 NoSQL数据库回顾

1.1.1 什么是NoSQL

  • NOSQL=Not Only SQL
  • 1998年Carlo Strozzi首次提出(不提供SQL功能的关系型数据库)
  • 2009年Eric Evans再次提出NoSQL概念
  • NoSQL、Relational Database相铺相成

1.1.2 NoSQL数据库四大家族

  • 列存储:Hbase
  • 键值(Key-Value)存储:Redis
  • 图像存储:Neo4J
  • 文档存储:MongoDB

1.1.3 NoSQL的优势

  • 高可扩展性,水平扩展灵活
  • 分布式计算
  • 没有复杂的关系,但可以进行复杂查询
  • 低成本
  • 架构灵活
  • 性能高:结构化数据
  • 安全性比较强
  • 存储方式灵活:json方式存储,更便于我们的应用使用读取,没有复杂的结构化。

第2章 MongoDB简介

2.1 MongoDB优缺点

MongoDB基础(一)—简介

2.2 MongoDB特性

MongoDB既有关系型数据库的强大查询功能、强一致性和二级索引,又有非关系型数据库的灵活模式、高扩展性和高性能的特性,所以MongoDB可以说是最接近关系型数据库的非关系型数据库。

MongoDB基础(一)—简介

2.3 MongoDB的设计理念

MongoDB基础(一)—简介

2.3.1 关系与非关系模型

关系型数据库将存储数据原子化,需要哪些信息就提取哪些信息,再“组装”起来反馈给用户;非关系型数据库将数据整体存储起来,使用的时候直接调用数据,因此性能相对要高。

MongoDB基础(一)—简介

2.4 MongoDB与RDBMS的区别

MongoDB与RDBMS最大的区别在于:没有固定的行列组织数据结构

MongoDB基础(一)—简介

2.4.1 MongoDB数据存储格式

2.4.1.1  文档型(JSON)

  • MongoDB 使用JSON(JavaScriptObjectNotation)文档存储记录
  • JSON数据库语句可以容易被解析
  • Web 应用大量使用
  • NAME-VALUE 配对,例如:{product: “car”, brand: “Benz”, color: “blue” }

2.4.1.2  BSON

  • 二进制的JSON,JSON文档的二进制编码存储格式
  • BSON有JSON没有的Date和BinData
  • MongoDB中document以BSON形式存放:> db.meeting.insert({meeting:"SHOUG June",Date:"2015-06-15"});

MongoDB基础(一)—简介

2.4.1.3  灵活的数据格式

文档里嵌入文档嵌入文档...... 一个KEY对应一个数组
{

_id: ObjectID("1"), username: “Silence”, regDate: “10-10-2015”, scores: {

math: "80",

english: "200"

}

}

 

{

_id: ObjectID("1"), username: “Silence”, regDate: “10-10-2015”, scores: {

math: "80",

english: "200"

}

Attr:[“a1”,”a2”]

}

2.5 MongoDB的优势

2.5.1 开源

  • MongoDB是开源产品
  • On GitHub
  • Licensed under the AGPL
  • 起源&赞助by MongoDB公司
  • 提供商业版licenses 许可

2.5.2 水平扩展

随着应用的扩大,节点的需求也在增大,在MongoDB中不需要关机即可将新节点添加到现有的MongoDB集群中。

MongoDB基础(一)—简介

2.5.3 支持多种存储引擎

2.5.3.1  MongoDB存储引擎

3.0版本以前默认为MMAPv1存储引擎,3.0版本以后开始支持WiredTiger存储引擎(弱事务功能,类似关系型数据库的功能),且3.0版本以后MongoDB在架构和安全性都得到了巨大提升,所以在3.0版本后得到了广泛使用。

MongoDB基础(一)—简介

2.5.3.2  各种存储引擎的比较

MongoDB基础(一)—简介

2.5.4 具备丰富的功能

  • JSON 文档模型动态的数据模式
  • 二级索引强大查询功能
  • 自动分片水平扩展
  • 自动复制高可用
  • 文本搜索
  • 企业级安全
  • 聚合框架MapReduce
  • 大文件存储GridFS

2.6 MongoDB体系结构

2.6.1 跨平台

Linux、Unix、Mac、Windows等,且整体架构相同:

  1. MongoDB Server:实例、数据库及其对应关系
  2. 数据逻辑结构:文档、集合、数据库
  3. 数据存储:元数据、实际数据

2.6.2 数据逻辑结构层次关系

数据库(database)包含了多个集合(collection),集合中会有多个文档(document)

  • Mongodb和MySQL数据库的对比:
mongodb MySQL
数据库 数据库
集合
文档(json) 行、列信息

2.6.3 MongoDB与RDBMS数据结构逻辑对比

MongoDB基础(一)—简介

2.7 MongoDB适用场景

  • 网站数据,互联网应用较多
  • 缓存
  • 大尺寸、低价值的数据存储
  • 高伸缩性的场景:
  • 业务结构经常发生变化的场景(表结构经常变或需求总在变的情况)
  • 架构变化频繁的场景(数据或业务量膨胀式增长的情况)
  • 对与json应用平滑的业务,比如说 python、java等

2.7.1 互联网典型应用

MongoDB基础(一)—简介

2.7.2 MongoDB 商业价值

  • 利用数据和技术以最大化竞争优势
  • 减少关键任务的部署风险
  • 更快的价值实现
  • 更低的总体拥有成本

2.8 MongoDB软件获取与帮助

下载地址:https://www.mongodb.org/dl/linux/x86_64

文档地址:https://docs.mongodb.com/

                  http://mongoing.com/

weinxin
我的微信
如果有技术上的问题可以扫一扫我的微信
版权声明
1. 本网站名称:Leon的博客
2. 本站永久网址:https://blog.leonshadow.cn
3. 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ632113590进行删除处理。
4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
liyang