zoukankan      html  css  js  c++  java
  • Martin Fowler论21世纪的软件设计

    人们未能很好地理解无模式(Schemaless)数据结构,重要的是当我们在NoSQL数据库中使用这些数据结构的时候如何权衡它的优缺点。在最近的一次公司活动中, Martin Fowler 就无模式数据结构 和 NoSQL与一致性进行了讨论

    无模式数据结构:

    无模式通常被视为NoSQL数据库的一个重大优势,而Martin认为人们未能很好地理解这一领域,同时他介绍了无模式的不同方面以及使用无模式数据结构的优缺点。

    Martin讨论的重点是即使在无模式的结构中,依然存在着模式。为了查询数据和寻找信息,你必须理解数据,从而有了一个隐式模式(Implicit Schema,例如代码中的数据定义。与此相对的是关系数据库中的模式,该模式只接受恰当的数据,这是一种显式模式(Explicit Schema

    Martin在结束讨论时声称,即使在某些情况下无模式非常有用,但大多数时候 “隐式模式==坏事(Bad Thing)”,并推荐使用显式模式从而使数据拥有一个清晰的描述。但是他同样也指出模式并非固定的存储模式;它可以在同一契约下具有更多的形式,例如一个数据访问层或XML模式。

    NoSQL与一致性

    在本次演讲中Martin着眼于NoSQL数据库一致性的两个方面。

    逻辑一致性涉及在一个数据库中工作时如何保持数据一致性。对于大多数NoSQL数据库(图形数据库除外)来说,使用聚集(aggregate(来自领域驱动设计中的一个概念,即在同一时间存储的一个对象群集)是避免数据不一致的一个显著方式。

    当描述同一数据在多个不同地点的复制一致性时,Martin介绍了CAP 理论。而数据一旦通过网络完成复制后,他将该问题简化为如何在一致性和可用性之间做出选择。他强调了这并非是一个技术问题,这是在一致性和可用性优先级方面的一个业务选择。

    最后,Martin以软件设计的价值和技术债务的讨论结束了该次演讲。

  • 相关阅读:
    SQL 统计两个表的数据,按同一日期分组
    SQL 隐藏手机号中间四位
    SVN本地代码未提交而被覆盖
    [转]VS2012 快捷键
    IE8下String的Trim()方法失效的解决方案
    IE8下导入EXCEL数据传到客户端以附件下载
    jenkins插件
    OJ练习28——T118 Pascal's Triangle
    OJ练习27——T112 Path Sum
    OJ练习26——T111 Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/shihao/p/3006965.html
Copyright © 2011-2022 走看看