15、数据建模中的结构递归模式及其解决方法

数据建模中的结构递归模式及其解决方法

1. 引言与动机

设计信息系统的数据库结构是一个复杂的过程,涉及不同层次和阶段的建模与模式设计。理想情况下,我们从一个能充分、可靠地表示应用领域的概念模型开始,然后通过一系列步骤将其转换和优化,最终得到一个成熟的逻辑和物理模式。这个过程依赖于模式转换、规范化等规则和实践。虽然有些步骤可以自动完成,但在复杂系统中,建模通常需要人工进行设计考量,以获得合适且有效的模式。

“建模到编程”倡议旨在开发方法和工具,通过自动的模式转换、优化和代码生成,让模式设计者的工作更轻松,甚至使模型本身可执行。一种有前景的方法是开发和定义高级概念,让用户能明确输入模型应如何编译、解释和运行,这些输入可以像程序代码编译器的指令一样,指导模型编译器或执行引擎在有多种选择时进行模式转换。

本文使用高阶实体 - 关系建模语言(HERM),探讨带有结构递归的概念模式设计。结构递归指的是一个类型的数据实例可以由同一类型的其他数据实例构建或组成。虽然这种情况在类型结构中表现为一个循环,不符合传统模式设计的规范,也不被现有模式转换方法支持,但在数据实例层面并不存在循环。本文的目标是扩展建模语言,允许这种结构的存在,并将其转换为传统的、无递归的模式,以便进一步优化和管理。

循环数据类型在一些设计模式中并不罕见,UML 类图可以简洁地表达它们。本文将展示如何用 HERM 进行合理的表示,扩展该语言的能力。虽然有其他转换选择,如转换到具有引用语义的建模语言,但本文将重点展示如何利用 HERM 的值语义处理此类情况。在将带有结构递归的模式转换为等效的传统 HERM 模式时,会遇到一些问题,可能会出现复杂的子结构,需要谨慎处理。尽管一般情况下这个过程很复杂,但通过保持等价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值