论文部分内容阅读
随着大数据时代的到来,数据以前所未有的速度急剧增长,大数据中蕴藏着无限的价值。传统的数据库技术由于缺乏良好的横向扩展能力等原因已难以应对这样的挑战,NoSQL数据库技术应运而生。使用基于NoSQL的存储有助于更好地榨取大数据中的价值,而为这类数据库设计合适的模式与为关系型数据库设计有很大的不同,如果能将这个过程自动化一定大有益处。这里使用MDA来实现这一目标。MDA将软件开发的过程看作是模型转换的过程。本文的目标是将类图模型转换为Cassandra数据模型。类图是面向对象的软件开发过程中广泛使用的一种UML图,而Cassandra是目前最流行的列型数据库。模型转换使用元建模方法分为两阶段进行,第一阶段是模型到模型的转换,实现类图实例到数据库模式的转换,第二阶段是模型到本文的转换,将生成可执行的代码。想要实现第一阶段的转换必须先获得源模型与目标模型的元模型。现存工作中有一些提出的类图元模型与UML标准中的定义并不完全一致,这会导致兼容性问题。而UML标准中的定义又过于复杂,包含很多与生成数据库模式无关的元素。本文通过简化该定义获取类图的元模型,同时保持与UML标准完全相容。为了使生成的数据库模式有较好的性能,必须深入了解Cassandra的内部存储结构。目标元模型的构建以及一部分模型映射的设计决策均源自这个探索过程。为Cassandra设计数据库模式时必须考虑查询模式,而这类信息原本并不包含在类图中。本文设计了标注系统来解决这个问题。通过人工添加标注为模型转换提供额外的辅助信息。在设计模型映射规则时必须考虑源模型与目标模型的特性,例如如何处理类图中的各类类间关系,如何将类图转换为适合于Cassandra的数据库模式等。在实现了到Cassandra数据模型的转换后,第二阶段的转换相对简单直接。本文最后用一个关于就业管理系统的例子验证了两阶段的模型转换,证明本文的模型转换具有可行性并能为Cassandra生成合适的数据库模式。