Mongodb数据库初识
@TOC
一、什么是数据库
1.标准定义
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2.数据库的概念
数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。
但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
3.数据库的简单理解
- 1.数据库,是你访问数据的中间件。
- 2.关系数据库=多张表+各表之间的关系。
- 3.数据库是让数据有规律的存储,一旦数据有规律,我们就可以使用各种算法去高效地查找它们。
- 4.索引 + 规律存储 = 快速查询
- 5.关系数据库中,如果一张表要关联其他表,通过对应的列产生了关系。这个关系叫做联结。
4.使用数据库的原因
①普通文件系统存储大量数据的问题
在windows系统中,当我们存储大量数据到电脑硬盘中,需要查询一个execl表格中某行某列的值,在文件任务管理器中,搜索这个文件名,
电脑经过长时间对文件系统的所有文件计算查询,找到后,再打开此文件。
当数据量上去了,数据被存放在多个文件里,每次查询,我们就得打开很多个文件,打开后还要遍历里面的数据,「磁盘 IO」 和「时间复杂度」都很高。
②数据库的高效性
数据库让数据有规律的存储,一旦数据有规律,我们就可以使用各种算法去高效地查找它们。
二、数据库的分类
1.关系型数据库
①关系型数据库定义
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
②关系型数据库的软件
主流的关系型数据库有Oracle、DB2、MySQL、mariadb、Microsoft SQL Server、Microsoft Access等多个品种,每种数据库的语法、功能和特性也各具特色。
2.非关系型数据库
①非关系型数据库的类型
非关系型数据库主要有四种数据存储类型:
- 键值对存储(key-value),
- 文档存储(document store),
- 基于列的数据库(column-oriented),
- 还有就是图形数据库(graph database)
②非关系型数据定义
数据以对象的方式存储在数据库中,对象之间的关系的通过自身属性来决定,用于存储非结构化数据。
③非关系型数据库软件
- redis:Redis是一个键值存储。
- mongodb:MongoDB是最著名的NoSQL数据库。它是一个面向文档的开源数据库。
- Cassandra:Cassandra是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。通常,这些数据分布在许多普通服务器上。
三、Mongodb介绍
1.mongodb介绍
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
2.mongodb存储方式
1.MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
2.MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
3.mongodb特点
- 1.MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 2.在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
- 3.可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 4.如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- 5.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- 6.MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- 7.Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- 8.Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- 9.Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- 10.GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
- 11.MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- 12.MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- 13.MongoDB安装简单。
- 点赞
- 收藏
- 关注作者
评论(0)