MongoDB是一种Nosql数据库(Not Only SQL), Nosql不是近几年
才有的, 从数据库的初期发展就已经存在了Nosql的数据库。数据库之中支持的SQL语句是由 IBM 开发出来的,并且最早就应用在了Oracle数据库之中.但是这个时候有人开始反感与编写SQL操作.于是有一些人就开始提出一个理论 —— 不要去使用SQL, 于是最早的Nosql概念产生了。可以后来发生了一些变化, 在90年代到2010之间, 世界上最流行的数据库依然是关系型数据库, 并且围绕关系型数据库开发出了很多大型应用程序。后来又随这移动技术(云计算 大数据)的发展, 很多公司并不愿意去使用大型的厂商数据库——Oracle/DB2,因为这些人已经习惯于使用Mysql数据库了。这些人发现在大数据在云计算的环境下, 数据存储收到了很大的挑战, 那么后来就开始重新进行了Nosql数据库的开发, 但是经过长期的开发发现, Nosql数据库依然不能离开传统的关系型数据库(Nosql)
实际上在现实的开发之中一直存在一种神奇的问题
数据表 -> JDBC读取 -> POJO(VO . PO) -> 控制层转化为JSON数据 -> 客户端可是这样的转换实在是太麻烦了, 那么最好的做法是, 直接有一个数据库就存放有显示的JSON数据该有多好, 那么就省略所有需要转换的过程。所以在实际开发中, 往往除了关系型数据库之外还要提供一个Nosql数据库, 其中Nosql数据库负责数据的读取, 因为直接保存的就是JSON(前提: MongoDB中的数据是排列好的组合数据)
例如: 现在要求显示出每个雇员的编号、职位、部门名称、工资等级。传统的关系型数据库之中一定要存放大量的冗余数据。而有了Nosql数据库之后, 可以直接在业务层里面将数据交给Nosql数据库保存, 按照指定的结构进行存储.
在MongoDB数据库之中与Oracle数据库有如下的概念对应:
No. | 关系型数据库 | 非关系型数据库 |
---|---|---|
1 | 数据库 | 数据库(类似于MySQL) |
2 | 表 | 集合 |
3 | 行 | 文档 |
4 | 列 | 成员 |
5 | 主键 | Object ID(自动维护) |
在整个行业中, MongoDB数据库是发展最好的一个Nosql数据库, 因为它与Node.js 捆绑在一起了, 也就是说如果你要从事NodeJS的开发, 那么一定要使用MongoDB, 而NodeJS( 基于Javascript )在国内最成功的应用 - 淘宝(当然, 并不是全都是用NodeJS开发的)
MonogDB之所以能够得到更好的发展也取决于: 面向集合的存储过程 、模式自由(无模式)、基于BSON( MongoDB自身的一种数据格式, 但也是一种JSON格式 )
Nosql => 去掉关系数据库的关系型特性 详情
IBM => 要详细了解可读下 (浪潮之巅第三版)关于各大公司发展的历程
SQL语句 其实就是几个简短的单词: ["SELECT", "FROM", "GROUP BY", "ORDER BY", "HAVING"]