UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO: TECNOLÓGICO DEPARTAMENTO: INFORMÁTICA E ESTATÍSTICA DISCIPLINA: PROJETOS I ALUNOS: MICHEL LEITE DE ÁVILA RESUMO DE ARTIGO NOME: Relational Database Reverse Engineering: Algorithms to extract Cardinality Constraints ANO: 1997 AUTOR: Christian Soutou INSTITUIÇÃO: Universiti de Toulouse LINK: www.inf.ufsc.br/~mlavila/ExtractingCardinalities.pdf Índice ÍNDICE ......................................................................................................................................... 2 TEMA PRINCIPAL DO ARTIGO ............................................................................................. 3 RESUMO ...................................................................................................................................... 4 TRABALHOS RELACIONADOS ..................................................................................................... 4 MOTIVAÇÕES ............................................................................................................................. 4 IMPLEMENTAÇÃO ....................................................................................................................... 4 MODELOS DE DADOS.................................................................................................................. 5 Baseados em Restrições de Cardinalidades (MER) .............................................................. 5 Baseados em Restrições de Pertinência (MPC) .................................................................... 5 MER x MPC .......................................................................................................................... 5 EXTRAINDO CARDINALIDADES................................................................................................... 5 INTERVENÇÃO HUMANA ............................................................................................................ 6 CONCLUSÕES ............................................................................................................................ 7 2 Tema principal do artigo O foco deste artigo está nos algoritmos que montam comandos SQL capazes de otimizar a engenharia reversa de bancos de dados relacionais combinando a extração das cardinalidades dos relacionamentos com dicionários de dados, esquemas e análise dos próprio dados. Os resultados podem ser aplicados para modelos ER, MERISE, ECR, ERC +, OMT, ODMG. O processo proposto pode ser utilizado também para refinar diagramas conceituais de ferramentas comerciais que oferecem engenharia reversa de bancod da dados. 3 Resumo Trabalhos Relacionados Christian Soutou - autor do artigo - declara que, apesar de existirem muitas abordagens para o processo de engenharia reversa de bancos de dados, nenhuma delas dá a devida importância aos dados armazenados nos mesmos, perdendo eficiência e consistência em seus resultados. Além disso, a maior parte das abordagens exige a satisfação de uma série de requisitos tão extensa e complexa que, na prática, o processo de normalização é efetuado pelo próprio usuário. Motivações A análise dos dados armazenados em um banco traz informações muito mais realistas a respeito das entidades ali persistidas do que o código fonte da aplicação e a descrição dos dados sozinhos. Todavia, as ferramentas que oferecem engenharia reversa ignoram os dados, tomando como entrada apenas dicionários de dados ou descrições do esquema relacional. Incluir a análise dos dados no processo, como propõe o artigo, possibilita a identificação precisa das cardinalidades existentes entre as entidades. A precisão desta informação é que separa processos de engenharia reversa em bem ou mal sucedidos. Implementação O autor programou uma ferramenta que monta comandos SQL capazes de consultar bases de dados operacionais e identificar cardinalidades entre as entidades. Para esquemas completos, onde as definições de entidades incluem as chaves primárias e estrangeiras, a ferramenta efetua a engenharia reversa automaticamente. No entanto, em se tratando de bancos de dados legados, o projetista deve indicar manualmente os campos-alvo a serem analisados pela ferramenta, e refazer este processo até obter um resultado que julgue satisfatório. Além disso, foram analisados os tempos de processamento de 4 acordo com o número de registros e o grau do relacionamento; relacionamentos de grau seis ou maior, com mais de dez mil registros, apontam tempos de resposta inaceitáveis (na ordem de horas). Modelos de Dados Baseados em Restrições de Cardinalidades (MER) Classificam a cardinalidade das relações entre entidades em 1:1 (um para um), 1:N (um para muitos) ou M:N (muitos para muitos). Baseados em Restrições de Pertinência (MPC) Utilizam faixas de valores para especificar a cardinalidade das relações entre entidades, como (A,B):(C,D), onde A é o número mínimo de ocorrências da primeira entidade na relação, e B é o máximo. A restrição na participação da segunda entidade é definida da mesma forma por C e D. MER x MPC Apesar de interpretarem de forma particular as restrições relativas às cardinalidades, ambos chegam à mesma definição de modelo lógico. Extraindo Cardinalidades O artigo apresenta formas de descobrir as cardinalidades consultando o dicionário de dados, disponível em alguns SGBDs como Oracle, Informix, SQL Server, dentre outros. O processo utiliza os seguintes passos: Procura por tabelas cujos campos têm os mesmos nomes; Classifica os campos que são chaves e elimina os que não são; Conta quantos valores distintos existem para cada chave estrangeira em cada relação; Testa cada uma das possíveis cardinalidades até obter sucesso. Quando o esquema relacional está disponível, os testes são otimizados, uma vez que há informação a respeito das chaves, o que não acontece em bancos legados, onde todos os campos têm que ser testados até se descobrir 5 as chaves primárias e estrangeiras, para depois efetuar a determinação das cardinalidades. Intervenção Humana A falta do esquema relacional ou outra fonte de informações a respeito das chaves implica a utilização não supervisionada dos algoritmos, tornando medíocre a performance dos mesmos. Estas informações geralmente não estão disponíveis em bancos de dados legados, cujo SGBD não oferece metadados e a documentação do sistema é precária. Nestes casos, a intervenção humana é necessária para indicar aos algoritmos quais atributos devem ser considerados, impedindo assim que todos sejam testados. 6 Conclusões A ferramenta de automatização de engenharia reversa de bancos de dados apresentada é baseada em uma combinação de dicionário de dados, esquema e dados, e assume que não há conhecimento prévio sobre as dependências entre os atributos, tão pouco restrições quanto a duplicidade de seus nomes. Inicialmente, os relacionamentos são descobertos com uma inspeção no dicionário de dados, seguida da definição das cardinalidades mínimas e máximas através de um conjunto de comandos SQL, gerados dinamicamente a partir do dicionário de dados também. Quando a informação a respeito das chaves está disponível, o processo é completamente automático. Quando não, a intervenção humana é necessária para supervisionar o processo. A capacidade de gerar modelos conceituais baseados tanto em restrições de cardinalidade, como ER, quanto em restrições de pertinência, como MERISE, ECR, ERC+, OMT ou ODMG, o processo proposto pode ser incluído em metodologias de engenharia reversa de bancos de dados, ou até mesmo refinar processos já programados em ferramentas comerciais. 7