数据模型驱动不仅可以构建高效的应用程序,还可以有效地修改以包含新功能。它们是“现实世界”问题的解决方案与模拟现实世界的软件世界行为之间的桥梁。(是的,软件可以创造奇迹,但如果不是为了更简单的生活,没有人需要这样的软件!)本文讨论了NoSQL数据库在现代应用软件中的作用。驱动力在过去的几年里,应用程序开发平台堆栈的选择发生了巨大的转变。传统的WAMP、LAMP逐渐被淘汰,而MEAN、CEAN等逐渐展现出优势。这种转变有很多原因。最根本的原因是对现代网络的期望。最近的期望是Web应用程序已经超越了信息传递的范围。信息处理和内容分析已成为当今我们与Web应用程序交互的一个非常关键的部分。这通常也称为Web2.0。未来,越来越多的连接到互联网的智能设备和传感器将继续利用应用程序用户生成的越来越多的数据来提供智能附加值(也称为Web3.0)。这种不断变化的Web应用程序范式需要丰富的数据。同时,让数据可供消费同样重要,不可用的数据如何阻碍用户体验和应用开发成为另一个话题!但是,值得一提的是,大多数面向用户的应用程序都需要消费和处理来自多个数据源(datasources)的数据。举个极端的例子,一个旅游预订网站可能需要依赖多家航空公司的航班数据和票务,而信用卡处理来自另一个第三方,行程公告来自另一个……更不用说,它们还可能导致作为用户端到端体验的一部分,用户可以从自己的Web应用程序中在社交媒体上分享他们的预订体验。好吧,我还没有完全向您介绍NoSQL的作用。您可能仍然想知道NoSQL到底是什么。让我们继续吧。但是,了解以下更改非常重要。今天让我们开始利用新的解决方案,在大多数情况下,这些解决方案的创建或开发是因为它们不仅严重依赖于今天,或者仅仅因为今天是可能的(而不是指责以前的计算机革命)。NoSQL允许SQL数据库结构化的复杂结构。但是,由于字段范围、外键关系、规范化技术等原因,它们在处理应用程序需求时可能会导致一定程度的缺陷。例如,客户订单对象通常被构造为分为表头和明细类型的标准化表。另一方面,NoSQL不仅可以在单个结构中处理标题和细节。因此,尽管数据模型的结构可能很复杂,但它支持建立接近“真实世界”的实体。当然,这种能力的代价是将数据完整性管理推向了程序的应用层。NoSQL与基于REST的架构如果您使用Web服务或API,您的API可能会默认为JSON响应(如果不是,您应该尝试)。MongoDB和CouchDB等NoSQL数据库以JSON格式存储数据(称为文档)。这使得编码API响应比接收数组更容易。采用更高级别的API会导致高度集成的应用程序,NoSQL数据库非常适合存储、提供和使用信息。NoSQL带来可扩展性NoSQL数据库在设计时采用了拆分成多节点数据库的思想,从而提供了极大的可扩展性特性。例如,MongoDB目前可以扩展到100多个节点,这些节点可以分布在不同的数据中心或地方。许多NoSQL数据库也开始支持多节点数据分区,这有助于为更大的数据集选择计算资源,也减少了不必要的复制,从而降低了数据复制可扩展性的成本。那么,SQL还是NoSQL?这取决于应用程序和特定场景。不,这是真的,因为有很多因素,例如:1.开发工具和技术可能不支持NoSQL;它仍然是一个传统的SQL数据库;3、最新的数据库供应商可能会在传统数据库中提供一些类似NoSQL的特性,可以满足当前应用的需求;4.数据模型可能是这样的,选择真的没有区别;5.你支持开源代码(从企业支持的角度来看);6.你的同事(开发人员、测试人员等)可能还不够熟练。因此,为您的应用程序选择什么数据库是一个架构决定。因此,这篇文章绝不是为了影响您的喜好,而是可以提高人们对NoSQL广泛接受度的认识,并突出NoSQL在现代应用程序中可以发挥的作用。结束语了解当今的Web应用程序如何符合现代技术的期望非常重要。平衡NoSQL趋势与用户的需求、路线图和期望(尤其是直接用户交互)很重要。***,记住——需要驱动数据模型,而数据模型驱动SQL或NoSQL的选择。这个没有错误答案,大家可以自己揣摩!
