mongoDB (芒果数据库)
数据存储阶段
文件管理阶段(.txt .doc .xls)
优点 : 使用简单方便
数据能够长期保存
可以存储大量数据
缺点 : 数据一致性差
数据的查找修改不方便
数据冗余
数据库管理阶段
优点 : 数据组织结构化,降低冗余
提高增删改查效率
方便扩展
方便程序调用,做自动化的处理
缺点 : 数据库使用特定的语句操作,相对复杂
几个概念
数据 :能够输入到计算机中并被识别处理的信息的集合
数据结构:研究一个数据集合中,数据之间关系的学科
数据库: 按照数据结构,存储数据的仓库。在数据库管 理系统管理下在一定介质上的数据集合。
数据库管理系统 :管理数据库的软件,用于建立维护数 据库
数据库系统 :由数据库和数据库管理系统等开发工具组 成的集合
关系型数据库
采用关系模型来组织数据结构的数据库 (二维表)
Oracle DB2 SQLServer MySql Sqlite
优点:容易理解,逻辑类似常见的表格
使用方便,都使用sql语句,sql语句很成熟
数据一致性高,冗余低,完整性好
技术成熟,可以使用外部关联等复杂操作
缺点:每次都需要sql语句的解析,消耗大
不能很好的满足并发需求,特别是海量数据爆发,读写能力不足
关系型数据库每一步操作都要加锁,以保证操作的原子性,增加了数据库负担
数据的一致性有时会导致空间浪费
非关系型数据库 (NoSql--》not only sql)
优点 : 高并发,读写能力强
普遍比关系型数据库容易扩展
弱化了数据结构,降低数据一致性
缺点 : 通用性差,没有sql语句一样的一致化操作
操作过于冗长,容易混乱
没有join等复杂操作,很多也不支持事务等操作
NoSql 使用情况
1. 对数据一致性要求低
2. 数据库需要处理海量并发
3. 需要处理速度较快,比如做一个临时的中间过度存储 器
4. 数据库构建比较方便的构建非关系模型
Nosql分类:
键值型数据库:Redis
列存储数据库
文档型数据库:MongoDB
图形数据库
MongoDB 数据库 (非关系型数据库--》文档型数据库)
1. 由c++编写的数据库管理系统
2. 支持丰富的增删改查操作
3. 支持丰富的数据类型
4. 支持众多的编程语言接口(python PHP C++ c#)
5. 使用方便,便于部署。相对成熟。
mongo
进入mongo shell界面:mongodb的交互界面,操作数据库
退出界面 : quit() 或 ctrl + c
mongodb数据库组织形式
键值对 ---》 文档 ---》 集合 ---》数据库
------------------------
ID | NAME | AGE
------------------------
1 | Lily | 17
------------------------
2 | Lucy | 18
------------------------
{
"_id":1,
"NAME":"Lily",
"AGE":17
},
{
"_id":2,
"NAME":"Lucy",
"AGE":18
}
mysql 和 mongodb 概念比价
mysql mongodb 含义
database database 数据库
table collection 表/集合
column field 字段/域
row document 记录/文档
index index 索引