单元目标 1.什么是NO-SQL? 2.认识MongoDB数据库 3. MongoDB的下载与安装 4. MongoDB的体系结构

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

Chapter 3: SQL.
關聯查詢.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
MongoDB技术交流 主讲:刘天斯.
MongoDB简介.
Tool Command Language --11级ACM班 金天行.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
NoSQL数据库之Redis数据库管理 主讲:李捷 QQ: 个人主页:
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
第5章 NoSQL数据库 (PPT版本号:2017年2月版本)
NoSQL分布式数据库.
第六章 學習SQL語言.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
Mongodb初中级实战教程 讲师:涂宗勋 讲师的CSDN博客地址
課程名稱:資料庫系統 授課老師:李春雄 博士
Hadoop I/O By ShiChaojie.
MariaDB Spider分库分表引擎调研
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
資料庫安全 (Database Security)
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
学习目标 1、Linux(这里用的是Centos)下mysql5.7的基本安装 2、课后习题.
Chinese Virtual Observatory
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
存储系统.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
科研信息管理工具 Endnote X4 王辉.
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
ENS 10.1安装配置指南 王俊涛 | SE.
——网鸟老兵系列课程之10天掌握MongoDB
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第20章 MySQL数据库.
SOA – Experiment 2: Query Classification Web Service
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
Web安全基础教程
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
第四章 团队音乐会序幕: 团队协作平台的快速创建
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
项目二:HTML语言基础.
ES 索引入门
第4章 Excel电子表格制作软件 4.4 函数(一).
3.16 枚举算法及其程序实现 ——数组的作用.
Visual Basic程序设计 第13章 访问数据库
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
VB与Access数据库的连接.
数据表示 第 2 讲.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
学习目标 1、什么是列类型 2、列类型之数值类型.
百万行、千万行数据查询教程 老黄牛.
Presentation transcript:

单元目标 1.什么是NO-SQL? 2.认识MongoDB数据库 3. MongoDB的下载与安装 4. MongoDB的体系结构 5.客户端GUI工具集合 6.常用命令(基本的增删改查)

什么是NO-SQL NoSQL指的是非关系型的数据库,是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。

NoSQL发展现状 目前国内外正在应用NoSQL的网站有: 新浪微博 Redis Google Bigtable Amazon SimpleDB 淘宝数据平台 Tair (淘宝自主开发的Key/Value结构数据存储系统) 视觉中国网站 MongoDB 优酷运营数据分析 MongoDB 飞信空间 HandlerSocket 豆瓣社区 BeansDB 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

三、和高可用性的需求对数据库的高可扩展性 我们为什么要使用NOSQL非关系数据库? 一、对数据库高并发读写的需求 二、对海量数据的高效率存储和访问的需求 三、和高可用性的需求对数据库的高可扩展性 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

NoSQL数据库的优缺点 在优势方面,主要体现在下面这几点: 简单的扩展 快速的读写 低廉的成本 灵活的数据模型 在不足方面,常见主要有下面这几点: 不提供对SQL的支持 支持的特性不够丰富 现有产品的不够成熟 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

NOSQL的种类 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB介绍 MongoDB是什么? {“name”:”mongo”,”type”:”DB”} MongoDB(from “humongous”) Is a scalable,high-performance,open source, Document-oriented database,Written in C++ 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 主要功能特性: ◆ 面向集合存储,易存储对象类型的数据   ◆ 面向集合存储,易存储对象类型的数据   “面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定 义任何模式(schema)。   ◆ 模式自由   模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。   ◆支持动态查询   ◆支持完全索引,包含内部对象 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 ◆支持查询 ◆支持复制和故障恢复 ◆使用高效的二进制数据存储,包括大型对象(如视频等) ◆自动处理碎片,以支持云计算层次的扩展性 ◆支持RUBY,PYTHON,JAVA,C++,PHP等多种语言 ◆文件存储格式为BSON(一种JSON的扩展) BSON(Binary Serialized Document Format)存储形式是指:存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 ◆可通过网络访问   MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。   MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 面向集合(Collenction-Orented) 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 模式自由(schema-free) 意思是集合里面没有列和行的概念,下面两个记录可以存在于同一个集合里面: {“name" : “mongo"} {"age" : 25} 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB数据库 文档型(documents) 意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据 类型集合里的任意类型,包括数组和文档,每一个文档相当于关系数据库中的一条记录。 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB介绍 文档是什么? 这个Document,不是文件!! {“name”:”李捷”,”alias”:”李小帅”} Not JSON,BUT BSON 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB的体系结构 1、逻辑结构关系对比 关系型数据库: MySQL数据库(database)、表(table)、记录(rows) 三个层次概念组成。 非关系型数据库: MongoDB 数据库(database)、集合(collection)、文档对象(document)三个层次概念组成。 MongoDB 里的集合对应于关系型数据库里的表,但是集合中没有列、行和关系的概念,集合中只有文档,一个文档就相当与一条记录,这体现了模式自由的特点。

2、数据存储结构 MySQL的数据存储结构: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如果使用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI。 MongoDB的数据存储结构: MongoDB的默认数据目录是/data/db,它负责存储所有的MongoDB的数据文件。在MongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。所以如果系统中有一个叫做test的数库,那么构成test这个数据库的文件就会由test.ns,test.0,test.1等等组成。

3、MongoDB 数据类型 MongoDB的文档使用BSON(Binary JSON)来组织数据,BSON类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),不能完全满足复杂业务的需要,因此,BSON还提供日期、32位数字、64位数字等类型。以下对mongoDB的数据类型进行简要说明:

1、 null null类型用于表示空值或不存在的字段 如:{“one”:null} 2、 布尔类型  布尔类型有两上值,’true’和’false’ 如:{“one”:true} 3、 32位整数    mongoDB的控制台使用JS引擎进行输入,而JS仅支 持64位浮点数,所以32位整数将会被自动转义。 4、 64位整数  64位整数与32位整数一样,在MongoDB控制台使用 时,会转义成64位浮点数。

5、 64位浮点数   MongoDB控制台数字的默认类型。 如:{“one”:2.02} {“one”:10} 6、字符串 UTF-8字符串都可以表示为字符串类型的数据。 如:{“one”:”Hello World”} 7、 符号  在MongoDB控制台中不支持这种类型,将自动转义成 字符串。

8、 ObjectId 类型 对象id是文档中唯一的12位的ID  0|1|2|3|4|5|6|7|8|9|10|11 时间戳   |机器  | PID | 计数器      如:ObjectId("4eae239f63520362e051e7fd") 9、 日期 注意:使用的时候要加上new 如:{“one”:new Date()}  10、正则表达式   文档键值可以包含正则表达式,其正则表达式采用JS语法来表示。 如:{“one”:/ho/i}

11、代码  文档中可以包含JS代码  如:{“one”:function(){/*………….*/}} 12、数组    文档中键值可以表示为数组,在数组内还可以嵌套数组; 如:{“x”:[“a”,”b”,[“c”,”d”]]} 13、内嵌文档  文档可以包含别的文档,也可以作为值嵌入到父文档中。 如:{“x”:{“name”:”Tom”,”age”:20}}

Document store RDBMS MongoDB Database Table, View Collection Row Document (JSON, BSON) Column Field Index Join Embedded Document Foreign Key Reference Partition Shard Javascript

Document store > db.user.findOne({age:39}) { RDBMS MongoDB Database Table, View Collection Row Document (JSON, BSON) Column Field Index Join Embedded Document Foreign Key Reference Partition Shard > db.user.findOne({age:39}) { "_id" : ObjectId("5114e0bd42…"), "first" : "John", "last" : "Doe", "age" : 39, "interests" : [ "Reading", "Mountain Biking ] "favorites": { "color": "Blue", "sport": "Soccer"} } Flexible schema Javascript

CRUD Create Read Update Delete db.collection.insert( <document> ) db.collection.save( <document> ) db.collection.update( <query>, <update>, { upsert: true } ) Read db.collection.find( <query>, <projection> ) db.collection.findOne( <query>, <projection> ) Update db.collection.update( <query>, <update>, <options> ) Delete db.collection.remove( <query>, <justOne> ) Create The field name _id is reserved for use as a primary key; its value must be unique in the collection, is immutable, and may be of any type other than an array. The field names cannot start with the $ character. The field names cannot contain the . character. Create with save If the <document> argument does not contain the _id field or contains an _id field with a value not in the collection, the save() method performs an insert of the document. Otherwise, the save() method performs an update. sds

CRUD example > db.user.find () { "_id" : ObjectId("51…"), > db.user.insert({ first: "John", last : "Doe", age: 39 }) > db.user.find () { "_id" : ObjectId("51…"), "first" : "John", "last" : "Doe", "age" : 39 } > db.user.update( {"_id" : ObjectId("51…")}, { $set: { age: 40, salary: 7000} } ) > db.user.remove({ "first": /^J/ })

MongoDB的安装(Linux平台) 第一步:下载MongoDB安装包 如果有网络的话,用命令直接下载(CentOS版本) wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.0.tgz 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB的安装(Linux平台) 第二步:解压压缩包 tar zxvf mongodb-linux-i686-2.0.2.tgz 最好给解压的文件夹改个名字,方便操作。 mv mongodb-linux-i686-2.0.2 mongodb 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB的安装(Linux平台) 第三步:安装准备 将mongodb移动到/usr/local/mongdb文件夹(跟据个人习惯指定) mv mongodb /usr/local/mongodb 创建数据库文件夹 (默认的数据库文件的位置是/data/db,启动时会自动创建) mkdir /usr/local/mongodb/data 提示:mongoDB没有具体的安装过程,解压文件包后,可以直接使用,非常高效和方便。 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB的安装(Linux平台) 第四步:开机自启动 将mongodb启动项目加入rc.local保证mongodb在服务器开机时启动 echo"/usr/local/mongodb/bin/mongod --dbpath= /usr/local/mongodb/data" >> /etc/rc.local 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可

MongoDB的安装(Linux平台) 第五步:启动mongodb 运行mongod命令 --dbpath执行数据库存放路径(默认是/data/db) --fork是以Daemon(守护进程)方式运行, 注意:如果指定--fork参数,必须指定--logpath 日志文件路径 大部分常用功能在前面的学习过程中基本上已经多多少少接触过了,这里写到一起可以起到一个整体回顾的巩固作用 在第9~14页中,对于之前未讲过的部分知识(例如重定向输入、追加输入/输出、历史命令条数的限制等),则应该适当强调,其余的简略讲解即可 /usr/local/mongodb/bin/mongod --dbpath= /usr/local/mongodb/data --fork --logpath=/usr/local/mongodb/dblogs

不加--fork参数启动成功 加--fork参数启动成功 注意:如果不加--fork参数,则需要再开启一个MongoDB启动窗口。