大纲:
1、MongoDb的体系结构
2、MongoDb安装配置
一、MongoDb的体系结构
概要:
NoSql的概念NoSql的应用场景MongoDb的介绍MongoDb的逻辑组成
1、NoSql的概念
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL ”,互联网的早期我们的数据大多以关系型数据库来存储的。其特点是规范的数据结构(预定义模式)、强一至性、表与表之间通过外键进行关联,这些特征使我们对数据的管理更加清晰和严谨,但随着互联网的发展数据成爆炸式的增长我们对数据库需要更好的灵活性和更快的速度。这就是NoSql可以做到的。它不需要预先定义模式,没有主外键关联、支持分片、支持复本。
NoSql的分类:
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.
文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph.
2、NoSql的应用场景
NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
基于豆瓣电影举例说明NoSQL的应用场景 电影基本信息分析 电影与明星关系存储
3、MongoDb的介绍
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
4、MongoDb的逻辑组成
体系结构:
逻辑结构与关系数据库的对比:
关系型数据库
MongoDb
database(数据库)
database(数据库)
table (表)
collection( 集合)
row( 行)
document( BSON 文档)
column (列)
field (字段)
index(唯一索引、主键索引)
index (全文索引)
join (主外键关联)
embedded Document (嵌套文档)
primary key(指定1至N个列做主键)
primary key (指定_id field做为主键)
aggreation(groupy)
aggreation (pipeline mapReduce)
二、MongoDb安装配置与基础命令
概要:
mongoDb版本说明mongoDb启动参数说明客户端Shell 的使用及参数说明数据库与集合的基础操作mongoDb社区版说明
下载地址:https://www.mongodb.com/download-center/community
#下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz
# 解压
tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
2.mongoDb启动参数说明
mongoDb 由C++编写,下载下来的包可以直接启动
#创建数据库目录
mkdir -p /data/mongo
# 启动mongo
./bin/mongod --dbpath=/data/mongo/
常规参数
参数
说明
dbpath
数据库目录,默认/data/db
bind_ip
监听IP地址,默认全部可以访问
port
监听的端口,默认27017
logpath
日志路径
logappend
是否追加日志
auth
是开启用户密码登陆
fork
是否已后台启动的方式登陆
config
指定配置文件
配置文件示例
vim mongo.conf
内容:
dbpath=/data/mongo/
port=27017
bind_ip=0.0.0.0
fork=true
logpath = /data/mongo/mongodb.log
logappend = true
auth=false
已配置文件方式启动
./bin/mongod -f mongo.conf
3.客户端Shell 的使用及参数说明
#启动客户端 连接 本机的地的默认端口
./bin/mongo
# 指定IP和端口
./bin/mongo --host=127.0.0.1 --port=27017
mongo shell 是一个js 控台,可以执行js 相关运算如:
> 1+1
2
> var i=123;
> print(i)
123
>
(本片文章为图灵学院学习总结)