Uma linguagem de modelagem e uma ferramenta CASE para apoiar o projeto lógico de banco de dados relacionais - FERNANDES, Lúcio Alves (2017)
O projeto de um Banco de Dados (BD) é divido em três etapas: projeto conceitual, projeto lógico e projeto físico. O projeto conceitual é a primeira etapa no processo de construção do sistema de BD e tem a função de criar o esquema conceitual. O esquema conceitual tem o papel de especificar os objetos e as relações entre os mesmos que são relevantes ao sistema de BD que está sendo implementado. O projeto lógico consiste em transformar o esquema conceitual em um esquema lógico através do mapeamento das estruturas presentes no esquema conceitual utilizando um modelo de dados de implementação. Um modelo de implementação comumente utilizado é o Modelo Relacional, que implementa o BD como um conjunto de relações. Já o projeto físico visa definir qual Sistema de Gerenciamento de Banco de Dados (SGBD) será utilizado, além de questões sobre controle de acesso, armazenamento e otimização. Entretanto, embora as fases do projeto de um sistema de BD sejam claramente definidas, o projeto lógico é muitas vezes poluído com elementos de outras fases. Por exemplo, informações sobre cardinalidade de relacionamentos e regras de acesso são comumente encontradas no esquema lógico. Desta forma, buscou-se na literatura metamodelos que fizessem a distinção dos conceitos pertinentes as diferentes etapas do projeto de um sistema de BD relacional. Um metamodelo é projetado com base no paradigma Model Driven Development (MDD), cujo maior benefício é a especificação de modelos executáveis. Isto é, diagramas que abstraem a complexidade da sintaxe de uma linguagem computacional e são usados por ferramentas do tipo Computer Aided Software Engineering (CASE) para gerar, automaticamente, código executável ou interpretável. No entanto, as soluções encontradas - Common Warehouse Metamodel (CWM) e Information Management Metamodel (IMM) -, não fazem uma distinção entre conceitos relacionados ao projeto lógico e físico, além de não darem suporte à criação de ferramentas CASE. Desta forma, visando sanar os problemas apresentados, este trabalho propõe uma linguagem de modelagem, baseada em MDD com foco no domínio do Modelo Relacional para construção do projeto lógico. Visando validar a proposta e proporcionar uma aplicação dos elementos utilizados pelo metamodelo, foi desenvolvida a ferramenta RMMCASE, uma ferramenta CASE que dá suporte aos elementos da linguagem de modelagem. Além disso, foi criado um projeto lógico de exemplo que explora todos os elementos propostos, a fim de certificar a expressividade e viabilidade deste trabalho. Como resultado, pode-se constatar que o trabalho proposto apresenta um metamodelo expressivo e uma notação gráfica simplificada e que contempla os conceitos do Modelo Relacional.