• 谈谈NOSQL


    从MongoDB引到NOSQL


    要讲MongoDB之前,首先要提到一个概念NOSQL(NoSQL = Not Only SQL )

    很大一部分数据是由关系型数据库管理系统(RDMBSs)来处理的,关系模型是结构化储存的主力军,宛如帝王般的存在

    而NOSQL就是那个断指的刺客,拿剑指向帝王

    它提倡使用非关系的数据储存

    ACID原则(关系型数据库的金科玉律)

    数据库中的事务(transaction)和现实生活中的交易类似,它就具有如下的四个特性

    1.A(Atomicity)原子性

    要么全部做完,要么大家都别做了(如果一个操作失败,那么整个事务都要回滚)

    2.C(Consistency)一致性

    数据库需要一直处于一致的状态,事物的运行不会改变数据库的一致性约束

    eg:如果有个A+B=10的约束,如果有一个事务改变了A那么就必须再改变B,使得依然满足A=B=10的这个条件。

    3.I(Isolation)独立性

    独立性是指并发的事务之间不会互相影响,在事务结束之前,数据是不会被影响的。

    4.D(Durability)持久性

    事务一旦改变了数据,那他就会永久的停留在数据库里面,即使发生宕机数据也不会发生丢失。

    为什么要去使用NOSQL?

    可以部分参考王垠的观点,《关系模型的实质》https://www.yinwang.org/blog-cn/2014/04/24/relational ,对数据进行挖掘,那么关系型的SQL就不适合处理这些庞大的用户数据。

    BASE

    BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定义。

    CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

    BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:

    • Basically Availble --基本可用
    • Soft-state --软状态/柔性事务。 "Soft state" 可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的
    • Eventual Consistency --最终一致性 最终一致性, 也是是 ACID 的最终目的。

    MongoDB

    既然没有关系模型,那要怎么样在数据库里面建立索引呢

    以MongoDB为例,文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

    参考资料
    https://www.mongodb.org.cn/tutorial/2.html

  • 相关阅读:
    Autofac(01)
    深入理解ADO.NET Entity Framework(02)
    使用excel 数据透视表画图
    C# 控制CH341进行SPI,I2C读写
    C# winform使用combobox遍历文件夹内所有文件
    通用分页存储过程
    如何让你的SQL运行得更快
    sql优化之使用索引
    SQL优化
    SQL 循环语句几种写法
  • 原文地址:https://www.cnblogs.com/QuixoteY/p/11122848.html
Copyright © 2020-2023  润新知