数据库的分类
关系型数据库遵循的ACID
A (Atomicity)原子性
C (Consisitency)一致性
I (Isolation)独立性
D (Durability)持久性
为什么使用NoSql
not only sql1
现在个人信息爆炸
对爆炸的数据挖掘 传统的SQL数据库已经不在适合
NoSql解决了大数据的处理和存储问题
RDBMS NoSQL
RDBMS
高度组织化结构化数据
结构化查询语言SQL
数据和关系都存储在单独的表中
数据操纵语言,数据定义语言
严格的一致性
基础事务
NoSQl
not only sql
没有声名性查询语句
没有预定义的模型
键值对存储,列存储,文档存储,图形数据库1
最终一致性,而非ACID属性
非结构化和不可预支的数据
CAP定理
高性能,高可用性和可伸缩性
CAP定理
对于一个分布式计算系统来说,不可能同时满足一下三点 最多满足两个
一致性(所有节点在同一时间具有相同的数据)
可用性(保证每个请求成功与否都有相应)
分隔容忍(系统中任意信息的丢失或者失败不会影响系统的继续运作)
因此根据CAP原理将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则
CA-单点集群,满足一致性,满足性的系统,通常在可扩展性上不太强大
CP-满足一致性,分区容忍性的系统,通常性能不是特别高
AP-满足可用性,分区容忍性的系统,通常可以对一致性要求低一些
NoSQL的优缺点
优点
高拓展性
分布式计算
低成本
架构的灵活
半结构化数据
没有复杂的关系
缺点
没有标准化
有限的查询功能(目前为止)
最终一致是不直观的程序
NoSQl分类
# MongoDB简介
C++编写
分布式文件存储的开源数据库系统
可以横向扩展
将数据存储为一个文档,数据结构为(KV)
文档类似于JSON对象,字段值可以包含其他文档
主要特点
面向文档存储的数据库,操作起来比较简单
可以设置任何属性的索引(FirstName = “Sameer”,Address=“8”)实现更快的排序
通过本地或者网络床架数据镜像,使Mongo有更强的扩展性
分片:分布在计算机网络的其他节点
Mongo支持丰富的查询表达式.查询指令JSON形式
update实现替换完成的文档
MR对数据进行批量处理和聚合操作
Map函数调用emit(key,value)遍历集合中所有的记录,kv传给Reduce函数
Reduce函数是JavaScript编的,通过db.runCommand或mapreduce命令来执行
GridFS是MongoDB中的一个内置功能,可以用来存放大量小文件
允许在服务端执行脚本,可用javaScript编写某个函数,直接在服务端执行,函数定义也可以存储在服务端,下次直接调用即可
支持各种编程语言:ruby Python java C php等
MongoDB解析
数据库
一个MongoDB可以创建多个数据库
默认数据库为db 该数据库存储在data目录
单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库放置在不同文件中
数据库通过名字来标识.数据库名字可以是满足以下任意utf-8字符串
不不能是空字符串串("")。 不不得含有' '(空格)、.、$、/、\和\0 (空字符)。 应全部小小写。 最多64字节。1234
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库
admin root数据库,将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限.特定的命令只能够这个数据库运行(列出所有的数据库或关闭服务器)
local 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config:当Mongo用于分片设置时,config在内部使用,用于保存分片的相关信息
文档
文档是一组kv(BSON).Mongo的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,与关系型数据库有很大差别,也是MongoDB的特点
{"site":"www.skedu.com", "name":"山山科大大mongodb"}1
RDBMS与MongoDB对应的术语:
注意
kv是有顺序的
文档中的值不仅可以是在双引号里的字符串,还可以是其他几种数据类型(甚至是整个嵌入式文档)
区分类型和大小写
文档不能有重复的键
键是字符串.除了少数例外,可以使用UTF-8
文档命名规范键不能含有\0(空字符).这个字符用来表示键的结尾
.和$有特殊意义
_开头是有保留的(不是严格要求)
集合
集合就是 MongoDB 文文档组,类似于 RDBMS (关系数据库管理理系统:Relational Database
Management System)中的表格
没有固定的结构,意味着在对集合可以插入不同格式和类型的数据
但通常情况下插入集合的数据有一定的关联性
{"site":"www.baidu.com"} {"site":"www.google.com","name":"Google"} {"site":"www.runoob.com","name":"菜⻦鸟教程","num":5}123
MongoDB数据类型
转载:https://blog.csdn.net/weixin_39381833/article/details/89191494