数据库的分类
关系型数据库遵循的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
网友评论