初次接触MongoDB的时候只知道它是一个非关系型数据库,NoSql型数据库,刚开始见到这个词的时候,我还翻译为无SQL呢,其实人家的意思是Not only Sql,非关系型数据库。突然觉得自己没文化,真可怕~
关系型数据库是指建立在关系模型基础上的数据库,而非关系型数据库就是指不建立在关系模型基础上的数据库。而非关系型数据库的产生正是为了解决关系型数据库无法解决的问题。
关系型数据库的不足:
1、高并发读写无法满足
2、高扩展性和可用性无法满足,
3、复杂的SQL,多表查询在很多Web网站已经不再需要。
4、读写的实时性也不再需要;
于是,在1998年提出来noSql 的概念,最初的意思其实和我理解的差不多就是没有SQL,不过后来的发展,逐渐偏离了这个意思,也就是变成了如今的非关系型。No realational.
我们学过关系型数据库SQL,这又接触了NoSql,一个关系型,一个非关系型,那它们有什么区别呢?
1、传统的非关系型数据库读写操作都是依赖于事务,具有ACID的特性。对于一致性付出的代缴比较大,读写性能比较差。
2、关系型数据库结构固定,扩展性差
3、非关系型数据库能给应对新需求提出来的新的数据表结构。它是一种数据结构化存储方法的集合。
4、 对于数据的持久存储,还是用关系型数据库比较好。
非关系型数据库的分类:
它的分类其实就是根据关系型数据库的不足来进行分的:
面向高性能并发读写的key-value数据库:Oracle BDB,Redis等。
面向海量数据访问的面向文档数据库:MongoDB,CouchDB;
面向可扩展性的分布式数据库:Neo4J,InfoGrid,InfiniteGraph.
这就引出了我们接下来要学习的MongoDB。
下篇博客我们介绍MongoDB的安装与启动。