发展历史[维基百科]
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实战联盟”哦~~~
IT实战联盟.jpg
网友评论