博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Martin Fowler论21世纪的软件设计
阅读量:7115 次
发布时间:2019-06-28

本文共 723 字,大约阅读时间需要 2 分钟。

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

无模式数据结构:

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

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

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

NoSQL与一致性

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

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

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

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

转载地址:http://ieyel.baihongyu.com/

你可能感兴趣的文章
前端进击的巨人(八):浅谈函数防抖与节流
查看>>
后端开发面经
查看>>
使用Envoy 作Sidecar Proxy的微服务模式-3.分布式追踪
查看>>
焦虑、不安
查看>>
this是什么以及如何判断它
查看>>
【Go】string 优化误区及建议
查看>>
Perseus-BERT——业内性能极致优化的BERT训练方案【阿里云弹性人工智能】
查看>>
酷狗音乐快速转换MP3格式的方法
查看>>
Web 开发学习笔记(4) --- 重定向与HSTS
查看>>
通过手机物理返回键实现弹出层的隐藏
查看>>
Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置
查看>>
解决mac下webstorm编辑器识别less的问题
查看>>
原生JS 实现复杂对象深拷贝(对象值包含函数)
查看>>
优化体系结构 - 算法外置优化计算结构
查看>>
JS中的call、apply、bind方法详解
查看>>
启动时间知多少?8款音视频类应用测评报告分析
查看>>
码农张的Bug人生 - 见面之礼
查看>>
JS异步编程之Promise
查看>>
【算法专栏】-- 谈谈时间复杂度
查看>>
元数据治理框架Atlas研究——JanusGraph图数据库对象关系映射
查看>>