美文网首页
Mongo入门-1-原理&转载自【蚂蚁号】

Mongo入门-1-原理&转载自【蚂蚁号】

作者: Promise_4483 | 来源:发表于2019-04-15 12:17 被阅读0次

    数据库的分类

    在这里插入图片描述

    关系型数据库遵循的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

    原文地址:https://www.v5ant.com/details/g8uoQFpiq.html

    相关文章

      网友评论

          本文标题:Mongo入门-1-原理&转载自【蚂蚁号】

          本文链接:https://www.haomeiwen.com/subject/fbcuwqtx.html