论文部分内容阅读
模型驱动架构的核心内容是模型和模型之间的转换,为实现代码自动生成提供了理论基础。公共仓库元模型包含关系元模型和多维数据元模型,数据抽取-转换-加载是数据仓库的重要组成部分,为数据仓库提供了必要的集成数据。为了解决关系数据源到多维数据仓库生成的ETL代码满足不同数据库管理平台的需求,本文提出了基于模型转换的ETL代码生成方法,该方法为实现设计重用、提高ETL开发效率具有重要意义。首先,本文研究了MDA开发流程中的模型、模型的表示方法、模型转换原理和转换规则。采用MDA表示模型的方法,用关系元模型表示关系模式,关系模式描述结构化的数据源;用多维数据元模型表示多维数据模式,多维数据模式描述目标数据仓库。其次,本文给出了数据模型形式化的方法,用描述逻辑语言SHIQ的蕴涵断言(Terminological Box,TBox)将关系元模型和多维元模型的元元素及元元素之间的关系表示为概念和角色,使用实例断言(Assertion Box,ABox)表示关系模式和多维数据模式形成知识库。再次,本文用关系代数表示ETL转换函数的语义,并对关系代数的关系进行形式化表示,使得ETL转换函数具有明确的语义。采用业务流程建模与标注(Business Process Modeling Notation,BPMN)来构建包含业务控制图和数据转换图ETL过程模型,将数据转换图生成关系表达式。通过MDA模型到代码的转换方法,定义ETL转换函数生成代码规则。通过BPMN提供的控制流调用关系表达式,实现关系表达式到ETL代码的生成。最后,本文将提出的ETL代码生成的方法应用到产品的销售场景中,并对结构化查询语言(Structured Query Language,SQL)代码用模板生成语言(Generate Template Language,GTL)进行描述,制定的GTL模板放入PowerDesigner实验平台,实现ETL过程的SQL代码自动生成,最后将生成的代码放到Oracle数据库中执行,验证了方法的有效性。