深入浅出MongoDB(一)NoSQL起源

为什么出现NoSQL?

随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件。

最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分。不久之后,你就会发现被自己数月前的设计数据结构限制住了。

随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点。

1、对数据高并发读写的需求

2、对海量数据的高效率存储和访问的需求。

3、对数据库的高可扩展性和高可用性的需求。

4、数据库事务一致性需求。

5、数据库写实性和读写时性需求。

6、对复杂SQL的查询,特别是对关联查询的需求。

NoSQL是Notonly SQL的缩写,NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常避免使用SQL的join操作,一般有水平可扩展性的特征。

NoSQL历史?

1、NoSQL一词最早出现在1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。

2、2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL概念,这时的NoSQL主要是指非关系型、分布式、不提供数据库设计模式。

3、2009年趋势高涨,被定为“非关系型的”数据存储,相对于关系型数据库运用,这一概念无疑是一种全新思维的注入。

SQL和NoSql的区别?

NoSQL具有如下几点

优点:

1、高并发读写

2、海量数据存储

3、高可扩展性

4、高可用性

缺点:

5、缺乏事务一致性

6、缺乏读写实时性

7、不支持复杂查询

NoSQL数据库类型

Key-value:key指Value的键值对,通常用hash
table来实现

列式数据库:同一列数据存在一起

文档型数据库:Key-Value对应的键值对,Value为结构化数据产品:MongoDB

图结构数据库:以“图”为基本存储模型,产品:Neo4j,InfoGrid,InfiniteGraph

NoSQL数据库开源软件

1、Membase软件

2、Hypertable

3、ApacheCassandra

4、MongoDB

在这里我们用的是MongoDB,下篇着重说明MongoDB,以及实例操作。

时间: 2024-10-21 17:29:49

深入浅出MongoDB(一)NoSQL起源的相关文章

mongodb 、nosql、 redis、 memcached 是什么?

mongodb 是一个基于文档的数据库,所有数据是从磁盘上进行读写的.MongoDB善长的是对无模式JSON数据的查询.而Redis是一个基于内存的键值数据库,它由C语言实现的,与Nginx/ NodeJS工作原理近似,同样以单线程异步的方式工作,先读写内存再异步同步到磁盘,读写速度上比MongoDB有巨大的提升.因此目前很多超高并发的网站/应用都使用Redis做缓存层,普遍认为其性能明显好于MemoryCache.当并发达到一定程度时,即可考虑使用Redis来缓存数据和持久化Session.

深入浅出MongoDB应用实战开发视频教程

下载地址:http://pan.baidu.com/s/1c1rsW1q 密码:mjsl 课程大纲: MongoDB基础: 第1讲.nosql与MongoDB(nosql兴起的背景.各种nosql数据库介绍,MongoDB的特点) 第2讲.MongoDB安装配置 (MongoDB安装使用,基本系统管理的技巧,web控制台使用) 第3讲.MongoDB shell详解 (介绍MongoDB shell使用及命令,备份恢复.数据导入导出) 第4讲.MongoDB文档.集合.数据库的概念(介绍文档.集

(原创)MongoDB之NoSQL简介

Nosql简介1.1系统对数据的需求        Nosql[Nosql主要用途大数据处理]的全称为”not only sql”,为非关系型数据库[非关系型数据库就是关系型数据库的所有特点都没有了,主外键,约束也没有了,sql语句也没有了.].这类数据库的主要特点是:非关系型.分布式.开源的.水平可扩展的.Nosql最典型的应用为key-value存储.Nosql的最主要的用途是大数据的处理,这个问题在传统的关系型数据库中有严重的系统瓶颈,而nosql的诞生很好的解决了这个问题.传统的数据库在

【MongoDB】NoSQL Manager for MongoDB 教程(基础篇)

前段时间,学习了一下mongodb,在客户端工具方面,个人认为 NoSQL Manager for MongoDB 是体验比较好的一个,功能也较齐全.可惜在找教程的时候,发现很难找到比较详细的教程,也没有找到中文破解版之类的安装包.在经过摸索使用之后,决定写两篇关于NoSQL Manager for MongoDB 教程的总结,以供自己或者有需要的人翻查使用. 基础篇:安装.连接mongodb.使用shell.增删改查.表复制 进阶篇:索引.备份还原.从其他关系型数据库(mysql,sqlser

深入浅出MongoDB(六)java操作mongodb增删改查

java操作mysql数据库的代码我们已经了如指掌了,增删改查,java对mongodb数据库也是类似的操作,先是数据库连接,再是进行操作. 首先我们进入进入admin数据库,然后建立自己的数据库testMongoDb,进入admin数据库后,就可以直接进入testMongoDb,因为用户可以进入系统的数据库,就是超级管理员,use testMongoDb后,为该数据库设置用户名和密码,db.addUser('root','root'),这样我们在程序中连该数据库,并实现增删改查,代码如下所示.

深入浅出MongoDB(二)mongoDB简介

MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常的松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.MongoDB最大的特点是他支持的查询语言是非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.它的特点是高性能.易部署.易使用,存储数据非常方便. MongoDB功能特性 1.面向集合存储,易存储对象类型的数

深入浅出MongoDB(三)mongoDB下载和安装

软件下载 下载mongodb最新的包:http://www.mongodb.org/downloads 下载mongodb可视化界面,mongoVUE:http://download.csdn.net/detail/lovesummerforever/8036417 软件安装 mongodb服务端安装步骤如下所示 1.遵守mongodb规范,选择自己的磁盘创建文件夹,在这里我选择的是D盘,创建如下目录结构 D:\mongodb  作为安装的根目录 D:\mongodb\data 数据目录 D:\

深入浅出MongoDB(四)mongodb设置用户访问权限

我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令. 首先建立一个默认的账户 Use admin Db.addUser('sa','sa') 这样我们建立了一个用户名为sa,密码为sa的默认账户. 在此时我们还是可以不输入用户名和密码进入数据库的,接下来我们做如下的修改. 打开mongodb所在的注册

深入浅出MongoDB(五)mongo语法和mysql语法对比学习

我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与mysql命令对比 关系型数据库一般是由数据库(database).表(table).记录(record)三个层次概念组成.而非关系型数据库mongodb是由数据库(database).集合(collection).文档对象(document)三个层次组成.mongodb对于关系型数据库里的表,没有行和列的关系概念,这体现了模式的自由特点. 语法命令如下列