在管理数据多样性方面,数据库世界变得有些混乱。
不久前,除了少数领先的数据库管理系统(DBMS)平台外,数据库仅支持单个数据模型。而多模型数据管理的复兴正在改变这种情况,并为数据库架构师带来好处。
多样化数据结构带来的挑战
存储和处理不同结构的数据是一项挑战,这里没有放之四海而皆准的标准。数据有多种形式,一些最受欢迎的数据模型包括关系、文档、键值和图形。
在过去,当处理新的数据结构时,我们要么将数据强加到现有DBMS的数据模型中,要么购买支持该新结构的新DBMS。
在最长的时间里,我们使用的是关系(SQL)DBMS及其前身来解决结构化数据需求。事实证明,这对于我们的大部分数据都适用。尽管没有进行优化,但是我们仍然使用这些传统数据库用于(应用程序中)少量的非结构化数据。
随着新数据源(大数据和实时处理)带来的半结构化和非结构化数据的增加,我们看到大家开始对专用非关系型DBMS选项感兴趣。这些数据库(通常称为NoSQL数据库)以非表格结构对数据进行建模。
然而,数据模型和新的DBMS模型的普及带来困境。使用多种数据库技术管理不同的数据模型带来优化,但增加了复杂性。
解决单模型困境
专用的单模型DBMS产品优化了数据存储和处理。但是,在架构中添加其他DBMS会增加复杂性,包括增加集成、开发、维护和操作。这迫使企业寻求更好的方法来处理各种数据模型。
幸运的是,SQL和NoSQL DBMS供应商都互相学习彼此功能(包括多数据模型),希望企业合理化其DBMS技术到单个数据存储。数据模型支持曾经是DBMS之间的差异因素,而现在它成为共同因素。
什么是多模型数据库
单个数据管理系统内数据模型的融合催生了一种新的DBMS类,称为多模型数据库。一些领先的DBMS选项已经支持多种模型已有一段时间,但目前我们还没有看到快速部署。
部署方法可能会有所不同。我更喜欢这样的架构:在单个集成数据库引擎中,以本机数据类型和结构存储支持的模型。这样可在所有模型之间提供一致的数据管理,并允许在单个接口内中对数据进行多模型访问。
从哪里开始使用多模型数据库
初看之下,面对多语言持久性,多模型数据库似乎飞速发展,多语言持久性主张根据其数据用途将数据存储在多种数据存储技术中。但是,如果可在同一个DBMS中处理不同的数据模型会如何?
如果你已经投资于多模型DBMS,并且它满足或超过了你的数据和应用程序的功能性和非功能性要求,那么,更好的做法是利用企业的现有技术,而不是引入新技术。
随着多模型数据库的出现,我们现在可以将数据模型和DBMS分为两个方面的决策:
首先,确定最适合你的数据结构和使用的数据模型。
然后,确定哪些DBMS选项支持该数据模型和应用程序的需求。实际上,你可以期望技术架构中同时具有单模型和多模型DBMS选项。
对于应用程序的特殊用途组件,单模型DBMS可能会提供最佳的数据管理。对于所有其他组件,多模型DBMS将合理化和简化你的技术架构。
当涉及到数据多样性时,并没有适用于所有情况的数据模型。无论你选择使用单模型数据库还是多模型数据库,现在都没有理由将数据强制为非优化数据模型。