支持关系型数据库及NoSQL的统一数据建模方案

现如今,NoSQL数据库与关系型数据库往往并存于企业的数据架构中。但是在NoSQL的数据管理方面,还缺乏像管理关系型数据那样成熟的方法与工具。

当前流行的NoSQL数据库在设计时更多地考虑了应用程序的性能,而较少考虑到高层业务模型、数据的集成以及数据的标准化。对于NoSQL数据库来说,其数据建模与物理数据之间存在着一条明显的鸿沟。

在本文中,我将介绍一种利用统一数据建模技术管理NoSQL与关系型数据库的方案。统一数据建模支持多种特性,例如为NoSQL数据库的模式生成文档,以及对现有数据库中的数据进行反向工程。它同时也支持对现有数据库的可视化表现。

随着数据在4个方面的增长(数据量、多样性、速度以及值),数据的管理方式也发生了转变,从纵向扩展变为横向扩展,通过几十万台小型的服务器创建分布式计算应用,以取代单一的强大机器。为了支持分布式计算的需求,数据也必须转换为一种不同的模型。

当前的关系型数据库都支持第3范式。对于ACID(原子性、一致性、隔离性与持久性)事务模型,如果一份数据在数据库中只拥有一个拷贝,那么更适合使用关系型数据库。这意味着任一时间内只有一份拷贝会更新。但对于来自多个不同应用的查询,数据必须进行聚合。因此,为了满足业务需求,数据必须进行分布式处理,而数据模式也必须进行反范式化。在设计模式时,必须允许进行分布式的查询,这就需要处于不同数据节点上的每个数据集必须包含足够的信息,能够独立地执行查询。

基于以上特征可知,创建NoSQL数据库时的基本要点在于通过逻辑模型描述业务需求,并通过反范式化的模式对应实际的数据模型。而不是在没有数据建模的情况下直接从程序向NoSQL数据库中写入数据。

此外,由于数据的多样性将进一步提高,因此在灵活性方面要能够匹配数据的原生格式,使其能够保存在文档、图形或键值数据库中。在敏捷的业务场景中,数据的结构也将产生改变。但预定义的强模式将受到这种业务场景的限制。在关系型数据库中,对现有数据列的更改或是新建数据列操作将造成数据表的重建,但对于NoSQL数据库来说,添加新的属性或组合对象操作都非常灵活。

另一方面,在NoSQL中写入数据前也无需强制使用预定义的模式。而在读取数据时,模式的应用表现为用户以原始形态加载数据,在读取后就可以按需求随意变换。对于数据的读取与理解来说,模式是必需的,但这对于使用Map Reduce程序,而又并非开发人员的使用者来说是一个不小的挑战,因为模式在Map Reduce程序中是隐含的,因此大多数DBA与数据分析师无法访问与理解这些模式。正因为如此,数据建模就成为了更好地理解企业数据的关键因素。

此外,与传统的批量数据集相比,流数据的处理又提出了不同的要求(实时性,只增性等等)。为了支持多个并发式数据处理系统的需求,数据本身或许还要进行某种形式的转换。在数据分析过程中,数据模型能够帮助用户理解数据,并调整数据结构。根据数据模型的设计,数据集成系统能够从原始的流数据中萃取出维度数据,并导入数据仓库中。

因此,为了让基于RDBMS与NoSQL数据库的数据架构满足业务上的需求,数据模型扮演了关键的角色。

RDBMS中的ACID(原子性、一致性、隔离性和持久性)特性是数据库方面最重要的一种需求,这种重要性在今后也将继续。而在未来,RDBMS与NoSQL的混合使用将成为企业架构中的一种典型场景。Unified Modelset(统一模型)将用于描述RDBMS与NoSQL数据库的数据模式。

以下是RDBMS与NoSQL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农老K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值