168大数据

标题: NoSQL数据建模 [打印本页]

作者: 168主编    时间: 2019-9-24 14:53
标题: NoSQL数据建模
这是来自电子商务公司EBay的一篇博文。
良好有规律的关系数据库RDBMS数据建模已经存在很多年,从逻辑到物理的映射技术已经被广泛专业人士实践使用,然后,随着最近出现的NoSQL数据库,数据库建模面临相关挑战,一般来说,NoSQL实践者关注物理数据模型设计,而不像传统的概念/逻辑数据模型,原因如下:
第一. 以开发者为中心,使用NoSQL数据库支持的灵活的Schema(或者schema-free),应用开发者通常负责数据模型的设计,他们有认识到数据库表结构Schema是应用逻辑的最主要部分。
第二.运行在大规模可扩展的分布式环境中对高性能查询的考虑,与传统集中式垂直伸缩的系统包括RDBMS层,现代应用是运行在一个分布式,水平伸缩的环境,为了完成水平扩展,应用开发者通过关注物理数据模型设计能够解决可扩展性和性能问题,因此,放弃了传统概念和逻辑设计以及传统物理数据模型设计的过程。
第三. 大型且非结构化数据,严格的固定的Schema(表结构)和有限的水平扩展能力,传统关系数据库因此一直被批评为却反对大型和非结构化数据的支持,相比而下,NoSQL数据库使用灵活的Schema在分布式水平扩展的环境中存储大量且非结构化数据是其特点。
开发敏捷 vs. 数据库可管理
在今天NoSQL的一个高度吹捧特性是应用程序开发的灵活性。这种灵活性是通过灵活Schema实现的,通过灵活的甚至很简单表结构,开发人员可以完全控制NoSQL数据库是如何存储和组织数据。开发人员可以不需要依靠DBA在应用程序代码中创建或修改数据库对象。结果导致了事实上,增加应用程序开发和部署的灵活性。
然后,灵活Schema并非没有挑战。例如,动态创建数据库对象会引起不可预见的数据库管理问题,因为缺乏DBA的监督。此外,无监督模式变化会增加DBA诊断相关问题的挑战性。经常发生的的故障诊断需要DBA审查编程语言编写的应用程序代码(如Java),大多数dba不具备这个技能,他们一般只是使用RDBMS DDL(数据定义语言)。
NoSQL业务和数据模型设计过程
在传统的软件工程领域,好的业务和关系数据模型设计是中大型项目的关键,而作为NoSQL开发者是业务和数据模型设计者,这样一个难题就出现了:数据建模工具。传统关系数据库的逻辑和物理数据模型是由专业人士使用的商业工具,比如PowerDesigner或ER/Studio。
鉴于NOSQL是一个新兴的技术,当前并没有这样一个专业品质的数据建模工具,让主管者审核应用开发者的代码来获取数据模型代码也不是一个普遍办法,这对于非技术用户如企业主或产品经理是非常离谱的,其他方式如从产品数据库中抽样数据也是辛苦和乏味的。
很明显,需要大量投资必须的自动化工具,以帮助缓解这一挑战,我们建议使用NOSQL项目的业务和数据模型设计过程如下图,以MongoDB文档中心模型的数据库为例子:
RDBM数据建模对NOSQL的影响
有趣的是,传统的RDBMS数据建模技术对于那些新的NoSQL仍然存在有意义的作用,。以使用文档为中心的MongoDB作为一个例子,下面的图表说明了如何将关系数据模型映射到一个类似MongoDB以文档为中心的数据模型:
NoSQL数据模型的变化
在关系数据库世界,逻辑数据模型可以兼容不同RDBMS产品。在物理数据模型中,设计规范,如存储条款或非标准的SQL扩展可能因供应商不同而不同。各种SQL标准,如SQL - 92和最新的SQL:2008年由行业组织如ANSI / ISO定义,它们使得在不同的数据库平台上保证应用程序的可移植性
然而,在NoSQL的世界里,不同的NoSQL数据库之间的物理数据模型显著不同;没有行业标准与RDBMS的sql - 92。因此,理解各种NoSQL数据库模型的差异变得很关键:
NoSQL复杂度:
值得一提的是,NoSQL数据模型的一个自然的从简单的键值存储到高度复杂的图形数据库进化路径,如下图所示:
NoSQL数据模型的虚拟化
对于概念数据模型,表示实体关系等图表技术可以继续被用于模型NoSQL的应用程序。然而,逻辑和物理NoSQL数据建模需要新的思维,因为每个NoSQL产品有不同的原生结构。可以直观地使用下列三种可视化方法,使用MongoDB这样的以文档为中心的数据模型为例:
(1).带有嵌入子文档支持的原生MongoDB collection 虚拟可视化放,如Figure 2above)
优点:这自然地通过一个直观的可视化表示表达了一个复杂的文档模型。
缺点:没有专门的工具支持,可视化结果只能特别使用非均匀约定或符号。
(2).使用JSON Designer 抽样文档进行反向工程,如下图
优点:–它很容易从现有的JSON文档存储在NoSQL数据库如MongoDB进行反向工程层次模型可视化表示
缺点:JSON Designer 目前只能在iPhone / iPad。此外,它不包括本机数据库对象,如MongoDB索引。
(3),传统的RDBM数据建模工具如Powerdesigner。
 优点——商业工具支持。
 缺点——它需要繁琐的手工准备和图表安排用来代表复杂和深度嵌套文档结构。
新的NOSQL数据建模机会
像其他新兴技术,NoSQL将成熟成为主流。我们设想以下新的NoSQL数据建模的机会:






欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2