概述
关键词:关系数据库、非关系数据库
关系数据库:
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。目前主流的关系数据库有oracle、SQL、access、db2、sqlserver,sybase等
oracle数据库是oracle公司(中文名叫甲骨文公司)的,还有SQL,access;db2是IBM的(中文名称是国际商务机器公司)。主流的关系数据库还有微软的Sql server,Sybase公司的sybase,(英孚美)软件公司的informix以及免费的MySQL等。
非关系数据库(NoSQL):
提出另一种理念,他以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
目前出现的NoSQL(Not only SQL,非关系型数据库)有不下于25种,除了Dynamo、Bigtable以外还有很多,比如Amazon的SimpleDB、微软公司的AzureTable、Facebook使用的Cassandra、类Bigtable的Hypertable、Hadoop的HBase、MongoDB、CouchDB、Redis以及Yahoo!的PNUTS等等。这些NoSQL各有特色,是基于不同应用场景而开发的,而其中以MongoDB和Redis最为被大家追捧。
1)满足极高并发读写需求的Key-Value数据库:Redis,Tokyo Cabinet,Flare
Key-value类型数据库的特点是把这个数据库系统都加载到内存,定期通过异步操作把数据库刷到磁盘上,因为是纯内存操作,这类数据库性能非常快,但是缺点就是数据库容量受物理内存限制,无法用于海量数据的读写。
2) 满足海量数据读写和面向文档的数据库: MongoDB,CouchDB
面向文档的数据库保证海量数据存储的同时,还具有良好的查询性能,注意:这里只是提高了读性能,而写性能却无法做到显著提高。
3) 满足高扩展性和可用性的面向分布式计算的数据库:Cassandra,Hadoop,HBase,Voldemort
面向scale能力的数据库其实主要解决的问题领域和上述两类数据库还不太一样,它首先必须是一个分布式的数据库系统,由分布在不同节点上面的数据库共同构成一个数据库服务系统,并且根据这种分布式架构来提供online的,具有弹性的可扩展能力,例如可以不停机的添加更多数据节点,删除数据节点等等。
MongoDB
MongoDB是基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。模式*(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎。
MongDB是文档数据库,其中的集合相当于关系数据库中的表,文档相当于关系数据库的表中的数据行,如果还是不是很了解MongoDB,那么看一下这里:http://my.oschina.net/23102160/blog/101651 这里说得还是比较通俗易懂的!
WINDOWS 下的安装和使用
推荐两个系列:http://www.cnblogs.com/huangxincheng/category/355399.html
http://www.cnblogs.com/lipan/category/273923.html
1、新建一个文件夹,当作MongoDB的安装目录。例:D:\MongoDB
2、将下载好的文件 mongodb-win32-i386-2.4.3.zip 解压,将解压出来的4个文件复制到D:\MongoDB目录下
3、在目录D:\MongoDB下新建一个文件夹Data,当作存放数据库的地方
准备工作完成,开始配置
4、Win+R键打开CMD窗口
输入 D:
输入 cd MongoDB\bin
输入 mongod --dbpath D:\MongoDB\Data
至此,配置成功,并开启了MongoDB数据库服务!!!默认的端口号:28017
5、在不关闭第4步的命令框的前提下,打开浏览器访问:http://localhost:28017/
出现:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
说明服务已经开启
6、在不关闭第4步的命令框的前提下,Win+R在调出一个命令框
输入 D:
输入 cd MongoDB\bin
输入 mongo
即可连接上MongoDB的test数据库 (本机为32为Win7系统)
7、连接成功之后,可看http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html 按照步骤,来用命令操作数据库
8、在第5、6步中,我们有强调在不关闭第4步调出的命令框下,这是因为第4步的操作是开启MongoDB数据库服务,如果关闭窗口的话,就关闭了MongoDB数据库服务,也就无法对数据库操作了。
9、通过命令使MongoDB数据库服务在后台运行 ??????
后台运行:-fork命令,但是在用的时候必须要和-logpath命令一起用,来指定日志输入位置
网上查到是:mongod -dbpath D:\MongoDB\Data -logpath D:\MongoDB\log\test.log -fork
但是在本机上运行时,总是提示could not read from config file
此方式在CentOS系统下的MongoDB就可以.......
fork在windows中无法用的吗?
关闭后台:
10、将命令配置到文件中,直接用命令执行文件即可 ?????
在D:/MongoDB/Bin目录下新建db.txt文件,在内部输入
dbpath=D:/MongoDB/Data
logpath=D:/MongoDB/Log/test.log
logappend=true
port=27017(我没写)
然后在命令中输入: mongod -f db.txt
---但是,如果在db.txt中添加 fork=true ,就识别不了fork命令
11、把MongoDB数据库服务做成Windows服务
安装服务:mongod --dbpath=D:/MongoDB/Data --logpath=D:/MongoDB/Log/test.log --logappend --serviceName MongoDB --install
开启服务:net start MongoDB
关闭服务:net stop MongoDB
卸载服务:mongod --dbpath=D:/MongoDB/Data --logpath=D:/MongoDB/Log/test.log --logappend --serviceName MongoDB --remove
如图:
在服务列表中查看:
用CMD对文件进行操作
要进行文件编辑的话:edit X:\XXXXX.TXT
查看文件内容的话:type X:\XXXXX.TXT
也可以用:start X:\XXXXX.txt
于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎。
在CentOS桌面版本下安装:
1.在官方网站上下载相应的版本 http://www.mongodb.org/downloads
2.例如:在usr/local目录下新建文件夹MongoDB,将下载好的.tgz文件解压,并将其中的三个文件放入新建的MongoDB文件夹
3.在MongoDB文件夹中再新建一个文件夹Data用来存放数据库
准备工作已经完成,开始安装
4.打开命令终端
输入 cd /usr/local/MongoDB
再输入 ./bin/mongod -dbpath=./Data
OK....
5.在浏览器上输入 http://localhost:27017
出现You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
配置成功,并且开启了MongoDB数据库服务 6.在不关闭第4步的前提下,再打开一个命令终端,去连接数据库
输入 cd /usr/local/MongoDB
再输入 ./bin/mongo
7. MongoDB数据库服务后台运行,需要利用fork参数,但同时必须要和logpath在一起用,来指定日志的位置,之后就可以关闭窗口,MongoDB服务就会在后台运行了
输入 ./bin/mongod --dbpath=./Data --logpath=./Log/test.log --fork
如果在logpath参数后面在加一个logappend表示日志追加,默认情况下是覆盖的
输入 ./bin/mongod --dbpath=./Data --logpath=./Log/test.log --logappend --fork
后台运行:如下图
8.关闭后台MongoDB服务
在db shell 模式下输入如下命令:db.shutdownServer()
#killall mongod 或者是 kill [pid] 不建议使用