BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Martin Fowler论21世纪的软件设计

| 作者 Jan Stenberg 关注 34 他的粉丝 ,译者 赵震一 关注 0 他的粉丝 发布于 2013年4月8日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

无模式数据结构:

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

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

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

NoSQL与一致性

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

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

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

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

查看英文原文Martin Fowler on Software Design in the 21st Century

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT