Mongodb概述(一)

发展历史[维基百科]

NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。

1. NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库[1]。
2. 2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论[2],来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。
3. 2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;"。因此,对NoSQL最普遍的解释是“非关联型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。

第一部分 关系型数据库与非关系型数据库

1.1 关系型数据库(Relational Database Management System)
1.1.1 关系型数据库概念
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

1.1.2 关系型数据库的

1. 保持数据的一致性(事务处理)
2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
3. 可以进行Join等复杂查询

不足

1. 大量数据的写入处理
2. 为有数据更新的表做索引或表结构(schema)变更
3. 字段不固定时应用
4. 对简单查询需要快速返回结果的处理

传统数据库的历程

1. 单表单单数据库;
2. 缓存数据;
3. 主从读写分离;
4. 关系数据库很强大,但是它并不能很好的应付所有的应用场景。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。

1.2 非关系型数据库(Not Only SQL)
1.2.1 概念
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

1.2.2 优缺点

优点:

- 高可扩展性
- 分布式计算
- 低成本
- 架构的灵活性,半结构化数据
- 没有复杂的关系

缺点:

- 没有标准化
- 有限的查询功能(到目前为止)
- 最终一致是不直观的程序
1.2.3 有哪些公司再用
1. Google
2. Facebook
3. Mozilla
4. LinkedIn
....

第二部分 MongoDB

2.1 什么是Mongodb?

MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展高性能数据存储解决方案。
MongoDB 是一个介于关系数据库非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。

2.2 为什么选择MongoDB?
1. 面向文档的存储方式:数据被以JSON风格文档形式存放
2. 任何属性均可索引
3. 具有复制和高可用特性
4. 自动数据分片
5. 丰富的查询功能
6. 快速的数据库升级
7. 有mongodb(10gen)公司提供支持
应该在哪里使用MongoDB?
1. 大数据
2. 内容管理和交付
3. 移动和社交基础设施
4. 用户数据管理
5. 数据平台
不适用场景:
    —要求高度事务性的系统。
    —传统的商业智能应用。
    —复杂的跨文档 ( 表 ) 级联查询。

跟关系型数据库不一样的地方是,它是的以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。可以说是兼备了key-value数据库的方便高效与关系型数据库的强大功能。

参考
NoSQL开篇——为什么要使用NoSQL
全面梳理SQL和NoSQL数据库的技术差别
mongodb与mysql相比的优缺点

更多精彩内容请关注“IT实战联盟”哦~~~

《Mongodb概述(一)》 IT实战联盟.jpg

点赞