Extraindo Cardinalidades - Projetos

Propaganda
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
Download