Sie sind auf Seite 1von 218

UNIVERSIDADE FEDERAL DA PARABA CENTRO DE CINCIAS E TECNOLOGIA

DEPARTAMENTO DE SISTEMAS E COMPUTAO


COORDENAO DE PS-GRADUAO EM INFORMTICA

DISSERTAO DE MESTRADO "BDRV - Um Sistema Integrador de Mltiplos Bancos de Dados Relacionais"

Carlos Eduardo Santos Pires

Campina Grande PB Agosto de 2000

UNIVERSIDADE FEDERAL DA PARABA


CENTRO DE CINCIAS E TECNOLOGIA - CCT DEPARTAMENTO DE SISTEMAS E COMPUTAO - DSC COORDENAO DE PS-GRADUAO EM INFORMTICA - COPIN

MESTRADO EM INFORMTICA DISSERTAO DE MESTRADO

"BDRV - UM SISTEMA INTEGRADOR DE MLTIPLOS BANCOS DE DADOS RELACIONAIS"

Carlos Eduardo Santos Pires


(MESTRANDO)

Marcus Costa Sampaio


(ORIENTADOR)

Campina Grande PB Agosto de 2000

CARLOS EDUARDO SANTOS PIRES

"BDRV - UM SISTEMA INTEGRADOR DE MLTIPLOS BANCOS DE DADOS RELACIONAIS"


DISSERTAO apresentada COORDENAO DE PS-GRADUAO EM INFORMTICA do DEPARTAMENTO DE SISTEMAS E COMPUTAO do CENTRO DE CINCIAS E TECNOLOGIA da UNIVERSIDADE FEDERAL DA PARABA como requisito parcial para obteno do grau de MESTRE EM INFORMTICA.

rea de Concentrao :
LINHA DE PESQUISA:

CINCIA DA COMPUTAO SISTEMAS DE INFORMAO E BANCOS DE DADOS PROF. DR. MARCUS COSTA SAMPAIO

Orientador :

CAMPINA GRANDE Agosto 2000

Ficha Catalogrfica
PIRES, Carlos Eduardo Santos R672G BDRV - Um Sistema Integrador de Mltiplos Bancos de Dados Relacionais Dissertao (Mestrado) UFPB/CCT/COPIN, Campina Grande, Agosto de 2000. 151 p. Il. Orientador: Marcus Costa Sampaio 1. 2. 3. 4. 5. CDU: 681.3.07B Bancos de Dados Multidatabases Mediadores Integrao de Esquemas Relacionais Bancos de Dados Virtuais

Agradecimentos

A Deus, por todos os prazeres oferecidos, especialmente o de viver.

Ao Prof. Marcus Costa Sampaio pelo apoio e amizade desde meus tempos de graduao.

s maravilhosas Estelita N. Frana e Alade J. da Silva, pela forma como me acolheram em seu lar durante minha estadia nesta cidade. Vocs so nicas!

Aos meus pais pelo total apoio, principalmente durante estes dois ltimos anos em que permaneci em Campina Grande.

A minha querida namorada e futura noiva Karla Leal E. de Amorim

s fantsticas Ana Lcia e Vera, pelo carinho e pacincia com que atendem aos alunos da Copin.

Aos grandes amigos do LSI pela sadia convivncia.

A todos os colegas, professores e funcionrios do DSC pela amizade e companheirismo.

CAPES, pela bolsa de dois anos.

A todos que de alguma forma contriburam para realizao deste trabalho,

OBRIGADO !

Resumo

PIRES, Carlos Eduardo Santos, "BDRV - Um Sistema Integrador de Mltiplos Bancos de Dados Relacionais", Dissertao de Mestrado, Departamento de Sistemas e Computao, Universidade Federal da Paraba, Agosto 2000.

A informao um dos mais importantes patrimnios de uma organizao. Este patrimnio quase sempre armazenado de forma descentralizada, constituindo-se em diversas fontes de dados. Uma fonte de dados opera com dados detalhados e atualizados. Seu objetivo principal apoiar as operaes da organizao no dia-a-dia, ou sua gerncia no nvel operacional. Ao longo da evoluo dos Sistemas de Informao, mudanas significativas aconteceram no que diz respeito s necessidades de informao, especialmente das gerncias de nvel mais alto de uma organizao (gerncias ttica e estratgica). As informaes armazenadas em uma nica fonte de dados passaram a ser insuficientes. Surgiu ento a necessidade de obteno de informaes armazenadas em mais de uma fonte de dados, ou seja, a disponibilizao de uma viso integrada corporativa, formada a partir da unio de vrias fontes de dados. Neste trabalho, discutimos a problemtica de integrao de mltiplas fontes de dados, incluindo os diversos tipos de conflito de informao entre fontes de dados e sua resoluo, e apresentamos os requisitos, projeto e implementao de um sistema integrador de mltiplas fontes de dados, exclusivamente bancos de dados relacionais.

Abstract

PIRES, Carlos Eduardo Santos, "BDRV - Um Sistema Integrador de Mltiplos Bancos de Dados Relacionais", Dissertao de Mestrado, Departamento de Sistemas e Computao, Universidade Federal da Paraba, Agosto 2000.

The most important asset of an Organization is its information. This asset is nearly always stored in the form of operational systems, or production systems (data sources, by short). Broadly speaking, a data source works with updated and detailed data. Its main objective is to support Organization operations in the everyday life. Unfortunately, these systems do not satisfy requirements of higher information levels, namely tactical and strategic levels. Along the evolution of Information Systems, significant changes have happened with respect to the information needs for the tactical and strategic levels. Information in this case should be integrated (that is, presented as a corporate data view). In this work, we discuss the problematic of multiple data sources integration, including several information conflict types and their resolution, and we present the requirements, design and implementation of a system integrating multiple data sources, exclusively relational databases.

Sumrio
Agradecimentos Resumo Abstract Lista de Figuras Lista de Tabelas ? ? ? ?

Captulo 1
Introduo 1

1.1 Contextualizao 1.2 Objetivo 1.3 Organizao

1 5 6

Captulo 2
Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados 7

2.1 Introduo 2.2 Sistemas de Bancos de Dados Distribudos


2.2.1 Processamento de Consultas 2.2.2 Crticas dos Sistemas de Bancos de Dados Distribudos

2.3 Sistemas de Bancos de Dados Mltiplos


2.3.1 Processamento de Consultas 2.3.2 Aplicaes
"UniSQL/M Multidatabase System" "Multibase"

2.3.3 Crticas dos Sistemas de Bancos de Dados Mltiplos

2.4 "Data Warehousing"


2.4.1 Executive Information Systems 2.4.2 Modelagem Multidimensional 2.4.3 On-line Analytical Processing 2.4.4 Arquitetura 2.4.5 Crticas da Tecnologia "Data Warehousing"

2.5 Concluses

7 10 11 11 12 14 14 14 15 16 17 18 18 20 23 27 28

Captulo 3
Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV 29 3.1 Introduo 29 3.2 Requisitos para o Sistema BDRV 30 3.2.1 Arquitetura 30 3.2.2 Integrao 34

vi

3.2.3 Segurana 3.2.4 Fontes de Dados 3.2.5 Interface 3.2.6 Configurao 3.2.7 Plataformas

42 43 44 45 45

Captulo 4
A Arquitetura BDRV e uma Viso Geral de seu Funcionamento 4.1 Objetivo 4.2 Funcionamento 4.3 Diagramas de Seqncia de Interao Entre os Mdulos
4.3.1 Exemplo 1 4.3.2 Exemplo 2 4.3.3 Exemplo 3

55 55 58 65 68 69 69

Captulo 5
Projeto e Implementao da Arquitetura BDRV 5.1 Arquitetura de Cadastramento de Relatrios 71 71 5.1.1 Banco de Dados Virtual 74 5.1.2 Software de Definio de Relatrios 74 5.1.2.1 Estrutura de um Relatrio 76 5.1.2.2 Descrio de uma Consulta 76 5.1.3 Linguagem Visual de Definio de Relatrios 74 5.1.3.1 Poder de Expresso da LVDC 76 5.1.3.2 Criao de Relatrio 76 5.1.3.3 Elaborao de Consultas 76 5.1.3.3.1 Seleo de Relatrio 76 5.1.3.3.2 Seleo de Esquema Global 76 5.1.3.3.3 Seleo de Tabela(s) Virtual(is) 76 5.1.3.3.4 Seleo de Atributo(s) Virtual(is) 76 5.1.3.3.5 Definio de Filtro(s) 76 5.1.3.3.6 Definio de Ordenao(es) 76 5.1.3.3.7 Definio de Agrupamento(s) 76 5.1.3.3.8 Descrio de Consulta 76 5.1.4 Integrador 74 5.1.4.1 Analisador de Consulta 76 5.1.4.2 Coletor de Fontes 76 5.1.4.3 Estimador de Fontes 76 5.1.4.4 Seletor de Fontes 76 5.1.4.5 Transformador de Consulta 76 5.1.5 Metabanco de Dados 74 5.1.5.1 Armazenamento de Esquemas Globais e Locais 76 5.1.5.2 Armazenamento de Mapeamentos Esquemas Globais Esquemas Locais 76 5.1.5.3 Armazenamento de Informaes para Soluo de Conflitos de Esquema 76 5.1.5.4 Armazenamento de Relatrios, Consultas e Subconsultas 76 5.2 Arquitetura de Consulta de Relatrios 71 5.2.1 Metabanco de Dados 74 5.2.1.1 Armazenamento de Informaes para Soluo de Conflitos de Esquema e Dados 76

vii

5.2.2 Combinador de Resultados

74

Captulo 6
Concluses e Trabalhos Futuros 7.1 Concluses 7.2 Trabalhos Futuros 127 127 130

Anexo A
Estudo de Caso A.1 Descrio da Aplicao A.3 Criando Consulta A.4 Transformao da Consulta A.5 Execuo e Visualizao da Consulta 108 108 117 122 122

Anexo B
Estudo de Caso A.1 Descrio da Aplicao A.3 Criando Consulta A.4 Transformao da Consulta A.5 Execuo e Visualizao da Consulta 108 108 117 122 122

Bibliografia

132

viii

Lista de Figuras
Figura 1.1 - Os Trs Nveis Organizacionais [33] 02 Figura 2.1 Arquitetura Clssica, em Trs Camadas, de um Sistema Baseado na Abordagem de Mediadores Figura 2.2 - Um Sistema de Banco de Dados Distribudo 09 11

Figura 2.3 - Arquitetura de Integrao de Esquemas Conceituais dos Bancos de Dados Locais 13 Figura 2.4 - Arquitetura de Integrao de Esquemas de "UniSQL/M" Figura 2.5 Cubo Multidimensional com Trs Dimenses [32] Figura 2.6 - Arquitetura Funcional Bsica de um Ambiente de DWing [29] Figura 3.1 - Arquitetura BDRV em Camadas Figura 4.1 (a) Arquitetura BDRV Genrica Figura 4.1 (b) Arquitetura BDRV de Cadastramento de Relatrios Figura 4.1 (c) Arquitetura BDRV de Consulta de Relatrios Figura 4.2 (a) Esquema "Companhia" Figura 4.2 (b) Esquema "Empresa" Figura 4.3 (a) - Processo de Transformao de uma Consulta em Subconsulta(s) e Armazenamento de Subconsultas Figura 4.3 (b) - Processo de Consulta de Relatrio Figura 5.1 - Viso de um Relatrio por um UF Figura 5.2 - Cadastro de Relatrios Figura 5.3 - Seleo de Relatrio Figura 5.4 - Seleo de Esquema Global Figura 5.5 - Seleo de Tabela(s) Virtual(is) Figura 5.6 - Seleo de Atributo(s) Virtual(is) Figura 5.7 - Definio de Filtro(s) Figura 5.8 - Definio de Ordenaes Figura 5.9 - Definio de Agrupamento(s) Figura 5.10 - Descrio de Consulta Figura 6.1 - Cadastro do "Relatrio dos Alunos" Figura 6.2 - Etapa 1 de Gerao de Consulta: Seleo do "Relatrio dos Alunos" 62 64 66 69 69 74 78 78 80 81 82 83 83 85 15 19 24 31 58 58 58 60 60

ix
Figura 6.3 - Etapa 2 de Gerao de Consulta: Seleo do Esquema Global "COPIN" Figura 6.4 - Etapa 3 de Gerao de Consulta: Seleo da Tabela Virtual "Aluno" 86 89

Figura 6.5 - Etapa 4 de Gerao de Consulta: Seleo dos Atributos Virtuais "Aluno.Nm_Aluno", "Aluno.Orientador" e "Aluno.Nm_Email" 95

Figura 6.6 - Etapa 5 de Gerao de Consulta: Definio do Filtro "Aluno.Pr_Entrada IGUAL 981" 104 Figura 6.7 - Etapa 6 de Gerao de Consulta: Definio da Ordenao "Aluno.Nm_Aluno" 106 Figura 6.8 - Etapa 8 de Gerao de Consulta: Descrio da Consulta Figura 6.9 - Seleo de Categoria Figura 6.10 - Relatrios por Ttulo Figura 6.11 - Relatrios iniciados pela letra "R" Figura 6.12 - Consultas pertencentes ao "Relatrio dos Alunos" Figura 6.13 - Resultado Final da Consulta ??? ??? ??? ??? ??? ???

Lista de Tabelas
Tabela 3.1 Tabela TB1 Tabela 3.2 Tabela TB2 Tabela 3.3 Tabela TB3 Tabela 3.4 Tabela TB4 Tabela 3.5 Tabela TB3 Tabela 3.6 Tabela TB2 Tabela 3.7 Conflitos de Nome de Tabela Detectados nos Esquemas EQ1 e EQ2 Tabela 3.8 Conflitos de Nome de Atributo Detectados nos Esquemas EQ1 e EQ2 Tabela 4.1 Tabela 4.2 Tabela 4.3 Tabela 4.4 Tabela 4.5 Tabela 4.6 Tabela 4.7 Tabela 4.8 Tabela 4.9 Tabela 4.10 36 36 36 36 37 37 38 38

Captulo 1
Introduo
1.1 Contextualizao
As organizaes se caracterizam por uma diferenciao de poder, isto , uma hierarquizao de autoridade [33], defrontando-se com uma multiplicidade de problemas de informao a resolver. Tais problemas podem ser classificados e categorizados segundo os diferentes nveis hierrquicos da organizao.

Historicamente, os nveis de informao so assim classificados [33] (Figura 1.1): Estratgico ou institucional: o nvel organizacional mais elevado, responsvel pela definio dos principais objetivos e das estratgias da organizao. Relaciona-se com o ambiente externo. constitudo por diretores que tomam as decises fundamentais da organizao; Ttico ou gerencial: o nvel intermedirio, que cuida do relacionamento e da integrao dos nveis estratgico e operacional (ver a seguir). Uma vez tomadas as decises no nvel estratgico, o nvel ttico o responsvel pela sua transformao em planos e programas para que o nvel operacional os execute. constitudo por gerentes e chefes; Operacional ou tcnico: o nvel mais baixo da organizao, onde as tarefas so executadas, os programas so desenvolvidos, as tcnicas so aplicadas. constitudo por supervisores e executores.

Introduo

Diretores Gerentes e chefes

Decises Planos

Nvel Estratgico Nvel Ttico Nvel Operacional

Supervisores e Executivos

Operaes

Figura 1.1 - Os Trs Nveis Organizacionais [33]

Um fato bastante comum de ser verificado nas mais diferentes organizaes a forma descentralizada de armazenamento das informaes, isto , mantidas em diferentes bancos de dados. normal encontrarmos cada departamento de uma determinada organizao utilizando seu prprio banco de dados, mantendo informaes referentes ao seu respectivo departamento. Estes bancos de dados so alimentados pelos usurios operacionais de cada departamento, atravs de chamados programas "front-end", cuja finalidade atualizar constantemente um banco de dados. Os usurios operacionais movem as engrenagens de uma organizao, caracterizandose por executar as mesmas tarefas inmeras vezes [18]. Algumas de suas funes so: preencher pedidos, abrir e fechar o caixa, conquistar novos clientes, registrar reclamaes, inserir novos dados e corrigir dados antigos. Normalmente, as informaes armazenadas em tais bancos de dados so suficientes para atender as necessidades de informao dos usurios locais ao banco de dados em questo. Dois fatores principais identificados que acarretaram esta descentralizao de informaes foram [27]: A ausncia de um administrador de banco de dados nico fez com que grupos individuais dentro das organizaes criassem e mantivessem bancos de dados de forma separada, no intuito de satisfazer suas prprias necessidades; A distribuio de dados em vrios bancos de dados essencial em alguns ambientes para gerenciar grandes volumes de dados. Ao longo da evoluo dos Sistemas de Informao (SIs), mudanas significativas aconteceram no que diz respeito s necessidades de informao por parte

Introduo

de determinados tipos de usurio. As informaes armazenadas em um nico banco de dados passaram a ser insuficientes para satisfazer as necessidades de certos usurios. Alguns deles passaram a ter necessidade de consultar informaes armazenadas em mais de um banco de dados. Surgiu, ento, um novo tipo de usurio, o qual chamaremos de usurio global1, com a necessidade de enxergar uma viso integrada corporativa, formada a partir da unio de vrios bancos de dados. A crescente necessidade por informaes compartilhadas intra e

interorganizacional levou ao desenvolvimento de inmeras pesquisas no campo da integrao de mltiplos bancos de dados. No que diz respeito ao problema de integrao de mltiplos bancos de dados, academia e indstria seguiram caminhos divergentes durante certo tempo. O problema da integrao foi atacado inicialmente pela academia atravs da abordagem sob demanda [4, 13]. Nesta abordagem, tambm conhecida como abordagem de mediadores, a informao extrada e integrada das diversas fontes2 somente quando a consulta submetida. A alternativa pesquisada na indstria a abordagem antecipada. Nela a informao extrada das fontes, integrada, filtrada e armazenada num repositrio central, especialmente projetado para as necessidades de anlise (nvel estratgico). Quando uma consulta submetida, executada diretamente sobre este repositrio, sem necessidade de acesso a outras bases. Este repositrio central conhecido como "Data Warehouse" [29]. A idia de integrao de mltiplos bancos de dados, baseada na abordagem sob demanda, surgiu no contexto dos Sistemas de Bancos de Dados Distribudos (SBDDs), onde um nico Sistema Gerenciador de Bancos de Dados (SGBD) controla um ou mais bancos de dados, armazenados ao longo de servidores3 de uma rede de computadores [6, 9]. Um SBDD gerencia transaes globais as quais, diferentemente de transaes

1 Geralmente, so usurios a nvel estratgico, todavia alguns usurios a nvel ttico podem apresentar as mesmas necessidades de informao. 2 Consideraremos uma fonte dados um Sistema Gerenciador de Bancos de Dados, um Sistema de Arquivos ou at mesmo um documento "Web". 3 Os computadores de um SBDD recebem diversos nomes, como "sites" ou ns, dependendo do contexto em que esto inseridos.

Introduo

locais, acessam vrios bancos de dados simultaneamente. Segundo [21], alguns dos principais problemas enfrentados pelos SBDDs so: necessidade de combinar e mover dados armazenados em diferentes computadores, no intuito de responder a uma consulta; necessidade de lidar com transaes globais no intuito de preservar a consistncia dos dados. Resumindo a crtica aos SBDDs, eles se mostraram incapazes de bem gerenciar transaes globais. Para contornar o problema das transaes globais, surgiram os Sistemas de Bancos de Dados Mltiplos4 (SBDMs). Neste ambiente, no somente os bancos de dados, como tambm os SGBDs so distribudos, e possivelmente heterogneos. Um SBDM proporciona um ambiente em que aplicaes de bancos de dados podem manter acesso a dados de diversos bancos preexistentes, localizados em vrios ambientes com "software" e "hardware" heterogneos. Os sistemas de bancos de dados locais podem empregar modelos lgicos diferentes e linguagens de definio e manipulao de dados distintas, podem ainda diferir em relao aos mecanismos para controle de concorrncia e gerenciamento de transaes. Um SBDM cria a iluso da integrao lgica do banco de dados, sem impor uma integrao fsica. Um SBDM chamado de homogneo se os SGBDs rodando nos diferentes "sites" so os mesmos, e heterogneo caso contrrio [23]. A maioria das tecnologias atuais de integrao de mltiplos bancos de dados est fazendo uso de uma outra tecnologia que cresce em ritmo espantoso - a "World Wide Web", ou "Web", ou ainda WWW [3, 7, 8]. A "Web" um recurso de informao globalmente distribudo residindo sob a rede mundial de computadores, a "Internet" [19]. Uma importante caracterstica da "Web" que ela a utilizao de trs padres abertos que permitem: 1. Transferir a informao: para o transporte de informao foi proposto um protocolo de comunicao denominado "Hypertext Transfer Protocol" (HTTP) [25].

Do ingls, "Multidatabase".

Introduo

2. Descrever a formatao da informao: para apresentao de documentos na "Web" utilizada a linguagem padro "Hypertext Markup Language" (HTML) [1]. 3. Localizar a informao: para identificao e localizao de documentos "Web" distribudos pela "Internet" foi proposta a utilizao de um formato para endereamento de documentos "Web" denominado "Uniform Resource Locator" (URL) [36]. Os problemas de integrao de mltiplos bancos de dados que ainda subsistem podem ser sintetizados assim: O desempenho dos SBDDs ainda deixa muito a desejar; SBDMs e "Web" tm sido tratados at o presente momento de maneira ortogonal, sem nenhuma razo para ser desta forma; As abordagens sob demanda e antecipada tambm tm sido tratadas de forma ortogonal, sem nenhuma razo de ser. A presente dissertao sobre integrao de mltiplos bancos de dados. Seus objetivos so temas da prxima seo.

1.2 Objetivo da Dissertao


O objetivo do nosso trabalho propor uma soluo eficiente para integrao de mltiplas fontes de dados, baseada em uma abordagem hbrida (sob demanda e antecipada), proporcionando transparncia em relao localizao de fontes de dados atravs de uma interface "Web". Para o usurio global, tudo deve se passar como se ele estivesse consultando um banco de dados centralizado. Dada a ubiqidade dos bancos de dados relacionais nas organizaes, as fontes de dados consideradas pelo sistema so exclusivamente relacionais.

Introduo

1.3 Estrutura da Dissertao


O restante do trabalho est estruturado da seguinte forma: No Captulo 2 descrevemos diferentes tecnologias de integrao de mltiplas fontes de dados. Apresentamos tambm algumas aplicaes baseadas nas duas abordagens. Uma crtica a cada tecnologia feita, na tentativa de justificar o desenvolvimento de um novo sistema, ao qual chamaremos de Sistema Integrador de Mltiplos Bancos de Dados Relacionais BDRV (Banco de Dados Relacional Virtual) ; No Captulo 3 exibimos os requisitos necessrios para este novo sistema; O Captulo 4 oferece uma viso geral do Sistema BDRV; O Captulo 5 apresenta aspectos de projeto e implementao do sistema. Detalhes de cada mdulo podem ser encontrados; Finalmente, o Captulo 6 refere-se s concluses do trabalho realizado e suas perspectivas.

Captulo 2
Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados
2.1 Introduo
Nos dias de hoje, o acesso integrado a mltiplas fontes de dados heterogneas est se tornando muito importante, especialmente devido ao crescimento da "Web" e de outros sistemas distribudos [4]. Duas tendncias no que diz respeito tecnologia de informao esto transformando rapidamente a forma como inmeras organizaes processam seus dados. Em primeiro lugar, a excessiva quantidade de sistemas de computao ligados em rede tem colocado juntos "workstations" e "mainframes", formando colees de servios de informao distribudos e "on-line". O maior exemplo que podemos observar a "Web". A segunda tendncia que nem todas as unidades de informao disponveis nestas redes so homogneas, podendo ser composies de tipos de dados heterogneos, como documentos texto, imagens e registros de bancos de dados. Numa tentativa de disponibilizar o poder destes sistemas distribudos e heterogneos ao usurio global, os sistemas existentes possibilitam a extrao de informaes de cada um dos vrios tipos de fonte de dados. Entretanto, tais solues no tornam a procura por informao mais fcil ou simples, visto que necessrio que o usurio aprenda a lidar com a complexidade de uma gama de interfaces, caractersticas de sistemas e formatos de dados. Ainda, necessrio que o usurio saiba como receber, manipular e combinar tipos de dados complexos obtidos a partir de inmeras fontes.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

No que diz respeito ao problema de integrao de mltiplos bancos de dados, academia e indstria seguiram caminhos divergentes durante certo tempo. O problema da integrao foi atacado inicialmente pela academia atravs da abordagem sob demanda (mediadores) [4, 13]. Nesta abordagem, a informao extrada e integrada das diversas fontes somente quando a consulta submetida. As tecnologias que seguem a abordagem sob demanda normalmente incluem um componente bastante importante em suas arquiteturas, chamado de mediador [13]. Segundo [4], mediador um servio que fornece uma viso virtual e integrada de fontes de dados heterogneas. Os usurios globais podem ter acesso a tal viso utilizando uma interface de consulta transparente aos modelos de dados e localizao das fontes. Para isto, um mediador utiliza um esquema global, baseado em algum modelo de dados, que pode ser diferente dos modelos de dados das fontes. Para [13], mediador um mdulo ocupando uma camada explcita e ativa entre as aplicaes dos usurios e as fontes de dados. O acesso aos mesmos realizado atravs de programas aplicativos residindo nas estaes dos usurios. Um mediador representa uma camada intermediria, fazendo com que as aplicaes dos usurios se tornem independentes em relao s fontes de dados. Conforme podemos observar na Figura 2.1, a arquitetura clssica, em trs camadas, de um sistema baseado na abordagem sob demanda composta pelas seguintes camadas: Usurio: formada pelas aplicaes de usurios; Mediador: possui o papel de coletar e agrupar informaes oriundas de mltiplas fontes de dados. Interage com as fontes atravs de "wrappers" [24] (tambm chamados de "proxies"), os quais constituem um mecanismo de abstrao, contribuindo para a extensibilidade do sistema. "Wrappers" convertem dados obtidos de fontes de dados em um modelo de dados comum; Fontes de dados: composta pelas fontes de dados, possivelmente heterogneas, sendo integradas.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

Camada Usurio/Aplicao Usuri Consulta Resultados

Camada Mediador Mediado

Wrapp

Wrapp

Wrapp

Wrapp

Camada de Fontes

Acesso a Fonte

Acesso a Fonte

Acesso a Fonte

Acesso a Fonte

Figura 2.1 Arquitetura Clssica, em Trs Camadas, de um Sistema Baseado na Abordagem Sob Demanda

As trs principais tarefas de um mediador so: Seleo das Fontes de Dados: determinar o conjunto apropriado de fontes para responder a uma certa consulta; Traduo/Processamento da Consulta: determinar os fragmentos de consulta a serem enviados a cada fonte selecionada no passo anterior; gerar as consultas apropriadas para cada fonte; recuperar os resultados de cada fonte; Integrao dos Resultados Parciais: filtrar e integrar as informaes de cada fonte, e retornar o resultado final ao usurio. Para cada fonte de dados deve existir um "wrapper". Sua funo traduzir uma consulta enviada pelo mediador em uma consulta especfica da fonte de dados em que atua. Aps receber os resultados da fonte, o "wrapper" traduz os mesmos para o formato do esquema de dados global. O "wrapper" mantm, desta forma, uma interface entre um mediador (esquema global) e uma fonte de dados (esquema local).

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

10

A alternativa pesquisada na indstria, por sua vez, a abordagem antecipada. Nela a informao extrada das fontes, integrada, filtrada e armazenada num repositrio central, especialmente projetado para as necessidades de anlise (nvel estratgico). Quando uma consulta submetida, executada diretamente sobre este repositrio, sem necessidade de acesso a outras bases. Este repositrio central conhecido como "Data Warehouse" [29]. A seguir, descreveremos sucintamente algumas das tecnologias existentes que fazem uso de ambas as abordagens mencionadas anteriormente. Como tecnologias que usam a abordagem sob demanda, temos os Sistemas de Bancos de Dados Distribudos e os Sistemas de Bancos de Dados Mltiplos. Como tecnologia que utiliza a abordagem antecipada, temos "Data Warehousing".

2.2 Sistemas de Bancos de Dados Distribudos


Um Sistema de Banco de Dados Distribudo (SBDD) [34] constitudo por um ou mais bancos de dados distribudos fisicamente, e um Sistema Gerenciador de Bancos de Dados Distribudos (SGBDD) possibilitando a execuo de consultas e atualizaes. Um SBDD implica em homogeneidade, isto , todos os componentes fsicos utilizam o mesmo SGBDD. O SGBDD suporta um nico modelo de dados e linguagem de consulta, com um esquema sem ambigidade. Um usurio local de um SBDD enxerga somente uma partio do banco de dados, podendo atualizar apenas os dados armazenados em seu "site". Um usurio global, entretanto enxerga o banco de dados em sua plenitude, podendo realizar operaes sobre dados contidos em quaisquer "sites". Em um SBDD, destacamos dois tipos de transao: locais, acessam um nico "site", justamente no qual ela se inicia; e globais, busca acesso a diferentes "sites", ou a outro "site" alm daquele em que se inicia. Desta forma, cada "site" pode participar da execuo de uma transao que acessa um dado em um ou diversos "sites". A Figura 2.2 apresenta a estrutura geral de um sistema distribudo. Podemos observar uma transao global acessando dados armazenados nos "sites" A e B e uma

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

11

transao local acessando dados armazenados no "site" C. Analogamente, poderamos ter uma transao global acessando dados contidos nos "sites" A, B e C e uma transao local acessando dados apenas do "site" A.
Transao Global (Usurio Site A Transao Local (Usurio Site C

Rede Comunica o via rede

Site B

Figura 2.2 - Um Sistema de Banco de Dados Distribudo

2.2.1 Processamento de Consultas


Conceitualmente, uma consulta em um SBDD processada em duas etapas: 1. Traduo: cada subconsulta quebrada em uma subconsulta

correspondente ao seu respectivo "site" e, em seguida, enviada para ser executada; 2. Combinao: os resultados oriundos da execuo de subconsultas nos diferentes "sites" so combinados. Para tal, pode ser necessrio a transferncia de dados de um "site" para outro.

2.2.2 Crticas dos Sistemas de Bancos de Dados Distribudos


A seguir, citamos algumas das razes para a utilizao de SBDDs:

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

12

Compartilhamento de dados: usurios de um "site" podem ter acesso a dados residentes em outros "sites";

Administrao compartilhada: a responsabilidade pela administrao do banco de dados distribudo pode ser compartilhada pelos administradores locais dos "sites";

Disponibilidade: se um "site" sai do ar, os demais "sites" podem continuar em operao. A principal desvantagem dos SBDDs a potencial ineficincia na obteno de

resultados, no que diz respeito ao tempo de resposta de uma consulta. Isto se deve a sua arquitetura puramente distribuda. Para responder a determinadas consultas, possvel que dados armazenados em "sites" distintos necessitem ser movidos e combinados. Como os dados esto sob controles distintos, necessrio coordenar as transaes para preservar a consistncia dos mesmos.

2.3 Sistemas de Bancos de Dados Mltiplos


A proliferao de sistemas de bancos de dados baseados em diferentes modelos de dados impossibilita aos usurios globais um acesso uniforme a dados armazenados em fontes de dados heterogneas. Nem todos os SGBDs disponveis apresentam modelos de dados e linguagens de consulta idnticas. Desta forma, usurios acostumados a acessar dados em um determinado sistema apresentam uma certa dificuldade quando necessitam ter acesso a dados contidos em outro sistema. Uma soluo para este tipo de problema desenvolver uma camada de "software" adicional suportando um nico modelo de dados e linguagem de consulta no topo de diferentes tipos de sistema j existentes (modelo e esquema globais). Esta camada, juntamente com os sistemas subjacentes, constitui o que se chama Sistema de Bancos de Dados Mltiplos (SBDM), tambm conhecida como Sistema de Bancos de Dados Heterogneos, ou ainda, do ingls, "Multidatabase". Um SBDM disponibiliza um esquema de banco de dados global e nico, atravs do qual os usurios globais podem gerar consultas e realizar atualizaes. Um SBDM

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

13

armazena apenas o esquema global, enquanto os sistemas de bancos de dados locais mantm os dados. O esquema global construdo a partir da integrao dos esquemas pertencentes aos bancos de dados locais. A Figura 2.3, extrada de [31], ilustra os conceitos de esquemas local e global.
Usurios

Esquema Global

Esquema ... Esquema Local 1 Local n Mapeamento em um Modelo de Dados Comum Esquema Esquema Local Local Figura 2.3 - Arquitetura de Integrao de Esquemas Conceituais dos Bancos de Dados Locais

A integrao dos esquemas no simplesmente um esforo de translao entre linguagens de definio de dados. Um mesmo atributo pode aparecer em vrios SGBDs locais, mas com significados diferentes. Os tipos de dados usados em um sistema podem no ter suporte em outros e a translao entre ambos pode no ser to simples. Mesmo para tipos de dados idnticos, pode haver problemas originados em funo da representao fsica do dado. Um sistema pode usar ASCII e outro EBCDIC. Os nmeros inteiros podem ser representados pelas formas "big-indian" ou "littleindian". No nvel semntico, o valor de um inteiro para medidas pode estar em polegadas em um sistema e em milmetros em outro, criando assim uma situao delicada na qual a igualdade entre inteiros apenas uma noo aproximada (como acontece sempre no caso de nmeros com ponto flutuante). O mesmo nome pode aparecer em linguagens diferentes em sistemas diferentes. Por exemplo, um sistema com base no Brasil pode referir-se cidade de Colnia enquanto a um alemo refere-se a "Kln". Tambm, as representaes de pontos flutuantes podem divergir.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

14

2.3.1 Processamento de Consultas


Um SBDM traduz as consultas e/ou atualizaes em consultas e/ou atualizaes a serem enviadas e processadas nos sistemas de bancos de dados locais apropriados, e integra os conjuntos-resposta, gerando o resultado final a ser apresentado ao usurio. Alm disto, um SBDM coordena a validao ou cancelamento de transaes globais (consultas e atualizaes) pelos sistemas de bancos de dados locais no intuito de manter a consistncia dos dados armazenados nos bancos de dados locais. Conceitualmente, uma consulta processada em trs etapas: 1. Decomposio: a consulta global decomposta em subconsultas destinadas aos bancos de dados que de fato contenham os dados solicitados. Mesmo aps a decomposio, as subconsultas continuam na linguagem de consulta global; 2. Traduo: cada subconsulta traduzida em uma subconsulta correspondente ao seu respectivo sistema de banco de dados e, em seguida, enviada para ser executada; 3. Combinao: os resultados oriundos da execuo de cada subconsulta so retornados pelos seus respectivos sistemas de bancos de dados e agrupados posteriormente.

2.3.2 Aplicaes "UniSQL/M Multidabase System"


UniSQL/M [21] um SBDM que integra fontes de dados heterogneas (bancos de dados relacionais e orientados a objeto).

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

15

Utiliza uma linguagem de definio e manipulao de dados, chamada de SQL/M, que fornece inmeras facilidades em termos de abstraes (orientao a objeto) como generalizao, especializao, agregao, entre outras. SQL/M estende a noo de viso relacional com inmeras facilidades de abstrao proporcionada pela orientao a objeto (generalizao, especializao e agregao). O esquema global formado por uma viso uniforme dos bancos de dados locais, podendo ser modificado caso haja alteraes nos requisitos dos usurios globais ou modificaes nos esquemas locais dos bancos de dados. composto por dois componentes: um esquema de transformao formado por "proxies" e um esquema conceitual formado por classes virtuais (vises), conforme podemos ver na Figura 2.4. Os atributos de um "proxy" mantm uma correspondncia um-para-um com os atributos de uma entidade local (relao ou classe em um banco de dados local). A funo principal de um "proxy" auxiliar na transformao de um comando (consulta ou atualizao) global em comandos referentes aos bancos de dados locais
Comando SQL/M (Consultas, Esquema Conceitual (Classes Virtuais) Esquema Global

Esquema de Transformao

Esquema do Banco de

Esquema do Banco de

...

Esquema do Banco de

Figura 2.4 - Arquitetura de Integrao de Esquemas de "UniSQL/M"

"Multibase"
"Multibase" [27] um sistema que fornece uma interface uniforme para recuperao de dados a partir de bancos de dados heterogneos e distribudos j existentes, utilizando uma linguagem de consulta nica.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

16

Proporciona a execuo de consultas que solicitem dados armazenados em diferentes bancos de dados, apresentando esquemas, modelos de dados e linguagens de consulta distintas. Para tanto, no so necessrias quaisquer modificaes nos bancos de dados, SGBDs ou programas "front-end". Fornece ao usurio global a iluso de um banco de dados nico, integrado e centralizado. Para tal, armazena a localizao dos bancos de dados locais, acessa os dados em cada SGBD, resolve possveis conflitos e combina os resultados retornados pelos vrios bancos de dados. Para executar consultas globais, "Multibase" segue uma srie de etapas: transformao de consultas expressas na linguagem de consulta global em um conjunto de subconsultas expressas em, possivelmente, diferentes linguagens suportadas pelos SGBDs locais; formulao de um plano eficiente para executar uma seqncia de subconsultas; implementao de um mdulo eficiente que possibilite acesso aos dados de uma fonte local; movimentao de dados oriundos de subconsultas atravs das diferentes fontes; resoluo de conflitos entre os bancos de dados; combinao dos dados para compor uma resposta nica. "Multibase" no possibilita a atualizao dos dados armazenados nos bancos de dados locais.

2.3.3 Crticas dos Sistemas de Bancos de Dados Mltiplos


As principais vantagens da utilizao dos SBDMs so: propiciam a obteno de informaes em tempo real; possibilidade de acesso a um grande nmero de fontes de dados, exclusivamente bancos de dados, que podem apresentar modelos de dados e linguagens de consultas distintas; possibilitar que usurios e aplicaes globais possam interagir com uma nica linguagem de consulta a banco de dados;

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

17

ao contrrio dos bancos de dados distribudos, cada SGBD local possui autonomia [14, 23], ou seja, controle completo sobre os dados locais e processamentos sobre os mesmos;

Como

qualquer

tecnologia

inspirada

na

abordagem

sob

demanda,

"Multidatabases" enfrentam a potencial ineficincia na obteno de resultados, no que diz respeito ao tempo de resposta de uma consulta. Isto se deve a sua arquitetura puramente distribuda. O aumento no tempo de processamento pode ocorrer em decorrncia de dois fatores. Cada consulta necessita ser traduzida numa forma que cada fonte de dados a entenda. Os resultados obtidos de cada fonte de dados devem ser traduzidos, interpretados e agrupados, at serem apresentados ao usurio global. No que diz respeito ao sistema "Multibase" (seo 2.3.2), podemos assinalar outra desvantagem: no possibilita a realizao de atualizaes nos bancos de dados locais.

2.4 "Data Warehousing"


Segundo [18], "Data Warehousing" (DWing) uma coleo de tecnologias de apoio deciso, que ajudam tomadores de deciso a tomar decises rpida e corretamente [18]. Para [26], DWing um processo, e no um produto, para montar e gerenciar dados oriundos de vrias fontes com o objetivo de prover uma viso simples, detalhada sobre parte de ou todo o negcio. Na tecnologia "Data Warehousing" (DWing), inspirada na abordagem antecipada para integrao de dados, os dados de cada fonte so extrados antecipadamente, traduzidos, filtrados e integrados apropriadamente, e armazenados em um "Data Warehouse" (DW). Segundo [29], o DW um conjunto de dados baseados em assuntos, integrados, no-voltil, e varivel em relao ao tempo, de apoio s decises gerenciais. Quando uma consulta submetida, a mesma avaliada diretamente no DW, sem a necessidade, portanto, de ter acesso s vrias fontes de dados em tempo real.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

18

Diferentemente da abordagem sob demanda, que utiliza vises virtuais, DWing faz uso de vises materializadas [18, 28]. Vises materializadas so freqentemente agregaes ou sumrios pr-computados e pr-armazenados de outros registros de diferentes bancos de dados. Tais vises materializadas tm a vantagem de reduzir o tempo de processamento das consultas que as utilizam.

2.4.1 "Executive Information Systems"


A tecnologia de DWing voltada principalmente para executivos da alta e mdia gerncia, que necessitam muitas vezes de informaes no somente integradas, mas tambm sumariadas, ao contrrio dos sistemas de bancos de dados tradicionais, dirigidos especificamente baixa gerncia, ou pessoal ao nvel de controle operacional. Para obter as informaes desejadas, os usurios de nvel estratgico (global) utilizam os "Executive Information Systems" (EIS)1. Um EIS permite localizar problemas e determinar tendncias relacionadas aos vrios aspectos de um negcio [29]. Os usurios deste nvel possuem vises diferentes dos dados, a viso corporativa, que em nada se assemelha viso operacional. alta-gerncia interessam dados resumidos, agregados sob diversos aspectos, orientados a assuntos e histricos. O acesso aos dados deve ser rpido, direto, fcil, intuitivo e sob a perspectiva dos negcios. Comumente, EIS so confundidos com "Decision Support Systems" (DSS)2 por autores e fabricantes de "softwares", devido talvez ao impacto causado pela sua nomenclatura - Apoio Deciso -, que torna o "marketing" dos fabricantes mais apelativo.

2.4.2 Modelagem Multidimensional


A tcnica ideal de modelagem de dados para construo de repositrios para o processamento de EIS conhecida como Modelagem Multidimensional [32].

1 2

Em portugus, Sistemas de Informaes Executivas. Em portugus, Sistemas de Apoio Deciso.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

19

Na Modelagem Multidimensional, os dados operacionais so visualizados sob diversos ngulos administrativos, refletindo os modelos mentais da alta-gerncia. Esses ngulos administrativos so chamados dimenses do negcio (ex.: produto, loja, promoo, regio, etc). Referentes a cada dimenso existem fatos comerciais relevantes gerncia (ex.: vendas, compras, etc). Fatos so valores quantitativos referentes ao desempenho comercial de um grupo de dimenses. Assim, por exemplo, podemos visualizar o fato vendas por loja, por produto e por regio. Para melhor compreender o descrito acima, observe a Figura 2.5. Esta estrutura um cubo tridimensional com as dimenses: produto, regio e tempo. Note que cada face do cubo representa uma dimenso. O cubo em si preenchido com valores quantitativos que representam o nmero de unidades vendidas de determinado produto, durante um determinado tempo numa determinada loja. Esta estrutura conhecida como Cubo Multidimensional [32]. No nosso exemplo, representamos apenas trs dimenses pela nossa capacidade de visualizao espacial limitar-se a esse nmero. Todavia, possvel estruturas com n dimenses.

Figura 2.5 - Cubo Multidimensional com Trs Dimenses [32]

O tipo de processamento aplicado sobre estruturas dimensionais difere substancialmente daquele utilizado por aplicaes do nvel operacional3. Surge o processamento analtico denominado "On-line Analytical Processing" (OLAP) [32], com
3

O Processamento Transacional Clssico utilizando por grande parte das aplicaes do nvel operacional atravs dos SGBDs Relacionais chamado de "On-Line Transaction Processing" (OLTP).

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

20

a necessria flexibilidade esperada pelos usurios de EIS. O processamento OLAP tornou-se ento a alma do EIS.

2.4.3 "On-line Analytical Processing"


O termo OLAP vem sendo utilizado para caracterizar uma nova gama de aplicaes voltadas para anlise gerencial. Essas aplicaes executam o processamento OLAP cujo objetivo prover ao usurio a visualizao dos dados sob diferentes ngulos gerenciais e comportar todas as necessidades da atividade de anlise. Ferramentas OLAP possuem capacidades analticas para visualizar os dados sob diferentes ngulos de forma fcil e rpida. Segundo [32], OLAP o processo de criar e gerenciar dados corporativos multidimensionais para visualizao e anlise do usurio que deseja enxergar o que realmente os dados dizem. OLAP conduz analistas, gerentes e executivos a descobrirem conhecimentos nos dados atravs de acesso rpido, interativo e consistente a uma variedade de vises possveis da informao. Note-se a referncia a termos como diferentes ngulos, dados multidimensionais e variedade de vises possveis. Todos eles referem-se Anlise Multidimensional, que o corao do OLAP. Esses diferentes ngulos referem-se aos diferentes ramos, reas, aspectos ou componentes do negcio: as dimenses do negcio (produto, loja, fornecedor, promoo, etc). Referentes s dimenses existem fatos quantificveis sobre o desempenho dessas em atividades do negcio (fato vendas, fato compras, etc.). Dados esses conceitos que refletem os dois pontos importantes na Anlise Multidimensional, trazemo-los para o mundo dos SIs. Os atributos dos dados operacionais podem ser classificados no processamento OLAP, segundo sua natureza, em: Atributos de Fatos: atributos quantitativos sobre o desempenho do negcio em determinado(s) ramo(s). Exemplo : sobre o fato vendas, a quantidade vendida, o preo da unidade, a margem de lucro, etc;

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

21

Atributos de Dimenso: atributos qualitativos que caracterizam os ramos do negcio envolvidos na medida de desempenho de determinado fato. Exemplo : sobre a dimenso produto, descrio, embalagem, preo, etc.; Os conceitos de fatos e dimenses permeiam todo o universo da Anlise

Multidimensional. Esses dois conceitos so suficientes para prover a viso gerencial dos dados. As dimenses, como representantes de reas, aspectos, ramos ou componentes do negcio provm a viso dos dados que realmente importa aos tomadores de deciso. Os fatos, por sua vez, expressam a medida de desempenho dos componentes das dimenses. So os fatores quantitativos que permitem a introspeco nos dados para descoberta de tendncias e reconhecimento de padres.

Modelos para Repositrios OLAP


Est claro at este ponto que as necessidades ditas gerenciais diferem muito das necessidades ditas operacionais. Os sistemas operacionais geralmente se baseiam em processamento transacional clssico, onde um grande nmero de transaes executado num pequeno intervalo de tempo, com alto grau de concorrncia. As atividades dos sistemas operacionais tendem a acontecer numa taxa relativamente constante. Os dados so detalhados. As atualizaes dos dados so to freqentes quanto s leituras. Os bancos de dados refletem o estado atual dos dados. As consultas geralmente ocorrem sobre um pequeno conjunto de dados e so conhecidas de antemo [32]. A estrutura dos dados fixa enquanto que o contedo varivel. O foco dos sistemas operacionais est no armazenamento, na confiabilidade, no desempenho e na disponibilidade dos dados. Eles mantm a empresa funcionando [18]. No outro extremo, os sistemas projetados para anlise procuram facilitar consultas e navegao na estrutura dimensional e assim prover informao realmente gerencial. Os dados para aplicaes OLAP so resumidos, histricos e baseados em assuntos. As consultas OLAP geralmente "ad-hoc" e acessam grandes conjuntos de dados. No h atualizaes como as que executamos no nvel operacional, essas geralmente so feitas em "batch" e por causa disso no h controle de concorrncia. Os dados no necessariamente seguem os princpios da normalizao [9] j que o foco do

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

22

OLAP est na recuperao e visualizao e no no armazenamento. Existem duas grandes vertentes para Modelagem Multidimensional: MOLAP e ROLAP, as quais descrevemos nas subsees seguintes. MOLAP (Multidimensional OLAP) Baseia-se nos Bancos de Dados Multidimensionais [32]. A estrutura por trs dessa abordagem o Cubo Multidimensional (ou "Multidimensional Array", em portugus, Vetor Multidimensional) como o da Figura 2.5. Em um cubo multidimensional, cada aresta do cubo representa uma dimenso do negcio. Cada linha ou cada coluna de cada aresta representa um elemento de uma dimenso (ex. CGD, Monteiro, etc. para a dimenso Loja; e Uno, Palio e Fiesta para a dimenso Produto). As clulas do cubo so preenchidas com valores quantitativos que so as medidas ou fatos do negcio. ROLAP (Relational OLAP) Para reagir s tentadoras facilidades oferecidas pelos BDs Multidimensionais, a indstria relacional logo props sua alternativa. O ROLAP [18, 28] utiliza-se de tabelas relacionais para simular o cubo multidimensional. O esquema proposto concentra numa tabela as medidas ou fatos do negcio. Esta tabela conhecida como tabela de fatos (do ingls: "fact table"). Os componentes das dimenses so armazenados em outras tabelas, chamadas tabelas de dimenso (do ingls: "dimension tables"). As tabelas de dimenso compem com a tabela de fatos um relacionamento de chave estrangeira 1-N (um para N). Uma tabela de fatos est ligada a vrias tabelas de dimenso, formando uma estrutura semelhante a uma estrela, fato esse que deu nome ao esquema: Esquema em Estrela (do ingls: "Star Schema").

Operaes OLAP
A maioria das consultas OLAP "ad-hoc" e algumas operaes dessas consultas sobre as estruturas dimensionais so tpicas e merecem ateno especial. Elas so chamadas operaes OLAP e so divididas em dois grandes grupos:

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

23

Anlise Prospectiva: consiste em analisar partindo de um conjunto de dados at chegar a conjuntos mais detalhados, menos detalhados ou outros conjuntos de dados [29]. Operaes : o o "Drill-Down": descer no nvel de detalhes de uma dimenso; "Roll-Up": contrrio de "Drill-Down", ou seja, caminhar para a viso e dados mais resumidos; o "Drill-Across": significa caminhar a partir de uma dimenso para outra dimenso, combinando-as para mudar o enfoque da anlise.

Anlise Seletiva: objetiva selecionar pedaos do conjunto de dados para anlise. Operaes: o "Slice&Dice": Em portugus, cortar e fatiar. Seleciona pedaos transversais do cubo e em seguida aplica critrios de seleo sobre este pedao; o "Pivoting": Rotao. Muda a orientao dimensional para um relatrio.

2.4.4 Arquitetura
A literatura fornece uma variedade de arquiteturas para DWing. Contudo, no intuito de melhor entendermos o funcionamento geral de um ambiente de DWing, preferimos utilizar uma arquitetura funcional bsica [29]. Na Figura 2.6, podemos observar os principais componentes de um ambiente de DWing inseridos em retngulos sombreados. As setas indicam o fluxo de dados entre os componentes. A seguir, detalharemos os componentes desta arquitetura e, posteriormente, o fluxo de dados.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

24

Figura 2.6 Arquitetura Funcional Bsica de um Ambiente de DWing [29]

Componentes a) Fontes de dados As fontes de dados podem ser divididas em dois grupos: Fontes de Dados Internas: so os sistemas de automao do nvel operacional. Os dados so provenientes de sistemas "On-line Transaction Processing" (OLTP) ou dos chamados "legacy systems" (em portugus: sistemas legados ou herdados). Os sistemas legados so os sistemas em "batch" ou arquivados. Esses sistemas no utilizam processamento transacional e nem controle de concorrncia; Fontes de Dados Externas: so fontes que no fazem parte dos SIs da empresa. Os dados dessas fontes geralmente chegam atravs de redes pblicas de comunicao. A "Internet" uma grande fonte de dados externa. b) rea de "Data Staging"

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

25

uma rea de armazenamento intermediria entre as fontes de dados e o DW. Nesta rea so realizados o tratamento, a integrao e o controle de qualidade sobre os dados para que eles possam ser transferidos para o DW. O repositrio desta rea tambm conhecido como ODS ("Operational Data Store"), cujo objetivo integrar as vrias fontes de dados operacionais [28, 32]. No necessariamente existe apenas um repositrio para a rea de "Data Staging", porm, os vrios que venham a existir devem ser integrados e homogneos. c) "Data Warehouse" o repositrio central, integrado, histrico e orientado a assuntos. d) Clientes OLAP Generalizamos o termo clientes OLAP para caracterizar todas as aplicaes que acessam os dados armazenados no DW. e) OLAP "Engine" Este componente est presente em arquiteturas baseadas em ROLAP ou MOLAP [18]. Nela, dados do DW so extrados para repositrios menores chamados "Data Marts", que so DWs departamentais, menores em tamanho e orientados aos assuntos especficos de um departamento. f) "Metadados" Os "metadados" tm a funo de descrever o DW [29]. Fluxo de Dados Num ambiente de DWing os dados seguem um fluxo determinado. Inicialmente esses dados precisam ser (1) integrados de vrias fontes para posteriormente serem estruturados (2), armazenados (3) e distribudos para anlise (4). Cada seta direcionada na arquitetura da Figura 2.6 um estgio do fluxo de dados no DWing que agrega quatro atividades:

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

26

1 - Extrao das vrias fontes, armazenamento e integrao na rea de "Data Staging". Uma vez na rea de "Data Staging", os dados passam por diversas etapas de transformao as quais incluem [18, 28]: Integrao e gerao de novas chaves ; Adio do tempo; Checagem da integridade referencial para tabelas de fato e tabelas de dimenso; Desnormalizao ou normalizao; Converso de tipos de atributos; Clculos, derivaes e alocaes; Construo de agregados; Tratamento de valores nulos.

2 Carga dos dados no "Data Warehouse". Uma vez feita toda a transformao na rea de "Data Staging" os dados so carregados no DW. As principais atividades do processo de carga so: Particionamento de tabelas; Reconstruo de ndices; Controle de Qualidade; Publicao dos Dados.

3 - A partir do "Data Warehouse", os dados so carregados nos "Data Marts". O uso de "Data Marts" melhora o desempenho do sistema medida que as consultas analticas so divididas entre vrios DWs departamentais, evitando assim a sobrecarga de consultas sobre o DW corporativo.

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

27

As principais atividades envolvidas nesta carga so: Separao dos dados por reas funcionais; Transformao dos dados do modelo lgico corporativo para o modelo lgico departamental. 4 Neste ponto o fluxo de dados basicamente composto de conjuntos-resposta para os Clientes OLAP. As atividades incluem : Processamento e otimizao de consultas; Gerao de relatrios; Controle de acesso e segurana.

2.4.5 Crticas da Tecnologia "Data Warehousing"


Em resumo, a abordagem antecipada apropriada para: usurios exigindo informaes sumariadas e, de uma certa maneira, previsveis; usurios requerendo alto nvel de desempenho (dados disponveis localmente no DW), mas no necessariamente exigindo informaes rigorosamente atualizadas; compartilhamento entre as aplicaes locais s fontes e as aplicaes OLAP globais; informaes no contidas nas fontes (histricos, sumrios, etc).

Como desvantagens deste enfoque, podemos apontar: complexidade de se criar e manter o DW;

Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados

28

impossibilidade de acesso direto s fontes, por executivos da alta gerncia .


4

2.5 Concluses
Tendo em vista as desvantagens encontradas nas diferentes abordagens e tecnologias de integrao de mltiplas fontes de dados, justifica-se o investimento em um novo sistema integrador de fontes de dados. Um tal sistema a essncia desta dissertao, constituindo o assunto do restante do documento.

Isto muitas vezes necessrio!

Captulo 3
Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV
3.1 Introduo
Considere um usurio global que deseja utilizar um Sistema de Informao heterogneo para obter informaes a partir de qualquer banco de dados relacional. Neste caso, o usurio no est interessado em saber de que fonte provm as mesmas. As informaes procuradas esto descentralizadas, ou seja, armazenadas em diferentes fontes de dados. O Sistema Integrador de Mltiplos Bancos de Dados Relacionais BDRV (Banco de Dados Relacional Virtual) necessita de mecanismos para ocultar as diferentes fontes de dados, identificando as fontes que de fato contenham os dados solicitados e combinando os resultados a serem apresentados ao usurio global. Para ele, tudo se passa como se estivesse consultando um banco de dados centralizado. Como forma de demonstrar a validade do Sistema BDRV, desenvolvemos uma aplicao que consiste da integrao de dados da Coordenao de Ps-Graduao em Informtica (Copin) e do Departamento de Sistemas e Computao (DSC) (ver Anexo A).

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

30

3.2 Requisitos para o Sistema BDRV


Apresentaremos, a seguir, os requisitos do Sistema BDRV, no que diz respeito aos seguintes tpicos: Arquitetura; Integrao; Segurana; Fontes de Dados; Interface; Configurao; Plataforma.

3.2.1 Arquitetura
A arquitetura do Sistema BDRV composta por um conjunto de componentes que permite o acesso, pelos UGs, informaes provenientes de mltiplas fontes de dados, exclusivamente bancos de dados relacionais. O acesso feito de forma transparente em relao localizao das fontes de dados. As informaes integradas so unicamente informaes estruturadas, do tipo registros de uma tabela. A arquitetura segue o modelo de trs camadas de [13]. Seus principais componentes so mostrados na Figura 3.1 e descritos a seguir.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

31

Usurio Primeira Global Camada Interface Web

HTTP Segunda Camada Combinador de Resultados Pginas Web Gerente de Metadado Metaban co de Software de Definio de Integrador
L V D C

Usurio Definidor de Consultas

ODBC

Terceira Camada

Fonte de

Fonte de

...

Fonte de

Figura 3.1 Arquitetura BDRV em Camadas

Primeira Camada A Primeira Camada apresenta uma interface "Web" com o UG (ver Seo 3.2.3). Considere um ambiente acadmico, onde existem dois bancos de dados a serem integrados. O primeiro deles - Seminrios - armazena informaes sobre os seminrios apresentados por alunos de um certo departamento. O segundo - Controle Acadmico armazena informaes pertinentes aos alunos, disciplinas e professores do departamento mencionado anteriormente. Suponha que um determinado UG deseja obter os seminrios apresentados por alunos cuja rea de pesquisa seja Banco de Dados, no ano de 2000. Para que isto seja possvel, necessrio que exista uma consulta cadastrada anteriormente (ver Segunda Camada), que possa recuperar os dados solicitados. Uma consulta obrigatoriamente deve possuir um nome que a identifique. Suponhamos, ento, que o nome da consulta seja Seminrios Apresentados pelos Alunos de Banco de Dados, em 2000. As consultas cadastradas so apresentadas ao UG atravs de uma interface "Web". Assim, para obter as informaes desejadas, o UG necessita apenas selecionar a

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

32

consulta Seminrios Apresentados pelos Alunos de Banco de Dados, em 2000, atravs de um simples clique de "mouse". Segunda Camada Na Arquitetura BDRV, so utilizados dois nveis de esquema: esquemas globais, que so esquemas relacionais virtuais construdos a partir da integrao de vrios esquemas relacionais locais, servindo de base para elaborao de consultas; e esquemas locais, que representam o esquema de cada banco de dados sendo integrado. Uma consulta basicamente uma coleo de tabelas e atributos selecionados a partir de um esquema global1. Consultas so criadas pelos Usurios Definidores de Consultas (UDCs) (ver Seo 3.2.3). A Interface de Definio de Consultas (IDC) tem a funo de possibilitar a elaborao de consultas pelo UDC. Internamente, a IDC utiliza uma Linguagem Visual de Definio de Consultas (LVDC), cuja funo descrever um conjunto de regras e opes que podem ser aplicadas na formulao de consultas. Para elaborar uma consulta o UDC deve primeiramente decidir a que esquema global deseja formular sua consulta. Por conseguinte, preciso escolher as tabelas virtuais que faro parte da consulta - tabelas Aluno, rea e Seminrios. Posteriormente, necessrio selecionar os atributos virtuais a serem apresentados no conjunto-resposta final. Como restrio imposta pela LVDC, so apresentados apenas os atributos virtuais pertencentes s tabelas virtuais selecionadas. O UDC deve escolher os atributos virtuais Ttulo (Seminrio) e Nome (Aluno). O passo seguinte a definio de filtros. A LVDC permite que sejam definidos filtros apenas sobre atributos virtuais de tabelas selecionadas. O UDC deve definir os seguintes filtros: Nome da rea (rea) = Banco de Dados e Ano (Seminrio) = 2000. A LVDC permite ainda a definio de ordenaes apenas sobre atributos virtuais de tabelas selecionadas e de agrupamentos somente sobre atributos virtuais selecionados.

Os elementos de uma consulta a um esquema global so chamados de tabelas e atributos virtuais.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

33

Para finalizar, o UDC deve fornecer algumas informaes referentes consulta em questo, entre as quais podemos destacar: ttulo (Seminrios Apresentados pelos Alunos de Banco de Dados, em 2000). Uma vez elaborada, a consulta enviada ao Integrador, que tem a funo de determinar e gerar os fragmentos de consulta (subconsultas) referentes mesma. Em resumo, o Integrador seleciona os bancos de dados que de fato contenham os dados solicitados gerando uma subconsulta para cada banco de dados escolhido. Para que o UG ao qual nos referimos na Primeira Camada possa obter as informaes almejadas, se faz necessrio a existncia de uma consulta previamente cadastrada que possa recuperar as informaes solicitadas. As informaes pertinentes s consultas, assim como as subconsultas referentes a cada consulta, ficam armazenadas no Metabanco de Dados. So ainda funes do Metabanco de Dados: armazenar a descrio de fontes de dados locais; guardar a descrio de esquemas globais; manter mapeamentos esquemas globais locais; armazenar informaes para resoluo de conflitos (ver Seo 3.2.2). O processo de transformao de uma consulta em subconsultas envolve uma srie de etapas, conforme observaremos em detalhes nos Captulos 4 e 5. Estas etapas so: anlise de consulta, coleta de fonte(s), estimao de fonte(s), seleo de fonte(s) e transformao de consulta. Algumas delas necessitam realizar consultas ao Metabanco de Dados. funo do Gerente de Metadados coordenar o processo de realizao de consultas ao Metabanco de Dados. Retornando ao nosso exemplo, a consulta elaborada anteriormente deve ser transformada, pelo Integrador, em subconsultas para ambos os bancos de dados sendo integrados. A primeira subconsulta, destinada ao banco de dados Seminrios, recupera o ttulo dos seminrios e o nome dos alunos que apresentaram seminrios em 2000. A segunda subconsulta, destinada ao banco de dados Controle Acadmico, recupera o nome dos alunos cuja rea de pesquisa seja Banco de Dados. Ambas as subconsultas ficam armazenadas no Metabanco de Dados. esquemas

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

34

Quando uma consulta acionada pelo UG, (ver Primeira Camada), ou seja, quando o UG, atravs de uma interface "Web" (protocolo HTTP), clica no "link" rotulado pelo nome da consulta, as subconsultas referentes mesma so recuperadas no Metabanco de Dados e enviadas para serem executadas nos bancos de dados locais (ver Terceira Camada) atravs do protocolo ODBC. Aps a execuo das subconsultas e conseqente recuperao de cada conjuntoresposta, necessrio ainda detectar e resolver possveis conflitos existentes entre os conjuntos-resposta recuperados, e agrupar cada um deles. Esta a tarefa do Combinador de Resultados. De acordo com o nosso exemplo, o Combinador de Resultados deve agrupar os conjuntos-resposta referentes aos bancos de dados Seminrios, composto pelos atributos ttulo do seminrio e nome do aluno, e Controle Acadmico, formado unicamente pelo atributo nome de aluno. O conjunto-resposta final referente ao nosso exemplo composto pelos atributos ttulo do seminrio e nome do aluno, sendo apresentado ao UG via interface "Web". Terceira Camada A Terceira Camada composta unicamente pelas fontes de dados, exclusivamente bancos de dados relacionais. A funo de cada banco de dados executar as subconsultas enviadas e retornar os conjuntos-resposta.

3.2.2 Integrao
A integrao de bancos de dados relacionais uma atividade extremamente complexa, em virtude de eventuais conflitos. Nosso propsito com relao a este ponto trabalhar somente com formas singelas de integrao. Sendo assim, propomos a utilizao de solues j bem conhecidas para resolver alguns dos principais tipos de conflito. Em [22], podemos encontrar uma classificao dos principais tipos de conflito que podem surgir quando diferentes bancos de dados, todos eles baseados no modelo

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

35

relacional, necessitam ser integrados. Utilizaremos esta classificao para indicar os tipos de conflito que o Sistema BDRV pretende detectar e solucionar, alm da maneira como os mesmos sero resolvidos. De acordo com [22], como um banco de dados definido pelo seu esquema e os dados nele armazenados, os conflitos podem ser classificados em duas categorias: Conflitos de Esquema - resultam do uso de diferentes definies de esquema em bancos de dados distintos. Existem duas causas bsicas para os conflitos de esquema. A primeira a utilizao de estruturas diferentes (tabelas e atributos) para representar uma mesma informao. A segunda o uso de especificaes diferentes para uma mesma estrutura; isto inclui nomes, tipos de dados e restries diferentes representando tabelas e/ou atributos semanticamente equivalentes; Conflitos de Dados - resultam da presena de inconsistncia nos dados armazenados. Existem dois tipos de conflitos de dados: (1) conflitos de dados errados que violam restries de integridade especificadas implcita ou explicitamente em dados e (2) conflitos baseados em diferentes representaes para um mesmo dado. A seguir, apresentaremos uma classificao de conflitos mais refinada, tambm proposta em [22], assim como as solues a serem adotadas no Sistema BDRV. Os exemplos utilizados para demonstrar cada tipo de conflito de esquema so baseados nos esquemas relacionais genricos descritos a seguir. Para nos referirmos a uma determinada tabela de um certo esquema, utilizaremos a notao "[Esquema] . [Tabela]". Analogamente, utilizaremos a notao "[Esquema] . [Tabela] . [Atributo]" para nos referirmos ao atributo de uma certa tabela pertencente a um determinado esquema.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

36

Esquema Relacional EQ1


Tabela Nome Semntica TB1 ST1 Atributos Nome Tipo Chave Estrangeira Referncia Semntica AT1 TP1 SA1 AT2 TP2 SA2 AT3 TP1 TB2.AT1 SA3 AT4 TP1 TB3.AT1 SA4 Tabela 3.1 Tabela TB1 Tabela Nome Semntica TB2 ST2 Atributos Nome Tipo Chave Estrangeira Referncia Semntica AT5 TP1 SA5 AT6 TP2 SA6 Tabela 3.2 Tabela TB2 Tabela Nome Semntica TB3 ST3 Atributos Nome Tipo Chave Estrangeira Referncia AT7 TP1 AT8 TP2 AT9 TP2 Tabela 3.3 Tabela TB3

Semntica SA7 SA8 SA9

Esquema Relacional EQ2


Tabela Nome Semntica TB4 ST1 Atributos Nome Tipo Chave Estrangeira Referncia Semntica AT10 TP1 SA1 AT11 TP3 SA2 AT12 TP1 TB2.AT1 SA4 Tabela 3.4 Tabela TB4

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

37

Tabela Nome Semntica TB3 ST3 Atributos Nome Tipo Chave Estrangeira Referncia AT7 TP1 AT8 TP3 AT9 TP1 TB3.AT1 Tabela 3.5 Tabela TB3

Semntica SA7 SA8 SA9

Tabela Nome Semntica TB2 ST4 Atributos Nome Tipo Chave Estrangeira Referncia Semntica AT5 TP1 SA10 AT6 TP3 SA11 Tabela 3.6 Tabela TB2

Classificao de Conflitos A. Conflitos de Esquema


Os principais tipos de Conflito de Esquema so os seguintes:

A.1 Conflitos de Nome de Tabela


So dois os tipos de Conflito de Nome de Tabela: Sinonmia entre tabelas: consideramos duas tabelas sinnimas se possurem a mesma semntica, apresentarem nomes diferentes e pertencerem a esquemas distintos. As tabelas EQ1.TB1 e EQ2.TB4 so consideradas sinnimas visto que possuem a mesma semntica (S1), apresentam nomes diferentes (TB1 TB4) e pertencem a esquemas distintos (EQ1 EQ2); Homonmia entre tabelas: consideraremos duas tabelas homnimas se possurem nomes iguais, apresentarem semnticas diferentes e pertencerem a esquemas distintos. As tabelas EQ1.TB2 e EQ2.TB2 so consideradas

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

38

homnimas visto que possuem nomes iguais (TB2 = TB2), apresentam semnticas diferentes (S2 S4) e pertencem a esquemas distintos (EQ1 EQ2). Soluo adotada: Para o problema de sinonmia entre tabelas, propomos mapear as tabelas sinnimas em uma nica tabela virtual a ser inserida em um esquema global. Por exemplo, as tabelas EQ1.TB1 e EQ2.TB4 devem ser mapeadas na tabela virtual EG.TBV1. Para o problema de homonmia entre tabelas, propomos mapear cada tabela homnima em uma tabela virtual distinta a ser inserida em um esquema global. Portanto, as tabelas EQ1.TB2 e EQ2.TB2 devem ser mapeadas nas tabelas virtuais EG.TBV2 e EG.TBV3, respectivamente. A Tabela 3.7 exibe todos os Conflitos de Nome de Tabela relativos ao nosso exemplo genrico, bem como as tabelas virtuais em que as tabelas de cada esquema so mapeadas. Sinnimas Homnimas Esquema EQ1 Esquema EQ2 Esquema Global EG TB1 TB4 TBV1 TB2 TB2 TBV2 e TBV3

Tabela 3.7 Conflitos de Nome de Tabela Detectados nos Esquemas EQ1 e EQ2

A.2 Conflitos de Nome de Atributo


So dois os tipos de Conflito de Nome de Atributo: Sinonmia entre atributos: a tabelas consideramos dois atributos sinnimos a mesma semntica se e

pertencerem

sinnimas,

possurem

apresentarem nomes distintos. Os atributos EQ1.TB1.AT1 e EQ2.TB4.AT10 so considerados sinnimos visto que pertencem a tabelas sinnimas (TB1 e TB4), possuem a mesma semntica (S1 = S1) e apresentam nomes distintos (AT1 AT10); Homonmia entre atributos: consideramos dois atributos homnimos se pertencerem a tabelas homnimas, possurem semnticas distintas e

apresentarem nomes iguais. Os atributos EQ1.TB2.AT5 e EQ2.TB2.AT5 so considerados homnimos visto que pertencem a tabelas homnimas (TB2 e

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

39

TB2), possuem semnticas distintas (S2 S4) e apresentam nomes iguais (AT5 = AT5). Soluo adotada: Adotamos solues semelhantes s propostas para Conflitos de Nome de Tabela. Para o problema de sinonmia entre atributos, propomos mapear os atributos sinnimos em um nico atributo virtual. Os atributos sinnimos EQ1.TB1.AT1 e EQ2.TB4.AT10, por exemplo, devem ser mapeados no atributo virtual EG.TBV1.ATV1. Para o problema de homonmia entre atributos, propomos mapear cada atributo homnimo em atributos virtuais distintos. Os atributos homnimos EQ1.TB2.AT5 e EQ2.TB2.AT5, por exemplo, devem ser mapeados nos atributos virtuais EG.TBV2.ATV4 e EG.TBV2.ATV5, respectivamente. A Tabela 3.8 exibe todos os Conflitos de Nome de Atributo relativos ao nosso exemplo genrico, bem como os atributos virtuais em que os atributos de cada esquema so mapeados.
Esquema EQ1 TB1.AT1 Sinnimos TB1.AT2 TB1.AT4 TB2.AT5 Homnimos TB2.AT6 TB1.A13 Esquema EQ2 TB4.AT10 TB4.AT11 TB4.AT12 TB2.AT5 TB2.AT6 TB4.A13 Esquema Global EG TBV1.ATV1 TBV1.ATV2 TBV1.ATV3 TBV2.ATV4 e TBV3.ATV5 TBV4.ATV6 e TBV5.ATV7 TBV6.ATV8 e TBV7.ATV9

Tabela 3.8 Conflitos de Nome de Atributo Detectados nos Esquemas EQ1 e EQ2

A.3 Conflitos de Tipo de Dado


Conflitos de Tipo de Dado ocorrem quando atributos sinnimos possuem tipos de dado diferentes. Soluo adotada: Os atributos sinnimos EQ1.TB1.AT2 e EQ2.TB4.AT11 so do tipo TP2 e TP3, respectivamente. Sabemos que os mesmos so mapeados no atributo virtual TBV1.ATV2. A escolha do tipo de dados do atributo virtual TBV1.ATV2 feita observando o tipo de dados dos atributos sinnimos EQ1.TB1.AT2 e EQ2.TB4.AT11. A escolha do tipo de dados de um atributo virtual criado a partir de dois ou mais atributos sinnimos sempre feita com base no tipo de dado mais amplo. Por exemplo, na hiptese do tipo de dado TP2 ser um subconjunto do tipo TP3, ento TP3 deve ser

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

40

escolhido como o tipo de dados do atributo virtual TBV1.ATV2. Assim, quando os atributos sinnimos EQ1.TB1.AT2 e EQ2.TB4.AT11 so solicitados, necessria uma converso (T2 T3) nos dados referentes ao atributo EQ1.TB1.AT2.

B. Conflitos de Dados
Os tipos de conflito de dados so os seguintes:

B.1 Representaes distintas para um mesmo dado (mesma representao para dados distintos)
Existem trs diferentes aspectos para a representao de um dado atravs de bancos de dados: expresses, unidades e preciso.

B.1.1 Expresses Diferentes


Este tipo de conflito ocorre quando bancos de dados distintos utilizam um mesmo tipo de dado ou diferentes tipos de dados. Os exemplos seguintes mostram vrias expresses para um mesmo dado: Palavras distintas para um mesmo dado: Paraba, PB, Pb; Diferentes "strings" para um mesmo dado: s/n Aprgio Veloso - Bodocong - Campina Grande - PB Rua Aprgio Veloso, s/n, Bodocong, Campina Grande, CG Cdigos diferentes para um mesmo dado: , A, Excelente, 1, 10 , B, Bom, 2, 8 , C, Razovel, 3, 6 , D, Ruim, 4, 4 , E, Pssimo, 5, 2

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

41

O terceiro exemplo ilustra o conflito que ocorre quando diferentes tipos de valores so utilizados por diferentes bancos de dados para um mesmo dado; por exemplo, enquanto alguns bancos de dados usam "strings", outros usam inteiros. Soluo adotada: Propomos manter uma lista das expresses que necessitam ser mapeadas. Por exemplo, caso um dado esteja armazenado em um banco de dados com um valor X e em outro com um valor Y, ento quando solicitado, este dado deve ser mapeado (X Y ou vice-versa).

B.1.2 Unidades Diferentes


Estes conflitos ocorrem quando diferentes bancos de dados utilizam diferentes unidades para dados numricos. Unidades distintas oferecem diferentes significados para valores numricos. Por exemplo, suponha que uma tabela de um banco de dados expresse o perodo de emprstimo em termos de dias (de 1 a 28 dias) e que outra tabela, de outro banco de dados, expresse o mesmo atributo em semanas (de 1 a 4 semanas). Assim, mesmo que os bancos de dados possuam um mesmo valor, digamos 2 (dois), como valor do atributo, o significado dos nmeros diferente em cada banco de dados. Soluo adotada: Propomos diferenciar os atributos que utilizam diferentes unidades para dados numricos considerando-os atributos homnimos.

B.1.3 Precises Diferentes


Conflitos de preciso ocorrem quando dois bancos de dados utilizam valores de domnios de diferentes cardinalidades para um mesmo dado. Por exemplo, suponha que o tipo de dado de um atributo peso-do-navio em um banco de dados definido como {pesado, mdio, leve, ultra-leve}, enquanto o mesmo atributo em um outro banco de dados definido como inteiro, com tonelada como unidade. Assim, o tamanho do domnio para o valor do peso do navio no primeiro banco de dados quatro; enquanto no outro banco de dados pode ser um milho (isto , qualquer inteiro entre 1 e 1.000.000).

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

42

Soluo adotada: Propomos a mesma soluo utilizada para resolver o Conflito de Expresses Diferentes.

3.2.3 Segurana
Como forma de introduzir um nvel de segurana no sistema, utilizamos mecanismos de controle de acesso. Desta forma, permisses de acesso devem ser atribudas aos usurios. Os usurios do sistema so classificados em trs tipos: Usurio Administrador de Sistema (UAS): com permisso irrestrita para manipulao dos objetos configurveis do sistema. Exemplo: administrador de bancos de dados; Usurio Definidor de Consultas (UDC): o usurio que, a partir da IDC, insere, exclui e/ou modifica consultas. Exemplo: projetista de banco de dados; Usurio Global (UG): o usurio que obtm as informaes oriundas da execuo de consultas previamente cadastrados pelo UDC. Exemplo: qualquer usurio em potencial que saiba navegar na "Web" e que tenha permisses atribudas (ver a seguir). O acesso ao Sistema BDRV controlado da seguinte forma: Atribuio de Permisses: permisses devem estar associadas aos UDCs e UGs. As informaes de cada usurio a serem armazenadas so: nome, "login" e permisses de acesso; Identificao de Usurios: para ter acesso ao sistema, o usurio dever fornecer um "login" e uma senha, recebendo, ento, permisses apropriadas. Para ter acesso IDC deve ser checada a permisso do usurio.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

43

3.2.4 Fontes de Dados


Apresentaremos a partir de agora alguns requisitos que dizem respeito s fontes de dados a serem integradas pela Arquitetura BDRV: Autonomia

O Sistema BDRV no oferece a possibilidade de atualizao - insero, remoo e modificao - de dados contidos nos bancos de dados locais, e sim apenas de consulta aos mesmos. As fontes de dados continuam sendo atualizadas pelos seus respectivos programas "front-end". Diferentemente dos SBDDs, manteremos a autonomia de cada SGBD local. Descrio

A descrio de cada banco de dados no necessita ser alterada em funo de sua incluso no Sistema BDRV. Atualizao de Informaes

A execuo de consultas sob demanda nas fontes de dados propicia a obteno de informaes atualizadas. Bancos de Dados

O Sistema BDRV possibilita a integrao de um grande nmero de fontes de dados. Estas podem ser qualquer banco de dados relacional, desde que sua descrio seja devidamente armazenada no Metabanco de Dados. Uma fonte de dados local pode ser tambm um "Data Warehouse" (Servidor ROLAP). O fato do Sistema BDRV integrar unicamente bancos de dados relacionais justificado pela grande quantidade de fontes deste tipo inserida nas principais organizaes. Bancos de dados baseados no modelo relacional se tornaram praticamente uma unanimidade no que diz respeito ao armazenamento de dados nas empresas.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

44

Linguagem de Manipulao de Dados (DML)

As subconsultas geradas pelo Integrador para as fontes de dados sendo integradas baseiam-se no SQL padro. Resultados

No existe necessidade do UG combinar os conjuntos-resposta oriundos das vrias fontes de dados. Isto feito automaticamente pelo componente da Arquitetura BDRV chamado Combinador de Resultados.

3.2.5 Interface
O Sistema BDRV apresenta trs tipos de interface, cada uma destinada a um tipo de usurio diferente - UAS, UDC e UG. Interface de Criao e Atualizao do Metabanco de Dados uma interface grfica onde o UAS pode inserir novas fontes a serem integradas, remover fontes sendo integradas, criar esquemas globais e definir mapeamentos esquemas globais esquemas locais. Atravs dela, possvel tambm inserir novos usurios, remover usurios existentes e modificar atributos pertencentes a usurios j cadastrados. Interface de Definio de Consultas uma interface grfica apresentada atravs da IDC, que utiliza uma LVDC para elaborao de consultas com base em esquemas globais. Atravs desta interface, o UDC pode construir suas consultas com simples cliques de "mouse". Para isto, deve selecionar tabelas e atributos virtuais, definir filtros, ordenaes e/ou agrupamentos. Interface de Execuo de Consultas uma interface "Web" de seleo de consultas previamente cadastradas, e de apresentao de resultados integrados referentes execuo de uma ou mais subconsultas.

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

45

3.2.6 Configurao
Os seguintes objetos podem ser configurados por usurios com permisso administrativa: Usurios: possvel adicionar ou remover usurios, alm de editar atributos de usurios j cadastrados ("login", senha, permisses de acesso); Consultas: deve ser possvel inserir, remover e modificar consultas. Para a elaborao de uma consulta tambm necessrio fornecer os seguintes atributos: ttulo, descrio e criador; Fontes de Dados: deve ser possvel adicionar ou remover fontes de dados locais. Para inserir ou remover uma fonte de dados, necessrio atualizar os esquemas globais que referenciam a fonte em questo, e os possveis mapeamentos esquema global esquema local. No nos preocuparemos com possveis atualizaes no Metabanco de Dados, oriundas de modificaes no esquema das fontes de dados locais; Esquemas Globais: deve ser possvel atualizar a estrutura dos esquemas globais, em virtude da adio ou remoo de bancos de dados locais; Mapeamentos Esquemas Globais Esquemas Locais: deve ser possvel a adio, remoo e alterao de mapeamentos esquemas globais locais, em virtude da adio ou remoo de bancos de dados. esquemas

3.2.7 Plataformas
Para cada camada da arquitetura so necessrios os seguintes requisitos: Primeira Camada O "browser Web" a ser utilizado o "Internet Explorer" verso 3.0 ou superior. Segunda Camada

Requisitos para o Sistema Integrador de Bancos de Dados Relacionais BDRV

46

Integrador O Integrador foi desenvolvido atravs de uma ferramenta de programao

grfica, mais especificamente Delphi 4.0. Escolhemos a mesma ferramenta para desenvolver a IDC. Metabanco de Dados O SGBD escolhido para implementao do Metabanco de Dados o SQL Server, verso 6.5. Servidor "Web" Utilizaremos a tecnologia "Active Server Pages" (ASP) [37]. Assim, possvel a utilizao de dois tipos de servidores "Web": "Internet Information Server" (IIS 4.0) e "Personal Web Server" (PWS). Isto se deve ao fato de que "scripts" ASP contidos em pginas "Web" so executados no servidor "Web" ("server-side"). Assim, o mesmo deve suportar a execuo de tais "scripts". Sistema Operacional O sistema BDRV deve funcionar em ambiente Windows 95, 98 ou NT. Terceira Camada As fontes de dados locais so exclusivamente banco de dados relacionais ("Oracle", "SQL Server", "Interbase", "Access", entre outros).

Captulo 4
BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento
4.1 Introduo
A integrao de bancos de dados relacionais uma atividade extremamente complexa. O objetivo deste captulo mostrar, atravs de exemplos, os principais problemas enfrentados nas etapas necessrias integrao: construo de esquemas globais, elaborao e execuo de consultas.

4.2 Objetivos do Sistema BDRV


O objetivo do Sistema Integrador de Mltiplos Bancos de Dados Relacionais, ou simplesmente Sistema BDRV, integrar mltiplas fontes de dados, exclusivamente bancos de dados relacionais. Para tal, se faz necessria a utilizao de tcnicas que proporcionem: Transparncia em relao localizao de fontes de dados locais - o Sistema BDRV proporciona meios de ocultar a real localizao das fontes de dados locais. Os Usurios Globais (UGs) enxergam uma nica fonte de dados para elaborao de consultas e obteno de resultados; Modos de identificao de fontes que de fato contenham dados relevantes uma vez elaboradas as consultas, o Sistema BDRV deve dispor de meios para

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

48

identificao das fontes de dados locais que de fato contenham as informaes solicitadas, no intuito de transformar e redirecionar as consultas recebidas de forma apropriada; Formas de combinar resultados oriundos de fontes de dados sendo integradas, eliminando possveis conflitos - no Sistema BDRV, a funo principal de cada fonte de dados local receber consultas e enviar resultados parciais. Antes de serem apresentados ao UG, possveis conflitos entre os resultados parciais necessitam ser detectados e solucionados e, uma vez consistentes, os resultados parciais devem ser combinados. No Sistema BDRV, utilizamos o conceito de Banco de Dados Virtual (BDV) [15], um banco de dados composto apenas do esquema, sem nenhum dado. Propomos ainda um mapeamento deste esquema para esquemas locais relacionais materializados (fontes de dados). Em resumo, enquanto bancos de dados materializados so formados por pares <esquema, dados>, BDVs so formados por pares <esquema,

mapeamentos>. Para aplicaes em que um nico banco de dados no suficiente, um BDV deve ser criado. Ele vai integrar os esquemas (ou parte deles) dos bancos de dados fontes relevantes em um nico esquema global, que vai atender s aplicaes globais. Desta forma, o Sistema BDRV utiliza dois nveis de esquema: esquemas globais, ou simplesmente BDVs, que so esquemas relacionais, construdos a partir da integrao de vrios esquemas relacionais locais, servindo de base para elaborao de consultas; e os esquemas locais. O Sistema BDRV oferece ainda a possibilidade de elaborao de consultas atravs de uma interface grfica (ver detalhes na Seo 4.2.2), onde o Usurio Definidor de Consultas (UDC) realiza selees de tabelas virtuais e atributos virtuais1, definio de filtros, ordenaes e agrupamentos, com simples cliques de "mouse". Podemos observar a arquitetura do Sistema BDRV na Figura 4.1(a). A mesma ainda pode ser detalhada como Mdulo de Definio de Consultas (MDC) e Mdulo

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

49

de Execuo de Consultas (MEC), com as funes de gerar e executar consultas, respectivamente. No caso do MEC, as consultas so executadas atravs de uma interface "Web". O MDC, por sua vez, pode ainda ser detalhado na Figura 4.1(b).
Mdulo de Definio de Consultas
Servidor Web Fonte Interface de Definio
L V D C

Mdulo de Execuo de Consultas

ODBC Usurio Definidor de

Metaba nco de Integrador

Combinad or de Resultado Pgin as

Fonte

...
Fonte

INTERN ET
HTTP

Usurio Global (Cliente "Web")

Figura 4.1(a) - Arquitetura do Sistema BDRV

A Interface de Definio de Consultas (IDC) utilizada para elaborao de consultas a um esquema global, pelo UDC. Internamente, a IDC utiliza uma Linguagem Visual de Definio de Consultas (LVDC), cuja funo descrever um conjunto de regras e opes que podem ser aplicadas na formulao de consultas. Uma vez elaboradas, as consultas so enviadas ao Integrador, que tem a funo de determinar e gerar os fragmentos de consulta (subconsultas) destinados aos bancos de dados locais. Em resumo, o Integrador seleciona os bancos de dados que de fato contenham os dados solicitados em uma consulta, gerando uma subconsulta para cada banco de dados escolhido.

Chamaremos de tabela virtual e atributo virtual qualquer tabela e atributo, respectivamente, pertencente a um esquema global (BDV). De forma anloga, chamaremos pura e simplesmente de tabela e atributo qualquer tabela e atributo, respectivamente, pertencente a um esquema local.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

50

O processo de transformao de uma consulta em subconsultas envolve uma srie de etapas, conforme veremos em detalhes no Captulo 5. Desta forma, o Integrador composto ainda por outros componentes, conforme podemos observar na Figura 4.1(b). So eles: Analisador de Consulta - recebe conjuntos de tabelas virtuais, atributos virtuais, filtros, ordenaes e agrupamentos, estruturando-os, para que possam vir a ser utilizados pelos outros componentes; Coletor de Fontes - identifica os bancos de dados que de fato contenham os dados solicitados em uma consulta; Estimador de Fontes - identifica os bancos de dados que melhor podem responder a uma consulta; Seletor de Fontes - decide para que bancos de dados devem ser geradas subconsultas; Transformador de Consulta - gera as subconsultas destinadas aos bancos de dados selecionados pelo Seletor de Fontes.
Servidor Web
L V D C

ODBC Usurio Definidor de

Interface de Definio de Consultas Integrador Analisador de

Coletor de Fontes Estimador de Fontes

Transforma dor de

Metaba nco de

Seletor de Fontes

Figura 4.1(b) Detalhamento do Mdulo de Definio de Consultas

As consultas e suas respectivas subconsultas geradas pelo Integrador no so imediatamente redirecionadas aos bancos de dados locais, ficando armazenadas no Metabanco de Dados para posterior execuo. So ainda funes do Metabanco de

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

51

Dados: armazenar a descrio dos bancos de dados locais; guardar a descrio de BDVs; manter mapeamentos BDVs resoluo de conflitos (ver a seguir). No MEC, o UG pode executar as consultas armazenadas no Metabanco de Dados, atravs de uma interface "Web". Quando isto acontece, as subconsultas referentes consulta escolhida so recuperadas no Metabanco de Dados e enviadas para serem executadas nos bancos de dados locais. A funo do Combinador de Resultados receber os resultados retornados por cada banco de dados, detectar e remover possveis conflitos existentes entre os resultados, integra-los e apresenta-los ao UG. esquemas locais; armazenar informaes para

4.2 "Modus Operandi" do Sistema BDRV


Na seqncia, apresentaremos o "modus operandi" do Sistema BDRV, no que diz respeito aos Mdulos de Definio e Execuo de Consultas. Uma descrio mais precisa de cada um dos mdulos ser apresentada no Captulo 5. Inicialmente, ilustraremos o processo manual de construo de esquemas globais, integrando dois esquemas locais em um esquema global. Em seguida, mostraremos como elaborar consultas ao esquema global construdo. Finalizando, descreveremos o processo de execuo das consultas elaboradas anteriormente.

4.2.1 Construo de Um Esquema Global


Consideremos dois esquemas relacionais triviais. O primeiro deles, Companhia, composto pelas tabelas: Empregado, Departamento e Endereo (Tabelas 4.2 a 4.4). O segundo, Empresa, formado pelas tabelas: Funcionario, Departamento, Projeto, FuncionarioTrabalhaProjeto, DepartamentoControlaProjeto e Endereo (Tabelas 4.5 a 4.10).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

52

Esquema Relacional Companhia


Empregado Semntica Tabelas Referenciadas Nome Cd_Empregado Nm_Empregado Nm_Est_Civil Vl_Salario Nm_Cargo Dt_Admissao Cd_Endereco Cd_Departamento

Armazena informaes sobre os empregados da companhia Endereco e Departamento Tipo Chave Estrangeira Referncia Inteiro Char Char Moeda Char Data Inteiro Endereco.Cd_Endereco Inteiro Departamento.Cd_Departamento

Semntica Cdigo do Empregado Nome do Empregado Estado Civil Salrio Semanal Cargo Data de Admisso Cdigo do Endereo Cdigo do Departamento

Tabela 4.2 - Tabela Empregado

Departamento Semntica Tabelas Referenciadas Nome Cd_Departamento Nm_Departamento Nu_Telefone

Armazena informaes sobre os departamentos da companhia Tipo Chave Estrangeira Inteiro Char Inteiro Referncia Semntica Cdigo do Departamento Nome do Departamento Nmero do Telefone

Tabela 4.3 - Tabela Departamento

Endereco Semntica Tabelas Referenciadas Nome Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro

Armazena o endereo dos empregados Tipo Chave Estrangeira Referncia Semntica Inteiro Cdigo do Endereo Char Nome da Rua Inteiro Nmero da Residncia Char Nome do Bairro

Tabela 4.4 - Tabela Endereco

Esquema Relacional Empresa


Funcionrio Semntica Tabelas Referenciadas Nome Cd_Funcionario Nm_Funcionario Nm_Est_Civil Vl_Salario Dt_Admissao Cd_Departamento

Armazena informaes sobre os funcionrios da empresa Departamento Tipo Chave Estrangeira Referncia Inteiro Varchar Varchar Inteiro Data Inteiro Departamento.Cd_Departamento

Semntica Cdigo do Funcionrio Nome do Funcionrio Estado Civil Salrio Data de Admisso Cdigo do Departamento

Tabela 4.5 - Tabela Funcionario

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

53

Departamento Semntica Tabelas Referenciadas Nome Cd_Departamento Nm_Departamento Nu_Do_Telefone Cd_Endereco

Armazena informaes sobre os departamentos da empresa Endereco Tipo Chave Estrangeira Referncia Semntica Inteiro Cdigo do Departamento Varchar Nome do Departamento Varchar Nmero do Telefone Inteiro Endereco.Cd_Endereco Cdigo do Endereo

Tabela 4.6 - Tabela Departamento

Projeto Semntica Armazena informaes sobre os projetos da empresa Tabelas Referenciadas Nome Tipo Chave Estrangeira Referncia Semntica Cd_Projeto Inteiro Cdigo do Projeto Nm_Projeto Varchar Nome do Projeto

Tabela 4.7 - Tabela Projeto

FuncionarioTrabalhaProjeto Semntica Armazena informaes sobre os funcionrios da empresa que trabalham em projetos Tabelas Referenciadas Funcionario e Projeto Nome Tipo Chave Estrangeira Referncia Semntica Cd_Funcionario Inteiro Funcionario.Cd_Funcionario Cdigo do Funcionrio Cd_Projeto Inteiro Projeto.Cd_Projeto Cdigo do Projeto

Tabela 4.8 - Tabela FuncionarioTrabalhaProjeto

DepartamentoControlaProjeto Semntica Armazena informaes sobre os departamentos que gerenciam projetos Tabelas Referenciadas Departamento e Projeto Nome Tipo Chave Estrangeira Referncia Semntica Cd_Departamento Inteiro Departamento.Cd_Departamento Cdigo do Departamento Cd_Projeto Inteiro Projeto.Cd_Projeto Cdigo do Projeto

Tabela 4.9 - Tabela DepartamentoControlaProjeto

Endereco Semntica Tabelas Referenciadas Nome Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro

Armazena informaes sobre os endereos dos departamentos Tipo Chave Estrangeira Inteiro Varchar Varchar Varchar Referncia Semntica Cdigo do Endereo Nome da Rua Nmero Nome do Bairro

Tabela 4.10 - Tabela Endereco

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

54

Como forma de integrarmos os esquemas locais Companhia e Empresa, utilizamos uma soluo inspirada em [5]. Os passos para integrao podem ser vistos a seguir: Passo 1: Obteno dos esquemas locais a serem integrados. Inicialmente, deve ser obtido o nome de cada esquema local a ser integrado. Conforme podemos observar na Tabela 4.11, os esquemas so Companhia e Empresa. Esquema Companhia Empresa
Tabela 4.11 - Esquemas Locais

Passo 2: Obteno das tabelas de cada esquema local a ser integrado. O segundo passo obter as tabelas pertencentes a cada esquema local listado no passo anterior. Observe a Tabela 4.12. Tabela Empregado Departamento Endereco Funcionario Departamento Projeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto Endereco Esquema Companhia Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa

Tabela 4.12 - Tabelas dos Esquemas Locais

Passo 3: Obteno das tabelas sinnimas e homnimas. Como exemplo de tabelas sinnimas temos Empregado e Funcionario, pertencentes aos esquemas Companhia e Empresa, respectivamente. J como tabelas homnimas temos as tabelas Endereco, presentes em ambos os esquemas. No esquema Companhia, a tabela Endereco refere-se ao endereo dos empregados, enquanto que no esquema Empresa, refere-se ao endereo dos departamentos.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

55

N Tabela

Tabela(s) Sinnima(s) 1 Empregado Companhia {4} 2 Departamento Companhia 3 Endereo Companhia 4 Funcionrio Empresa {1} 5 Departamento Empresa 6 Projeto Empresa 7 FuncionarioTrabalhaProjeto Empresa 8 DepartamentoControlaProjeto Empresa 9 Endereco Empresa Esquema

Tabela(s) Homnima(s) {9} {3}

Tabela 4.13 - Obtendo Tabelas Sinnimas e Homnimas

Passo 4: Resoluo de Conflitos de Nome de Tabela. Conforme podemos observar na Tabela 4.14, as tabelas sinnimas Empregado e Funcionario, pertencentes aos esquemas Companhia e Empresa, respectivamente, so mapeadas na tabela virtual Empregado. A tabela Endereco, presente em ambos os esquemas, mapeada em duas tabelas virtuais distintas, EnderecoEmpregado e EnderecoDepartamento (Tabela 4.14). Tabela Virtual Empregado EnderecoEmpregado EnderecoDepartamento {Esquema, Tabela} {{Companhia, Empregado}, {Empresa, Funcionario}} {{Companhia, Endereco}} {{Empresa, Endereco}}
Tabelas de Esquemas Locais

Tabela 4.14 - Mapeamentos Tabelas Virtuais

Passo 5: Mapeamento de tabelas sem conflito de nome. As tabelas que no apresentam qualquer tipo de conflito de nome so mapeadas diretamente em tabelas virtuais. Por exemplo, a tabela Projeto, presente no esquema Empresa mapeada diretamente na tabela virtual Projeto. Tabela Virtual {Esquema, Tabela} {{Companhia, Departamento}, {Empresa, Departamento Departamento}} Projeto {{Empresa, Projeto}} EmpregadoTrabalhaProjeto {{Empresa, FuncionarioTrabalhaProjeto}} DepartamentoControlaProjeto {{Empresa, DepartamentoControlaProjeto}}
Tabela 4.15 - Mapeamentos Tabelas Virtuais Tabelas de Esquemas Locais

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

56

Passo 6: Obteno dos atributos pertencentes s tabelas dos esquemas locais. A Tabela 4.16 sintetiza todos os atributos das tabelas pertencentes aos esquemas Companhia e Empresa.
Atributo Cd_Empregado Nm_Empregado Nm_Est_Civil Vl_Salario Nm_Cargo Dt_Admissao Cd_Endereco Cd_Departamento Cd_Funcionario Nm_Funcionario Nm_Est_Civil Vl_Salario Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Cd_Departamento Nm_Departamento Nu_Do_Telefone Cd_Endereco Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Projeto Nm_Projeto Cd_Funcionario Cd_Projeto Cd_Departamento Cd_Projeto Tabela Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado Funcionario Funcionario Funcionario Funcionario Funcionario Funcionario Departamento Departamento Departamento Departamento Departamento Departamento Departamento Endereco Endereco Endereco Endereco Endereco Endereco Endereco Endereco Projeto Projeto FuncionarioTrabalhaProjeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto Esquema Companhia Companhia Companhia Companhia Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa Companhia Companhia Companhia Empresa Empresa Empresa Empresa Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Tipo CE Referncia Inteiro Char Char Moeda Char Data Inteiro Endereco.Cd_Endereco Inteiro Departamento.Cd_Departamento Inteiro Varchar Varchar Inteiro Data Inteiro Departamento.Cd_Departamento Inteiro Char Inteiro Inteiro Varchar Varchar Inteiro Endereco.Cd_Endereco Inteiro Char Inteiro Char Inteiro Char Varchar Char Inteiro Varchar Inteiro Funcionario.Cd_Funcionario Inteiro Projeto.Cd_Projeto Inteiro Departamento.Cd_Departamento Inteiro Projeto.Cd_Projeto

Tabela 4.16 - Atributos das Tabelas dos Esquemas Locais

Passo 7: Obteno dos atributos sinnimos e homnimos. Como exemplo de atributos sinnimos temos Nm_Empregado e Nm_Funcionario, pertencentes aos esquemas Companhia e Empresa, respectivamente. J como atributos homnimos temos o atributo Nm_Rua, presente na tabela Endereco contida em ambos os esquemas. No esquema Companhia, refere-se rua onde residem os empregados, enquanto no esquema Empresa significa a rua onde esto localizados os departamentos.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

57

Outro exemplo de atributos homnimos o atributo Vl_Salario, presente nas tabelas Empregado e Funcionrio dos esquemas Companhia e Empresa, respectivamente. No esquema Companhia, Vl_Salario refere-se ao salrio semanal de um empregado, enquanto que no esquema Empresa descreve o salrio dirio de um funcionrio.
N Atributo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Cd_Empregado Nm_Empregado Nm_Est_Civil Vl_Salario Nm_Cargo Dt_Admissao Cd_Endereco Cd_Departamento Cd_Funcionario Nm_Funcionario Nm_Est_Civil Vl_Salario Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Cd_Departamento Nm_Departamento Nu_Do_Telefone Cd_Endereco Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Projeto Nm_Projeto Cd_Funcionario Cd_Projeto Cd_Departamento Cd_Projeto Tabela Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado Funcionario Funcionario Funcionario Funcionario Funcionario Funcionario Departamento Departamento Departamento Departamento Departamento Departamento Departamento Endereco Endereco Endereco Endereco Endereco Endereco Endereco Endereco Projeto Projeto FuncionarioTrabalhaProjeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto Esquema Companhia Companhia Companhia Companhia Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa Companhia Companhia Companhia Empresa Empresa Empresa Empresa Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Empresa Atributo(s) Atributo(s) Sinnimo(s) Homnimo(s) {9} {10} {11} {12} {13} {14} {1} {2} {3} {4} {6} {8} {26} {27} {28} {29} {22} {23} {24} {25} -

Tabela 4.17 - Atributos Sinnimos e Homnimos

Passo 8: Resoluo de conflitos de nome de atributo e tipo de dados. O objetivo desta etapa resolver os conflitos de nome e tipo de dados dos atributos pertencentes aos esquemas locais.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

58

Conflitos de Nome Os atributos sinnimos Nm_Empregado e Nm_Funcionario, pertencentes aos esquemas Companhia e Empresa, respectivamente, so mapeados no atributo virtual Nm_Empregado (observe a Tabela 4.18).
Esquema Companhia Atributo Cd_Empregado Nm_Empregado Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Tabela Empregado Empregado Empregado Empregado Empregado Departamento Departamento Departamento Esquema Empresa Atributo Cd_Funcionario Nm_Funcionario Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Do_Telefone Tabela Funcionario Funcionario Funcionario Funcionario Funcionario Departamento Departamento Departamento Esquema Global Atributo Virtual Cd_Empregado Nm_Empregado Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Tabela Virtual Empregado Empregado Empregado Empregado Empregado Departamento Departamento Departamento

Tabela 4.18 - Mapeamento Nome de Atributos Sinnimos

Nome de Atributos Virtuais

Conforme podemos observar na Tabela 4.19, o atributo homnimo Nm_Rua, presente em ambos os esquemas, mapeado nos atributos virtuais Nm_Rua_Empregado e Nm_Rua_Departamento, a serem inseridos nas tabelas virtuais EnderecoEmpregado e EnderecoDepartamento, respectivamente. Outro exemplo ocorre com o atributo Vl_Salario, presente em ambos os esquemas. No esquema Companhia, o atributo deve ser mapeado no atributo virtual Vl_Salario_Semanal, enquanto que no esquema Empresa deve ser mapeado no atributo virtual Vl_Salario_Diario.
Esquema Companhia Empresa Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Atributo Vl_Salario Vl_Salario Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Tabela Empregado Funcionario Endereco Endereco Endereco Endereco Endereco Endereco Endereco Endereco Atributo Virtual Vl_Salario_Semanal Vl_Salario_Diario Cd_Endereco_Empregado Nm_Rua_Empregado Vl_Numero_Empregado Nm_Bairro_Empregado Cd_Endereco_Departamento Nm_Rua_Departamento Vl_Numero_Departamento Nm_Bairro_Departamento Tabela Virtual Empregado Empregado EnderecoEmpregado EnderecoEmpregado EnderecoEmpregado EnderecoEmpregado EnderecoDepartamento EnderecoDepartamento EnderecoDepartamento EnderecoDepartamento

Tabela 4.19 - Mapeamento Nome de Atributos Homnimos

Nome de Atributos Virtuais

Conflitos de Tipo de Dados O tipo de dado dos atributos sinnimos Dt_Admissao (Companhia) Dt_Admissao (Empresa), Data. Portanto, no esquema global o tipo do atributo virtual que ir representa-los (neste caso, Dt_Admissao), tambm ser Data (observe a Tabela 4.20).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

59

Esquema Companhia Atributo Cd_Empregado Nm_Empregado Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Tabela Empregado Empregado Empregado Empregado Empregado Departamento Departamento Departamento Tipo Inteiro Char Char Data Inteiro Inteiro Char Inteiro

Esquema Empresa Atributo Cd_Funcionario Nm_Funcionario Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Do_Telefone Tabela Funcionario Funcionario Funcionario Funcionario Funcionario Departamento Departamento Departamento Tipo Inteiro Varchar Varchar Data Inteiro Inteiro Varchar Varchar

Esquema Global Atributo Virtual Cd_Empregado Nm_Empregado Nm_Est_Civil Dt_Admissao Cd_Departamento Cd_Departamento Nm_Departamento Nu_Telefone Tabela Virtual Empregado Empregado Empregado Empregado Empregado Departamento Departamento Departamento Tipo do Atributo Virtual Inteiro Varchar Varchar Data Inteiro Inteiro Varchar Varchar

Tabela 4.20 - Mapeamento Tipo de Atributos Sinnimos

Tipo de Atributos Virtuais

Diferentemente, os atributos sinnimos Nm_Empregado e Nm_Funcionario, pertencentes aos esquemas Companhia e Empresa, respectivamente, so do tipo Char e Varchar (ver Tabela 4.20). O tipo de dado do atributo virtual que representa ambos no esquema global (Nm_Empregado) Varchar. Passo 9: Mapeamento de atributos sem conflito de nome e de dado. Conforme podemos observar na Tabela 4.21, o tipo de dado dos atributos virtuais que representam atributos sem conflitos de tipo mantm inalterado.
Esquema Companhia Empresa Companhia Companhia Companhia Companhia Empresa Empresa Empresa Empresa Companhia Companhia Empresa Empresa Empresa Empresa Empresa Empresa Empresa Atributo Vl_Salario Vl_Salrio Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Cd_Endereco Nm_Rua Vl_Numero Nm_Bairro Nm_Cargo Cd_Endereco Cd_Endereco Cd_Projeto Nm_Projeto Cd_Funcionario Cd_Projeto Cd_Departamento Cd_Projeto Tabela Empregado Funcionario Endereco Endereco Endereco Endereco Endereco Endereco Endereco Endereco Empregado Empregado Departamento Projeto Projeto FuncionarioTrabalhaProjeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto Tipo Moeda Moeda Inteiro Char Inteiro Char Inteiro Varchar Varchar Varchar Char Inteiro Inteiro Inteiro Varchar Inteiro Inteiro Inteiro Inteiro Atributo Virtual Vl_Salario_Semanal Vl_Salario_Diario Cd_Endereco_Empregado Nm_Rua_Empregado Vl_Numero_Empregado Nm_Bairro_Empregado Cd_Endereco_Departamento Nm_Rua_Departamento Vl_Numero_Departamento Nm_Bairro_Departamento Nm_Cargo Cd_Endereco Cd_Endereco Cd_Projeto Nm_Projeto Cd_Funcionario Cd_Projeto Cd_Departamento Cd_Projeto Tabela Virtual Empregado Empregado EnderecoEmpregado EnderecoEmpregado EnderecoEmpregado EnderecoEmpregado EnderecoDepartamento EnderecoDepartamento EnderecoDepartamento EnderecoDepartamento Empregado Empregado Departamento Projeto Projeto FuncionarioTrabalhaProjeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto Tipo do Atributo Virtual Moeda Moeda Inteiro Char Inteiro Char Inteiro Varchar Varchar Varchar Char Inteiro Inteiro Inteiro Varchar Inteiro Inteiro Inteiro Inteiro

Tabela 4.21 - Mapeamento de Atributos Sem Conflitos de Nome e de Dado

Passo 10: Criao do esquema global. Aps serem solucionados os conflitos, chegada a hora de montar o esquema global, o qual chamaremos de Organizao.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

60

Utilizando as informaes geradas nos passos 4 e 5, dispomos das tabelas virtuais a serem inseridas em nosso esquema global. As informaes levantadas nos passos 8 e 9, por sua vez, nos fornecem o nome e o tipo de dado referente a cada atributo virtual. Gerando as Tabelas Virtuais Tomando como base a Tabela 4.14, gerada no passo 4, observamos que a primeira tabela virtual a ser formada Empregado. A partir das Tabelas 4.18 a 4.20, produzidas no passo 8, e 4.21, gerada no passo 9, obtemos nome e tipo de dado dos atributos virtuais pertencentes tabela virtual Empregado. Empregado Nome Cd_Empregado Nm_Empregado Nm_Est_Civil Dt_Admissao Cd_Departamento Vl_Salario_Semanal Vl_Salario_Diario Cd_Endereco

Tipo Inteiro Varchar Varchar Data Inteiro Moeda Moeda Inteiro

Tabela 4.22 - Tipo de Dado dos Atributos Virtuais da Tabela Virtual Empregado

As demais tabelas virtuais pertencentes ao nosso esquema global so: Departamento Nome Cd_Departamento Nm_Departamento Nu_Telefone Cd_Endereco Tipo Inteiro Varchar Varchar Inteiro

Tabela 4.23 - Tabela Virtual Departamento

Projeto Nome Tipo Cd_Projeto Inteiro Nm_Projeto Varchar


Tabela 4.24 - Tabela Virtual Projeto

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

61

EmpregadoTrabalhaProjeto Nome Tipo Cd_Empregado Inteiro Cd_Projeto Inteiro


Tabela 4.25 - Tabela Virtual EmpregadoTrabalhaProjeto

DepartamentoControlaProjeto Nome Tipo Cd_Departamento Inteiro Cd_Projeto Inteiro


Tabela 4.26 - Tabela Virtual DepartamentoControlaProjeto

Endereo do Departamento Nome Cd_Endereco_Departamento Nm_Rua_Departamento Vl_Numero_Departamento Nm_Bairro_Departamento

Tipo Inteiro Varchar Varchar Varchar

Tabela 4.27 - Tabela Virtual EnderecoDepartamento

Endereo do Empregado Nome Cd_Endereco_Empregado Nm_Rua_Empregado Vl_Numero_Empregado Nm_Bairro_Empregado

Tipo Inteiro Varchar Inteiro Varchar

Tabela 4.28 - Tabela Virtual EnderecoEmpregado

4.2.2 Definio de Consulta


Nesta seo, mostraremos, atravs de uma srie de exemplos, as etapas necessrias para que um Usurio Definidor de Consultas (UDC) possa elaborar consultas ao BDV. Em seguida, exibiremos o processamento envolvido na transformao de uma consulta em subconsultas a serem executadas nos bancos de

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

62

dados locais. Para facilitar, faremos uso dos diagramas de seqncia (Figuras 4.2(a) e 4.2(b)). Durante cada um dos exemplos faremos referncias s vrias fases dos diagramas.

Diagramas de Seqncia de Interao Entre Componentes


Servidor Web
L V D C

ODBC Usurio Definidor de

Interface de Definio de Consultas Integrador2 Analisador de

4
Transforma dor de Metaba nco de

3
Coletor de5 Fontes Estimador de Fontes

7 6
Seletor de Fontes

Figura 4.2(a) - Processo de Transformao de uma Consulta em Subconsulta(s) e Armazenamento de Subconsulta(s)

4 Servidor Web 6 HTTP Resultad os 2 Cliente Web 1 Consulta Metaba nco de Fonte 3 3 4 5 Combina dor de Resultad Fonte 3 4 Fonte

...

Figura 4.2(b) - Processo de Execuo de Consulta

Apresentaremos, a partir de agora, uma seqncia de trs exemplos em ordem crescente de complexidade. O conjunto de exemplos cobre praticamente os principais tipos de consulta que podem ser elaboradas. Detalharemos bastante o primeiro exemplo. As etapas de elaborao de consultas sero exibidas atravs das telas da Interface de Definio de Consultas (IDC).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

63

Exemplo 1
Considerando o esquema global construdo anteriormente, suponha que queremos elaborar a consulta: Quais os empregados, com respectiva data de admisso, de cada departamento? Devemos elaborar a consulta com base no esquema global (Figura 4.2(a) (1)), atravs da Interface de Definio de Consultas (IDC), que utiliza uma Linguagem Visual de Definio de Consultas (LVDC) com a funo de descrever um conjunto de regras e opes que podem ser aplicadas na formulao de consultas. A primeira etapa para elaborao de uma consulta selecionar o esquema global no qual a consulta ser realizada. Neste caso, selecionaremos o esquema global Organizao, conforme podemos observar na Figura 4.3.

Figura 4.3 - Seleo do Esquema Global Organizao

Devemos agora escolher as tabelas virtuais que iro participar de nossa consulta: Empregado e Departamento (ver Figura 4.4).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

64

Figura 4.4 - Seleo da s Tabelas Virtuais Empregado e Departamento

Conforme podemos observar na Figura 4.5, os atributos virtuais a serem selecionados so Empregado.Nm_Empregado, Empregado.Dt_Admissao e

Departamento.Nm_Departamento.

Figura 4.5 - Escolha dos Atributos Virtuais Empregado.Nm_Empregado, Empregado.Dt_Admissao e Departamento.Nm_Departamento

A prxima etapa a de definio de filtros nos atributos virtuais pertencentes s tabelas virtuais selecionadas anteriormente. Neste exemplo, todavia, esta etapa no ser utilizada.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

65

Na Figura 4.6, podemos observar a definio de ordenaes nos atributos virtuais Departamento.Nm_Departamento, Empregado.Nm_Empregado e

Empregado.Dt_Admissao, nesta ordem, no intuito de que nosso conjunto-resposta final seja apresentado de forma ordenada.

Figura 4.6 - Definio de Ordenaes nos Atributos Virtuais Departamento.Nm_Departamento, Empregado.Nm_Empregado e Empregado.Dt_Admissao

A prxima etapa a de definio de agrupamentos sobre os atributos virtuais selecionados. Neste exemplo, contudo, esta etapa no ser utilizada. Finalizando, necessrio definir algumas informaes sobre a consulta, como: ttulo, descrio e nome do usurio.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

66

Figura 4.7 - Descrio da Consulta

O leitor mais atento pode estar perguntando se no realizar uma eqijuno entre os atributos Departamento.Cd_Departamento e Empregado.Cd_Departamento. A definio de eqijunes realizada internamente pela IDC, com base nas informaes armazenadas no Metabanco de Dados. Aps a elaborao da consulta, a IDC repassa as seguintes informaes ao Integrador, mas precisamente ao mdulo Analisador de Consultas (Figura 4.2(a) (2)): Tabelas Virtuais = {Empregado, Departamento} Atributos Virtuais = {{Empregado, Nm_Empregado, }, {Empregado, Dt_Admissao, }, {Departamento, Nm_Departamento, }} Junes = {{Empregado, Cd_Departamento, =, Departamento,

Cd_Departamento}} Filtros = Ordenaes = {{Departamento, Nm_Departamento}, {Empregado,

Nm_Empregado}, {Empregado, Dt_Admissao}} Agrupamentos =

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

67

O componente Analisador de Consultas recebe conjuntos de Tabelas Virtuais, Atributos Virtuais, Junes, Filtros, Ordenaes e Agrupamentos, e estrutura toda a informao recebida para que possa ser utilizada pelos componentes seguintes. O resultado deste trabalho a gerao das Tabelas 4.29 a 4.31. A Tabela 4.29 contm dados referentes aos atributos virtuais includos em uma consulta. Nela, os campos Tabela Virtual, Atributo Virtual, Selecionado, Funo, Juno, OrderBy e GroupBy indicam, respectivamente, nome da tabela virtual, nome do atributo virtual, se o atributo virtual ser exibido no conjunto-resposta final, funo de agregao (Quantidade, Soma, Valor Mximo, Valor Mnimo e Mdia) definida no atributo virtual, se existe alguma restrio definida no atributo virtual, se alguma ordenao est definida no atributo virtual e se algum agrupamento est definido no atributo virtual. O atributo virtual Nm_Empregado, por exemplo, pertence tabela virtual Empregado, ser exibido no conjunto-resposta final e ser utilizado para ordenar o mesmo conjunto. Tabela Virtual Empregado Empregado Departamento Departamento Empregado Atributo Virtual Selecionado Funo Filtro Juno OrderBy GroupBy Nm_Empregado Dt_Admissao Nm_Departamento Cd_Departamento Cd_Departamento
Tabela 4.29 - Atributos Virtuais

A Tabela 4.30 contm informaes sobre restries impostas aos atributos virtuais de uma consulta. Nela, os campos Atributo Virtual, Operador e Constante indicam, respectivamente, nome do atributo virtual, operador de comparao (igual, diferentes, maior, menor, maior do que, menor do que) utilizado na definio de uma restrio e valor literal, como nmero ou caractere. Neste exemplo, como nenhum filtro foi definido, a Tabela 4.33 no se encontra preenchida. Tabela Virtual Atributo Virtual Operador Constante
Tabela 4.30 - Filtros

A Tabela 4.31 contm informaes sobre junes definidas entre atributos virtuais. Nela, os campos Tabela Virtual, Atributo Virtual, Operador, Tabela Virtual de

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

68

Juno e Atributo Virtual de Juno significam, respectivamente, nome da primeira tabela virtual de uma juno, nome do primeiro atributo virtual de uma juno, operador de comparao utilizado na definio de uma juno, nome da segunda tabela virtual de uma juno e nome do segundo atributo virtual de uma juno. De acordo com a Tabela 4.31, uma eqijuno est definida entre os atributos virtuais Cd_Departamento, pertencente tabela virtual Departamento, e Cd_Departamento, pertencente tabela virtual Empregado. Tabela Virtual Atributo Virtual Departamento Cd_Departamento Empregado Cd_Departamento Operador = = Tabela Virtual de Juno Empregado Cd_Departamento Atributo Virtual de Juno Cd_Departamento Departamento

Tabela 4.31 - Junes

O Coletor de Fontes recebe esses resultados do Analisador de Consultas (Figura 4.2(a) (3)) e seleciona as possveis fontes que podem atender a cada par tabela e atributo virtual contido na Tabela 4.29, isto , a(s) fonte(s) que contenha(m) tabelas e atributos, respectivamente, correspondentes ao par em questo, utilizando o Metabanco de Dados (Figura 4.2(a) (4)). O resultado gerado pelo componente a Tabela 4.32. Nela, os campos Tabela Virtual, Atributo Virtual e Fonte significam, respectivamente, nome da tabela virtual, nome do atributo virtual e fonte que atende ao par tabela e atributo virtual. Conforme podemos notar, o par tabela virtual Empregado e atributo virtual Nm_Empregado, por exemplo, atendido tanto pelo banco de dados Companhia como pelo banco Empresa. Tabela Virtual Atributo Virtual Fonte Companhia Empregado Nm_Empregado Empresa Companhia Empregado Dt_Admissao Empresa Companhia Departamento Nm_Departamento Empresa Companhia Departamento Cd_Departamento Empresa Companhia Empregado Cd_Departamento Empresa
Tabela 4.32 - Fontes

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

69

O Estimador de Fontes recebe como entrada a Tabela 4.32 (Figura 4.2(a) (5)) e realiza um levantamento estatstico de cada fonte de dados que possui tabelas e atributos correspondentes aos selecionados no esquema global, atravs da diviso do nmero de atributos virtuais que uma determinada fonte possa atender pelo nmero de atributos virtuais selecionados em uma consulta. Este mdulo tambm verifica se o conjunto de atributos atendidos por uma das fontes forma um subconjunto dos atributos atendidos pelas outras fontes. Pela Tabela 4.32 possvel perceber que os bancos de dados Companhia e Empresa atendem a cinco de um total de cinco atributos virtuais solicitados, ou seja, 100% de atributos atendidos. Obviamente, o conjunto de atributos virtuais atendidos pelo banco de dados Companhia o mesmo do conjunto de atributos virtuais atendidos pelo banco de dados Empresa. O resultado produzido pelo Estimador de Fontes (Figura 4.2(a) (6)) pode ser visto na Tabela 4.33(a). Nela, os campos Fonte, Porcentagem e Subconjunto indicam, respectivamente, nome da fonte de dados, porcentagem de atributos virtuais atendidos por cada fonte e indicao se o conjunto de atributos virtuais atendido por uma fonte um subconjunto dos atributos virtuais atendidos por outra fonte de dados. Por exemplo, o banco de dados Companhia atende a 100% dos atributos virtuais includos na consulta e o conjunto de atributos atendido pelo banco um subconjunto dos atributos atendidos pelo banco de dados Empresa. Fonte Porcentagem Subconjunto Companhia 100,0% Empresa 100,0%
Tabela 4.33(a) - Estatstica

O mdulo Seletor de Fontes, baseado nos resultados calculados pelo Estimador de Fontes, decide para que(quais) fonte(s) deve(m) ser geradas subconsultas (Figura 4.2(a) (6)). A escolha das fontes baseada nas seguintes heursticas: Totalidade: se uma fonte atende a todos os atributos virtuais includos em uma consulta, ento a mesma deve ser escolhida e todas as outras ignoradas. Contudo, de acordo com as estatsticas levantadas pelo Estimador de Fontes

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

70

(ver Tabela 4.36 (a)), ambas as fontes atendem a todos os atributos virtuais. Portanto, as fontes Companhia e Empresa devem ser selecionadas; Subconjunto: se o conjunto de atributos atendidos por uma determinada fonte for um subconjunto dos atributos atendidos por outra fonte, ento a primeira deve ser descartada. Todavia, o conjunto de atributos atendidos pelo banco Companhia , na verdade, um subconjunto dos atributos virtuais atendidos pelo banco Companhia, e vice-versa. Novamente, selecionaremos ambas as fontes. O resultado produzido pelo Seletor de Fontes (Figura 4.2(a) (7)) pode ser visualizado na Tabela 4.33(b). O campo Selecionada indica se uma fonte foi ou no escolhida para responder a uma consulta, isto , se deve ou no ser gerada uma subconsulta para uma determinada fonte. Podemos ver que os banco de dados Companhia e Empresa foram selecionados para responder consulta formulada anteriormente. Fonte Porcentagem Subconjunto Selecionada Companhia 100,0% Empresa 100,0%
Tabela 4.33(b) - Estatstica

O Transformador de Consultas, de acordo com a(s) fonte(s) selecionada(s) pelo Seletor de Fontes, gera subconsultas apropriadas para cada fonte escolhida (Figura 4.2(a) (7)). Para tal, utiliza as informaes armazenadas no Metabanco de Dados (Figura 4.2(a) (8)). O Metabanco de Dados tambm tem a funo de armazenar as subconsultas geradas pelo Integrador. As subconsultas sero executadas

posteriormente pelo UG no MEC (ver a seguir). Continuando nosso exemplo, deve ser gerada uma subconsulta para cada banco de dados selecionado pelo Seletor de Fontes, Companhia e Empresa. A subconsulta referente ao banco de dados Companhia :

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

71

SELECT Empregado.Nm_Empregado, Empregado.Dt_Admissao, Departamento.Nm_Departamento FROM Empregado, Departamento WHERE Departamento.Cd_Departamento = Empregado.Cd_Departamento ORDER BY Departamento.Nm_Departamento, Empregado.Nm_Empregado, Empregado.Dt_Admissao

A subconsulta gerada para o banco de dados Empresa :


SELECT Funcionario.Nm_Funcionario, Funcionario.Dt_Admissao, Departamento.Nm_Departamento FROM Funcionario, Departamento WHERE Departamento.Cd_Departamento = Funcionario.Cd_Departamento ORDER BY Departamento.Nm_Departamento, Funcionario.Nm_Funcionario, Funcionario.Dt_Admissao

Exemplo 2
Suponha agora que queremos elaborar a consulta: Qual o total de empregados trabalhando em cada departamento que foram admitidos depois de 20/02/1997? Aps selecionarmos o esquema global Organizao (Figura 4.2(a) (1)), devemos escolher as tabelas virtuais que iro participar de nossa consulta: Empregado e Departamento (ver Figura 4.8).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

72

Figura 4.8 - Seleo da s Tabelas Virtuais Empregado e Departamento

Conforme podemos observar na Figura 4.9, os atributos virtuais a serem selecionados so Departamento.Nm_Departamento e Empregado.Cd_Empregado, sendo que devemos associar a funo de agregao Quantidade a este ltimo.

Figura 4.9 - Escolha dos Atributos Virtuais Departamento.Nm_Departamento e Quantidade(Empregado.Cd_Empregado)

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

73

A prxima etapa a de definio de filtros em atributos virtuais pertencentes s tabelas virtuais Empregado e Departamento. Nossa consulta est interessada apenas nos empregados admitidos aps 20/02/1997. Portanto, se faz necessrio a definio de um filtro no atributo virtual Empregado.Dt_Admissao (ver Figura 4.10).

Figura 4.10 - Definio do Filtro Empregados Admitidos Aps 20/02/1997

A prxima etapa de a definio de ordenaes. Ordenaremos nosso conjuntoresposta final pelo nome do departamento, como se pode observar na Figura 4.11.

Figura 4.11 - Ordenando o Conjunto-Resposta Final pelo Nome do Departamento

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

74

Como queremos saber a quantidade de empregados por departamento, necessrio definir um agrupamento no atributo virtual Departamento.Nm_Departamento (ver Figura 4.12).

Figura 4.12 - Agrupando o Conjunto-Resposta Final por Departamento

Para finalizar, necessrio definir algumas informaes sobre a consulta, como: ttulo, descrio e nome do usurio (Figura 4.13).

Figura 4.13 - Descrio da Consulta

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

75

eqijuno

entre

os

atributos

Departamento.Cd_Departamento

Empregado.Cd_Departamento realizada internamente pela IDC, com base nas informaes armazenadas no Metabanco de Dados. Aps a elaborao da consulta, a IDC repassa as seguintes informaes ao Integrador, mas precisamente ao mdulo Analisador de Consultas (Figura 4.2(a) (2)): Tabelas Virtuais = {Empregado, Departamento} Atributos Virtuais = {{Departamento, Nm_Departamento, },

{Empregado, Cd_Empregado, Quantidade}} Junes = {{Departamento, Cd_Departamento, =, Empregado,

Cd_Departamento}} Filtros = {{Empregado, Dt_Admissao, >, 20/02/1997}} Ordenaes = {{Departamento, Nm_Departamento}} Agrupamentos = {{Departamento, Nm_Departamento}}

O componente Analisador de Consultas recebe os conjuntos de Tabelas Virtuais, Atributos Virtuais, Junes, Filtros, Ordenaes e Agrupamentos, e estrutura toda a informao recebida para que possa ser utilizada pelos componentes seguintes. O resultado deste trabalho a gerao das Tabelas 4.34 a 4.36. Tabela Virtual Departamento Empregado Empregado Departamento Empregado Atributo Virtual Selecionado Funo Filtro Juno OrderBy GroupBy Nm_Departamento Cd_Empregado Quantidade Dt_Admissao Cd_Departamento Cd_Departamento
Tabela 4.34 - Atributos Virtuais

Tabela Virtual Atributo Virtual Operador Constante Empregado Dt_Admissao > 20/02/1997
Tabela 4.35 - Filtros

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

76

Tabela Virtual Atributo Virtual Departamento Cd_Departamento Empregado Cd_Departamento

Operador = =

Tabela Virtual de Juno Empregado Cd_Departamento

Atributo Virtual de Juno Cd_Departamento Departamento

Tabela 4.36 - Junes

O Coletor de Fontes recebe esses resultados do Analisador de Consultas (Figura 4.2(a) (3)) e seleciona as possveis fontes que podem atender a cada par tabela e atributo virtual contido na Tabela 4.34, utilizando o Metabanco de Dados (Figura 4.2(a) (4)). O resultado gerado pelo mdulo a Tabela 4.37. Tabela Virtual Atributo Virtual Fonte Companhia Departamento Nm_Departamento Empresa Companhia Empregado Cd_Empregado Empresa Companhia Empregado Dt_Admissao Empresa Companhia Departamento Cd_Departamento Empresa Companhia Empregado Cd_Departamento Empresa
Tabela 4.37 - Fontes

O Estimador de Fontes recebe como entrada a Tabela 4.37 (Figura 4.2(a) (5)) e produz como resultado a Tabela 4.38(a) (Figura 4.2(a) (6)). Podemos perceber que os bancos de dados Companhia e Empresa atendem 100% dos atributos virtuais solicitados. Obviamente, o conjunto de atributos virtuais atendidos pelo banco de dados Companhia o mesmo do conjunto de atributos virtuais atendidos pelo banco de dados Empresa. Fonte Porcentagem Subconjunto Companhia 100,0% Empresa 100,0%
Tabela 4.38(a) - Estatstica

De forma semelhante ao exemplo 1, o componente Seletor de Fontes, baseado nos resultados produzidos pelo Estimador de Fontes, decide que devem ser geradas

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

77

subconsultas para ambas as fontes (Figura 4.2(a) (6)). O resultado produzido pelo Seletor de Fontes (Figura 4.2(a) (7)) pode ser visualizado na Tabela 4.38(b). Fonte Porcentagem Subconjunto Selecionada Companhia 100,0% Empresa 100,0%
Tabela 4.38(b) - Estatstica

O Transformador de Consultas, de acordo com a(s) fonte(s) selecionada(s) pelo Seletor de Fontes, gera subconsultas apropriadas para os bancos de dados Companhia e Empresa (Figura 4.2(a) (7)). A subconsulta referente ao banco de dados Companhia :
SELECT Departamento.Nm_Departamento, COUNT(Empregado.Cd_Empregado) FROM Empregado, Departamento WHERE Departamento.Cd_Departamento = Empregado.Cd_Departamento AND Empregado.Dt_Admissao > 20/02/1997 GROUP BY Departamento.Nm_Departamento ORDER BY Departamento.Nm_Departamento

A subconsulta gerada para o banco de dados Empresa :


SELECT Departamento.Nm_Departamento, COUNT(Funcionario.Cd_Funcionario) FROM Funcionario, Departamento WHERE Departamento.Cd_Departamento = Funcionario.Cd_Departamento AND Funcionario.Dt_Admissao > 20/02/1997 GROUP BY Departamento.Nm_Departamento ORDER BY Departamento.Nm_Departamento

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

78

Exemplo 3
Suponha agora que queremos elaborar a consulta: Quais os empregados, com respectivos cargos, trabalhando em projetos controlados pelo departamento de Informtica? Aps selecionarmos o esquema global Organizao (Figura 4.2(a) (1)), devemos escolher as tabelas virtuais que iro participar de nossa consulta: Empregado, Departamento, Projeto, EmpregadoTrabalhaProjeto e DepartamentoControlaProjeto (ver Figura 4.14).

Figura 4.14 - Seleo da s Tabelas Virtuais Empregado, Departamento, Projeto, EmpregadoTrabalhaProjeto e DepartamentoControlaProjeto

Os

atributos

virtuais

serem

selecionados

(Figura

4.15)

so

Empregado.Nm_Empregado, Empregado.Cargo e Projeto.Nm_Projeto.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

79

Figura 4.15 - Escolha dos Atributos Virtuais Empregado.Nm_Empregado, Empregado.Cargo e Projeto.Nm_Projeto

Como estamos interessados apenas nos empregados do departamento de Informtica, devemos estabelecer um filtro no atributo virtual

Departamento.Nm_Departamento (ver Figura 4.16).

Figura 4.16 - Definio do Filtro Departamento de Informtica

Conforme podemos observar na Figura 4.17, ordenaremos nosso conjuntoresposta pelos atributos virtuais Projeto.Nm_Projeto e Empregado.Nm_Empregado, nesta ordem.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

80

Figura 4.17 - Ordenando o Conjunto-Resposta Final pelos Atributos Virtuais Projeto.Nm_Projeto e Empregado.Nm_Empregado

Em razo da inexistncia de agrupar o conjunto-resposta final, no utilizaremos a etapa de definio de agrupamentos neste exemplo. Para finalizar, necessrio definir algumas informaes sobre a consulta, como: ttulo, descrio e nome do usurio (Figura 4.18).

Figura 4.18 - Descrio da Consulta

As

eqijunes

entre

os

atributos

Departamento.Cd_Departamento

e e

Empregado.Cd_Departamento,

Empregado.Cd_Empregado

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

81

EmpregadoTrabalhaProjeto.Cd_Empregado, EmpregadoTrabalhaProjeto.Cd_Projeto,

Projeto.Cd_Projeto Projeto.Cd_Projeto

e e

DepartamentoControlaProjeto.Cd_Projeto, DepartamentoControlaProjeto.Cd_Departamento e Departamento.Cd_Departamento so realizadas internamente pela IDC, com base nas informaes armazenadas no Metabanco de Dados. Aps a elaborao da consulta, a IDC repassa as seguintes informaes ao Integrador, mas precisamente ao mdulo Analisador de Consultas (Figura 4.2(a) (2)): Tabelas Virtuais = {Empregado, Departamento, Projeto,

EmpregadoTrabalhaProjeto, DepartamentoControlaProjeto} Atributos Virtuais = {{Empregado, Nm_Empregado, }, {Empregado, Cargo, }, {Projeto, Nm_Projeto, }} Junes = {{Departamento, Cd_Departamento, =, Empregado, =,

Cd_Departamento},

{Empregado,

Cd_Empregado,

EmpregadoTrabalhaProjeto, Cd_Empregado}, {Projeto, Cd_Projeto, =, EmpregadoTrabalhaProjeto, Cd_Projeto}, {Projeto, Cd_Projeto, =,

DepartamentoControlaProjeto,

Cd_Projeto},

{DepartamentoControlaProjeto, Cd_Departamento, =, Departamento, Cd_Departamento}} Filtros = {{Departamento, Nm_Departamento, =, Informtica}} Ordenaes = {{Projeto, Nm_Projeto}, {Empregado, Nm_Empregado}} Agrupamentos =

O componente Analisador de Consultas recebe os conjuntos de Tabelas Virtuais, Atributos Virtuais, Junes, Filtros, Ordenaes e Agrupamentos, e estrutura toda a informao recebida para que possa ser utilizada pelos componentes seguintes. O resultado deste trabalho a gerao das Tabelas 4.39 a 4.41.
Tabela Virtual Empregado Empregado Projeto Atributo Virtual Nm_Empregado Cargo Nm_Projeto Selecionado Funo Filtro Juno OrderBy GroupBy

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

82

Departamento Empregado Departamento Empregado EmpregadoTrabalhaProjeto Projeto EmpregadoTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto

Nm_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Empregado Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento

Tabela 4.39 - Atributos Virtuais

Tabela Virtual Atributo Virtual Operador Constante Departamento Nm_Departamento = Informtica


Tabela 4.40 - Filtros

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

83

Tabela Virtual Departamento Empregado Empregado EmpregadoTrabalhaProjeto Projeto EmpregadoTrabalhaProjeto Projeto DepartamentoControlaProjeto DepartamentoControlaProjeto Departamento

Atributo Virtual Cd_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Projeto Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento Cd_Departamento

Operador Tabela Virtual de Juno = = = = = = = = = =

Atributo Virtual de Juno Empregado Cd_Departamento Cd_Departamento Departamento EmpregadoTrabalhaProjeto Cd_Empregado Empregado Cd_Departamento EmpregadoTrabalhaProjeto Cd_Projeto Projeto Cd_Projeto DepartamentoControlaProjeto Cd_Projeto Projeto Cd_Projeto Departamento Cd_Departamento DepartamentoControlaProjeto Cd_Departamento

Tabela 4.41 - Junes

O Coletor de Fontes recebe esses resultados do Analisador de Consultas (Figura 4.2(a) (3)) e seleciona as possveis fontes que podem atender a cada par tabela e atributo virtual contido na Tabela 4.39, utilizando o Metabanco de Dados (Figura 4.2(a) (4)). O resultado gerado pelo mdulo a Tabela 4.42. Tabela Virtual Fonte Companhia Empregado Nm_Empregado Empresa Empregado Cargo Companhia Projeto Nm_Projeto Empresa Companhia Departamento Nm_Departamento Empresa Companhia Empregado Cd_Departamento Empresa Companhia Departamento Cd_Departamento Empresa Companhia Empregado Cd_Empregado Empresa EmpregadoTrabalhaProjeto Cd_Empregado Empresa Projeto Cd_Projeto Empresa EmpregadoTrabalhaProjeto Cd_Projeto Empresa DepartamentoControlaProjeto Cd_Projeto Empresa DepartamentoControlaProjeto Cd_Departamento Empresa
Tabela 4.42 - Fontes

Atributo Virtual

O Estimador de Fontes recebe como entrada a Tabela 4.42 (Figura 4.2(a) (5)), produzindo como resultado a Tabela 4.43(a) (Figura 4.2(a) (6)). Fonte Porcentagem Subconjunto Companhia 50% Empresa 92%
Tabela 4.43(a) - Estatstica

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

84

Conclumos pela Tabela 4.43(a) que o banco de dados Companhia atende a 50% dos atributos virtuais solicitados, enquanto o banco Empresa atende a aproximadamente 92% dos atributos. Percebemos tambm que o conjunto de atributos virtuais atendidos pelo banco de dados Companhia no um subconjunto do conjunto de atributos virtuais atendidos pelo banco Empresa e vice-versa. De forma semelhante aos exemplos 1 e 2, o componente Seletor de Fontes, baseado nos resultados produzidos pelo Estimador de Fontes, decide que devem ser geradas subconsultas para ambas as fontes (Figura 4.2(a) (6)), visto que nenhuma das duas fontes atende a 100% dos atributos virtuais solicitados e o conjunto de atributos atendidos por uma fonte no subconjunto do da outra fonte. O resultado produzido pelo Seletor de Fontes (Figura 4.2(a) (7)) pode ser visualizado na Tabela 4.43(b). Fonte Porcentagem Subconjunto Selecionada Companhia 50% Empresa 92%
Tabela 4.43(b) - Estatstica

O Transformador de Consultas, de acordo com a(s) fonte(s) selecionada(s) pelo Seletor de Fontes, gera subconsultas apropriadas para os bancos de dados Companhia e Empresa (Figura 4.2(a) (7)). A subconsulta referente ao banco de dados Companhia :
SELECT Empregado.Nm_Empregado, Empregado.Nm_Cargo FROM Empregado, Departamento WHERE Empregado.Cd_Departamento = Departamento.Cd_Departamento AND Departamento.Nm_Departamento = 'Informtica' ORDER BY Empregado.Nm_Empregado

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

85

A subconsulta gerada para o banco de dados Empresa :


SELECT Funcionario.Nm_Funcionario, Projeto.Nm_Projeto FROM Funcionario, Departamento, Projeto, DepartamentoControlaProjeto, FuncionarioTrabalhaProjeto WHERE Funcionario.Cd_Departamento = Departamento.Cd_Departamento AND Funcionrio.Cd_Funcionario = FuncionarioTrabalhaProjeto.Cd_Funcionario AND Projeto.Cd_Projeto = FuncionarioTrabalhaProjeto.Cd_Projeto AND Projeto.Cd_Projeto = DepartamentoControlaProjeto.Cd_Projeto AND DepartamentoControlaProjeto.Cd_Departamento = Departamento.Cd_Departamento AND Departamento.Nm_Departamento = 'Informtica' ORDER BY Projeto.Nm_Projeto, Funcionario.Nm_Funcionario

4.2.3 Execuo de Consulta


Vamos agora acompanhar o funcionamento do Mdulo de Execuo de Consultas, levando em considerao cada um dos exemplos da seo anterior.

Exemplo 1
As subconsultas, produzidas pelo Integrador, ficam armazenadas no Metabanco de Dados, podendo ser visualizadas pelos UGs atravs de uma interface "Web". Conforme podemos observar na Figura 4.19, para executar a consulta do exemplo 1, devemos selecionar a consulta intitulada de Empregados, com respectiva data de admisso, de cada departamento (Figura 4.2(b) (1)). Ao escolhermos a consulta, as subconsultas correspondentes mesma, armazenadas no Metabanco de Dados, so recuperadas (Figura 4.2(b) (2)) e enviadas para serem executadas em suas respectivas fontes de dados (Figura 4.2(b) (3)), Companhia e Empresa, que retornam seus respectivos conjuntos-resposta (Figura 4.2(b) (4)).

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

86

Figura 4.19 - Seleo da Consulta Empregados, com respectiva data de admisso, de cada departamento

O resultado referente ao banco de dados Companhia o que podemos observar na Tabela 4.44. Nm_Empregado Jos S Campos Srgio B Castro Marcelo M Correia Sandro F Carvalho Francisco M de Souza Jorge C Silva Manuela F de Lima Paula A Andrade Antnio L Farias Joana B de Souza Dt_Admissao 15/02/1999 14/02/1999 30/01/1994 15/01/1996 15/09/1998 16/11/1999 18/01/1997 22/02/1994 22/08/1997 19/01/1998 Nm_Departamento Administrao Administrao Financeiro Financeiro Informtica Informtica Marketing Marketing Pessoal Pessoal

Tabela 4.44 Resultado Retornado pelo Banco de Dados Companhia

Na Tabela 4.45, podemos ver o resultado produzido pelo banco de dados Empresa. Nm_Funcionario Marcelo Morais Correia Sandro Ferreira Carvalho Francisco Maturana de Souza Jorge Castro Silva Manuela Farias de Lima Paula Almeida Andrade Dt_Admissao 30/01/1994 15/01/1996 15/09/1998 16/11/1999 18/01/1997 22/02/1994 Nm_Departamento Financeiro Financeiro Informtica Informtica Marketing Marketing

Tabela 4.45 Resultado Retornado pelo Banco de Dados Empresa

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

87

O Combinador de Resultados tem a funo de integrar os conjuntos-resposta resultantes da execuo de subconsultas nas fontes de dados locais, no intuito de serem apresentados ao UG, eliminando qualquer tipo de conflito. Neste caso, foram encontrados trs tipos de conflito. So eles: Conflito de tipo de dado: os atributos Nm_Empregado e Nm_Departamento, pertencentes ao conjunto-resposta retornado pelo banco de dados Companhia, so do tipo Char, enquanto os atributos Nm_Funcionario e Nm_Departamento, pertencente ao conjunto-resposta produzido pelo banco Empresa, so do tipo Varchar. necessria a utilizao de uma funo de converso nos dois primeiros atributos (Nm_Empregado e Nm_Departamento). Ambos devem ser convertidos de Char para Varchar; Conflito de expresses diferentes: o empregado Jorge Castro Silva identificado como Jorge C Silva no banco de dados Companhia e como Jorge Castro Silva no banco Empresa. Desta forma, deve ser realizado um mapeamento de valores com base nas informaes contidas no Metabanco de Dados, isto , neste caso, o dado Jorge C Silva deve ser mapeado em Jorge Castro Silva; Conflito de sinonmia de atributos: os atributos Nm_Empregado e

Nm_Funcionario, pertencentes aos bancos de dados Companhia e Empresa, respectivamente, so sinnimos (ver Tabela 4.17). O atributo virtual que representa ambos no esquema global Nm_Empregado. Portanto, o atributo Nm_Funcionario deve ser mapeado para Nm_Empregado. Aps a deteco e eliminao de conflitos pelo Combinador de Resultados necessrio ainda combinar os conjuntos-resposta. Somente devem ser apresentados os atributos selecionados na consulta. Os atributos devem ser ordenados e/ou agrupados de acordo como indica a consulta. Assim, o resultado final apresentado ao UG o que se pode observar na Tabela 4.46.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

88

Nm_Empregado Jos S Campos Srgio B Castro Marcelo Morais Correia Sandro Ferreira Carvalho Francisco Maturana de Souza Jorge Castro Silva Manuela Farias de Lima Paula Almeida Andrade Antnio L Farias Joana B de Souza

Dt_Admissao 15/02/1999 14/02/1999 30/01/1994 15/01/1996 15/09/1998 16/11/1999 18/01/1997 22/02/1994 22/08/1997 19/01/1998

Nm_Departamento Administrao Administrao Financeiro Financeiro Informtica Informtica Marketing Marketing Pessoal Pessoal

Tabela 4.46 - Resultado Final da Consulta Aps a Eliminao de Conflitos

Exemplo 2
Conforme podemos observar na Figura 4.20, para executar a consulta do exemplo 2, devemos selecionar a consulta intitulada de Total de empregados, por departamento, que foram admitidos aps 20/02/1997 (Figura 4.2(b) (1)). Ao escolhermos a consulta, as subconsultas correspondentes mesma, armazenadas no Metabanco de Dados, so recuperadas (Figura 4.2(b) (2)) e enviadas para serem executadas em suas respectivas fonte de dados (Figura 4.2(b) (3)), Companhia e Empresa, que retornam seus conjuntos-resposta (Figura 4.2(b) (4)).

Figura 4.20 - Seleo da Consulta Total de Empregados, por departamento, que foram admitidos aps 20/02/1997

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

89

O resultado referente ao banco de dados Companhia o que podemos observar na Tabela 4.47. Nm_Departamento Total Administrao 2 Financeiro 0 Informtica 2 Marketing 0 Pessoal 2
Tabela 4.47 Resultado Retornado pelo Banco de Dados Companhia

Na Tabela 4.48, podemos ver o resultado produzido pelo banco de dados Empresa. Nm_Departamento Total Financeiro 0 Informtica 2 Marketing 0
Tabela 4.48 Resultado Retornado pelo Banco de Dados Empresa

Neste exemplo, o componente Combinador de Resultados detecta e resolve um nico tipo de conflito antes de combinar os resultados: Conflito de tipo de dado: o atributo Nm_Departamento, pertencente ao conjunto-resposta retornado pelo banco de dados Companhia, do tipo Char, enquanto o atributo Nm_Departamento, pertencente ao conjunto-resposta produzido pelo banco Empresa, do tipo Varchar. necessria a utilizao de uma funo de converso no primeiro atributo, no intuito de converte-lo de Char para Varchar; O resultado final pode se observado na Tabela 4.49: Nm_Departamento Total Administrao 2 Financeiro 0 Informtica 2 Marketing 0 Pessoal 2
Tabela 4.49 - Resultado Final da Consulta Aps a Eliminao de Conflitos

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

90

Exemplo 3
Conforme podemos observar na Figura 4.21, para executar a consulta do exemplo 3, devemos selecionar a consulta intitulada de Empregados, com respectivos cargos, trabalhando em projetos controlados pelo departamento de informtica (Figura 4.2(b) (1)). Ao escolhermos a consulta, as subconsultas correspondentes mesma, armazenadas no Metabanco de Dados, so recuperadas (Figura 4.2(b) (2)) e enviadas para serem executadas em suas respectivas fonte de dados (Figura 4.2(b) (3)), Companhia e Empresa, que retornam seus conjuntos-resposta (Figura 4.2(b) (4)).

Figura 4.21 - Seleo da Consulta Empregados, com respectivos cargos, trabalhando em projetos gerenciados pelo departamento de Informtica

O resultado referente ao banco de dados Companhia o que podemos observar na Tabela 4.50. Nm_Empregado Cargo Francisco M de Souza DBA Jorge C Silva Desenvolvedor
Tabela 4.50 Resultado Retornado pelo Banco de Dados Companhia

Na Tabela 4.51, podemos ver o resultado produzido pelo banco de dados Empresa.

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

91

Nm_Funcionario Nm_Projeto Francisco Maturana de Souza Alpha 1 Jorge Castro Silva Alpha 1
Tabela 4.51 Resultado Retornado pelo Banco de Dados Empresa

Neste exemplo, o componente Combinador de Resultados detecta e resolve trs diferentes tipos de conflito antes de combinar os resultados: Conflito de tipo de dado: os atributos sinnimos (ver Tabela 4.17) Nm_Empregado, pertencente ao banco de dados Companhia, e Nm_Funcionario, pertencente ao banco Empresa, so do tipo Char e Varchar, respectivamente. necessria ento a utilizao de uma funo de converso no primeiro atributo. O mesmo deve ser convertido de Char para Varchar; Conflito de expresses diferentes: o empregado Francisco Maturana de Souza identificado como Francisco M de Souza no banco de dados Companhia e como Francisco Maturana de Souza no banco Empresa. Desta forma deve ser realizado um mapeamento de valores com base nas informaes contidas no Metabanco de Dados, isto , neste caso, o dado Francisco M de Souza deve ser mapeado em Francisco Maturana de Souza; Conflito de sinonmia de atributos: os atributos Nm_Empregado e

Nm_Funcionario, pertencentes aos bancos de dados Companhia e Empresa, respectivamente, so sinnimos (ver Tabela 4.17). O atributo virtual que representa ambos no esquema global Nm_Empregado. Portanto, o atributo Nm_Funcionario deve ser mapeado para Nm_Empregado. necessria ainda a combinao dos conjuntos-resposta pelo Combinador de Resultados. O conjunto-resposta final pode se observado na Tabela 4.52. Nm_Empregado Cargo Nm_Projeto Francisco Maturana de Souza DBA Alpha 1 Jorge Castro Silva Desenvolvedor Alpha 1
Tabela 4.52 - Resultado Final da Consulta Aps a Eliminao de Conflitos

BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento

92

4.3 Concluses
Neste captulo, vimos que a construo de um esquema global no uma tarefa trivial, em virtude da presena de conflitos entre os vrios esquemas locais. Vimos tambm como uma consulta a um esquema global, na Arquitetura BDRV, transformada em subconsultas a serem executadas em suas respectivas fontes de dados locais. Aps serem executadas, as subconsultas ainda continham conflitos que tambm necessitavam de serem resolvidos. No Captulo 5, trataremos do projeto e implementao do Sistema BDRV, incluindo as estruturas de dados genricas e os algoritmos que recuperam dados das estruturas. No Anexo A, o leitor pode encontrar um estudo de caso, onde trs bancos de dados, localizados no DSC, so integrados. possvel tambm observar alguns exemplos de elaborao e execuo de consultas.

Captulo 5
Projeto e Implementao do Sistema BDRV
5.1 Introduo
Conforme pudemos observar nos captulos anteriores, o Sistema BDRV composto pelos Mdulos de Definio de Consultas (MDC) e de Execuo de Consultas (MEC). No MDC, as consultas aos Bancos de Dados Virtuais (BDVs) so elaboradas pelo Usurio Definidor de Consultas (UDC) atravs da Interface de Definio de Consultas (IDC). Uma vez definidas, as consultas so repassadas ao Integrador que, por sua vez, gera subconsultas a serem executadas posteriormente nos bancos de dados locais. Neste mdulo, o Metabanco de Dados desempenha uma tripla funo: guardar a descrio dos BDVs esquemas locais, utilizadas pela IDC; manter mapeamentos BDVs esquemas locais, utilizados pelo Integrador; e, por fim,

armazenar as consultas e respectivas subconsultas geradas pelo Integrador. No MEC, as consultas geradas no MDC so disponibilizadas para serem executadas pelo Usurio Global (UG). Uma vez selecionada, as subconsultas correspondentes so recuperadas no Metabanco de Dados e enviadas para serem executadas diretamente em suas respectivas fontes de dados. O Combinador de Resultados ento recebe os vrios conjuntos-resposta, detecta/resolve possveis conflitos entre os mesmos, e integra-os, apresentando o resultado final atravs de uma interface "Web". Neste mdulo, o Metabanco de Dados desempenha as seguintes funes: manter as consultas e suas respectivas subconsultas; e armazenar informaes para resoluo de conflitos.

Projeto e Implementao do Sistema BDRV

92

No Captulo 4, apresentamos uma idia do funcionamento geral do Sistema BDRV, isto , como os componentes de cada mdulo esto interligados. Em resumo, mostramos uma viso do Sistema BDRV ao nvel de usurio. O objetivo deste captulo detalhar individualmente os componentes de cada mdulo do Sistema BDRV, sua(s) funo(es), entrada(s) e sada(s), e algoritmo(s). Analisaremos o funcionamento de cada componente de forma seqencial, utilizando o terceiro exemplo do captulo anterior.

5.2 Metabanco de Dados


O Metabanco de Dados, um banco de dados relacional, um componente que participa de ambos os mdulos do Sistema BDRV. No MDC, o Metabanco de Dados desempenha as seguintes funes: Guardar a descrio de BDVs e esquemas locais, para uso pela IDC; Manter mapeamentos BDVs Integrador; Armazenar as consultas, geradas pela IDC, e as subconsultas, estas geradas pelo Integrador. No MEC a funo do Metabanco de Dados armazenar informaes a serem utilizadas na soluo de possveis tipos de conflitos, pelo Combinador de Resultados. Na Figura 5.1, apresentamos o esquema geral do Metabanco de Dados. As setas indicam a existncia de referncia de integridade entre atributos pertencentes s tabelas interligadas. A origem da seta significa o atributo que referencia, enquanto a parte final indica o atributo que referenciado. O smbolo jogo-da-velha (# ) indica que o atributo chave primria da tabela. J o smbolo asterisco significa que o atributo chave estrangeira. esquemas locais, a serem utilizados pelo

Projeto e Implementao do Sistema BDRV


Consulta #Cd_Consulta Nm_Consulta Ds_Consulta Nm_Criador Dt_Criao *Cd_Esquema_G

93

Gerenciador #Cd_Gerenci ador Nm_Gerencia

Subconsulta #Cd_Subcon sulta Vl_Subconsul ta *Cd_Consulta

Esquema Global #Cd_Esquema_ Global Nm_Esquema_G lobal

Dado/Mapeado/Dado #*Cd_Dado #*Cd_Dado_Mapeado

Banco #Cd_Banco Nm_Banco *Cd_Gerenci

EsquemaGlobal/Possui/Ta belaVirtual #*Cd_Esquema_Global #*Cd_Tabela_Virtual

Tabela #Cd_Tabela Nm_Tabela Ds_Tabela *Cd_Banco

TabelaVirtual/Mapeada/Ta bela #*Cd_Tabela_Virtual #*Cd_Tabela

Tabela Virtual #Cd_Tabela_Vir tual Nm_Tabela_Virt ual

Dado #Cd_Dad o Nm_Dad

Atributo #Cd_Atributo Nm_Atributo *Cd_Tipo Ds_Atributo Flag_Chave_Primari a Flag_Chave_Estrang eira

AtributoVirtual/Mapeado/ Atributo #*Cd_Atributo_Virtual #*Cd_Atributo

Atributo Virtual #Cd_Atributo_Virtual Nm_Atributo_Virtual *Cd_Tipo Ds_Atributo_Virtual Flag_Chave_Primaria Flag_Chave_Estrangeira *Cd_Tabela_Virtual *Cd_Atributo_Virtual_Re

Atributo/Possui /Dado #*Cd_Atributo #*Cd_Dado

Tipo #Cd_Tipo Nm_Tipo Ds_Tabela *Cd_Banco

Figura 5.1 - Esquema Geral do Metabanco de Dados

Na seqncia, apresentamos o dicionrio de dados do Metabanco de Dados. Para cada tabela do Metabanco de Dados, mostramos uma breve descrio e as tabelas referenciadas, ou seja, as tabelas que possuem atributos considerados chave estrangeira de atributos da tabela em questo. No que diz respeito aos atributos descrevemos as propriedades nome do atributo (Nome), tipo de dado (Tipo), chave primria (CP), chave estrangeira (CE), nome da tabela e do atributo ao qual o atributo em questo faz referncia (Referncia) e significado do atributo (Semntica).

Projeto e Implementao do Sistema BDRV

94

Dicionrio de Dados
Tabela: Atributo Nome Simblico: Atributo Descrio Tabelas Referenciadas Nome # Cd_Atributo Nm_Atributo Cd_Tipo Ds_Atributo Flag_Chave_Primaria Flag_Chave_Estrangeira *Cd_Tabela *Cd_Atributo_Referencia

Armazena informaes sobre os atributos de bancos de dados locais Tipo, Tabela e Atributo Tipo CP CE Referncia Semntica Int Cdigo do atributo Varchar Nome do atributo Int Tipo.Cd_Tipo Cdigo do tipo Varchar Descrio do atributo Bit Indica se o atributo chave primria Bit Indica se o atributo chave estrangeira Int Tabela.Cd_Tabela Cdigo da tabela que contm o atributo Int Atributo.Cd_Atributo Cdigo que identifica o atributo que referencia

Tabela 5.1 - Tabela Atributo

Tabela: Atributo_Dado Nome Simblico: Atributo / Possui / Dado Descrio Armazena os atributos que apresentam conflitos de dados do tipo: expresses distintas e precises diferentes Tabelas Referenciadas Atributo e Dado Nome Tipo CP CE Referncia Semntica # *Cd_Atributo Int Atributo.Cd_Atributo Cdigo do atributo # *Cd_Dado Int Dado.Cd_Dado Cdigo do dado

Tabela 5.2 - Tabela Atributo / Possui / Dado

Tabela: Atributo Virtual Nome Simblico: Atributo_Virtual Descrio Tabelas Referenciadas Nome # Cd_Atributo_Virtual Nm_Atributo_Virtual Cd_Tipo Ds_Atributo_Virtual Flag_Chave_Primria Flag_Chave_Estrangeira *Cd_Tabela_Virtual

Armazena os atributos pertencentes tabelas virtuais Tipo, Tabela_Virtual e Atributo_Virtual Tipo CP CE Referncia Semntica Int Cdigo do atributo virtual Varchar Nome do atributo virtual Int Tipo.Cd_Tipo Cdigo do tipo de dados Varchar Descrio do atributo virtual Bit Indica se chave primria Bit Indica se chave estrangeira Nmero TabelaVirtual.Cd_Tabela_Virtual Cdigo da tabela virtual Cdigo que identifica cada atributo virtual *Cd_Atributo_Virtual_Referencia Nmero AtributoVirtual.Cd_Atributo_Virtual que referencia

Tabela 5.3 - Tabela Atributo Virtual

Tabela: Atributo Virtual / Mapeado / Atributo Nome Simblico: Atrib_Virt_Mapeado_Atributo Descrio Armazena mapeamentos entre atributos virtuais e atributos Tabelas Referenciadas Atributo_Virtual e Atributo Nome Tipo CP CE Referncia Semntica # *Cd_Atributo_Virtual Int AtributoVirtual.Cd_Atributo_Virtual Cdigo do atributo virtual # *Cd_Atributo Int Atributo.Cd_Atributo Cdigo do atributo

Tabela 5.4 - Tabela Atributo Virtual / Mapeado / Atributo

Projeto e Implementao do Sistema BDRV

95

Tabela: Banco Nome Simblico: Banco de Dados Descrio Armazena o nome dos bancos de dados locais Tabelas Referenciadas Gerenciador Nome Tipo CP CE Referncia Semntica # Cd_Banco Int Cdigo que identifica cada banco de dados Nm_Banco Varchar Nome de banco de dados *Cd_Gerenciador Int Gerenciador.Cd_Gerenciador Cdigo que identifica cada sistema gerenciador de banco de dados

Tabela 5.5 - Tabela Banco


Tabela: Consulta Nome Simblico: Consulta Descrio Armazena informaes relativas s consultas Tabelas Referenciadas Esquema_Global Nome Tipo CP CE Referncia # Cd_Consulta Int Nm_Consulta Varchar Vl_Consulta Text Ds_Consulta Varchar Nm_Criador Varchar Dt_Criacao Smalldatetime *Cd_Esquema_Global Int EsquemaGlobal.Cd_Esquema_Global

Semntica Cdigo que identifica cada consulta Nome da consulta Comando SQL Descrio da consulta Criador da consulta Data de criao Cdigo do Esquema Global

Tabela 5.6 - Tabela Consulta

Tabela: Dado Nome Simblico: Dado Descrio Armazena os valores a serem mapeados Tabelas Referenciadas Nome Tipo CP CE Referncia Semntica # Cd_Dado Int Cdigo que identifica unicamente um valor de dados Nm_Dado Varchar Valor do dado

Tabela 5.7 - Tabela Dado

Tabela: Dado / Mapeado / Dado Nome Simblico: Dado_Mapeado_Dado Descrio Armazena os mapeamentos entre dados Tabelas Referenciadas Dado Nome Tipo CP CE Referncia Semntica # *Cd_Dado Int Dado.Cd_Dado Cdigo que identifica unicamente um dado a ser mapeado # *Cd_Dado_Mapeado Int Dado.Cd_Dado Cdigo que identifica unicamente um dado que mapeia

Tabela 5.8 - Tabela Dado_Mapeado_Dado

Projeto e Implementao do Sistema BDRV

96

Tabela: Esquema Global Nome Simblico: EsquemaGlobal Descrio Armazena informaes sobre os esquemas globais Tabelas Referenciadas Nome Tipo CP CE Referncia Semntica # Cd_Esquema_Global Int Cdigo do esquema global Nm_Esquema_Global Varchar Nome do esquema global Ds_Esquema_Global Varchar Descrio do esquema global

Tabela 5.9 - Tabela Esquema Global

Tabela: Esquema Global / Possui / Tabela Virtual Nome Simblico: Esq_Glob_Possui_Tab_Virt Descrio Armazena as tabelas virtuais pertencentes a cada esquema global Tabelas Referenciadas Esquema_Global e Tabela_Virtual Nome Tipo CP CE Referncia Semntica # *Cd_Esquema_Global Int EsquemaGlobal.Cd_Esquema_Global Cdigo do esquema global # *Cd_Tabela_Virtual Int TabelaVirtual.Cd_Tabela_Virtual Cdigo da tabela virtual

Tabela 5.10 - Tabela Esquema Global / Possui / Tabela Virtual

Tabela: Gerenciador Nome Simblico: Gerenciador Descrio Armazena os tipos de SGBDRs que podem ser integrados Tabelas Referenciadas Nome Tipo CP CE Referncia Semntica # Cd_Gerenciador Int Cdigo que identifica cada SGBDR Nm_Gerenciador Varchar Nome do sistema gerenciador de banco de dados

Tabela 5.11 - Tabela Gerenciador


Tabela: Subconsulta Nome Simblico: Subconsulta Descrio Armazena as subconsultas geradas correspondentes a cada consulta Tabelas Referenciadas Consulta e Banco Nome Tipo CP CE Referncia Semntica # Cd_Subconsulta Int Cdigo que identifica unicamente uma subconsulta Vl_Subconsulta Text Clusula SQL *Cd_Consulta Int Consulta.Cd_Consulta Cdigo que identifica cada consulta *Cd_Banco Int Banco.Cd_Banco Cdigo que identifica unicamente um banco de dados

Tabela 5.12 - Tabela Subconsulta

Tabela: Tabela Nome Simblico: Tabela Descrio Armazena as tabelas dos bancos de dados locais Tabelas Referenciadas Banco Nome Tipo CP CE Referncia Semntica # Cd_Tabela Nmero Cdigo que identifica cada tabela Nm_Tabela Varchar Nome da tabela *Cd_Banco Nmero Banco.Cd_Banco Cdigo que identifica cada banco de dados

Tabela 5.13 - Tabela Tabela

Projeto e Implementao do Sistema BDRV

97

Tabela: Tabela Virtual Nome Simblico: Tabela_Virtual Descrio Armazena as tabelas virtuais Tabelas Referenciadas Nome Tipo CP CE Referncia Semntica # Cd_Tabela_Virtual Int Cdigo da tabela virtual Nm_Tabela_Virtual Varchar Nome da tabela virtual Ds_Tabela_Virtual Varchar Descrio da tabela virtual

Tabela 5.14 - Tabela Tabela Virtual

Tabela: Tabela Virtual / Mapeada / Tabela Nome Simblico: Tab_Virt_Mapeada_Tabela Descrio Armazena os mapeamentos entre tabelas virtuais e tabelas Tabelas Referenciadas Tabela_Virtual e Tabela Nome Tipo CP CE Referncia Semntica # *Cd_Tabela_Virtual Int TabelaVirtual.Cd_Tabela_Virtual Cdigo da tabela virtual # *Cd_Tabela Int Tabela.Cd_Tabela Cdigo da tabela

Tabela 5.15 - Tabela Tabela Virtual / Mapeada / Tabela

Tabela: Tipo de Dado Nome Simblico: Tipo Descrio Armazena os diversos tipos de dados dos atributos virtuais ou no Tabelas Referenciadas Nome Tipo CP CE Referncia Semntica # Cd_Tipo Int Cdigo que identifica unicamente um tipo de dado Nm_Tipo Varchar Tipo de Dado

Tabela 5.16 - Tabela Tipo de Dado

5.3 Gerente de Metadados


Sua funo manter uma interface entre o Metabanco de Dados e os componentes do Sistema BDRV. Qualquer solicitao de informao ao Metabanco de Dados por parte de algum componente controlada pelo Gerente de Metadados (ver Figura 5.2). Em resumo, seu papel receber consultas, envia-las ao Metabanco de Dados, receber os resultados e retorna-los aos componentes.

Projeto e Implementao do Sistema BDRV

98

IDC

Gerente de
L V D C

Combinador de

Integrado r

Metaba nco de Dados

Pginas Web

Figura 5.2 - Gerente de Metadados

Na Tabela 5.17 apresentamos as solicitaes de informao enviadas ao Gerente de Metadados por alguns componentes do Sistema BDRV. Componente IDC Integrador Combinador de Resultados Solicitao - Descrio dos BDVs - Mapeamentos BDVs Esquemas locais - Armazenamento de consultas e subconsultas - Armazenamento de consultas e subconsultas

- Armazenamento de informaes a serem utilizadas na soluo de alguns tipos de conflitos

Tabela 5.17 - Solicitaes de Componentes do Sistema BDRV ao Gerente de Metadados

As informaes armazenadas no Metabanco de Dados so obtidas atravs de comandos SQL. Deixaremos para mostrar tais comandos quando estivermos falando de cada componente individualmente.

5.4 Interface de Definio de Consultas


A Interface de Definio de Consultas (IDC) um componente do Sistema BDRV cuja funo possibilitar a elaborao de consultas por um UDC, com base em um BDV, atravs de uma Linguagem Visual de Definio de Consultas LVDC (ver Seo 5.5.2). Uma consulta formada por uma coleo de tabelas virtuais, atributos virtuais, filtros, ordenaes e agrupamentos, alm de alguns elementos que descrevem a mesma, como: ttulo, descrio, data de criao e nome do usurio. NA IDC, as consultas podem ser construdas atravs de simples cliques de "mouse". O processo de elaborao de consultas realizado em etapas seqenciais. A

Projeto e Implementao do Sistema BDRV

99

qualquer momento, durante o processo de construo de uma consulta, o UDC pode abandonar a elaborao da mesma, cancelando-a. possvel tambm voltar atravs das etapas. A descrio de cada consulta armazenada no Metabanco de Dados. Os atributos de uma consulta podem ser visualizados na Tabela 5.6. Na seqncia, apresentaremos as vrias etapas para construo de consultas.

5.4.1 Etapas para Elaborao de Consultas


Para elaborao de uma consulta o UDC deve, necessariamente, seguir uma seqncia de etapas. So elas:

Seleo de Esquema Global


So mostrados todos os esquemas globais para que o UDC possa selecionar um deles e elaborar uma consulta baseada nas tabelas e atributos virtuais pertencentes ao esquema global selecionado. O nome de cada BDV cadastrado encontra-se armazenado no Metabanco de Dados, mais precisamente na tabela Esquema_Global (Tabela 5.9). Para obt-los, a IDC remete a seguinte consulta ao Gerente de Metadados para posterior envio ao Metabanco de Dados:
SELECT Esquema_Global.Nm_Esquema_Global FROM Esquema_Global Tabela 5.18 - Obtendo Esquemas Globais

O resultado ento retornado pelo Metabanco de Dados ao Gerente de Metadados que, por sua vez, o repassa para a IDC que o apresenta ao UDC. Considerando de agora em diante o terceiro exemplo do Captulo 4, o resultado retornado o mesmo apresentado na Figura 4.3. O UDC seleciona ento o esquema global Organizao.

Projeto e Implementao do Sistema BDRV

100

Nm_Esquema_Global Copin Organizao


Tabela 5.19 - Esquemas Globais Cadastrados no Metabanco de Dados

Seleo de Tabelas Virtuais


So listadas todas as tabelas virtuais pertencentes ao esquema global selecionado anteriormente, para que o UDC possa selecionar a(s) que pretende incluir em uma consulta. S possvel passar para a etapa seguinte caso tenha sido selecionada pelo menos uma tabela virtual. A descrio de cada tabela virtual, independente do BDV a qual pertence, est armazenada na tabela Tabela_Virtual do Metabanco de Dados (ver Tabela 5.14). Na tabela Esq_Glob_Possui_Tab_Virt do Metabanco de Dados (ver Tabela 5.10) possvel obtermos as tabelas virtuais referentes a cada esquema global. Para obter o nome das tabelas virtuais pertencentes ao esquema global Organizao, a IDC envia a seguinte consulta ao Gerente de Metadados:
SELECT DISTINCT Tabela_Virtual.Nm_Tabela_Virtual FROM Tabela_Virtual, Esquema_Global, Esq_Glob_Possui_Tab_Virt WHERE Tabela_Virtual.Cd_Tabela_Virtual = Esq_Glob_Possui_Tab_Virt.Cd_Tabela_Virtual AND Esquema_Global.Nm_Esquema_Global = 'Organizao' AND Esquema_Global.Cd_Esquema_Global = Esq_Glob_Possui_Tab_Virt.Cd_Esquema_Global ORDER BY Nm_Tabela_Virtual Tabela 5.20 - Obtendo as Tabelas Virtuais do Esquema Global Organizao

O resultado retornado o mesmo apresentado na Figura 4.4 (ver Tabela 5.21).

Projeto e Implementao do Sistema BDRV

101

Nm_Tabela_Global

Departamento DepartamentoControlaProjeto Empregado EmpregadoTrabalhaProjeto EnderecoDoDepartamento EnderecoDoEmpregado Projeto


Tabela 5.21 - Esquemas Globais Cadastrados

De acordo com o exemplo, o UDC seleciona as tabelas virtuais: Empregado, Departamento, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto e Projeto.

Seleo de Atributos Virtuais


So mostrados apenas os atributos virtuais pertencentes s tabelas virtuais selecionadas no passo anterior, para que o UDC possa selecionar os que pretende incluir em uma consulta, ou seja, os atributos que deseja que sejam apresentados no resultado final. S possvel passar para a etapa seguinte caso tenha sido selecionado pelo menos um atributo virtual. Neste passo, o UDC pode aplicar as seguintes funes de agregao aos atributos virtuais selecionados: Soma: realiza a adio de valores contidos no conjunto-resposta referente ao atributo virtual; Mdia: retorna a mdia dos valores contidos no conjunto resposta, referente ao atributo virtual; Quantidade: retorna o nmero total de registros contidos no conjunto-resposta; Mximo: retorna o maior valor contido no conjunto-resposta, referente ao atributo virtual; Mnimo: retorna o menor valor contido no conjunto-resposta, referente ao atributo virtual.

Projeto e Implementao do Sistema BDRV

102

Os atributos virtuais de um BDV esto armazenados na tabela Atributo_Virtual do Metabanco de Dados (ver Tabela 5.3). Para cada tabela virtual selecionada no passo anterior, uma consulta enviada ao Gerente de Metadados, pela IDC. Por exemplo, para obter os atributos virtuais da tabela Empregado, a seguinte consulta executada:
SELECT DISTINCT Tabela_Virtual.Nm_Tabela_Virtual, Atributo_Virtual.Nm_Atributo_Virtual FROM Tabela_Virtual, Atributo_Virtual, Esquema_Global, Esq_Glob_Possui_Tab_Virt WHERE Tabela_Virtual.Cd_Tabela_Virtual = Atributo_Virtual.Cd_Tabela_Virtual AND Tabela_Virtual.Nm_Tabela_Virtual = 'Empregado' AND Tabela_Virtual.Cd_Tabela_Virtual = Esq_Glob_Possui_Tab_Virt.Cd_Tabela_Virtual AND Esquema_Global.Nm_Esquema_Global = 'Organizao' AND

Esq_Glob_Possui_Tab_Virt.Cd_Esquema_Global = Esquema_Global.Cd_Esquema_Global
ORDER BY Atributo_Virtual.Nm_Atributo_Virtual Tabela 5.22 - Obtendo os Atributos Virtuais da Tabela Virtual Empregado

O resultado retornado pelo Metabanco de Dados pode ser visto na Tabela 5.23:

Nm_Tabela_Virtual Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado

Nm_Atributo_Virtual Cargo Cd_Departamento Cd_Empregado Cd_Endereo_Empregado Dt_Admissao Nm_Empregado Nm_Est_Civil Vl_Salario_Diario Vl_Salario_Semanal

Tabela 5.23 - Atributos Virtuais da Tabela Virtual Empregado

Este processo se repete para o restante das tabelas virtuais selecionadas (Departamento, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto e Projeto).

Podemos ver o resultado final na Tabela 5.24. Compare estes resultados com o da Figura 4.15 e perceba que so os mesmos. A nica diferena que para identificar a tabela virtual de cada atributo virtual na IDC, cada um deles precedido pelo nome da tabela virtual a qual pertence seguido do caractere ponto (".").

Projeto e Implementao do Sistema BDRV

103

Nm_Tabela_Virtual Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado Empregado Departamento Departamento Departamento Departamento Projeto Projeto EmpregadoTrabalhaDepartamento EmpregadoTrabalhaDepartamento DepartamentoControlaProjeto DepartamentoControlaProjeto

Nm_Atributo_Virtual Cargo Cd_Departamento Cd_Empregado Cd_Endereco_Empregado Dt_Admissao Nm_Empregado Nm_Est_Civil Vl_Salario_Diario Vl_Salario_Semanal Cd_Departamento Nm_Departamento Nu_Telefone Cd_Endereco_Departamento Cd_Projeto Nm_Projeto Cd_Empregado Cd_Departamento Cd_Departamento Cd_Projeto

Tabela 5.24 - Atributos Virtuais das Tabelas Virtuais Selecionadas

Definio de Filtros
A definio de filtros tem o objetivo de estabelecer restries aos atributos virtuais. Nesta etapa, a IDC exibe apenas os atributos virtuais pertencentes s tabelas virtuais selecionadas anteriormente, para que o UDC possa impor filtros. Portanto, as consultas enviadas Metabanco de Dados so as mesmas da etapa anterior. Esta no uma etapa obrigatria, ou seja, o UDC pode passar para etapa seguinte sem definir nenhum filtro. Um filtro composto por um atributo virtual, um operador e uma constante. Os seguintes operadores podem ser utilizados: maior (>), menor (<), maior ou igual (>=), menor ou igual (<=), igual (=) e diferente (<>). A constante um valor literal, como nmero ou caractere. Como o Metabanco de Dados armazena o tipo de dado de cada atributo virtual, no momento em que um UDC seleciona um atributo virtual para definir algum filtro,

Projeto e Implementao do Sistema BDRV

104

apenas os operadores que fazem sentido serem aplicados ao mesmo so disponibilizados. No exemplo que estamos seguindo, estamos interessados apenas nos empregados do departamento de informtica. Como o atributo Nm_Departamento da tabela Departamento do tipo Varchar, ento todos os operadores disponveis podem ser associados a este tipo. Por outro lado, se quisssemos aplicar um filtro a um atributo do tipo lgico (booleano), no faria sentido disponibilizar os operadores: maior (>), menor (<), maior ou igual (>=) e menor ou igual (<=), e sim apenas igual (=) ou diferente (<>). Para obter o tipo de dados do atributo virtual Nm_Departamento necessrio o envio da seguinte consulta ao Metabanco de Dados:
SELECT DISTINCT C.Nm_Tipo FROM Tabela_Virtual A, Atributo_Virtual B, Tipo C, Esquema_Global D, Esq_Glob_Possui_Tab_Virt E WHERE A.Cd_Tabela_Virtual = B.Cd_Tabela_Virtual AND A.Nm_Tabela_Virtual = 'Departamento' AND B.Nm_Atributo_Virtual = 'Nm_Departamento' AND B.Cd_Tipo = C.Cd_Tipo AND D.Nm_Esquema_Global = 'Organizao' AND E.Cd_Esquema_Global = D.Cd_Esquema_Global AND E.Cd_Tabela_Virtual = A.Cd_Tabela_Virtual Tabela 5.25 - Obtendo o Tipo do Atributo Virtual Departamento.Nm_Departamento

O Metabanco de Dados, por sua vez, produz o resultado visto na Tabela 5.26.

Nm_Tipo Varchar
Tabela 5.26 - Tipo de Dados do Atributo Virtual Departamento.Nm_Departamento

Projeto e Implementao do Sistema BDRV

105

Definio de Ordenaes
Nesta etapa so apresentados apenas os atributos virtuais pertencentes s tabelas virtuais selecionadas anteriormente, para que o UDC possa indicar a ordem com que deseja que os resultados lhes sejam apresentados. A ordem de apresentao depende do tipo de dado do atributo virtual. Caso seja Char, por exemplo, o conjunto resposta ser ordenado em ordem alfabtica. No caso de atributos do tipo Nmero, o resultado exibido em ordem crescente. A IDC no possibilita a ordenao descendente. As consultas enviadas Metabanco de Dados so as mesmas da etapa anterior. Conseqentemente, os resultados obtidos tambm (ver Tabela 5.24). Novamente, esta no uma etapa obrigatria, ou seja, o UDC pode passar para etapa seguinte sem definir nenhuma ordenao. No nosso exemplo, o resultado da consulta ser ordenado pelos atributos virtuais Projeto.Nm_Projeto e Empregado.Nm_Empregado.

Definio de Agrupamentos
A definio de agrupamento em um atributo virtual significa que o conjuntoresposta final ser agrupado de acordo com o atributo virtual. S possvel definir agrupamentos nos atributos virtuais selecionados na etapa Definio de Atributos Virtuais. Esta tambm no uma etapa obrigatria, ou seja, o UDC pode passar para o passo seguinte sem definir nenhum agrupamento. No nosso exemplo, o resultado da consulta no ser agrupado por nenhum atributo virtual.

Projeto e Implementao do Sistema BDRV

106

Descrio da Consulta
Nesta etapa, o UDC deve fornecer, necessariamente, um ttulo para a consulta que acabou de definir, uma breve descrio da consulta, alm de informar o nome do usurio elaborador da consulta. A data de criao a da elaborao da consulta. No exemplo, so fornecidas as seguintes informaes sobre a consulta em questo:

Empregados, respectivos cargos, trabalhando em projetos controlados pelo departamento de Informtica Esta consulta recupera os empregados, com respectivos cargos, trabalhando Descrio em projetos gerenciados pelo departamento de Informtica Usurio Administrador Ttulo
Tabela 5.27 - Descrio da Consulta

Uma vez finalizada a consulta, a IDC realiza interna e automaticamente eqijunes entre as tabelas virtuais selecionadas que mantm algum tipo de referncia ao nvel de atributo virtual (chave estrangeira). possvel obter as referncias entre tabelas virtuais atravs das tabelas do Metabanco de Dados Atributo Virtual (ver Tabela 5.3) e Tabela Virtual (ver Tabela 5.14). A tabela Atributo Virtual mantm um autorelacionamento atravs dos atributos Atributo_Virtual.Cd_Atributo_Virtual e

Atributo_Virtual.Cd_Atributo_Virtual_Referencia. Com ele possvel identificar os atributos virtuais que fazem referncia entre si. Atravs da realizao de uma eqijuno entre as tabelas Atributo Virtual e Tabela Virtual podemos identificar as tabelas virtuais que mantm referncia. No exemplo, para obter as referncias entre as tabelas virtuais selecionadas e seus respectivos atributos virtuais, a IDC realiza a seguinte consulta ao Metabanco de Dados:

Projeto e Implementao do Sistema BDRV

107

SELECT DISTINCT TV1.Nm_Tabela_Virtual, AV1.Nm_Atributo_Virtual, TV2.Nm_Tabela_Virtual, AV2.Nm_Atributo_Virtual FROM Tabela_Virtual TV1, Tabela_Virtual TV2, Atributo_Virtual AV1, Atributo_Virtual AV2, Esquema_Global EG, Esq_Glob_Possui_Tab_Virt EGPTV1, Esq_Glob_Possui_Tab_Virt EGPTV2 WHERE AV1.Cd_Tabela_Virtual = TV1.Cd_Tabela_Virtual AND AV2.Cd_Tabela_Virtual = TV2.Cd_Tabela_Virtual AND AV1.Cd_Atributo_Virtual = AV2.Cd_Atributo_Virtual_Referencia AND EGPTV1.Cd_Tabela_Virtual = TV1.Cd_Tabela_Virtual AND EGPTV2.Cd_Tabela_Virtual = TV2.Cd_Tabela_Virtual AND EG.Cd_Esquema_Global = EGPTV1.Cd_Esquema_Global AND EG.Cd_Esquema_Global = EGPTV2.Cd_Esquema_Global AND EG.Nm_ESquema_Global = 'Organizao' ORDER BY TV1.Nm_Tabela_Virtual, AV1.Nm_Atributo_Virtual, TV2.Nm_Tabela_Virtual, AV2.Nm_Atributo_Virtual Tabela 5.28 - Referncias Entre Tabelas Virtuais Selecionadas e Respectivos Atributos Virtuais

Os resultados retornados pelo Metabanco de Dados podem ser vistos na Tabela 5.29. Nela, podemos perceber que a tabela virtual Empregado referencia a tabela virtual Departamento atravs do atributo virtual Cd_Departamento, presente em ambas.
Tabela Referencia Departamento Departamento Empregado EnderecoDoDepartamento EnderecoDoEmpregado Projeto Projeto Atributo Referenciado Cd_Departamento Cd_Departamento Cd_Empregado Cd_Endereco_Departamento Cd_Endereco_Empregado Cd_Projeto Cd_Projeto Tabela Referenciada DepartamentoControlaProjeto Empregado EmpregadoTrabalhaProjeto Departamento Empregado DepartamentoControlaProjeto EmpregadoTrabalhaProjeto Atributo Referencia Cd_Departamento Cd_Departamento Cd_Empregado Cd_Endereco_Departamento Cd_Endereco_Empregado Cd_Projeto Cd_Projeto

Tabela 5.29 - Referncias Entre Tabelas Virtuais do Esquema Global Organizao

Continuando com o nosso exemplo, a consulta final ao BDV Organizao gerada pela IDC :

Projeto e Implementao do Sistema BDRV

108

SELECT Empregado.Nm_Empregado, Empregado.Nm_Cargo, Projeto.Nm_Projeto FROM Empregado, Departamento, Projeto, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto WHERE Empregado.Cd_Departamento = Departamento.Cd_Departamento AND Departamento.Nm_Departamento = 'Informtica' AND Empregado.Cd_Empregado = EmpregadoTrabalhaProjeto.Cd_Empregado AND Projeto.Cd_Projeto = EmpregadoTrabalhaProjeto.Cd_Projeto AND Projeto.Cd_Projeto = DepartamentoControlaProjeto.Cd_Projeto AND DepartamentoControlaProjeto.Cd_Departamento = Departamento.Cd_Departamento ORDER BY Projeto.Nm_Projeto, Empregado.Nm_Empregado Tabela 5.30 - Consulta ao BDV Organizao

Os elementos de uma consulta (tabelas virtuais, atributos virtuais, filtros, ordenaes e agrupamentos) so repassados ao Integrador para serem processados e transformados (mapeados) em elementos correspondentes aos bancos de dados locais. As informaes enviadas ao Integrador, pela IDC, seguem o seguinte formato:

Tabelas Virtuais {Tabela Virtual} Atributos {{Tabela Virtual, Atributo Virtual, Funo de Agregao}} Virtuais Filtros {{Tabela Virtual, Atributo Virtual, Operador, Constante}} Junes = {{Tabela Virtual 1, Atributo Virtual 1, Operador, Tabela Junes Virtual 2, Atributo Virtual 2}} Ordenaes {{Tabela Virtual, Atributo Virtual}} Agrupamentos {{Tabela Virtual, Atributo Virtual}} Descrio {Ttulo da Consulta, Descrio da Consulta, Nome do Usurio}}
Tabela 5.31 - Formato das Informaes Enviadas pela IDC ao Integrador

Em nosso exemplo a Tabela 5.31 preenchida da seguinte forma:

Projeto e Implementao do Sistema BDRV

109

Tabelas Virtuais Atributos Virtuais Filtros

{Empregado, Departamento, Projeto, EmpregadoTrabalhaProjeto, DepartamentoControlaProjeto} {{Empregado, Nm_Empregado, }, {Empregado, Cargo, }, {Projeto, Nm_Projeto, }} {{Departamento, Nm_Departamento, =, Informtica}} {{Departamento, Cd_Departamento, =, Empregado, Cd_Departamento}, {Empregado, Cd_Empregado, =, EmpregadoTrabalhaProjeto, Cd_Empregado}, {Projeto, Cd_Projeto, Junes =, EmpregadoTrabalhaProjeto, Cd_Projeto}, {Projeto, Cd_Projeto, =, DepartamentoControlaProjeto, Cd_Projeto}, {DepartamentoControlaProjeto, Cd_Departamento, =, Departamento, Cd_Departamento}} Ordenaes {{Projeto, Nm_Projeto}, {Empregado, Nm_Empregado}} Agrupamentos {Empregados, respectivos cargos, trabalhando em projetos controlado pelo departamento Descrio de Informtica, Esta consulta recupera os empregados, com respectivos cargos, trabalhando em projetos gerenciados pelo departamento de Informtica, Administrador} Tabela 5.32 - Informaes Enviadas ao Integrador pela IDC

5.4.2 Linguagem Visual de Definio de Consultas


A IDC , na verdade, um gerador de cdigo-fonte SQL. Com a IDC possvel produzir consultas SQL a esquemas globais, atravs de uma Linguagem Visual de Definio de Consultas (LVDC), cuja funo descrever um conjunto de regras e opes que podem ser aplicadas na formulao de consultas. A LVDC possibilita a gerao de consultas obedecendo a seguinte sintaxe:
SELECT lista_select FROM tabela_virtual1 [[, tabela_virtual2] [, tabela_virtual16]] [WHERE clusula] [GROUP BY clusula] [ORDER BY clusula]

lista_select Especifica um ou mais atributos virtuais a serem selecionados. A ordem dos atributos contidos na lista significa a ordem com que o conjunto-resposta ser apresentado. Se a lista contm mais de um atributo, os mesmos devem ser separados por vrgulas (,). O nome do atributo virtual ser precedido pelo nome da tabela virtual mais o caractere ponto (.). possvel associar no mximo uma funo de agregao a cada atributo virtual. So elas: SUM, MAX, MIN, COUNT e AVG.

Projeto e Implementao do Sistema BDRV

110

FROM Indica as tabelas virtuais que podem ser utilizadas nas sentenas SELECT, WHERE, GROUP BY e ORDER BY. A clusula FROM permite um mximo de 16 tabelas virtuais. Se a lista contm mais de uma tabela virtual, os mesmos devem ser separados por vrgulas (,). WHERE clusula = WHERE condies_de_pesquisa Especifica as condies de restrio a serem utilizadas para a obteno do conjunto-resposta. No h limite no nmero de condies de pesquisa. condies_de_pesquisa Define as condies para recuperao de dados. Condies de pesquisa seguem imediatamente a palavra-chave WHERE. Se mais de uma condio de pesquisa for utilizada em uma mesma sentena WHERE, as mesmas devem ser conectadas com o operador lgico AND. Junes so especificadas nas condies de pesquisa. S so permitidas eqijunes entre atributos virtuais. Sintaxe: WHERE nome_da_tabela_virtual.nome_do_atributo_virtual operador_de_comparao constante [AND] WHERE nome_da_tabela_virtual.nome_do_atributo_virtual = nome_da_tabela_virtual.nome_do_atributo_virtual [AND] WHERE nome_da_tabela_virtual.nome_do_atributo_virtual LIKE constante [AND] onde, nome_da_tabela_virtual o nome da tabela virtual a qual o atributo virtual pertence.

Projeto e Implementao do Sistema BDRV

111

nome_do_atributo_virtual o nome de um atributo virtual utilizado como comparao. Como forma de evitar alguma ambigidade, o nome do atributo deve ser precedido pelo nome da tabela virtual mais o caractere ponto (.). AND Operador lgico cuja funo fazer a juno entre duas condies e retornar resultado quando ambas so verdade. operador_de_comparao um smbolo utilizado entre duas expresses. A lista completa dos tipos de operadores de comparao pode ser vista na Tabela 5.33. Smbolo = > < >= <= <> Semntica Igual a Maior que Menor que Maior ou Igual a Menor ou Igual a Diferente de

Tabela 5.33 - Operadores de Comparao

constante Um valor literal, como nmero ou caractere. Caracteres so cercados por apstrofos simples ('). GROUP BY clusula Especifica os grupos nos quais o conjunto-resposta dividido. O(s) atributo(s) virtual(is) utilizado(s) para agrupamento deve(m) necessariamente se encontrar na clusula SELECT. Se a lista contm mais de um atributo virtual, os mesmos devem ser separados por vrgulas (,). ORDER BY clusula

Projeto e Implementao do Sistema BDRV

112

Ordena o conjunto-resposta por atributos virtuais. possvel ordenar por no mximo 16 atributos virtuais. A clusula ORDER BY pode incluir itens que no se encontram na clusula SELECT. Se a lista contm mais de um atributo virtual, os mesmos devem ser separados por vrgulas (,).

5.5 Integrador
O papel do Integrador receber consultas formuladas com base em BDVs e transform-las em um conjunto de subconsultas referentes aos bancos de dados sendo integrados. Posteriormente, no Mdulo de Execuo de Consultas (MEC), estas subconsultas so submetidas para serem executadas em seus respectivos bancos de dados. O conjunto-resposta de cada banco de dados agrupado para produzir a resposta consulta original.

Estruturas de Dados
Durante o processo de transformao de uma consulta em subconsultas, o Integrador utiliza basicamente cinco estruturas de dados. So elas: Consulta - armazena informaes ao nvel de atributo virtual, como: nome do atributo virtual, tabela virtual a que pertence, funo de agregao, indicao de filtro associado, existncia de juno associada, entre outras; Filtros - guarda informaes a respeito de possveis filtros definidos em atributos virtuais; Junes - mantm informaes sobre possveis eqijunes entre atributos virtuais; Fontes - guarda informaes a respeito de cada fonte de dados que possa atender a um determinado atributo virtual; Estatstica - armazena informaes relativas a cada fonte de dados integrada.

Projeto e Implementao do Sistema BDRV

113

A seguir, apresentamos uma descrio mais detalhada dos campos de cada uma das estruturas de dados mencionadas anteriormente. Consulta Campo ndice do Atributo Virtual Nome do Atributo Virtual Nome da Tabela Virtual Selecionado Funo de Agregao Filtro Juno OrderBy GroupBy Filtros Total de Filtros Junes Total de Junes Fontes Total de Fontes Descrio Identificador utilizado para distinguir unicamente cada atributo virtual Nome do atributo virtual selecionado Nome da tabela virtual a qual o atributo pertence Indica se o atributo virtual foi ou no selecionado Armazena uma possvel funo de agregao associada ao atributo virtual Indica se existe alguma restrio associada ao atributo virtual Indica se existe alguma juno associada ao atributo virtual Indica se foi definida alguma ordenao no atributo virtual Indica se foi definido algum agrupamento no atributo virtual Restries impostas ao atributo virtual Quantidade de filtros estabelecidos no atributo virtual Junes estabelecidas com o atributo virtual Quantidade de junes estabelecidas no atributo virtual Fontes de dados que possuem tabelas e atributos que correspondem tabela e atributo virtuais em questo, respectivamente Quantidade de fontes que podem atender ao atributo virtual
Tabela 5.34 - Estrutura de dados Consulta

Tipo Nmero String String Lgico String Lgico Lgico Lgico Lgico Filtros Nmero Junes Nmero Fontes Nmero

Filtros Campo Descrio Tipo Operador Indica o operador a ser utilizado no filtro String Constante Indica o valor a ser utilizado como comparao no filtro Varchar
Tabela 5.35 - Estrutura de dados Filtros

Projeto e Implementao do Sistema BDRV

114

Campo Operador

Tabela Virtual de Juno Atributo Virtual Nome do atributo virtual que faz juno de Juno

Junes Descrio Tipo Indica o operador a ser utilizado na juno. Somente so permitidas eqijunes. Sendo assim, o operador sempre ser String o de igualdade (=) Nome da tabela virtual que deve fazer juno com a tabela String virtual que contm o atributo virtual String

Tabela 5.36 - Estrutura de dados Junes

Fontes Campo Descrio Nome da fonte de dados que pode atender ao atributo virtual em Fonte questo Nome da tabela correspondente tabela virtual que contm o Tabela atributo virtual Atributo Nome do campo correspondente ao atributo virtual
Tabela 5.37 - Estrutura de dados Fontes

Tipo String String String

Estatstica Campo Fonte Descrio Nome da fonte de dados Porcentagem de atributos virtuais envolvidos em uma Porcentagem consulta que pode ser atendida pela fonte em questo Indica se o conjunto de atributos virtuais atendidos por uma Subconjunto fonte subconjunto do de outra fonte Indica, de fato, se a fonte deve ser selecionada para responder Selecionada a uma consulta
Tabela 5.38 - Estrutura de dados Estatstica

Tipo Nmero Nmero boolean boolean

Os componentes do Integrador, a serem descritos a seguir, so: Analisador de Consulta; Coletor de Fontes; Estimador de Fontes; Seletor de Fontes;

Projeto e Implementao do Sistema BDRV

115

Transformador de Consultas.

5.5.1 Analisador de Consulta


Objetivo:
Receber conjuntos1 de tabelas virtuais, atributos virtuais, filtros, ordenaes e agrupamentos, e estrutura-los, para que possam vir a ser utilizados por outros componentes do Integrador.

Entrada:
Lista de Tabelas Virtuais composta por "strings" do tipo

Nome_da_Tabela_Virtual. Exemplos: Empregado, Aluno, Funcionrio, Tese, etc; Lista de Atributos Virtuais composta por "strings" do tipo

Nome_da_Tabela_Virtual.Nome_do_Atributo_Virtual. Empregado.Nm_Empregado, Aluno.Matrcula, Tese.Ttulo, etc; Lista de Junes formada por "strings"

Exemplos:

do

tipo

Nome_da_Tabela_Virtual1.Nome_do_Atributo1 Nome_da_Tabela_Virtual2.Nome_do_Atributo2. Empregado.Cd_Departamento = Departamento.Cd_Departamento; Lista de Filtros formada por Operador "strings" Constante. do

Operador Exemplo:

tipo

Nome_da_Tabela_Virtual.Nome_do_Atributo

Exemplos:

Empregado.Nome = 'Sheyla Yonara', Aluno.Matrcula = 93110492, etc; Lista de Ordenaes formada por "strings" do tipo

Nome_da_Tabela_Virtual.Nome_do_Atributo. Aluno.Bairro, Tese.Ttulo, etc;

Exemplos:

Empregado.Nome,

1 O formato de cada conjunto pode ser visualizado na Tabela 5.31. Para o nosso exemplo, utilizaremos os conjuntos da Tabela 5.32.

Projeto e Implementao do Sistema BDRV

116

Lista

de

Agrupamentos:

formada

por

"strings"

do

tipo

Nome_da_Tabela_Virtual.Nome_do_Atributo. Aluno.Perodo, etc.

Exemplos:

Empregado.rea,

Sada:
Preenchimento dos seguintes campos, referentes estrutura de dados Consulta: ndice do atributo virtual, nome do atributo virtual, nome da tabela virtual, selecionado, granularidade, filtro, juno, orderby, groupby, total de filtros e total de junes; Preenchimento dos campos, referentes estrutura de dados Filtros: operador e constante; Preenchimento dos campos, referentes estrutura de dados Junes: operador, tabela virtual de juno e atributo virtual de juno.

Algoritmos: Algoritmo de Coleta de Atributos e Tabelas Virtuais


Para cada Atributo da Lista de Atributos Virtuais Faa Crie um registro na Estrutura de Dados Consulta Consulta.Nome do Atributo Virtual = nome do atributo Consulta.Nome da Tabela Virtual = nome da tabela virtual Consulta.Selecionado = Se existir funo de agregao aplicada ao atributo Ento Consulta.Funo de Agregao = funo de agregao Fim Se Fim Para

Projeto e Implementao do Sistema BDRV

117

Seguindo o nosso exemplo, o resultado produzido pelo algoritmo anterior :


Consulta ndice do Atributo Virtual 1 2 Nome da Tabela Virtual Empregado Empregado Nome do Atributo Virtual Nm_Empregado Cargo Selecionado Funo de Agregao

Projeto

Nm_Projeto

Tabela 5.39 - Resultado Produzido pelo Algoritmo de coleta de atributos e tabelas virtuais

Algoritmo de Coleta de Filtros


Para cada Atributo da Lista de Filtros Faa Se atributo j existe na Estrutura de Dados Consulta Ento Crie um registro na Estrutura de Dados Filtros Consulta.Filtros.Operador = operador Consulta.Filtros.Constante = constante Consulta.Total de Filtros = Consulta.Total de Filtros + 1 Fim Se Seno Crie um registro na Estrutura de Dados Consulta Consulta.Nome do Atributo = nome do atributo Consulta.Nome da Tabela Virtual = nome da tabela virtual Crie um registro na Estrutura de Dados Filtros Consulta.Filtros.Operador = operador Consulta.Filtros.Constante = constante Consulta.Total de Filtros = Consulta.Total de Filtros + 1 Fim Seno Fim Para

O resultado produzido pelo algoritmo com relao ao nosso pode ser visto nas tabelas a seguir:

Projeto e Implementao do Sistema BDRV

118

Consulta ndice do Atributo Virtual 1 2

Nome da Tabela Nome do Atributo Virtual Virtual Empregado Empregado Nm_Empregado Cargo

Selecionado

Funo de Agregao

Total Filtro de Filtros

3 4

Projeto Departamento

Nm_Projeto Nm_Departamento

Tabela 5.40 - Consulta: Resultado Produzido Pelo Algoritmo de Coleta de Filtros

Filtro ndice do Atributo Virtual Operador Constante 4 = Informtica Tabela 5.41 - Filtros: Resultado Produzido Pelo Algoritmo de Coleta de Filtros

Projeto e Implementao do Sistema BDRV

119

Algoritmo de Coleta de Junes


Conjunto A (Tabela Virtual, Atributo Virtual, Tabela Virtual de Juno, Atributo Virtual de Juno) Para cada Tabela Virtual da Lista de Tabelas Virtuais Faa Procure no Metabanco de Dados as tabelas e atributos virtuais que fazem juno com a tabela virtual inserindo no conjunto A (consulta da Tabela 5.27) Para cada Atributo Virtual do conjunto A Faa Se Atributo Virtual j existe na Estrutura de Dados Consulta Ento Crie um registro na Estrutura de Dados Junes Consulta.Junes.Operador = operador '=' Consulta.Junes.Tabela Virtual de Juno = Tabela Virtual de Juno Consulta.Junes.Atributo Virtual de Juno = Atributo de Juno Consulta.Total de Junes = Consulta.Total de Junes + 1 Fim Se Seno Crie um registro na Estrutura de Dados Consulta Consulta.Nome do Atributo = nome do atributo Consulta.Nome da Tabela Virtual = nome da tabela virtual Crie um registro na Estrutura de Dados Junes Consulta.Junes.Operador = operador '=' Consulta.Junes.Tabela Virtual de Juno = Tabela Virtual de Juno Consulta.Junes.Atributo Virtual de Juno = Atributo de Juno Consulta.Total de Junes = Consulta.Total de Junes + 1 Fim Seno Se Atributo Virtual de Juno j existe na Estrutura de Dados Consulta Ento Crie um registro na Estrutura de Dados Junes Consulta.Junes.Operador = operador '=' Consulta.Junes.Tabela Virtual de Juno = Tabela Virtual Consulta.Junes.Atributo Virtual de Juno = Atributo Virtual Consulta.Total de Junes = Consulta.Total de Junes + 1 Fim Se Seno Consulta.Nome do Atributo = nome do atributo de juno Consulta.Nome da Tabela Virtual = nome da tabela virtual de juno Crie um registro na Estrutura de Dados Junes

Projeto e Implementao do Sistema BDRV

120

Consulta.Junes.Operador = operador '=' Consulta.Junes.Tabela Virtual de Juno = Tabela Virtual Consulta.Junes.Atributo Virtual de Juno = Atributo Virtual Consulta.Total de Junes = Consulta.Total de Junes + 1 Fim Seno Fim Para Fim Para

Para o nosso exemplo, o resultado gerado pelo Algoritmo de Coleta de Junes o seguinte:
Consulta ndice do Atributo Virtual 1 2 3 4 5 6 7 8 9 10 11 12 Total Total Funo de Filtro de Juno de Agregao Filtros Junes

Nome da Tabela Virtual Empregado Empregado Projeto Departamento Departamento Empregado Empregado EmpregadoTrabalhaProjeto Projeto EmpregadoTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto

Nome do Atributo Virtual Nm_Empregado Cargo Nm_Projeto Nm_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Empregado Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento

Selecionado

1 2 1 1 1 2 1 1 1

Tabela 5.42 - Consulta: Resultado Produzido pelo Algoritmo de Coleta de Junes

Junes ndice do Atributo Virtual 5 6 7 8 9 10 9 11 12 5

Operador = = = = = = = = = =

Atributo Virtual de Juno Empregado Cd_Departamento Departamento Cd_Departamento EmpregadoTrabalhaProjeto Cd_Empregado Empregado Cd_Empregado EmpregadoTrabalhaProjeto Cd_Projeto Projeto Cd_Projeto DepartamentoControlaProjeto Cd_Projeto Projeto Cd_Projeto Departamento Cd_Departamento DepartamentoControlaProjeto Cd_Departamento Tabela Virtual de Juno

Tabela 5.43 - Junes: Resultado Produzido pelo Algoritmo de Coleta de Junes

Projeto e Implementao do Sistema BDRV

121

Algoritmo de Coleta de Ordenaes


Para cada Atributo da Lista de Ordenaes Faa Se atributo j existe na Estrutura de Dados Consulta Ento Consulta.OrderBy = Fim Se Seno Crie um registro na Estrutura de Dados Consulta Consulta.Nome do Atributo = nome do atributo Consulta.Nome da Tabela Virtual = nome da tabela virtual Consulta.OrderBy = Fim Seno Fim Para

Aps a execuo do Algoritmo de Coleta de Ordenaes, o resultado produzido para o exemplo :


Consulta ndice do Atributo Virtual 1 2 3 4 5 6 7 8 9 10 11 12 Total Total Funo de Filtro de Juno OrderBy de Agregao Filtros Junes

Nome da Tabela Virtual Empregado Empregado Projeto Departamento Departamento Empregado Empregado EmpregadoTrabalhaProjeto Projeto EmpregadoTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto

Nome do Atributo Virtual Nm_Empregado Cargo Nm_Projeto Nm_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Empregado Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento

Selecionado

1 2 1 1 1 2 1 1 1

Tabela 5.44 - Consulta: Resultado Produzido pelo Algoritmo de Coleta de Junes

Projeto e Implementao do Sistema BDRV

122

Algoritmo de Coleta de Agrupamentos


Para cada Atributo da Lista de Agrupamentos Faa Se atributo j existe na Estrutura de Dados Consulta Ento Consulta.GroupBy = Fim Se Seno Crie um registro na Estrutura de Dados Consulta Consulta.Nome do Atributo = nome do atributo Consulta.Nome da Tabela Virtual = nome da tabela virtual Consulta.GroupBy = Fim Seno Fim Para

Como no foi definido nenhum agrupamento em nosso exemplo, o Algoritmo de Coleta de Agrupamentos no ser utilizado. Contudo, seu funcionamento semelhante aos do Algoritmo de Coleta de Ordenao.

Projeto e Implementao do Sistema BDRV

123

5.5.2 Coletor de Fontes


Objetivo:
Informar a(s) fonte(s) que pode(m) atender a cada item da estrutura de dados Consulta. Tabelas e atributos virtuais que participam de junes, somente podem ser mapeadas em tabelas e campos, respectivamente, pertencentes a uma mesma fonte de dados. Por exemplo, dada a eqijuno Professor.Cdigo = Disciplina.Cdigo do Professor, onde Professor.Cdigo pode ser mapeado para tabelas e atributos pertencentes s fontes de dados hipotticas 1 e 2, e Disciplina.Cdigo do Professor para uma tabela e campo pertencente fonte 1, ento, pelo que mencionamos acima, o Coletor de Fontes escolhe a fonte 1 para atender a ambos.

Entrada:
Estrutura de dados Consulta.

Sada:
Preenchimento do campo total de fontes, pertencente estrutura de dados Consulta; Preenchimento dos campos fonte, tabela e atributo, referentes estrutura de dados Fontes.

Projeto e Implementao do Sistema BDRV

124

Algoritmo: Algoritmo de Coleta de Fontes de Dados


Para cada Atributo Virtual da Estrutura de Dados Consulta Faa Procure no Metabanco de Dados a(s) Fonte(s) que pode(m) atender ao Atributo Virtual (Consulta.Tabela Virtual, Consulta.Atributo Virtual) (Tabela 5.45) Insira o nome das Fontes, Tabelas e Atributos que podem atender ao atributo virtual no Conjunto A Se Consulta.Juno = Ento

Procure no Metabanco de Dados a(s) Fonte(s) que pode(m) atender ao Atributo Virtual de Juno (Consulta.Tabela Virtual de Juno, Consulta.Atributo Virtual de Juno) (Tabela 5.47) Insira o nome das Fontes, Tabelas e Atributos que podem atender ao atributo virtual de juno no Conjunto B Faa a interseo dos conjuntos A e B pelo nome das fontes, inserindo o resultado no conjunto C Para cada Fonte do Conjunto C Faa Crie um registro na Estrutura de Dados Fontes Consulta.Fontes.Fonte = nome da fonte Consulta.Fontes.Tabela = nome da tabela Consulta.Fontes.Atributo = nome do campo Consulta.Total de Fontes = Consulta.Total de Fontes + 1 Fim Para Fim Se Seno Para cada Fonte do Conjunto A que atenda ao atributo Faa Crie um registro na Estrutura de Dados Fontes Consulta.Fontes.Fonte = nome da fonte Consulta.Fontes.Tabela = nome da tabela Consulta.Fontes.Atributo = nome do campo Consulta.Total de Fontes = Consulta.Total de Fontes + 1 Fim Para Fim Seno Fim Para

Projeto e Implementao do Sistema BDRV

125

Para o nosso exemplo, precisamos encontrar as fontes de dados que atendem ao atributo Departamento.Cd_Departamento. Para tal, a seguinte consulta ao Metabanco de Dados criada pelo Seletor de Fontes:
SELECT DISTINCT B.Nm_Banco, T.Nm_Tabela, A.Nm_Atributo FROM Banco B, Tabela T, Atributo A, Tabela_Virtual TV, Atributo_Virtual AV, Tab_Virt_Mapeada_Tabela TVMT, Atrib_Virt_Mapeado_Atributo AVMA, Esquema_Global EG, Esq_Glob_Possui_Tab_Virt EGPTV WHERE T.Cd_Banco = B.Cd_Banco AND A.Cd_Tabela = T.Cd_Tabela AND TV.Nm_Tabela_Virtual = 'Departamento' AND AV.Nm_Atributo_Virtual = 'Cd_Departamento' AND TVMT.Cd_Tabela = T.Cd_Tabela AND TVMT.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual AND A.Cd_Atributo = AVMA.Cd_Atributo AND AV.Cd_Atributo_Virtual = AVMA.Cd_Atributo_Virtual AND EG.Nm_Esquema_Global = 'Organizao' AND EG.Cd_Esquema_Global = EGPTV.Cd_Esquema_Global AND EGPTV.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual ORDER BY B.Nm_Banco Tabela 5.45 - Recupera as Fontes de Dados que Atendem ao Atributo Virtual Departamento.Cd_Departamento

Pelo resultado retornado pelo Metabanco de Dados (ver Tabela 5.46), podemos concluir que o atributo Departamento.Cd_Departamento atendido pelas fontes Companhia e Empresa. Banco de Dados Tabela Atributo Companhia Departamento Cd_Departamento Empresa Departamento Cd_Departamento
Tabela 5.46 - Resultado da Consulta Recupera as Fontes de Dados que Atendem ao Atributo Virtual Departamento.Cd_Departamento

De forma semelhante, necessrio encontrar as fontes de dados que atendem ao atributo DepartamentoControlaProjeto.Cd_Departamento. Portanto, a seguinte consulta ao Metabanco de Dados elaborada pelo Seletor de Fontes:

Projeto e Implementao do Sistema BDRV

126

SELECT DISTINCT B.Nm_Banco, T.Nm_Tabela, A.Nm_Atributo FROM Banco B, Tabela T, Atributo A, Tabela_Virtual TV, Atributo_Virtual AV, Tab_Virt_Mapeada_Tabela TVMT, Atrib_Virt_Mapeado_Atributo AVMA, Esquema_Global EG, Esq_Glob_Possui_Tab_Virt EGPTV WHERE T.Cd_Banco = B.Cd_Banco AND A.Cd_Tabela = T.Cd_Tabela AND TV.Nm_Tabela_Virtual = 'DepartamentoControlaProjeto' AND AV.Nm_Atributo_Virtual = 'Cd_Departamento' AND TVMT.Cd_Tabela = T.Cd_Tabela AND TVMT.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual AND A.Cd_Atributo = AVMA.Cd_Atributo AND AV.Cd_Atributo_Virtual = AVMA.Cd_Atributo_Virtual AND EG.Nm_Esquema_Global = 'Organizao' AND EG.Cd_Esquema_Global = EGPTV.Cd_Esquema_Global AND EGPTV.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual ORDER BY B.Nm_Banco Tabela 5.47 - Recupera as Fontes de Dados que Atendem ao Atributo Virtual DepartamentoControlaProjeto.Cd_Departamento

Pelo que podemos observar na Tabela 5.48, que mostra o resultado retornado pelo Metabanco de Dados para a consulta da Tabela 5.47, o atributo virtual DepartamentoControlaProjeto.Cd_Departamento somente atendido pela fonte de dados Empresa. Banco de Dados Tabela Atributo Empresa DepartamentoControlaProjeto Cd_Departamento
Tabela 5.48 - Resultado da Consulta Recupera as Fontes de Dados que Atendem ao Atributo Virtual DepartamentoControlaProjeto.Cd_Departamento

Conforme dissemos no incio da seo, as tabelas e atributos virtuais participantes de junes, somente podem ser mapeadas em tabelas e campos, respectivamente, pertencentes a uma mesma fonte de dados. Portanto, os atributos virtuais Departamento.Cd_Departamento e DepartamentoControlaProjeto.Cd_Departamento devem necessariamente ser atendidos por fontes de dados idnticas, visto que participam de uma juno. Em resumo, s podem ser atendidos pela fonte de dados Empresa. O processo o mesmo para todos os outros atributos virtuais inseridos na consulta.

Projeto e Implementao do Sistema BDRV

127

Para o nosso exemplo o resultado final produzido pelo Algoritmo de Coleta de Fontes de Dados :
Consulta ndice do Atributo Virtual 1 2 3 4 5 6 7 8 9 10 11 12 Nome da Tabela Virtual Empregado Empregado Projeto Departamento Departamento Empregado Empregado EmpregadoTrabalhaProjeto Projeto EmpregadoTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto Nome do Atributo Virtual Nm_Empregado Cargo Nm_Projeto Nm_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Empregado Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento Selecionado Funo de Agregao Filtro Juno OrderBy Total de Filtros Total de Junes Total de Fontes 2 1 1 2 2 2 2 1 1 1 1 1

1 2 1 1 1 2 1 1 1

Tabela 5.49 - Consulta: Resultado Produzido pelo Algoritmo de Coleta de Fontes de Dados

Fontes ndice do Atributo Virtual 1 1 2 3 4 4 5 5 6 6 7 7 8 9 10 11 12

Fonte de Dados Companhia Empresa Companhia Empresa Companhia Empresa Companhia Empresa Companhia Empresa Companhia Empresa Empresa Empresa Empresa Empresa Empresa

Tabela Empregado Funcionario Empregado Projeto Departamento Departamento Departamento Departamento Empregado Funcionario Empregado Funcionario FuncionarioTrabalhaProjeto Projeto FuncionarioTrabalhaProjeto DepartamentoControlaProjeto DepartamentoControlaProjeto

Atributo Nm_Empregado Nm_Funcionrio Cargo Nm_Projeto Nm_Departamento Nm_Departamento Cd_Departamento Cd_Departamento Cd_Departamento Cd_Departamento Cd_Empregado Cd_Funcionario Cd_Funcionario Cd_Projeto Cd_Projeto Cd_Projeto Cd_Departamento

Tabela 5.50 - Fontes: Resultado Produzido pelo Algoritmo de Coleta de Fontes de Dados

Projeto e Implementao do Sistema BDRV

128

5.5.3 Estimador de Fontes


Objetivos:
Realizar um levantamento estatstico de cada fonte de dados, atravs da diviso do nmero de atributos virtuais que uma determinada fonte possa atender pelo nmero de atributos virtuais selecionados em uma consulta; Verificar se os atributos virtuais que uma determinada fonte pode atender formam um subconjunto dos atributos virtuais que outra fonte pode atender. Neste caso, a primeira fonte ignorada.

Entrada:
Estrutura de dados Fontes.

Sada:
Preenchimento dos campos fonte, porcentagem e subconjunto, referentes estrutura de dados Estatstica.

Projeto e Implementao do Sistema BDRV

129

Algoritmos: Algoritmo de Preenchimento do Campo Porcentagem


Para cada fonte da Estrutura de Dados Estatstica Faa Atributos Atendidos Pela Fonte = 0 Para cada atributo da Estrutura de Dados Consulta Faa Para cada fonte em Consulta.Fontes Faa Se Estatstica.Fonte = Consulta.Fontes.Fonte Ento Incrementa(Atributos Atendidos Pela Fonte) Estatstica.Porcentagem := (Atributos Atendidos Pela Fonte/ Total de Atributos de Consulta) * 100 Fim Se Fim Para Fim Para Fim Para

Seguindo o exemplo, o resultado produzido pelo Algoritmo de Preenchimento do Campo Porcentagem :


Estatstica Nome Fonte Porcentagem Companhia 50% Empresa 92% Tabela 5.51 - Porcentagem: Resultado Produzido pelo Algoritmo de Preenchimento do Campo Porcentagem

Projeto e Implementao do Sistema BDRV

130

Algoritmo de Preenchimento do Campo Subconjunto


Declare "Subconjunto" como Array de Inteiros Para cada fonte da Estrutura de Dados Estatstica Faa Para cada Atributo Virtual da Estrutura de Dados Consulta Faa Se Consulta.Fontes.Fonte = Estatstica.Fonte Ento Insira Nmero do Atributo Virtual em Subconjunto Fim Se Fim Para Fim Para Para cada Fonte do Array Subconjunto Faa Para cada Fonte + 1 do Array Subconjunto Faa Se Fonte <= Fonte + 1 Ento Estatstica[Fonte ].Subconjunto := Sim Fim Se Seno Se Fonte >= Fonte + 1 Ento Estatstica[Fonte + 1].Subconjunto := Sim Fim Se Fim Seno Fim Para Fim Para

Para o nosso exemplo o resultado produzido pelo Algoritmo de Preenchimento do Campo Subconjunto :
Estatstica Nome Fonte Porcentagem Subconjunto Companhia 50% Empresa 92% Tabela 5.52 - Porcentagem: Resultado Produzido pelo Algoritmo de Preenchimento do Campo Subconjunto

Projeto e Implementao do Sistema BDRV

131

5.5.4 Seletor de Fontes


Objetivo:
Decidir para que(quais) fonte(s) deve(m) ser geradas subconsultas, baseado nos resultados levantados pelo Estimador de Fontes.

Entrada:
Estrutura de dados Estatstica.

Sada:
Preenchimento do campo selecionada, referente estrutura de dados Estatstica.

Algoritmos: Algoritmo de Seleo de Fontes


Para cada Fonte da Estrutura de Dados Estatstica Faa Se Estatstica.Porcentagem = 100 Ento Estatstica.Selecionada = Fim Se Fim Para Para cada Fonte da Estrutura de Dados Estatstica Faa Se Estatstica.Subconjunto = No Ento Estatstica.Selecionada = Fim Se Fim Para

Projeto e Implementao do Sistema BDRV

132

Para o nosso exemplo o resultado produzido pelo Algoritmo de Preenchimento do Campo Selecionada :
Estatstica Nome Fonte Porcentagem Subconjunto Selecionada Companhia 50% Empresa 92% Tabela 5.53 - Porcentagem: Resultado Produzido pelo Algoritmo de Preenchimento do Campo Selecionada

5.5.5 Transformador de Consulta


Objetivo:
Gerar as subconsultas a serem executadas, posteriormente, nas fontes de dados selecionadas pelo Seletor de Fontes, utilizando as informaes contidas no Metabanco de Dados. Para tal, o Transformador de Consultas mapeia as tabelas e atributos virtuais em tabelas e atributos, respectivamente, pertencentes s fontes de dados escolhidas, e, em seguida, gera as subconsultas necessrias para cada fonte. Aps o mapeamento, a(s) subconsulta(s) fica(m) armazenada(s) no Metabanco de Dados, para que possa(m) ser executada(s) posteriormente em sua(s) fonte(s) correspondente(s).

Entrada:
Estrutura de dados Consulta; Estrutura de dados Filtro; Estrutura de dados Juno; Estrutura de dados Estatstica.

Sada:

Projeto e Implementao do Sistema BDRV

133

Descrio da consulta e subconsulta(s) geradas, a serem armazenadas no Metabanco de Dados.

Algoritmos: Algoritmo de Transformao de Consulta


Para cada Fonte da Estrutura de Dados Estatstica Faa Se Estatstica.Selecionada = Cria Subconsulta(Fonte) Fim Se Fim Para Ento

Algoritmo de Criao de Subconsulta (Fonte)


Para cada Atributo Virtual da Estrutura de Dados Consulta Faa Para cada Fonte da Estrutura de Dados Fontes Faa Se Consulta.Fontes.Fonte = Fonte Ento Se Consulta.Selecionado = Fim Se Se Consulta.Filtro = Fim Se Se Consulta.Juncao = Fim Se Se Consulta.OrderBy = Fim Se Se Consulta.GroupBy = Fim Se Cria From(FROM, Atributo Virtual, Fonte) Fim Se Fim Para Ento Ento Ento Ento Ento

Cria Select(SELECT, Atributo Virtual, Fonte)

Cria Filtro(WHERE, Atributo Virtual, Fonte)

Cria Juno(WHERE, Atributo Virtual, Fonte)

Cria OrderBy(ORDERBY, Atributo Virtual, Fonte)

Cria GroupBy(GROUPBY, Atributo Virtual, Fonte)

Projeto e Implementao do Sistema BDRV

134

Fim Para Subconsulta = SELECT + FROM + WHERE + GROUPBY + ORDERBY

Para armazenar a descrio da consulta do nosso exemplo, o Integrador, mantendo interface com o Gerente de Metadados, utiliza a tabela Consulta do Metabanco de Dados, produzindo o seguinte comando SQL: INSERT INTO Consulta VALUES (1, 'Empregados, com respectivos cargos, trabalhando
em projetos controlado pelo departamento de Informtica', 'Esta consulta recupera os empregados, com respectivos cargos, trabalhando em projetos gerenciados pelo departamento de Informtica', 'Administrador', SYSDATE) Tabela 5.54 Comando SQL Referente ao Armazenamento da Descrio da Consulta

Para cada consulta produzida pelo Algoritmo de Transformao de Consulta, o Integrador formula um comando SQL que vai inseri-la no Metabanco de Dados, mais precisamente na tabela Subconsulta. No nosso exemplo, gerada uma subconsulta para cada uma das fontes de dados Companhia e Empresa. Os comandos SQL para armazenamento das subconsultas no Metabanco de Dados, podem ser vistos nas tabelas 5.55 e 5.56. INSERT INTO Subconsulta VALUES (1, 'SELECT Empregado.Nm_Empregado,
Empregado.Nm_Cargo FROM Empregado, Departamento WHERE Empregado.Cd_Departamento = Departamento.Cd_Departamento AND Departamento.Nm_Departamento = 'Informtica' ORDER BY Empregado.Nm_Empregado', 1, 4) Tabela 5.55 Subconsulta Referente Fonte de Dados Companhia

Projeto e Implementao do Sistema BDRV

135

INSERT INTO Subconsulta VALUES (2, 'SELECT Funcionario.Nm_Funcionario,


Projeto.Nm_Projeto FROM Funcionario, Departamento, Projeto, DepartamentoControlaProjeto, FuncionarioTrabalhaProjeto WHERE Funcionario.Cd_Departamento = Departamento.Cd_Departamento AND Funcionrio.Cd_Funcionario = FuncionarioTrabalhaProjeto.Cd_Funcionario AND Projeto.Cd_Projeto = FuncionarioTrabalhaProjeto.Cd_Projeto AND Projeto.Cd_Projeto = DepartamentoControlaProjeto.Cd_Projeto AND DepartamentoControlaProjeto.Cd_Departamento = Departamento.Cd_Departamento AND Departamento.Nm_Departamento = 'Informtica' ORDER BY Projeto.Nm_Projeto, Funcionario.Nm_Funcionario', 1, 5) Tabela 5.56 Subconsulta Fonte de Dados Empresa

5.6 Combinador de Resultados


Objetivo: O Combinador de Resultados um componente presente no Mdulo de Execuo de Consultas que desempenha as seguintes funes: Recuperar, a partir do Metabanco de Dados, as subconsultas referentes a uma determinada consulta selecionada pelo UG; Receber os resultados oriundos da execuo das subconsultas nas fontes de dados locais e combina-los, eliminando quaisquer tipos de conflitos de esquema ou de dados que possam existir entre os conjuntos-resposta. Este componente foi construdo atravs de "scripts" inseridos em pginas "Web". Nos "scripts" esto contidas consultas ao Metabanco de Dados. Entrada: Cdigo da consulta selecionada pelo UG. Sada:

Projeto e Implementao do Sistema BDRV

136

Conjunto-resposta final, livre de qualquer tipo de conflito, resultante da combinao do conjunto-resposta de cada fonte de dados local em questo. Algoritmos: O algoritmo apresentado na seqncia obtm as subconsultas correspondentes a uma determinada consulta selecionada e remete-as as suas respectivas fontes de dados.

Algoritmo de Obteno e Execuo de Subconsultas


Cdigo da Consulta = cdigo da consulta selecionada pelo UG Selecione, a partir do Metabanco de Dados, as subconsultas referentes consulta identificada por Cdigo da Consulta (Tabela 5.57) Para cada subconsulta recuperada Faa Caso Fonte Seja Caso 0: Fonte0 = Execute a consulta na fonte de dados 0 Caso 1: Fonte1 = Execute a consulta na fonte de dados 1 Caso 2: Fonte2 = Execute a consulta na fonte de dados 2 ... Caso n: Fonten := Execute a consulta na fonte de dados n Fim Caso Fim Para

De acordo com o nosso exemplo, para recuperar as subconsultas referentes consulta Empregados, com respectivos cargos, trabalhando em projetos controlado pelo departamento de Informtica, o Combinador de Resultados elabora a seguinte consulta:
SELECT Cd_Subconsulta, Vl_Subconsulta, Cd_Fonte FROM Subconsulta WHERE Subconsulta.Cd_Consulta = 1 ORDER BY Subconsulta.Cd_Subconsulta Tabela 5.57 Consulta que Recupera as Subconsultas Referentes a uma Consulta

Cada subconsulta recuperada enviada ao Gerente de Metadados que, por sua vez, as remete as suas respectivas fontes de dados. No nosso exemplo, as subconsultas

Projeto e Implementao do Sistema BDRV

137

das Tabelas 5.55 e 5.56 so recuperadas. Os resultados retornados por cada fonte de dados podem ser visualizados nas Tabelas 5.58 e 5.59. Nm_Empregado Cargo Francisco M de Souza DBA Jorge C Silva Desenvolvedor
Tabela 5.59 - Resultado Retornado pelo Banco de Dados Companhia

Nm_Funcionario Nm_Projeto Francisco Maturana de Souza Alpha 1 Jorge Castro Silva Alpha 1
Tabela 5.59 - Resultado Retornado pelo Banco de Dados Empresa

Aps a execuo de cada subconsulta em sua respectiva fonte dados, os conjuntos-resposta so retornados ao Gerente de Metadados que os devolve ao Combinador de Resultados. Este ltimo aplica sobre os mesmos o Algoritmo de Resoluo de Conflitos:

Projeto e Implementao do Sistema BDRV

138

Algoritmo de Resoluo de Conflitos


Para cada conjunto-resposta Fonte Faa Para cada nome de atributo Faa /* Resolve conflitos de nome de atributo */ Substituir o nome do atributo pelo nome atributo virtual correspondente Para cada valor do atributo Faa /* Resolve conflitos de expresses distintas e precises diferentes */ Se valor do atributo deve ser mapeado Ento Mapeie o valor para o novo valor Fim Se /* Resolve conflitos de tipo de dado */ Seno Se tipo de dados do atributo diferente do tipo de dado do atributo virtual correspondente Ento Caso tipo de dado do atributo virtual Seja Caso "Int": Converter valor do atributo para Inteiro Caso "Char" ou "Varchar": Converter valor do atributo para String Caso "Datetime" ou "Smalldatetime": Converter valor do atributo para Data Caso "Bit": Converter valor do atributo para Boolean Caso "Money": Converter valor do atributo para Valor Monetrio Fim Caso Fim Se Fim Seno Fim Para Fim Para Fim Para

O nome dos atributos contidos no conjunto-resposta retornado por cada fonte de dados deve ser novamente mapeado no nome do atributo virtual que os representa no esquema global. Por exemplo, no conjunto-resposta retornado pela fonte de dados Empresa, o nome do atributo que representa o nome dos funcionrios

(Funcionario.Nm_Funcionario) deve ser mapeado no nome do atributo virtual que representa o nome dos empregados (Empregado.Nm_Empregado).

Projeto e Implementao do Sistema BDRV

139

Para obter o nome do atributo virtual, presente no esquema global Organizao, que representa o atributo Funcionario.Nm_Funcionario do esquema Empresa, o Combinador de Resultados remete a seguinte consulta ao Gerente de Metadados:
SELECT DISTINCT AV.Nm_Atributo_Virtual FROM Atributo A, Atributo_Virtual AV, Tipo T, Atrib_Virt_Mapeado_Atributo AVMA WHERE AV.Cd_Tipo = T.Cd_Tipo AND AVMA.Cd_Atributo_Virtual = AV.Cd_Atributo_Virtual AND AVMA.Cd_Atributo = A.Cd_Atributo AND A.Nm_Atributo = Nm_Funcionario Tabela 5.60 Obteno do Nome do Atributo Virtual Referente ao Atributo Funcionario.Nm_Funcionario

Como resultado, o Combinador de Resultados recebe a seguinte tabela: Nm_Atributo_Vitual Nm_Empregado


Tabela 5.61 Nome do Atributo Virtual que Representa o Atributo do Esquema Local Funcionario.Nm_Funcionario

Para resolver os Conflitos de Tipos de Dados, necessrio recuperar o tipo do atributo virtual do esquema global e do atributo do esquema local. Caso os mesmos sejam idnticos, ento nenhum tipo de converso necessita ser realizada nos dados referentes ao atributo. Caso contrrio, os dados referentes ao atributo do esquema local devem ser convertidos para o tipo do atributo virtual. No exemplo, o conjunto resposta retornado pelo esquema Companhia contm o atributo Funcionario.Nm_Funcionario, que do tipo Char. O atributo virtual (Empregado.Nm_Empregado) que o representa no esquema global Organizao do tipo Varchar. Sendo assim, necessria a realizao de uma converso de Char para Varchar nos dados referentes ao atributo do esquema local. Para recuperar o tipo de dados do atributo virtual do esquema global Organizao Empregado.Nm_Empregado e do atributo Empregado.Nm_Empregado do esquema local Companhia, o Combinador de Resultados envia a seguinte consulta ao Gerente de Metadados:

Projeto e Implementao do Sistema BDRV

140

SELECT DISTINCT T2.Nm_Tipo, T1.Nm_Tipo FROM Atributo A, Atributo_Virtual AV, Tipo T1, Tipo T2, Tabela T, Tabela_Virtual TV, Atrib_Virt_Mapeado_Atributo AVMA, Esquema_Global EG, Esq_Glob_Possui_Tab_Virt EGPTV WHERE A.Cd_Tabela = T.Cd_Tabela AND A.Cd_Tipo = T1.Cd_Tipo AND AV.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual AND AV.Cd_Tipo = T2.Cd_Tipo AND AVMA.Cd_Atributo = A.Cd_Atributo AND AVMA.Cd_Atributo_Virtual = AV.Cd_Atributo_Virtual AND A.Nm_Atributo = Nm_Empregado AND T1.Nm_Tipo <> T2.Nm_Tipo AND EG.Nm_Esquema_Global = Organizao AND EG.Cd_Esquema_Global = EGPTV.Cd_Esquema_Global AND EGPTV.Cd_Tabela_Virtual = TV.Cd_Tabela_Virtual AND AV.Nm_Atributo_Virtual = Nm_Empregado AND TV.Nm_Tabela_Vitual = Empregado AND T.Nm_Tabela = Empregado Tabela 5.62 Obteno do Tipo de Dados do Atributo Vitual Empregado.Nm_Empregado e do Atributo do Esquema Local Empregado.Nm_Empregado

Como resposta, o Combinador de Resultados recebe as seguintes informaes: Nm_Tipo Nm_Tipo Char Varchar
Tabela 5.63 - Tipo de Dados do Atributo Virtual Empregado.Nm_Empregado e do Atributo Empregado.Nm_Empregado do Esquema Companhia

Ainda em relao ao nosso exemplo, o empregado Francisco Maturana de Souza identificado como Francisco M de Souza no banco de dados Companhia e como Francisco Maturana de Souza no banco Empresa. Para resolver o Conflito de Expresses Diferentes, deve ser realizado um mapeamento de valores com base nas informaes contidas no Metabanco de Dados, isto , neste caso, o valor Francisco M de Souza deve ser mapeado para Francisco Maturana de Souza. Para o obter tal mapeamento, o Combinador de Resultados envia a seguinte consulta ao Gerente de Metadados:

Projeto e Implementao do Sistema BDRV

141

SELECT D1.Nm_Dado FROM Atributo AS A, Atributo_Dado AS AD, Dado AS D1, Dado AS D2, Dado_Mapeado_Dado AS DMD WHERE A.Nm_Atributo = Nm_Empregado AND A.Cd_Atributo = AD.Cd_Atributo AND AD.Cd_Dado = D1.Cd_Dado AND D1.Cd_Dado = DMD.Cd_Dado_Mapeado AND D2.Nm_Dado = Francisco M de Souza AND D2.Cd_Dado = DMD.Cd_Dado Tabela 5.64 Obtendo o mapeamento do valor Francisco M de Souza

Como resposta, o Combinador de Resultados recebe a seguinte informao: Nm_Dado Francisco Maturana de Souza
Tabela 5.65 Resultado do Mapeamento do valor Francisco M de Souza

Finalmente, aps a resoluo de todos os conflitos citados acima, o Combinador de Resultados dispes dos seguintes conjuntos-resposta: Nm_Empregado Cargo Francisco Maturana de Souza DBA Jorge C Silva Desenvolvedor
Tabela 5.66 Conjunto-Resposta do Banco de Dados Companhia Aps a Eliminao de Conflitos

Nm_Empregado Nm_Projeto Francisco Maturana de Souza Alpha 1 Jorge Castro Silva Alpha 1
Tabela 5.67 Conjunto-Resposta do Banco de Dados Empresa Aps a Eliminao de Conflitos

A combinao de ambos os conjuntos-resposta, resulta nas informaes contidas na Tabela 5.68. Nm_Empregado Cargo Nm_Projeto Francisco Maturana de Souza DBA Alpha 1 Jorge Castro Silva Desenvolvedor Alpha 1
Tabela 5.68 Conjunto-Resposta Final

Projeto e Implementao do Sistema BDRV

142

5.7 Concluses
Neste captulo, apresentamos em detalhes cada componente da Arquitetura BDRV. Para facilitar o entendimento utilizamos o exemplo 3 do Captulo 4. Pudemos observar claramente o funcionamento dos algoritmos de cada componente. As entradas e sadas de cada um tambm foram analisadas. Em resumo, pudemos perceber o funcionamento individual de cada componente desde a formulao de uma consulta at a apresentao de seus resultados.

Captulo 6
Concluses e Trabalhos Futuros
7.1 Concluses
Em nosso trabalho, apresentamos uma soluo eficiente, chamada de Sistema BDRV, para integrao de mltiplas fontes de dados, exclusivamente bancos de dados relacionais, baseada em uma abordagem hbrida (sob demanda e antecipada), proporcionando transparncia em relao localizao de fontes de dados atravs de uma interface "Web". O Sistema BDRV procurou incorporar pontos fortes de outras tecnologias de integrao estudadas, das duas abordagens, assim como solucionar problemas presentes nestas mesmas arquiteturas. Verificamos que a integrao de mltiplos bancos de dados uma atividade extremamente complexa, em virtude da presena de discrepncias nos esquemas locais, sendo tema suficiente para vrias dissertaes de mestrado. Nosso propsito com relao a este ponto foi trabalhar somente com formas singelas de integrao de dados, cujas solues so j bem conhecidas. Com relao aos objetivos traados pelo Sistema BDRV, conclumos que: Desempenho Em sistemas inspirados na abordagem sob demanda (mediadores), o desempenho est diretamente relacionado com as trs etapas de processamento de consultas (Seo 2.1): Seleo das Fontes de Dados; Traduo/Processamento da Consulta; Integrao dos Resultados Parciais.

Requisitos para o Ambiente de Integrao de Bancos de Dados Relacionais VBDR

12

Em nosso Estudo de Caso (ver Anexo A), integramos trs bancos de dados do Departamento de Sistemas de Computao (DSC). Embora todos os bancos de dados estejam em produo, nenhum deles armazena uma grande quantidade de dados. Calculamos uma mdia de 500 (quinhentos) registros para cada um. Durante o desenvolvimento de nosso Estudo de Caso, calculamos a mdia da porcentagem de tempo utilizada por cada etapa de processamento de consulta desde o processo de gerao e transformao de consultas at a obteno de resultados. Em um sistema que integre um nmero maior de fontes de dados e que as mesmas apresentem uma quantidade maior de dados, os resultados podem ser diferentes. Os resultados obtidos foram os seguintes: Etapa Tempo (%) Seleo de Fontes de Dados 15% Traduo de Consulta 10% Processamento de Consulta 25% Integrao de Resultados Parciais 50%
Tabela 6.1 Tempos Aproximados de Cada Etapa de Processamento de Consultas

No Sistema BDRV as consultas so geradas antecipadamente, ou seja, as etapas de Seleo de Fontes de Dados e Traduo de Consulta no necessitam ser realizadas no momento em que uma consulta acionada pelo Usurio Global (UG). No entanto, conforme podemos observar na Tabela 6.1, estas etapas representam apenas 25% do tempo total para o processamento de uma consulta. Conclumos que o fato do Sistema BDRV proporcionar a elaborao e traduo de consultas de modo antecipado no significa um ganho significativo no que se refere ao desempenho. Alguns dos conflitos que o Sistema BDRV pretende solucionar, citados no Captulo 3, como por exemplo, Nome de Atributo, Tipo de Dados, Expresses e Precises Diferentes, somente podem ser solucionados aps as subconsultas serem enviadas as suas respectivas fontes de dados e as mesmas retornarem seus conjuntosresposta. Para cada dado pertencente a um conjunto-resposta retornado por uma fonte de dados, todos os conflitos citados anteriormente so analisados. Para solucionar o conflito de Expresses Diferentes, por exemplo, necessria, para cada dado, a

Requisitos para o Ambiente de Integrao de Bancos de Dados Relacionais VBDR

13

realizao de uma consulta ao Metabanco de Dados (ver Seo 5.7). Independente do fato de que o dado em questo deva ou no ser mapeado em outro dado, esta consulta necessariamente realizada. Observe que o mesmo acontece para a resoluo dos outros conflitos: Nome de Atributo, Tipo de Dados e Precises Diferentes. Em termos quantitativos, suponhamos que uma consulta elaborada e transformada em subconsultas destinadas a 3 (trs) fontes de dados (uma subconsulta para cada uma). Imaginemos tambm que cada fonte de dados retorne uma mdia de 30 (trinta) registros e que cada registro contenha uma mdia de 5 (cinco) atributos. Pelo anteriormente mencionado, para resolver os conflitos de Nome de Atributo, Tipo de Dados, Expresses e Precises Diferentes so necessrias a execuo de 3 (fontes de dados) x 30 (total de registros retornados por uma fonte de dados) x 5 (nmero de atributos contidos em cada registro) = 450 consultas auxiliares ao Metabanco de Dados. Justificamos o fato de que a etapa de Integrao de Resultados Parciais representa metade do tempo gasto no processamento de uma consulta (Tabela 6.1) pelo excessivo e inaceitvel nmero de consultas auxiliares ao Metabanco de Dados. O algoritmo Combinador de Resultados (Seo 5.7) representa uma potencial perda de desempenho no que diz respeito ao processamento de consultas no Sistema BDRV. Na tecnologia de "Data Warehousing", inspirada na abordagem antecipada para integrao de dados, os dados de cada fonte so extrados antecipadamente, traduzidos, filtrados e integrados apropriadamente, e armazenados em um "Data Warehouse" (DW). Quando uma consulta submetida, a mesma avaliada diretamente no DW, sem a necessidade, portanto, de ter acesso s vrias fontes de dados em tempo real. Como DWs podem ser considerados fontes de dados locais no Sistema BDRV, algumas consultas podem ser respondidas unicamente pelos mesmos, sem a necessidade de consultar outras fontes, visto que j armazenam um resumo prcomputado de dados contidos em outras fontes de dados. Isto tambm implica em um ganho de desempenho.

Requisitos para o Ambiente de Integrao de Bancos de Dados Relacionais VBDR

14

Abordagem Hbrida Diferentemente de outras tecnologias de integrao de fontes de dados, no Sistema BDRV, as abordagens sob demanda e antecipada no so tratadas de forma ortogonal. Considerar DWs como fontes de dados locais no acarreta nenhuma desvantagem, pelo contrrio, obtm-se ganho de desempenho no processamento de consultas, conforme observarmos anteriormente. Interface "Web" Diferentemente de outras tecnologias de integrao de fontes de dados, conclumos que a tecnologia "Web" apresenta recursos suficientes para proporcionar transparncia em relao localizao de fontes de dados locais e, portanto, no existe razo para tratar ambas as tecnologias de maneira ortogonal. No Sistema BDRV, diferentemente da execuo de consultas, a elaborao de consultas no realizada atravs de uma interface "Web". Admitimos que no existe razo para tratar ambas as etapas utilizando interfaces distintas.

7.2 Trabalhos Futuros


Dadas as dificuldades enfrentadas para a construo manual de esquemas globais, um trabalho que pretendemos encaminhar a construo de um mdulo Gerador de Esquema Global Virtual, para gerar automaticamente um banco de dados virtual, a partir de esquemas locais de bancos de dados j existentes. Outro aperfeioamento no Sistema BDRV o suporte a atualizaes de fontes locais, a partir de um esquema global virtual. Um outro trabalho interessante oferecer a oportunidade de elaborao e execuo de consultas atravs da "Web".

Requisitos para o Ambiente de Integrao de Bancos de Dados Relacionais VBDR

15

Finalizando, um outro trabalho futuro seria o desenvolvimento de um componente Combinador de Resultados mais eficiente do que o atual, no que se trata da rapidez na resoluo de conflitos e integrao de conjuntos-resposta. Tentaremos minimizar o problema da potencial ineficincia na obteno de resultados, no que diz respeito ao tempo de resposta de uma consulta, encontrado nos SBDMs, realizando o processo de traduo de consultas de forma antecipada. Algumas das vantagens encontradas nos SBDMs a serem incorporadas na Arquitetura BDRV so: Viso personalizada do esquema global, ou seja, baseada nas necessidades de informao de cada usurio global; Transparncia em relao localizao das fontes. A Arquitetura BDRV tambm apresenta suas desvantagens, dentre as quais podemos destacar: possibilidade de integrao de um nico tipo de fonte de dados: bancos de dados; os bancos de dados locais devem necessariamente ser baseados no modelo relacional; no permite a realizao de atualizaes sobre os dados armazenados nos bancos de dados locais; impossibilidade de realizao de consultas "ad-hoc", por parte dos usurios globais; potencial ineficincia na obteno de resultados, no que diz respeito ao tempo de resposta de uma consulta, em razo de sua arquitetura puramente distribuda.

Bibliografia
[1] Berners-Lee, T., Connolly, D., "HyperText Markup Language Specification", IETF HTML Working Group, 1994 R. Elmasri and S. Navathe, "Fundamentals of Database Systems", Benjamin/Cummings Publishing Co., 3rd Edition, 1999 Berners-Lee T., Cailliau R., Loutonen A., "The World Wide Web", Communications of the ACM, Vol. 37(8), 1994, pp. 7682 Gravano L., Papakinstatinou Y., Mediating and Metasearching on the Internet, ACM Sigmod Record (http://www.acm.org/sigmod/record) Chung, Soon M., Mah, Pyeong S., Schema Integration for Multidatabases Using Relational and Object-Oriented Model, ACM, 1995 (http://www.acm.org/) Ceri, S., Pelagatti, G., "Distributed Databases: Principles and Systems", 1984, McGraw-Hill, New York Berners-Lee, T., Hypertext Transfer Protocol, Internet Working Draft, 5 November 1993 Lima, I., "O Ambiente Web Banco de Dados: Funcionalidades e Arquiteturas de Integrao", Dissertao de Mestrado, Pontifcia Universidade Catlica do Rio de Janeiro, Rio de Janeiro, Agosto de 1997 Silberschatz, A., Korth, Henry F., Sudarshan, S., "Sistema de Banco de Dados", So Paulo, Makron Books, 1999 McLeod, D., Heimbigner, D., "A Federated Architecture for Data Base Systems", 1980, In Proceedings of the AFIPS National Computer Conference, vol. 39, AFIPS Press, Arlington, Va. Frank, M., "Database and the Internet", DBMS On-line Magazine, December, 1995

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

Bibliografia

133

[12]

Batini, C., Lenzerini, M., "A Comparative Analysis of Methodologies for Database Schema Integration", ACM Computing Surveys, Vol. 18, No. 14, December 1986 Wiederhold, G., "Mediators in the Architecture of Future Information Systems", IEEE Computer, 25(3):38-49, 1992 Bright, M. W., Hurson, A. R., Pakzad, Simin H., "A Taxonomy and Current Issues in Multidatabase Systems", IEEE Computer, 25(3):50-60, 1992 Motro, A., "Superviews: Virtual Integration of Multiple Databases", IEEE Transactions on Software Engineering, vol. SE-13, No. 7, July 1987 Bodorik, P., Riordon, J. S., "System Integration in Multidatabases", SIGSMALL/PC Symposium 1990: 160-163 Ram, S., "Heterogeneous Distributed Database Systems", ACM Computing Surveys, Vol.22, No. 3 (Sept. 1990), pp. 237-266 Kimball, R., The Data Warehouse Toolkit - Tcnicas para construo de DWs Dimensionais, Makron Books, 1998 Glossbrenner, A., Glossbrenner, E., "Internet: truques espertos", Axcel Books, 1994 Wells, D., "Wrappers", Survey (http://www.objs.com/survey/wrap.htm) Kim, W., "Modern Database Systems: the object model, interoperability, and beyond", Addison-Wesley, 1995 Kim, W., Seo, J., "Classifying Schematic and Data Heterogeneity in Multidatabase Systems", IEEE Computer, December, 1991 Sheth, A., Larson, J., "Federated Database Systems for Managing Distributed, Heterogeneous, and Autonomous Databases", ACM Computing Surveys, Vol. 22, N 3, September, 1990 Papakonstantinou, Y., Abiteboul, S., Molina, G., "Object Fusion in Mediator Systems", Proceedings of the 22nd International Conference on Very Large Data Bases, Mumbai (Bombay), India, 1996 Stein, D., "How to Set Up and Maintain a Web Site",

[13]

[14]

[15]

[16]

[17]

[18]

]19]

[20]

[21]

[22]

[23]

[24]

[25]

Bibliografia

134

Addison-Wesley, 1995 [26] Gardner, Stephen R., "Building the Data Warehouse", Communications of the ACM, Vol 41, No 9, Setembro 1998. Landers, T., Rosenberg, R., "An Overview of Multibase", Tutorial: Distributed Database Management, IEEE Computer Society 575, 556-579 Kimball, Ralph, Reeves, Laura, Margy, Ross, Thornthwaite, Warren, "The Data Warehouse Lifecycle Toolkit : Experts Methods for Designing, Developing and Deploying Data Warehouses", John Wiley & Sons Inc., 1998. Inmon, W.H., "Como Construir o Data Warehouse", Traduo da Segunda Edio, Editora Campus, 2a Edio, 1997. Widom, Jennifer, "Research Problems in Data Warehousing", Proc. 4th Intl Conference on Information and Knowledge Management (CIKM), Novembro 1995. Dayal, U., Hwang, H., "View Definition and Generalization for Database Integration in Multidatabase System", IEEE Trans. Softw. Eng. SE-10, 6 (Nov), 628-644 Thomsen, E., "OLAP Solutions: Building Multidimensional Information Systems", John Wisley & Sons Inc., USA, 1997. Chiavenato, I., "Teoria Geral da Administrao", Volume 2, 4 Edio, Makron Books, 1993 Elmagarmid, A., Pu, C., "Guest Editors' Introduction to the Special Issue on Heterogeneous Databases", ACM Computing Surveys, Vol. 22, No. 3, September 1990 Hull, R., Zhou, G., "A Framework for Supporting Data Integration Using the Materialized and Virtual Approaches", SIGMOD '96 6/96 Montreal, Canada Berners-Lee, T., Masinter, L., McCahiel, M., "Uniform Resource Locators (URL)", RFC 1738, University of Minnesota, 1994 Weissinger, A., "ASP in a Nutshell", O'Reilly & Associates, Paperback, 2nd edition, Published July 2000

[27]

[28]

[29]

[30]

[31]

[32]

[33]

[34]

[35]

[36]

[37]

Anexo A
Estudo de Caso
Nosso estudo de caso envolve a integrao de trs fontes de dados, localizadas no Departamento de Sistemas e Computao (DSC), da Universidade Federal da Paraba (UFPB), Campus II. Todas as fontes armazenam basicamente dados de nosso ambiente acadmico. Este estudo de caso pretende discutir detalhes de caractersticas j abordadas, alm de outras ainda no citadas de forma mais objetiva e direcionadas ao sistema. A efetiva implementao a ser apresentada foi bastante til tambm para levantar muitos problemas funcionais. Na realidade, a motivao para este trabalho ocorreu durante o desenvolvimento da aplicao.

6.1 Descrio da Aplicao


O objetivo principal da aplicao propiciar aos professores, alunos e funcionrios do DSC, um sistema de consulta informaes de mbito acadmico. A aplicao foi desenvolvida no Laboratrio de Sistemas de Informao (LSI), pertencente ao DSC. As fontes esto localizadas em terminais da rede NT instalada no LSI. As fontes utilizadas para integrao em nossa aplicao so as seguintes: Sistema de Seminrios do DSC - BDSEMINAR Descrio: sistema de controle de seminrios do DSC. Neste sistema, encontram-se armazenados todos os seminrios apresentados no DSC nos anos de 1998 a 2000. Informaes sobre cada palestrante tambm podem ser encontradas.

Estudo de Caso

12

Tipo da fonte: Banco de Dados SQL Server 6.5 Localizao: mquina lsi_sql "Datawarehouse" da COPIN - DWCOPIN Descrio: este sistema, construdo especialmente para nossa aplicao, corresponde a um pequeno "Data Warehouse" cujos dados so extrados a partir de dados armazenados no SYSCOPIN (ver a seguir). Tipo da Fonte: Banco de Dados SQL Server 6.5 Localizao: mquina lsi_station1 Sistema de Informaes da COPIN - SYSCOPIN Descrio: o sistema de informaes da Coordenao de Ps-Graduao em Informtica (COPIN). Armazena dados relativos a professores, alunos, teses, artigos, disciplinas, entre outros. Tipo da Fonte: Banco de Dados SQL Server 6.5 Localizao: mquina lsi_pdc Metabanco de Dados Tipo da Fonte: Banco de Dados SQL Server 6.5 Localizao: mquina lsi_pdc Como servidor "Web", escolhemos o "Internet Information Server" (IIS 4.0), da Microsoft, em virtude de estarmos utilizando a tecnologia "Active Server Pages" (ASP). Este encontra-se instalado na mquina lsi_pdc. A descrio detalhada de cada banco de dados utilizado em nossa aplicao pode ser encontrada no Anexo B.

Estudo de Caso

13

6.2 Elaborao de Consulta


Imagine que estamos interessados em obter alguns dados elementares a respeito dos alunos da Copin cujo perodo de entrada seja 981. Os dados a serem obtidos so: nome, orientador e e-mail. O primeiro passo selecionar o esquema global no qual se deseja elaborar a consulta. Neste caso, devemos escolher o esquema global COPIN, conforme podemos observar na Figura 6.1.

Figura 6.1 - Seleo do Esquema Global COPIN

O segundo passo a seleo das tabelas virtuais a serem includas na consulta. De acordo com a consulta que desejamos elaborar, devemos selecionar apenas a tabela virtual Aluno, conforme podemos verificar na Figura 6.2.

Estudo de Caso

14

Figura 6.2 - Seleo da Tabela Virtual Aluno

O terceiro passo a seleo dos atributos virtuais que desejamos obter como resposta. Baseados em nossa consulta podemos observar que necessrio a seleo dos atributos virtuais Aluno.Nm_Aluno, Aluno.Orientador e Aluno.Nm_Email. Na Figura 6.3, possvel acompanhar esta etapa.

Figura 6.3 - Seleo dos Atributos Virtuais Aluno.Nm_Aluno, Aluno.Orientador e Aluno.Nm_Email

O quarto passo a definio de filtros em atributos virtuais pertencentes s tabelas virtuais selecionadas. De acordo com nossa consulta precisamos definir o filtro: Aluno.Pr_Entrada IGUAL 981. Na Figura 6.4, possvel observar a definio do filtro.

Estudo de Caso

15

Figura 6.4 - Definio do Filtro Aluno.Pr_Entrada IGUAL 981

O quinto passo a definio de ordenaes em atributos pertencentes s tabelas virtuais selecionadas no passo trs. De acordo com nossa consulta precisamos definir apenas uma ordenao no atributo Aluno.Nm_Aluno. Este passo pode ser visto na Figura 6.5.

Figura 6.5 - Definio da Ordenao Aluno.Nm_Aluno

O sexto passo a definio de agrupamentos, que na nossa consulta no ser necessria.

Estudo de Caso

16

Finalmente, o stimo passo simplesmente fornecer algumas informaes em relao consulta, conforme podemos observar na Figura 6.6.

Figura 6.6 - Descrio da Consulta

Aps concluir a elaborao da consulta, esta repassada para o Integrador que a transforma, gerando uma ou mais subconsultas, a serem executadas em bancos de dados locais, neste caso, BDSEMINAR, DWCOPIN ou SYSCOPIN. A consulta SQL, baseada no esquema global COPIN, correspondente ao conjunto de passos que o UDC acabou de percorrer a seguinte:
SELECT Aluno.Nm_Aluno, Aluno.Orientador, Aluno.Nm_Email FROM Aluno WHERE Aluno.Pr_Entrada = 981 ORDER BY Aluno.Nm_Aluno

Vamos, agora, acompanhar detalhadamente a transformao desta consulta em subconsultas, analisando o funcionamento dos componentes do Integrador.

6.2.1 Transformao de Consulta


As selees de tabelas virtuais, atributos virtuais, filtros, ordenaes e agrupamentos, realizadas atravs da IDC, so enviadas para o Integrador, em forma de conjuntos:

Estudo de Caso

17

Tabelas Virtuais = {Aluno} Atributos Virtuais = {{Aluno, Nm_Aluno, }, {Aluno, Orientador, }, {Aluno, Nm_Email, }}

Junes = Filtros = {{Aluno, Pr_Entrada, IGUAL, 981}} Ordenaes = {{Aluno, Nm_Aluno}} Agrupamentos =

As informaes so recebidas pelo Integrador, mais precisamente pelo Analisador de Consulta, que estrutura as informaes, conforme podemos observar nas Tabelas 6.39, 6.40 e 6.41.
Tabela Virtual Aluno Aluno Aluno Aluno Atributo Virtual Selecionado Funo Filtro Juno OrderBy GroupBy Nm_Aluno Orientador Nm_Email Pr_Entrada Tabela 6.39 - Tabelas e Atributos Virtuais Selecionados

Tabela Virtual Atributo Virtual Operador Constante Aluno Pr_Entrada = 981 Tabela 6.40 - Filtros

Tabela Virtual

Atributo Virtual

Operador Tabela Virtual de Juno

Atributo Virtual de Juno

Tabela 6.41 - Junes

O Coletor de Fontes, utilizando o Metabanco de Dados, seleciona as possveis fontes que podem atender a cada atributo virtual selecionado, conforme podemos visualizar na Tabela 6.42.

Estudo de Caso

18

Tabela Virtual Atributo Virtual Fonte BDSEMINAR Aluno Nm_Aluno DWCOPIN SYSCOPIN Aluno Orientador DWCOPIN BDSEMINAR Aluno Nm_Email SYSCOPIN DWCOPIN Aluno Pr_Entrada SYSCOPIN Tabela 6.42 - Fontes

As informaes produzidas pelo Estimador de Fontes podem ser vistas na Tabela 6.43(a). Como podemos observar, nenhuma das fontes atende, sozinha, a todos os atributos virtuais includos na consulta. Alm disto, os atributos virtuais atendidos pela fonte BDSEMINAR so, na verdade, um subconjunto dos atributos virtuais atendidos pela fonte SYSCOPIN. Sendo assim, as nicas fontes selecionadas para responder consulta so: DWCOPIN e SYSCOPIN, como podemos ver na Tabela 6.43(a). Fonte Porcentagem Subconjunto BDSEMINAR 50% DWCOPIN 75% SYSCOPIN 75%
Tabela 6.43(a) - Estatstica

A etapa seguinte realizada pelo Seletor de Fontes, que decide qual(is) das trs fontes deve(m) atender a consulta. So elas: DWCOPIN e SYSCOPIN (ver Tabela 6.43(b))
Fonte Porcentagem Subconjunto Selecionada BDSEMINAR 50% DWCOPIN 75% SYSCOPIN 75%
Tabela 6.43(b) - Estatstica

O ltimo mdulo a entrar em ao o Transformador de Consultas, cujo papel gerar as subconsultas para as fontes de dados selecionadas anteriormente. As subconsultas geradas para os bancos de dados DWCOPIN e SYSCOPIN so, respectivamente:

Estudo de Caso

19

SELECT Aluno.Nm_Aluno, Aluno.Orientador FROM Aluno WHERE Aluno.Pr_Entrada = 981 ORDER BY Nm_Aluno

SELECT Aluno.Nm_Aluno, Aluno.Nm_Email FROM Aluno WHERE Aluno.Pr_entrada = 981 ORDER BY Nm_Aluno

Aps a gerao das subconsultas, as mesmas so armazenadas no Metabanco de Dados para posterior execuo em suas respectivas fontes de dados.

6.2.2 Execuo de Consulta


Para executar uma consulta necessrio apenas que o UG selecione a consulta desejada e clique no "link" rotulado pelo nome da consulta. Seguindo o nosso exemplo, o UG deve clicar na consulta intitulada Dados Elementares, conforme podemos observar na Figura 6.7.

Figura 6.7 - Seleo da Consulta Dados Elementares

Estudo de Caso

20

Um clique no nome da consulta resulta na recuperao, a partir do Metabanco de Dados, e posterior execuo das subconsultas correspondentes mesma em suas respectivas fontes de dados - DWCOPIN e SYSCOPIN. Cada fonte de dados retorna seu conjunto-resposta, que combinado e apresentado. Neste exemplo, durante a combinao de resultados, foram detectados e solucionados conflitos de dados do tipo Expresses Diferentes. Por exemplo, um dos registros recuperados em funo da subconsulta submetida ao banco de dados DWCOPIN foi:
Nm_Aluno Orientador ... Carlos Eduardo Santos Pires Marcus Costa Sampaio ...
Tabela 6.44 - Resultados retornados pelo banco de dados DWCOPIN

O registro que armazena o mesmo aluno no banco de dados SYSCOPIN foi recuperado da seguinte forma:
Nm_Aluno Nm_Email ... Carlos E S Pires carlos@dsc.ufpb.br ...
Tabela 6.45 - Resultados retornados pelo banco de dados SYSCOPIN

Desta forma, quando combinados os conjuntos-resposta, o nome do aluno em DWCOPIN foi mapeado para o nome contido no banco de dados SYSCOPIN, ou seja, Carlos E S Pires foi mapeado em Carlos Eduardo Santos Pires, como podemos ver na Figura 6.8.

Estudo de Caso

21

Figura 6.8 - Resultado Final da Consulta Dados Elementares

Um fato bastante observado durante o desenvolvimento de nossa aplicao foi o excesso de tarefas no servidor "Web", em funo de que, para resolver conflitos de dados, cada dado necessitava ser tratado individualmente. Para solucionar Conflitos de Expresses Diferentes, necessrio o envio de uma consulta pelo Combinador de Resultados no intuito de verificar se um determinado dado deve ou no ser mapeado em outro. No exemplo apresentado anteriormente, o aluno Carlos E S Pires deve ser mapeado no aluno Carlos Eduardo Santos Pires. O Combinador de Resultados somente pode ter cincia disto atravs de uma consulta ao Metabanco de Dados, via Gerente de Metadados.

6.3 Concluses
Neste captulo, apresentamos uma aplicao desenvolvida utilizando o Sistema BDRV. Nesta aplicao, integramos trs bancos de dados relacionais distintos, apresentando a alunos, professores e funcionrios do DSC um esquema global nico, onde os mesmos podem elaborar consultas e obter resultados. Esta aplicao foi bastante til na tentativa de deteco e soluo de problemas funcionais.

Anexo B
Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados
Notao: Smbolo Semntica # Chave Primria * Chave Estrangeira

B.1 Fonte de Dados Local BDSEMINAR


Tabela: Autor Descrio: descreve os dados dos palestrantes
Atributo # Cd_Autor Nome_Autor E_Mail Tipo Tipo Int Varchar Varchar Varchar Descrio Cdigo que identifica unicamente um palestrante Nome do palestrante Endereo eletrnico Indica se ALUNO ou PROFESSOR

Tabela B.1 - Inteno da Tabela Autor

Tabela: Seminrio Tabela Referenciada: Autor (Cd_Autor) Descrio: descreve os dados relativos aos seminrios
Atributo # Cd_Seminario Nome_Seminario Descricao Data Horario *Cd_Palestrante Tipo Int Varchar Text Smalldatetime Datetime Int Descrio Cdigo que identifica unicamente um seminrio Ttulo do seminrio Descrio do seminrio Data de apresentao do seminrio Horrio de apresentao do seminrio Cdigo que identifica unicamente um palestrante

Tabela B.2 - Inteno da Tabela Seminrio

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

141

Tabela: Autor
Cd_Autor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Nome_Autor Carlos Eduardo Santos Pires Marcus Costa Sampaio Edeyson Gomes Eduardo Jorge Ulrich Schiel Maria Izabel Cavalcanti Cabral Jacques Sauve Ivette Kafure Jlio Cezar Oliveira Gomes Andr Barbosa Rocha Eliane Cristina de Arajo Carlos A C Alves Raissa Dantas Freire Andra de Farias Barros Flavia Estelita S Coelho Antonio Augusto Coutinho Juliano Varella de Carvalho Starch Melo Angel Anibal E_Mail carlos@dsc.ufpb.br sampaio@dsc.ufpb.br edeyson@dsc.ufpb.br emjorge@dsc.ufpb.br ulrich@dsc.ufpb.br izabel@dsc.ufpb.br jacques@dsc.ufpb.br ivette@dsc.ufpb.br julio@dsc.ufpb.br andre@dsc.ufpb.br eliane@dsc.ufpb.br caca-pa@dsc.ufpb.br raissa@dsc.ufpb.br raissa@dsc.ufpb.br flavia@dsc.ufpb.br coutinho@dsc.ufpb.br varella@dsc.ufpb.br coutinho@dsc.ufpb.br angel@dsc.ufpb.br Tipo Aluno Professor Aluno Aluno Professor Professor Professor Aluno Aluno Aluno Aluno Aluno Aluno Aluno Aluno Aluno Aluno Aluno Aluno

Tabela B.3 - Extenso da Tabela Autor

Tabela: Seminrio
Cd_Seminario Nome_Seminario 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Servidores de BD e a World Wide Web Metamodelagem: Uma Introducao Anarquismo, sociedade e informtica Tutorial em Bancos de Dados Temporais Unified Modeling Language - UML - APRENDA AGORA OU SE ARREPENDA PARA SEMPRE!!! Os Limites do conhecimento Cientifico Projeto para Redes Multimidia Conhece a Colmbia? Projeto para redes multimidia Por que ler os clssicos? Amor, Sexo and Rock&Roll: Como Fazer uma Intranet com Java e uma Arquitetura em 3 Camadas Diretrizes Curriculares de Cursos da rea de Computao e Informtica Uma API para o desenvolvimento de aplicaes de gerncia de faltas Avaliao de Mecanismos de Busca - Pro-Copin Proposta de Mecanismos para transmisso de fluxo CBR sobre Ethernet Suporte a tempo real em Ethernet Arquitetura AMADEUS para a gerncia de Descricao Data 5 Mai 1999 0:00 20 Jan 1999 0:00 27 Jan 1999 0:00 3 Fev 1999 0:00 3 Mar 1999 0:00 3 Mar 1999 0:00 17 Mar 1999 0:00 24 Mar 1999 0:00 24 Mar 1999 0:00 7 Abr 1999 0:00 Horario 1 Jan 1900 15:00 1 Jan 1900 15:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900 15:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900 15:00 1 Jan 1900 15:00 Cd_Palestrante 1 9 5 10 9 11 18 8 12 2 7 6 13 12 12 12 14

19 Mai 1 Jan 1900 1999 0:00 14:00 2 Jun 1999 0:00 11 Ago 1999 0:00 18 Ago 1999 0:00 15 Set 1999 0:00 22 Set 1999 0:00 22 Set 1 Jan 1900 15:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900 14:00 1 Jan 1900

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

142

dispositivos com servidores Web embutidos 18 19 20 21 22 Msica: sua essncia e relao com poltica Orientao a objetos na modelagem conceitual: avano ou regresso Jasmine: um SGBD Orientado a Objeto Oracle 8.0: um SGBD Objeto-Relacional Um framework para o desenvolvimento de aplicaes de gerncia de faltas - Parte II

1999 0:00 29 Set 1999 0:00 29 Set 1999 0:00 6 Out 1999 0:00 6 Out 1999 0:00 13 Out 1999 0:00

15:00 1 Jan 1900 14:00 1 Jan 1900 15:00 1 Jan 1900 14:00 1 Jan 1900 15:00 1 Jan 1900 14:00

5 5 3 4 13

Tabela B.4 - Extenso da Tabela Seminrio

B.2 Fonte de Dados Local DWCOPIN


Tabela: Aluno Descrio: descreve os dados dos alunos de ps-graduao da COPIN
Atributo # Cd_Aluno Nm_Aluno Pr_Entrada Orientador Dt_Defesa_Estagio Dt_Defesa_Proposta Dt_Defesa_Dissertacao Area_Pesquisa Status Tipo Int Varchar Int Varchar Smalldatetime Smalldatetime Smalldatetime Varchar Varchar Descrio Cdigo que identifica unicamente um aluno Nome do aluno Perodo de entrada Nome do orientador Data de defesa do estgio supervisionado Data de defesa da proposta de dissertao Data de defesa da dissertao Nome da rea de concentrao Indica se o aluno MESTRE ou MESTRANDO

Tabela B.5 - Inteno da Tabela Aluno

Tabela: Disciplina Descrio: descreve os dados das disciplinas de ps-graduao da COPIN


Atributo # Cd_Disciplina Nm_Disciplina Creditos Tp_Disciplina Area_Pesquisa Tipo Int Varchar Int Int Varchar Descrio Cdigo que identifica unicamente uma disciplina Nome da disciplina Nmero de crditos Tipo da disciplina: 0 (Bsica) e 1 (Obrigatria) Nome da rea de concentrao

B.6 - Inteno da Tabela Disciplina

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

143

Tabela: Fatos Tabelas Referenciadas: Aluno (Cd_Aluno), (Cd_Tempo) e Disciplina (Cd_Disciplina) Professor (Cd_Professor), Tempo

Descrio: descreve fatos relacionados com as tabelas aluno, professor, tempo e disciplina
Atributo # *Cd_Aluno # *Cd_Professor # *Cd_Tempo # *Cd_Disciplina Resultado Ft_Artificial Tipo Int Int Int Int Char Int Descrio Cdigo que identifica unicamente um aluno Cdigo que identifica unicamente um professor Cdigo que identifica unicamente um instante no tempo Cdigo que identifica unicamente uma disciplina Conceito atribudo ao aluno com relao a uma disciplina cursada, ministrada por um certo professor, em determinado perodo Fato artificial

Tabela B.7 - Inteno da Tabela Fatos

Tabela: Professor Descrio: descreve os dados dos professores de ps-graduao da COPIN


Atributo # Cd_Professor Nm_Professor Area_Pesquisa Nm_Email Tipo Int Varchar Varchar Varchar Descrio Cdigo que identifica unicamente um professor Nome do professor Nome da rea de concentrao Endereo eletrnico

Tabela B.8 - Inteno da Tabela Professor

Tabela: Tempo Descrio: descreve as granularidades de tempo


Atributo # Cd_Tempo Semestre Ano Tipo Int Int Int Descrio Cdigo que identifica unicamente uma granularidade de tempo Indica o semestre do ano: primeiro (1) e segundo (2) Ano

Tabela B.9 - Inteno da Tabela Tempo

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

144

Tabela: Aluno
Cd_Aluno Nm_Aluno Carlos 1 Eduardo Santos Pires Juliano 2 Varella de Carvalho Marinaldo 3 Nunes da Silva Gilene 4 Fernandes Jlio Cezar 5 Oliveira Gomes Adriano 6 Wagner de A Bezerra Cristine 7 Pires da Costa Ana Isabel 8 Pinheiro da Silva 9 10 Starch Melo Andr Barbosa Rocha Ivette Kafure Giovanni Almeida Santos Marcio Farias de Souza Eduardo Jorge Edeyson Gomes Gustavo Vasconcellos Cavalcante Algeir Prazeres Sampaio Pr_Entrada Orientador Dt_Defesa_Estagio Dt_Defesa_Proposta Dt_Defesa_Dissertacao rea_Pesquisa Status Marcus Banco de 981 Costa 30 Dez 1997 0:00 16 Mar 1999 0:00 Mestrando Dados Sampaio Marcus Banco de 981 Costa 31 Jan 1997 0:00 14 Mar 1999 0:00 Mestrando Dados Sampaio 981 981 981 Ulrich Schiel Ulrich Schiel Ulrich Schiel Fatima Turnell Marcus Costa Sampaio Marcus Costa Sampaio Jacques Sauve Ulrich Schiel Bernardo Lula Jacques Sauve Marcus Costa Sampaio Marcus Costa Sampaio Marcus Costa Sampaio Francisco V Brasileiro Jose Homero F. Cavalcanti 12 Ago 1998 0:00 12 Jan 1997 0:00 21 Abr 1999 0:00 8 Mar 1999 0:00 8 Mar 1999 0:00 8 Mar 1999 0:00 Banco de Dados Banco de Dados Banco de Dados Banco de Dados Banco de Dados 12 Dez 1996 0:00 23 Mai 1999 0:00 10 Mar 1998 0:00 4 Jul 1998 0:00 Banco de Dados Mestrando Mestrando Mestrando

981

24 Set 1995 0:00

23 Mai 1999 0:00

Mestrando

991

22 Jul 1999 0:00

Mestrando

961 981 971

8 Nov 1995 0:00 22 Dez 1997 0:00 1 Nov 1996 0:00

Mestre

Redes de Mestrando Computadores Banco de Dados Interfaces HomemMaquina Mestrando

11

981

3 Mar 1995 0:00

4 Fev 1999 0:00

Mestrando

12

991

27 Abr 1999 0:00

Redes de Mestrando Computadores 1 Ago 1998 0:00 7 Jul 1999 0:00 Banco de Dados Banco de Dados Banco de Dados 4 Fev 1997 0:00 13 Set 1999 0:00 Sistemas Distribuidos Inteligencia Artificial Mestre

13

971

12 Set 1996 0:00

14

991

19 Out 1995 0:00

Mestrando

15

991

13 Mai 1994 0:00

Mestrando

16

961

7 Mar 1995 0:00

Mestre

17

961

11 Jun 1995 0:00

16 Abr 1997 0:00

17 Set 1999 0:00

Mestre

Tabela B.10 - Extenso da Tabela Aluno

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

145

Tabela: Disciplina
Cd_Disciplina 1 2 3 4 5 6 7 8 9 10 11 12 Nm_Disciplina Creditos Tp_Disciplina Banco de Dados 4 Bsica Banco de D Avanado 2 Especfica Redes de C e Protocolos 4 Bsica IA 4 Bsica Data Mining 2 Especfica Data Warehousing 2 Especfica Sistemas Especialistas 2 Especfica Projeto de I Homem-Mquina 2 Especfica Lgica Clssica 2 Bsica Redes de Petri 4 Bsica Sistemas Operacionais I 4 Bsica Sistemas Operacionais II 2 Especfica Area_Pesquisa Banco de Dados Banco de Dados Redes de Computadores Inteligncia Artificial Banco de Dados Banco de Dados Inteligncia Artificial Interface Homem-Mquina Inteligncia Artificial Redes de Petri Sistemas Distribudos Sistemas Distribudos

Tabela B.11 - Extenso da Tabela Disciplina

Tabela: Fatos
Cd_Professor Cd_Aluno Cd_Disciplina Cd_Tempo Resultado Ft_Artificial 1 1 1 37 A 1 1 1 6 38 A 1 1 2 1 37 A 1 1 2 6 38 A 1 1 3 1 37 A 1 1 3 6 38 A 1 1 4 1 37 A 1 1 4 6 38 A 1 1 5 1 37 A 1 1 6 1 37 A 1 1 6 6 38 A 1 1 7 1 39 A 1 1 8 2 33 A 1 1 8 2 34 B 1 1 8 6 34 B 1 1 10 1 35 A 1 1 10 6 36 A 1 1 12 1 39 A 1 1 13 1 35 A 1 1 13 6 36 A 1 1 14 1 39 A 1 1 15 1 39 A 1 1 16 2 33 B 1 1 16 2 34 A 1 1 16 6 34 A 1 1 17 2 33 B 1 1 17 2 34 B 1 1 17 6 34 A 1 2 1 2 38 A 1 2 3 2 38 A 1 2 4 2 38 A 1 2 5 2 38 A 1 2 6 2 38 A 1 2 10 2 36 A 1 2 13 2 36 A 1 3 9 11 37 A 1 3 12 11 39 A 1 4 9 3 37 A 1 4 12 3 39 A 1 5 1 4 37 B 1

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

146

5 5 5 5 5 6 6 7 7 7 7 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10

3 4 5 10 13 16 17 10 13 16 17 1 3 4 5 6 10 11 2 3 4 8 8 9 10 11 13 13 16 16 17 8 16 17

4 4 4 4 4 11 11 11 11 12 12 8 8 8 8 8 8 8 9 9 9 8 9 9 9 9 8 9 8 9 9 4 4 4

37 37 37 35 35 33 33 35 35 34 34 38 38 38 38 38 36 38 37 37 37 34 33 37 35 37 34 35 34 33 33 33 33 33

C B C B B B B C B B B A B B B B A A A A B B B B A A B A C C C A A A

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Tabela B.12 - Extenso da Tabela Fatos

Tabela: Professor
Cd_Professor 1 2 3 4 5 6 7 8 9 10 11 Nm_Professor Marcus Costa Sampaio Ulrich Schiel Francisco Villar Brasileiro Jacques Sauve Giuseppe Mongiovi Pedro Srgio Nicoletti Maria Izabel Cavalcanti Cabral Maria de Ftima Vieira Turnell Bernardo Lula Jnior Homero Cavalcanti Edlson Ferneda Area_Pesquisa Banco de Dados Banco de Dados Sistemas Distribudos Redes de Computadores Inteligncia Artificial Redes de Computadores Redes de Computadores Interface Homem-Mquina Interface Homem-Mquina Inteligncia Artificial Inteligncia Artificial Nm_Email sampaio@dsc.ufpb.br ulrich@dsc.ufpb.br fubica@dsc.ufpb.br jacques@dsc.ufpb.br giuseppe@dsc.ufpb.br peter@dsc.ufpb.br izabel@dsc.ufpb.br turnellm@dee.ufpb.br bernardo@dsc.ufpb.br homero@dsc.ufpb.br edilson@dsc.ufpb.br

Tabela B.13 - Extenso da Tabela Professor

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

147

Tabela: Tempo
Cd_Tempo Semestre Ano 1 1 1980 2 2 1980 3 1 1981 4 2 1981 5 1 1982 6 2 1982 7 1 1983 8 2 1983 9 1 1984 10 2 1984 11 1 1985 12 2 1985 13 1 1986 14 2 1986 15 1 1987 16 2 1987 17 1 1988 18 2 1988 19 1 1989 20 2 1989 21 1 1990 22 2 1990 23 1 1991 24 2 1991 25 1 1992 26 2 1992 27 1 1993 28 2 1993 29 1 1994 30 2 1994 31 1 1995 32 2 1995 33 1 1996 34 2 1996 35 1 1997 36 2 1997 37 1 1998 38 2 1998 39 1 1999

Tabela B.14 - Extenso da Tabela Tempo

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

148

B.3 Fonte de Dados Local SYSCOPIN


Tabela: Aluno Descrio: descreve os dados dos alunos de ps-graduao da COPIN
Atributo # Mt_Aluno Nm_Aluno Pr_Entrada Dt_Nascimento Nm_Municipio_Nasc Nm_UF_Nasc Nm_Email Nm_Endereco Nm_Complemento Nm_Bairro Nm_Municipio_End Nm_UF_End Nu_Fone Nm_Titulacao Nm_Instituicao_Origem Homepage Tipo Int Varchar Varchar Smalldatetime Varchar Char Varchar Varchar Varchar Varchar Varchar Char Int Varchar Varchar Varchar Descrio Cdigo que identifica unicamente um aluno de mestrado Nome do aluno Perodo de entrada Data de nascimento Municpio de nascimento Estado de nascimento Endereo eletrnico Endereo residencial Complemento do endereo Bairro onde reside Municpio onde reside Estado onde reside Telefone do aluno Titulao do aluno Instituio em que foi titulado Endereo da homepage

Tabela B.15 - Inteno da Tabela Aluno

Tabela: Aluno_Disciplina Tabelas Referenciadas: Aluno (Mt_Aluno) e Disciplina (Cd_Disciplina) Descrio: descreve as matrculas em disciplinas e o resultado da avaliao dos alunos
Atributo # *Mt_Aluno # *Cd_Disciplina Pr_Disciplina Conceito Situacao Tipo Int Int int Char Varchar Descrio Cdigo que identifica unicamente um aluno Cdigo que identifica unicamente uma disciplina Perodo da matrcula do aluno Conceito da disciplina Indica se Aprovado, Reprovado por Notas, Reprovado por Faltas, Trancado, Dispensado ou Matriculado

Tabela B.16 - Inteno da Tabela Aluno_Disciplina

Tabela: rea Tabela Referenciada: Curso (Cd_Curso) Descrio: descreve as reas de pesquisa do curso de ps-graduao da COPIN
Atributo # Cd_Area Nm_Area *Cd_Curso Tipo Int Varchar Int Descrio Cdigo que identifica unicamente uma rea de concentrao Nome da rea de concentrao Cdigo que identifica unicamente um curso

Tabela B.17 - Inteno da Tabela rea

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

149

Tabela: Artigo Tabela Referenciada: Area (Cd_Area) Descrio: descreve os artigos publicados
Atributo # Cd_Artigo Nm_Artigo Tp_Artigo Nm_Idioma Tp_Publicacao Nm_Publicacao Dt_Publicacao *Cd_Area Tipo Int Varchar Varchar Varchar Varchar Varchar Smalldatetime Int Descrio Cdigo que identifica unicamente um artigo Ttulo do artigo Indica se o artigo de RESUMO, de COMUNICAO ou COMPLETO Idioma em que foi publicado Tipo da publicao Nome da publicao em que o artigo encontra-se inserido Data de publicao Cdigo que identifica unicamente uma rea de concentrao

Tabela B.18 - Inteno da Tabela Artigo

Tabela: Bolsa Tabela Referenciada: Aluno (Mt_Aluno) Descrio: descreve os dados relativos s bolsas da ps-graduao da COPIN
Atributo # Cd_Bolsa Ds_Bolsa Nm_Orgao_Financiador Vl_Bolsa Dt_Inicio Dt_Termino *Mt_Aluno Tipo Int Varchar Varchar Money Smalldatetime Smalldatetime int Descrio Cdigo que identifica unicamente uma bolsa Descrio da bolsa Nome do rgo financiador Valor da bolsa Data de incio da bolsa Data de trmino da bolsa Cdigo que identifica unicamente um aluno de mestrado

Tabela B.19 - Inteno da Tabela Bolsa

Tabela: Curso Tabela Referenciada: Departamento (Cd_Departamento) Descrio: descreve as informaes sobre o curso de ps-graduao
Atributo # Cd_Curso Nm_Curso Qt_Creditos Nu_Horas *Cd_Departamento Tipo Int Varchar Int Int Int Descrio Cdigo que identifica unicamente um curso Nome do curso Quantidade mnima de crditos Carga horria do curso Cdigo que identifica unicamente um departamento

Tabela B.20 - Inteno da Tabela Curso

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

150

Tabela: Departamento Descrio: descreve as informaes sobre os departamentos que tem curso de psgraduao
Atributo # Cd_Departamento Nm_Departamento Nm_Email Nm_Instituicao Tipo Int Varchar Varchar Varchar Descrio Cdigo que identifica unicamente um departamento Nome do departamento Endereo eletrnico do departamento Nome da instituio a qual o departamento pertence

Tabela B.21 - Inteno da Tabela Departamento

Tabela: Disciplina Tabelas Referenciadas: Professor (Mt_Professor), Area (Cd_Area) e Curso (Cd_Curso) Descrio: descreve os dados relativos s disciplinas da COPIN
Atributo # Cd_Disciplina Nm_Disciplina Nu_Creditos Ds_Disciplina Tp_Disciplina *Cd_Curso *Cd_Area *Mt_Professor Tipo Int Varchar Int Varchar Varchar Int Int Int Descrio Cdigo que identifica unicamente uma disciplina Nome da disciplina Nmero de crditos Descrio da disciplina Indica se a disciplina BSICA ou ESPECFICA Cdigo que identifica unicamente um curso Cdigo que identifica unicamente uma rea de concentrao Cdigo que identifica unicamente um professor

Tabela B.22 - Inteno da Tabela Disciplina

Tabela: Professor Tabelas Referenciadas: Area (Cd_Area) e Departamento (Cd_Departamento) Descrio: descreve os dados relativos aos professores da COPIN
Atributo # Cd_Professor Nm_Professor Nm_Email *Cd_rea Tp_Professor *Cd_Departamento Tipo Int Varchar Varchar Int Varchar Int Descrio Cdigo que identifica unicamente um professor Nome do professor Endereo eletrnico Cdigo que identifica unicamente uma rea de concentrao Indica se o professor PERMANENTE, VISITANTE ou PARTICIPANTE Cdigo que identifica unicamente um departamento

Tabela B.23 - Inteno da Tabela Professor

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

151

Tabela: Tese Tabelas Referenciadas: Area (Cd_Area) e Aluno (Mt_Aluno) Descrio: descreve todas as teses da COPIN
Atributo # Cd_Tese Nm_Titulo Nm_rea_Concentracao Dt_Inicio Dt_Termino Dt_Defesa Nu_Pagina Nm_Idioma Nm_Resumo Nm_Projeto_Pesquisa *Mt_Aluno *Cd_rea Tipo Int Varchar Varchar Smalldatetime Smalldatetime Smalldatetime Int Varchar Text Varchar Int Int Descrio Cdigo que identifica unicamente um professor Nome do professor Indica se o professor permanente, visitante ou participante Endereo eletrnico Cdigo que identifica unicamente um departamento Cdigo que identifica unicamente uma rea de concentrao Nmero de pginas da tese Idioma em que a tese se encontra Resumo da tese Indica o projeto de pesquisa no qual a tese est envolvida Cdigo que identifica unicamente um aluno Cdigo que identifica unicamente a rea de pesquisa seguida pela tese

Tabela B.24 - Inteno da Tabela Tese

Tabela: Tese_Artigo Tabelas Referenciadas: Tese (Cd_Tese) e Artigo (Cd_Artigo) Descrio: descreve as publicaes realizadas
Atributo Tipo Descrio # *Cd_Tese Int Cdigo que identifica unicamente uma tese # *Cd_Artigo Int Cdigo que identifica unicamente um artigo

Tabela B.25 - Inteno da Tabela Tese_Artigo

Tabela: Tese_Professor Tabelas Referenciadas: Tese (Cd_Tese) e Professor (Cd_Professor) Descrio: descreve o tipo de participao de um professor em uma tese
Atributo # *Cd_Tese # *Cd_Professor Tp_Status_Prof Tipo Int Int Varchar Descrio Cdigo que identifica unicamente uma tese Cdigo que identifica unicamente um professor Indica se o professor ORIENTADOR ou CO-ORIENTADOR

Tabela B.26 - Inteno da Tabela Tese_Professor

Tabela: Aluno
Mt_Aluno 1 Nm_Aluno Carlos E S Pires Gilene Fernandes Andr B Rocha Adriano W de A Bezerra Antonio A Coutinho Cristine P da Costa Eduardo Jorge Raissa D Freire Edeyson Gomes Marinaldo N da Silva Starch Melo Mrcio F de Souza Ivette Kafure Algeir P Sampaio Juliano Varella Jlio C O Gomes Ana I P da Silva Giovanni A Santos Gustavo V Cavalcante Pr_Entrada 981 Dt_Nascimento 6 Jul 1975 0:00 5 Mar 1974 0:00 11 Set 1974 0:00 9 Dez 1973 0:00 15 Jan 1974 0:00 22 Mai 1976 0:00 20 Set 1973 0:00 8 Fev 1975 0:00 24 Abr 1972 0:00 5 Jan 1974 0:00 26 Mai 1973 0:00 13 Jul 1974 0:00 30 Out 1973 0:00 1 Abr 1970 0:00 5 Fev 1976 0:00 9 Jun 1974 0:00 13 Ago 1972 0:00 20 Set 1974 0:00 5 Mar 1972 0:00 Nm_Municipio_Nasc Recife Nm_UF_Nasc PE Nm_Email carlos@dsc.ufpb.br Nm_Endereco Rua Ana Firmino da Costa, 37 Rua Indios Cariris, 354 Av Rio Branco, 562 Rua Franklin Araujo, 98 Av Rodrigues Alves, 23 Av Vigario Calixto, 53 Av Rodrigues Alves, 445 Rua Alemanha, 78 Av Rodrigues Alves, 445 Av Floriano Peixoto, 87 Rua Saint Patrick, 95 Rua Pres Vargas, 78 Av Rodrigues Alves, 9879 Av Rodrigues Alves, 13 Rua Indios Cariris, 854 Rua Antenor Navarro, 223 Rua Bartolomeu Dias, 784 Rua Pedro Castro, 68 Rua Padre Manuel Dias, Apto 104 Apto 303 Apto 303 Nm_Complemento Nm_Bairro Catole Nm_Municipio_End Campina Grande Nm_UF_End PB Nu_Fone 3373508 Nm_Titulacao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Computao Bach. em Cincia da Nm_Instituicao_Origem UFPB Homepage www.dsc.ufpb.br/~carlos

981

Natal

RN

gilene@dsc.ufpb.br

Apto 103

Centro

Campina Grande

PB

93125123

UFPB

971

Campina Grande

PB

andre@dsc.ufpb.br

Prata

Campina Grande

PB

9729596

UFPB

www.dsc.ufpb.br/~andre

981

Campina Grande

PB

wagner@dsc.ufpb.br

Alto Branco Alto Branco Catole

Campina Grande

PB

9722410

UFPB

981

Joao Pessoa

PB

coutinho@dsc.ufpb.br

Campina Grande

PB

3333062

UFPB

www.dsc.ufpb.br/~coutinho

991

Recife

PE

cristine@dsc.ufpb.br

Campina Grande

PB

3311762

UFPB

www.dsc.ufpb.br/~coutinho

991

Salvador

BA

emjorge@dsc.ufpb.br

Apto 303

Prata

Campina Grande

PB

3215252

UFBA

981

Campina Grande

PB

raissa@dsc.ufpb.br

Nacoes

Campina Grande

PB

3216733

UFPB

www.dsc.ufpb.br/~raissa

991

Salvador

BA

edeyson@dsc.ufpb.br

Prata

Campina Grande

PB

3215252

UFBA

10

981

Guarabira

PB

nunes@dsc.ufpb.br

Apto 203

Centro

Campina Grande

PB

93125677

UFPB

11

981

Campina Grande

PB

starch@dsc.ufpb.br

Centenario

Campina Grande

PB

3216344

UFPB

12

971

Campina Grande

PB

marcio@dsc.ufpb.br

Alto Branco Prata

Campina Grande

PB

3216622

UFPB

13

981

Cali

CO

ivette@dsc.ufpb.br

Campina Grande

PB

3215167

UFCA

14

961

Campina Grande

PB

algeir@dsc.ufpb.br

Prata

Campina Grande

PB

3221789

UFPB

15

981

Pelotas

RS

varella@dsc.ufpb.br

Centro

Campina Grande

PB

3225123

UFPEL

16

981

Patos

PB

julio@dsc.ufpb.br

Apto 203

Centro

Campina Grande

PB

93128976

UFPB

17

961

Sousa

PB

isabel@dsc.ufpb.br

Apto 103

Jardim Paulistano Centro

Campina Grande

PB

3413457

UFPB

18

991

Esperanca

PB

giovanni@dsc.ufpb.br

Campina Grande

PB

3215568

UFPB

19

961

Campina Grande

PB

gustavo@dsc.ufpb.br

Travessa Sul

Centro

Campina Grande

PB

3216679

UFPB

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


20 Flvia E Coelho 981 12 Jul 1974 0:00 Campina Grande PB flavia@dsc.ufpb.br 45 Rua Sergipe, 12

141
Liberdade Campina Grande PB 3417819 Computao Bach. em Cincia da Computao UFPB

Tabela B.27 - Extenso da Tabela Aluno

Tabela: Aluno_Disciplina
Mt_Aluno Cd_Disciplina Pr_Disciplina Conceito Situacao 1 1 981 A Aprovado 1 2 982 A Aprovado 1 6 982 A Aprovado 1 8 982 A Aprovado 2 1 981 A Aprovado 2 2 981 A Aprovado 2 6 982 A Aprovado 2 8 982 B Aprovado 3 1 971 A Aprovado 3 2 972 A Aprovado 3 6 972 A Aprovado 3 8 972 B Aprovado 4 1 981 A Aprovado 4 2 981 A Aprovado 4 6 982 A Aprovado 4 8 982 B Aprovado 6 1 991 A Aprovado 7 1 991 A Aprovado 9 1 991 A Aprovado 10 1 981 A Aprovado 10 2 981 A Aprovado 10 6 982 A Aprovado 10 8 982 B Aprovado 11 6 981 A Aprovado 12 1 971 A Aprovado 12 2 972 A Aprovado 12 6 972 A Aprovado 12 8 972 A Aprovado 13 8 982 A Aprovado 14 1 961 B Aprovado 14 6 962 B Aprovado 14 8 962 B Aprovado 15 1 981 A Aprovado 15 6 982 A Aprovado 16 1 981 A Aprovado 16 2 981 A Aprovado 16 8 982 B Aprovado 17 1 961 B Aprovado 17 2 962 B Aprovado 17 6 962 C Aprovado 17 8 962 B Aprovado 18 1 991 A Aprovado 18 6 991 A Aprovado 19 1 961 B Aprovado 19 6 962 B Aprovado 19 8 962 C Aprovado

Tabela B.28 - Extenso da Tabela Aluno_Disciplina

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

142

Tabela: Area
Cd_Area 1 2 3 4 5 6 7 8 Nm_Area Cd_Curso Banco de Dados 1 Redes de Computadores 1 Arquiteturas Dedicadas 1 Redes de Petri 1 Interface Homem-Mquina 1 Inteligencia Artificial 1 Sistemas Distribudos 1 Software Design 1

Tabela B.29 - Extenso da Tabela rea

Tabela: Artigo
Cd_Artigo Nm_Artigo Utilizando Tcnicas de Data Mining para 1 Reconhecimento de Caractes Manuscritos Tp_Artigo Nm_Idioma Tp_Publicacao Nm_Publicacao Anais do XIV Congresso da SBBD Dt_Publicacao Cd_Area

Artigo Completo

Portugus

Congresso da SBBD

10 Set 1999 0:00

Tabela B.30 - Extenso da Tabela Artigo

Tabela: Bolsa
Cd_Bolsa Ds_Bolsa Bolsa Financiada pela 1 CAPES Bolsa Financiada pela 2 CAPES Bolsa Financiada pelo 3 CNPq Bolsa Financiada pela 4 CAPES Bolsa Financiada pela 5 CAPES Bolsa Financiada pela 6 CAPES Bolsa Financiada pela 7 CAPES Bolsa Financiada pelo 8 CNPq Bolsa Financiada pela 9 CAPES Bolsa Financiada pela 10 CAPES Bolsa Financiada pelo 11 CNPq Bolsa Financiada pela 12 CAPES Bolsa Financiada pela 13 CAPES Bolsa Financiada pelo 14 CNPq Bolsa Financiada pela 15 CAPES Nm_Orgao_Financiador Vl_Bolsa Dt_Inicio 1 Jul 1998 CAPES 723.00 0:00 1 Set 1998 CAPES 723.00 0:00 1 Mar 1997 CNPq 723.00 0:00 1 Mar 1998 CAPES 723.00 0:00 1 Mar 1998 CAPES 723.00 0:00 1 Out 1999 CAPES 723.00 0:00 1 Mar 1999 CAPES 723.00 0:00 1 Mar 1998 CNPq 723.00 0:00 1 Mar 1999 CAPES 723.00 0:00 1 Mar 1998 CAPES 723.00 0:00 1 Mar 1998 CNPq 723.00 0:00 1 Mar 1997 CAPES 723.00 0:00 1 Mar 1998 CAPES 723.00 0:00 1 Mar 1996 CNPq 723.00 0:00 1 Mar 1998 CAPES 723.00 0:00 Dt_Termino 1 Jul 2000 0:00 1 Set 2000 0:00 1 Mar 1999 0:00 1 Mar 2000 0:00 1 Mar 2000 0:00 1 Out 2001 0:00 1 Mar 2001 0:00 1 Mar 2000 0:00 1 Mar 2001 0:00 1 Mar 2000 0:00 1 Mar 2000 0:00 1 Mar 1999 0:00 1 Mar 2000 0:00 1 Mar 1998 0:00 1 Mar 2000 0:00 Mt_Aluno 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

143

16 17 18 19 20

Bolsa Financiada pela CAPES Bolsa Financiada pela CAPES Bolsa Financiada pelo CNPq Bolsa Financiada pelo CNPq Bolsa Financiada pela CAPES

CAPES CAPES CNPq CNPq CAPES

723.00 723.00 723.00 723.00 723.00

1 Mar 1998 0:00 1 Mar 1996 0:00 1 Mar 1999 0:00 1 Mar 1996 0:00 1 Mar 1998 0:00

1 Mar 2000 0:00 1 Mar 1998 0:00 1 Mar 1999 0:00 1 Mar 1998 0:00 1 Mar 2000 0:00

16 17 18 19 20

Tabela B.31 - Extenso da Tabela Bolsa

Tabela: Curso
Cd_Curso 1 2 3 Nm_Curso Qt_Creditos Nu_Horas Cd_Departamento Bach. em Cincia da Computao 180 220 1 Bach. em Engenharia Eltrica 220 280 2 Bach. em Engenharia de Minas 160 200 3

Tabela B.32 - Extenso da Tabela Curso

Tabela: Departamento
Cd_Departamento 1 2 3 4 5 Nm_Departamento DSC DEE DMG DEC DEM Nm_Email dsc@dsc.ufpb.br dee@dee.ufpb.br dmg@dmg.ufpb.br dec@dec.ufpb.br dem@dem.ufpb.br Nm_Instituicao UFPB UFPB UFPB UFPB UFPB

Tabela B.33 - Extenso da Tabela Departamento

Tabela: Disciplina
Cd_Disciplina Nm_Disciplina 1 Nu_Creditos Ds_Disciplina Conceitos de Banco de Dados 4 Bancos de Dados Conceitos Banco de Dados Avanados de 2 Avanado Bancos de Dados Redes de Conceitos de Computadores 4 Redes de e Protocolos Computadores Noes bsicas Inteligncia 4 de Inteligncia Artificial Artificial Principais Data Mining 2 tcnicas de Data Mining Principais Data 2 tcnicas de Data Warehousing Warehousing Sistemas 4 Conecitos de Tp_Disciplina Cd_Curso Cd_Area Mt_Professor Bsica 1 1 1

Especfica

Bsica

Bsica

Especfica

6 7

Especfica Bsica

1 1

1 6

1 5

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

144

Especialistas Projeto de Interfaces HomemMquina Lgica Clssica Redes de Petri Sistemas Operacionais I Sistemas Operacionais II

9 10 11

4 4 4

12

Sistemas Especialistas Estudo de interfaces de interao homemmquina Estudo geral de Lgica Clssica Noes de Redes de Petri Conceitos de Sistemas Operacionais Conceitos de Sistemas Operacionais Distribudos

Especfica

Bsica Bsica Bsica

1 1 1

6 4 7

9 14 4

Especfica

Tabela B.34 - Extenso da Tabela Disciplina

Tabela: Professor
Cd_Professor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nm_Professor Marcus C Sampaio Ulrich Schiel Francisco V Brasileiro Jacques Sauve Giuseppe Mongiovi Pedro S Nicoletti Maria I C Cabral Maria de F V Turnell Bernardo L Jnior Homero Cavalcanti Edlson Ferneda Cludio Baptista Marcelo Barros ngelo Perkusic Nm_Email Cd_Area Tp_Professor Cd_Departamento sampaio@dsc.ufpb.br 1 Permanente 1 ulrich@dsc.ufpb.br 1 Permanente 1 fubica@dsc.ufpb.br 7 Permanente 1 jacques@dsc.ufpb.br 2 Permanente 1 giuseppe@dsc.ufpb.br 6 Permanente 1 peter@dsc.ufpb.br 2 Permanente 1 izabel@dsc.ufpb.br 2 Permanente 1 turnellm@dsc.ufpb.br 5 Permanente 2 bernardo@dsc.ufpb.br 5 Permanente 1 homero@dsc.ufpb.br 6 Permanente 1 edilson@dsc.ufpb.br 6 Permanente 1 baptista@dsc.ufpb.br 1 Permanente 1 barros@dsc.ufpb.br 8 Permanente 1 angelo@dsc.ufpb.br 4 Permanente 1

Tabela B.35 - Extenso da Tabela Professor

Tabela: Tese
Cd_Tese Nm_Titulo VBDR - Uma Arquitetura Hbrida 1 para a Integrao de Mltiplos Bancos de Dados 2 3 4 5 6 7 Ttulo no definido Ttulo no definido Ttulo no definido Nm_Area_Concentracao Dt_Inicio 9 Mar 1998 0:00 9 Mar 1998 0:00 9 Mar 1997 0:00 9 Mar 1998 0:00 Dt_Termino 9 Mar 2000 0:00 9 Mar 2000 0:00 9 Dez 1999 0:00 9 Set 2000 0:00 9 Mar 2000 0:00 9 Mar 2001 0:00 9 Mar 2001 0:00 9 Set 2000 0:00 9 Mar 2001 0:00 9 Mar 2000 0:00 9 Mar 2000 0:00 9 Dez 1999 0:00 9 Mar 2000 0:00 9 Mar 1997 0:00 9 Mar 2000 0:00 Dt_Defesa Nu_Pagina Nm_Idioma Nm_Resumo Nm_Projeto_Pesquisa Mt_Aluno Cd_Area

Integrao SGBD-Web

Portugus

Interface Data Warehousing Avaliao de Interfaces

0 0 0 0 0 0

Portugus Portugus Portugus Portugus Portugus Portugus

2 3 4 5 6 7

5 1 5 4 1 1

9 10 11 12 13 14 15

Um Sistema Web9 Mar Based para Gerncia de Redes de Computadores 1998 0:00 Redes 9 Mar Ttulo no definido 1999 0:00 9 Mar Ttulo no definido 1999 0:00 Um framework para o desenvolvimento de 9 Mar Redes de Computadores aplicaes de gerncia 1998 0:00 de faltas 9 Mar Ttulo no definido 1999 0:00 9 Mar Ttulo no definido Banco de Dados 1998 0:00 Uma Metodologia para 9 Mar o Projeto de Redes Redes de Computadores 1998 0:00 Multimidia 9 Mar Ttulo no definido Data Warehousing 1997 0:00 9 Mar Ttulo no definido Interface 1998 0:00 9 Mar Ttulo no definido 1996 0:00 Um Sistema para o 9 Mar Reconhecimento de Data Mining 1998 0:00 Caracteres Manuscritos

Portugus

0 0 0 0 0 17 Set 1999 0:00 88 0

Portugus Portugus Portugus Portugus Portugus Portugus Portugus

9 10 11 12 13 14 15

1 1 2 1 5 6 1

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


16 Ttulo no definido Um Browser Personalizado para Bancos de Dados Relacionais Ttulo no definido Ttulo no definido 9 Mar 1998 0:00 Interface 9 Mar 1996 0:00 9 Mar 1999 0:00 9 Mar 1996 0:00 9 Mar 2000 0:00 9 Mar 1997 0:00 9 Mar 2001 0:00 9 Mar 1997 0:00 9 Set 2000 0:00 20 Jul 1999 0:00 0

141
Portugus 16 1

17

103

Portugus

17

18 19

0 19 Set 1999 0:00 101

Portugus Portugus

18 19

4 7

20

Mtodos para o Projeto de Redes com 9 Mar Redes de Computadores Requisitos de 1998 0:00 Confiabilidade

Portugus

20

Tabela B.36 - Extenso da Tabela Tese

Tabela: Tese_Artigo
Cd_Tese Cd_Artigo 15 1

Tabela B.37 - Extenso da Tabela Tese_Artigo

Tabela: Tese_Professor
Cd_Tese Cd_Professor Tp_Status_Prof 1 1 Orientador 2 2 Orientador 3 1 Orientador 4 8 Orientador 5 4 Orientador 6 1 Orientador 7 1 Orientador 8 4 Orientador 9 1 Orientador 10 2 Orientador 11 4 Orientador 12 1 Orientador 13 9 Orientador 14 10 Orientador 15 1 Orientador 15 5 Co-Orientador 16 2 Orientador 17 1 Orientador 18 4 Orientador 19 3 Orientador 20 4 Orientador

Tabela B.38 - Extenso da Tabela Tese_Professor

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

141

B.4 Metabanco de Dados


Tabela: Atributo
Cd_Atributo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Nm_Atributo Cd_Autor Nome_Autor E_Mail Tipo Cd_Seminario Nome_Seminario Descricao Data Horario Cd_Palestrante Cd_Aluno Nm_Aluno Pr_Entrada Orientador Dt_Defesa_Estagio Dt_Defesa_Proposta Dt_Defesa_Dissertacao Area_Pesquisa Status Cd_Disciplina Nm_Disciplina Creditos Tp_Disciplina Area_Pesquisa Cd_Aluno Cd_Professor Cd_Tempo Cd_Disciplina Ft_Artificial Resultado Cd_Professor Nm_Professor Cd_Tipo Ds_Atributo Flag_Chave_Primaria Flag_Chave_Estrangeira Cd_Tabela Cd_Atributo_Referencia 3 1 0 1 6 0 0 1 6 0 0 1 6 0 0 1 3 1 0 2 6 0 0 2 6 0 0 2 5 0 0 2 2 0 0 2 3 0 1 2 1 3 1 0 3 6 0 0 3 3 0 0 3 6 0 0 3 5 0 0 3 5 0 0 3 5 0 0 3 6 0 0 3 6 0 0 3 3 1 0 4 6 0 0 4 3 0 0 4 6 0 0 4 6 0 0 4 3 1 1 5 11 3 1 1 5 31 3 1 1 5 35 3 1 1 5 20 3 0 0 5 6 0 0 5 3 1 0 6 6 0 0 6

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 Area_Pesquisa Nm_Email Cd_Tempo Semestre Ano Mt_Aluno Nm_Aluno Pr_Entrada Dt_Nascimento Nm_Municipio_Nasc Nm_UF_Nasc Nm_Email Nm_Endereco Nm_Complemento Nm_Bairro Nm_Municipio_End Nm_UF_End Nu_Fone Nm_Titulacao Nm_Instituicao_Origem Homepage Mt_Aluno Cd_Disciplina Situacao Conceito Pr_Disciplina Cd_Area Nm_Area Cd_Curso Cd_Artigo Nm_Artigo Tp_Artigo Nm_Idioma Tp_Publicacao Nm_Publicacao Dt_Publicacao Cd_Area Cd_Bolsa Ds_Bolsa 6 6 3 3 3 3 6 6 5 6 1 6 6 6 6 6 1 3 6 6 6 3 3 6 1 3 3 6 3 3 6 6 6 6 6 5 3 3 6 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0

142
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 6 6 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 10 10 10 11 11 11 11 11 11 11 11 12 12

38 86

77

59

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 Nm_Orgao_Financiador Vl_Bolsa Dt_Inicio Dt_Termino Mt_Aluno Cd_Curso Nm_Curso Qt_Creditos Nu_Horas Cd_Departamento Cd_Departamento Nm_Departamento Nm_Email Nm_Instituicao Cd_Disciplina Nm_Disciplina Nu_Creditos Ds_Disciplina Tp_Disciplina Cd_Curso Cd_Area Mt_Professor Cd_Professor Nm_Professor Tp_Professor Nm_Email Cd_Departamento Cd_Area Cd_Tese Nm_Titulo Nm_rea_Concentracao Dt_Inicio Dt_Termino Dt_Defesa Nu_Pagina Nm_Idioma Nm_Resumo Nm_Projeto_Pesquisa Mt_Aluno 6 4 5 5 3 3 6 3 3 3 3 6 6 6 3 6 3 6 6 3 3 3 3 6 6 6 3 3 3 6 6 5 5 5 3 6 6 6 3 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

143
0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 12 12 12 12 12 13 13 13 13 13 14 14 14 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 17

38

82

77 59 94

82 59

38

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


111 112 113 114 115 116 Cd_Area Cd_Artigo Cd_Tese Cd_Professor Cd_Tese Tp_Status_Prof 3 3 3 3 3 6 0 1 1 1 1 0

144
1 1 1 1 1 0 17 18 18 19 19 19 59 62 100 94 100

Tabela B.39 - Extenso da Tabela Atributo

Tabela: Atributo_Dado
Cd_Atributo Cd_Dado 12 1 12 15 12 41 12 43 12 45 12 47 12 49 12 51 12 53 12 55 12 57 12 59 21 18 21 20 21 22 21 24 21 26 21 28 21 30 21 32 21 34 21 36 21 38 21 40 32 61 32 63 32 65 32 67 32 69 32 71 39 2 39 16 39 42 39 44 39 46 39 48 39 50 39 52 39 54 39 56 39 58 39 60 87 17 87 19 87 21 87 23 87 25 87 27 87 29 87 31 87 33 87 35 87 37 87 39 95 62 95 64 95 66

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados

141

95 95 95

68 70 72

Tabela B.40 - Extenso da Tabela Atributo_Dado

Tabela: Atributo_Virtual
Cd_Atributo_Virtual 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Nm_Atributo_Virtual Cd_Aluno Nm_Aluno Nm_Email Cd_Seminario Nome_Seminario Descricao Data Horario Cd_Aluno Pr_Entrada Orientador Dt_Defesa_Estagio Dt_Defesa_Proposta Dt_Defesa_Dissertacao Area_Pesquisa Status Cd_Disciplina Nm_Disciplina Creditos Tp_Disciplina Area_Pesquisa Cd_Aluno Cd_Professor Cd_Tempo Cd_Disciplina Ft_Artificial Resultado Cd_Professor Nm_Professor Area_Pesquisa Nm_Email Cd_Tempo Semestre Ano Dt_Nascimento Cd_Tipo Ds_Atributo_Virtual Flag_Chave_Primaria Flag_Chave_Estrangeira Cd_Tabela_Virtual Cd_Atributo_Virtual_Referencia 3 1 0 2 6 0 0 2 6 0 0 2 3 1 0 1 6 0 0 1 6 0 0 1 5 0 0 1 2 0 0 1 3 0 1 1 1 3 0 0 2 6 0 0 2 5 0 0 2 5 0 0 2 5 0 0 2 6 0 0 2 6 0 0 2 3 1 0 3 6 0 0 3 3 0 0 3 6 0 0 3 6 0 0 3 3 1 1 4 1 3 1 1 4 28 3 1 1 4 32 3 1 1 4 17 3 0 0 4 6 0 0 4 3 1 0 5 6 0 0 5 6 0 0 5 6 0 0 5 3 1 0 6 3 0 0 6 3 0 0 6 5 0 0 2

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 Nm_Municipio_Nasc Nm_UF_Nasc Nm_Endereco Nm_Complemento Nm_Bairro Nm_Municipio_End Nm_UF_End Nu_Fone Nm_Titulacao Nm_Instituicao_Origem Homepage Mt_Aluno Cd_Disciplina Situacao Conceito Pr_Disciplina Cd_Area Nm_Area Cd_Curso Cd_Artigo Nm_Artigo Tp_Artigo Nm_Idioma Tp_Publicacao Nm_Publicacao Dt_Publicacao Cd_Area Cd_Bolsa Ds_Bolsa Nm_Orgao_Financiador Vl_Bolsa Dt_Inicio Dt_Termino Mt_Aluno Cd_Curso Nm_Curso Qt_Creditos Nu_Horas Cd_Departamento 6 1 6 6 6 6 1 3 6 6 6 3 3 6 1 3 3 6 3 3 6 6 6 6 6 5 3 3 6 6 4 5 5 3 3 6 3 3 3 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0

141
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 2 2 2 2 2 2 2 2 2 2 2 7 7 7 7 7 8 8 8 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 11 11 11 11 11

1 17

70

52

75

Estudo de Caso Esquemas das Fontes de Dados Locais e do Metabanco de Dados


75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 Cd_Departamento Nm_Departamento Nm_Email Nm_Instituicao Ds_Disciplina Cd_Curso Cd_Area Mt_Professor Tp_Professor Cd_Departamento Cd_Area Cd_Tese Nm_Titulo Nm_Area_Concentracao Dt_Inicio Dt_Termino Dt_Defesa Nu_Pagina Nm_Idioma Nm_Resumo Nm_Projeto_Pesquisa Mt_Aluno Cd_Area Cd_Artigo Cd_Tese Cd_Professor Cd_Tese Tp_Status_Prof Cd_Professor 3 6 6 6 6 3 3 3 6 3 3 3 6 6 5 5 5 3 6 6 6 3 3 3 3 3 3 6 3 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0

142
0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 12 12 12 12 3 3 3 3 5 5 5 13 13 13 13 13 13 13 13 13 13 13 13 14 14 15 15 15 1

70 52 28 75 52

1 52 55 86 28 86 28

Tabela B.41 - Extenso da Tabela Atributo_Virtual

Tabela: Atrib_Virt_Mapeado_Atributo
Cd_Atributo_Virtual Cd_Atributo 4 5 5 6 6 7 7 8 8 9 9 10 1 1 1 11 1 38 2 2 2 12 2 39 10 13 10 40 11 14 12 15 13 16 14 17 15 18 16 19 17 20 17 86 18 21 18 87 19 22 19 88 20 23 20 90 21 24 22 25 23 26 24 27 25 28 26 29 27 30 28 1 28 31 28 94 29 2 29 32 29 95 30 33 31 3 31 34 31 97 32 35 33 36 34 37 35 41 36 42 37 43 3 3 3 44 38 45 39 46 40 47 41 48 42 49

Estudo de Caso

12

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 89 91 92 93 96 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 10

Estudo de Caso

13

103 4 5 6 7 8 9 103 1 1 1 2 2 2 10 10 11 12 13 14 15 16 17 17 18 18 19 19 20 20 21 22 23 24 25 26 27 28 28 28 29 29 29 30 31 31 31 32 33 34 35 36 37 3 3 38 39 40 41 42 43

10 5 6 7 8 9 10 10 1 11 38 2 12 39 13 40 14 15 16 17 18 19 20 86 21 87 22 88 23 90 24 25 26 27 28 29 30 1 31 94 2 32 95 33 3 34 97 35 36 37 41 42 43 3 44 45 46 47 48 49 50

Estudo de Caso

14

44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 89 91 92 93 96 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 10

Estudo de Caso

15

Tabela B.42 - Extenso da Tabela Atrib_Virt_Mapeado_Atributo

Tabela: Banco
Cd_Banco 1 2 3 Nm_Banco Cd_Gerenciador BDSEMINAR 2 DWCOPIN 2 SYSCOPIN 2

Tabela B.43 - Extenso da Tabela Banco

Tabela: Consulta
Cd_Consulta Nm_Consulta 0 Dados Elementares Ds_Consulta Esta consulta recupera o nome e a rea de pesquisa do Professor Marcus Costa Sampaio Esta consulta recupera ttulo, data e horrio dos seminrios apresentados pelo Professor Marcus Costa Sampaio Esta consulta recupera a quantidade de disciplinas ministradas pelo Professor Marcus Costa Sampaio, na Copin, nos ltimos dois anos Esta consulta recupera a quantidade de orientandos do Professor Marcus Costa Sampaio Esta consulta recupera o ttulo da tese e nome do aluno das teses defendidas de 1997 at o ano atual Nm_Criador Dt_Criacao Administrador 25 Mai 2000 0:00 Administrador 25 Mai 2000 0:00 Administrador 26 Mai 2000 0:00

Seminrios Anuais

Quantidade de disciplinas ministradas na Copin nos ltimos dois anos Nmero atual de orientandos Relao das teses com respectivos alunos orientados do ano de 97 at o ano atual Dados Elementares

Administrador 26 Mai 2000 0:00 Administrador 26 Mai 2000 0:00

10

Esta consulta recupera nome, nmero de crditos, descrio, tipo e rea de pesquisa da disciplina Banco de Dados Quantidade de vezes em Esta consulta recupera a auantidade de que a disciplina Banco de vezes em que a disciplina Banco de Dados foi oferecida desde o Dados foi oferecida desde o ano de 1997 ano de 1997 Mdia de alunos que Esta consulta recupera a mdia de alunos cursaram a disciplina desde que cursaram a disciplina desde o ano de o ano de 1997 1997 Dados Elementares Esta consulta recupera nome, e-mail, titulao, instituio de origens e datas de defesa de estgio, proposta de dissertao e dissertao do aluno Carlos Eduardo Santos Pires Dados da Bolsa e Esta consulta recupera alguns atributos Orientador relativos bolsa do aluno Carlos Eduardo Santos Pires, alm do nome de seu orientador Seminrios Anuais Esta consulta recupera ttulo, data e horrio dos seminrios apresentados pelo Aluno Carlos Eduardo Santos Pires

Administrador 26 Mai 2000 0:00 Administrador 26 Mai 2000 0:00

Administrador 26 Mai 2000 0:00 Administrador 26 Mai 2000 0:00

Administrador 26 Mai 2000 0:00

Administrador 29 Mai 2000 0:00

Tabela B.44 - Extenso da Tabela Consulta

Estudo de Caso

16

Tabela: Dado
Cd_Dado 1 2 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 Nm_Dado Carlos Eduardo Santos Pires Carlos E S Pires Juliano Varella de Carvalho Juliano Varella Banco de Dados Banco de Dados Banco de Dados Avanado Banco de D Avanado Redes de Computadores e Protocolos Redes de C e Protocolos Inteligncia Artificial IA Data Mining Data Mining Data Warehousing Data Warehousing Sistemas Especialistas Sistemas Especialistas Projeto de Interfaces Homem-Mquina Projeto de I Homem-Mquina Lgica Clssica Lgica Clssica Redes de Petri Redes de Petri Sistemas Operacionais I Sistemas Operacionais I Sistemas Operacionais II Sistemas Operacionais II Andr Barbosa Rocha Andr B Rocha Adriano Wagner de Arajo Bezerra Adriano W de A Bezerra Cristine Pires da Costa Cristine P da Costa Marinaldo Nunes da Silva Marinaldo N da Silva Mrcio Farias de Souza Mrcio F de Souza Algeir Prazeres Sampaio Algeir P Sampaio Jlio Cezar Oliveira Gomes Jlio C O Gomes Ana Isabel Pinheiro da Silva Ana I P da Silva Giovanni Almeida Santos Giovanni A Santos Gustavo Vasconcellos Cavalcante Gustavo V Cavalcante Marcus Costa Sampaio Marcus C Sampaio Francisco Villar Brasileiro Francisco V Brasileiro Pedro Srgio Nicoletti Pedro S Nicoletti Maria Izabel Cavalcanti Cabral Maria l C Cabral Maria de Ftima Vieira Turnell Maria de F V Turnell

Estudo de Caso

17

71 72

Bernardo Lula Jnior Bernardo L Jnior

Tabela B.45 - Extenso da Tabela Dado

Tabela: Dado_Mapeado_Dado
Cd_Dado Cd_Dado_Mapeado 2 1 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 50 49 52 51 54 53 56 55 58 57 60 59 62 61 64 63 66 65 68 67 70 69 72 71

Tabela B.46 - Extenso da Tabela Dado_Mapeado_Dado

Tabela: Esquema_Global
Cd_Esquema_Global Nm_Esquema_Global Ds_Esquema_Global 1 COPIN Integra os BDs BDSEMINAR, DWCOPIN e SYSCOPIN

Tabela B.47 - Extenso da Tabela Esquema_Global

Estudo de Caso

18

Tabela: Esq_Glob_Possui_Tab_Virt
Cd_Esquema_Global Cd_Tabela_Virtual 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15

Tabela B.48 - Extenso da Tabela Esq_Glob_Possui_Tab_Virt

Tabela: Gerenciador
Cd_Gerenciador 1 2 3 Nm_Gerenciador Interbase SQL Server Oracle

Tabela B.49 - Extenso da Tabela Gerenciador

Tabela: Relatrio
Cd_Relatorio Nm_Relatorio 1 Relatrio do Professor Marcus Costa Sampaio Ds_Relatorio Este relatrio exibe dados importantes do professor Marcus Costa Sampaio com relao as suas atividades acadmicas no curso de Mestrado em informtica da UFPB/CCT/Copin Relatrio da Disciplina Banco Este relatrio exibe dados Disciplina Banco de Dados importantes a respeito da de Dados disciplina Banco de Dados, oferecida pela UFPB/CCT/Copin Relatrio do Dados do aluno Este relatrio exibe dados Aluno Carlos Carlos Eduardo importantes a respeito do aluno Eduardo Santos Santos Pires Carlos Eduardo Santos Pires, do Pires (Copin) curso de Mestrado em Informtica da UFPB/CCT/Copin Nm_Assunto Atividades acadmicas do Professor Marcus Costa Sampaio Nm_Criador Dt_Criacao Administrador 25 Mai 2000 0:00

Administrador 25 Mai 2000 0:00

Administrador 25 Mai 2000 0:00

Tabela B.50 - Extenso da Tabela Relatrio

Estudo de Caso

19

Tabela: Subconsulta
Cd_Subconsulta Vl_Subconsulta Cd_Consulta Cd_Banco 1 SELECT Professor.Nm_Professor, Area.Nm_Area FROM Professor, 0 2 Area WHERE Professor.Nm_Professor LIKE '%Marcus%' AND Professor.Cd_Area = Area.Cd_Area 2 SELECT Seminario.Nome_Seminario, Seminario.Data, 1 0 Seminario.Horario, Autor.Nome_Autor FROM Seminario, Autor WHERE Autor.Nome_Autor LIKE '%Marcus%' AND Seminario.Cd_Palestrante = Autor.Cd_Autor ORDER BY Seminario.Nome_Seminario 3 SELECT Professor.Nm_Professor, COUNT(Fatos.Ft_Artificial) FROM 2 1 Professor, Fatos, Tempo, Disciplina WHERE Professor.Nm_Professor LIKE '%Marcus%' AND Tempo.Ano >= 1997 AND Fatos.Cd_Tempo = Tempo.Cd_Tempo AND Fatos.Cd_Professor = Professor.Cd_Professor AND F 4 SELECT Professor.Nm_Professor FROM Professor, Disciplina 2 2 WHERE Professor.Nm_Professor LIKE '%Marcus%' AND Professor.Cd_Professor = Disciplina.Mt_Professor GROUP BY Professor.Nm_Professor 5 SELECT Aluno.Orientador, COUNT(Aluno.Cd_Aluno) FROM Aluno 4 1 WHERE Aluno.Orientador LIKE '%Marcus%' AND Aluno.Status = 'Mestrando' GROUP BY Aluno.Orientador 6 SELECT Aluno.Nm_Aluno FROM Aluno, Professor, Tempo, Fatos 5 1 WHERE Professor.Nm_Professor LIKE '%Marcus%' AND Tempo.Ano >= 1997 AND Tempo.Ano <= 2000 AND Aluno.Cd_Aluno = Fatos.Cd_Aluno AND Fatos.Cd_Tempo = Tempo.Cd_Tempo AND Professor.Cd_Professor = Fatos.C 7 SELECT Tese.Nm_Titulo, Aluno.Nm_Aluno FROM Tese, Aluno, 5 2 Professor, Tese_Professor WHERE Professor.Nm_Professor LIKE '%Marcus%' AND Tese_Professor.Tp_Status_Prof = 'Orientador' AND Tese_Professor.Cd_Tese = Tese.Cd_Tese AND Tese.Mt_Aluno = Aluno.Mt_Aluno AN 8 SELECT Disciplina.Nm_Disciplina, Disciplina.Creditos, 6 1 Disciplina.Tp_Disciplina, Disciplina.Area_Pesquisa FROM Disciplina WHERE Disciplina.Nm_Disciplina = 'Banco de Dados' 9 SELECT Disciplina.Nm_Disciplina, Disciplina.Nu_Creditos, 6 2 Disciplina.Ds_Disciplina, Disciplina.Tp_Disciplina FROM Disciplina WHERE Disciplina.Nm_Disciplina = 'Banco de Dados' 10 SELECT Disciplina.Nm_Disciplina, COUNT(Fatos.Ft_Artificial) 7 1 FROM Disciplina, Fatos, Tempo WHERE Disciplina.Nm_Disciplina = 'Banco de Dados' AND Tempo.Ano >= 1997 AND Fatos.Cd_Disciplina = Disciplina.Cd_Disciplina AND Fatos.Cd_Tempo = Tempo.Cd_Tempo GROUP 11 SELECT Disciplina.Nm_Disciplina, AVG(Fatos.Ft_Artificial) FROM 8 1 Disciplina, Fatos, Tempo WHERE Disciplina.Nm_Disciplina = 'Banco de Dados' AND Tempo.Ano >= 1997 AND Fatos.Cd_Tempo = Tempo.Cd_Tempo AND Fatos.Cd_Disciplina = Disciplina.Cd_Disciplina GROUP B 12 SELECT Aluno.Nm_Aluno, Aluno.Dt_Defesa_Estagio, 9 1 Aluno.Dt_Defesa_Proposta, Aluno.Dt_Defesa_Dissertacao FROM Aluno WHERE Aluno.Nm_Aluno LIKE '%Carlos E%' 13 SELECT Aluno.Nm_Aluno, Aluno.Nm_Email, Aluno.Nm_Titulacao, 9 2 Aluno.Nm_Instituicao_Origem FROM Aluno WHERE Aluno.Nm_Aluno LIKE '%Carlos E%' 14 SELECT Aluno.Nm_Aluno, Aluno.Orientador FROM Aluno WHERE 10 1 Aluno.Nm_Aluno LIKE '%Carlos E%' 15 SELECT Aluno.Nm_Aluno, Bolsa.Ds_Bolsa, 10 2 Bolsa.Nm_Orgao_Financiador, Bolsa.Dt_Inicio, Bolsa.Dt_Termino FROM Aluno, Bolsa WHERE Aluno.Nm_Aluno LIKE '%Carlos E%' AND Bolsa.Mt_Aluno = Aluno.Mt_Aluno 16 SELECT Seminario.Nome_Seminario, Seminario.Data, 11 0 Seminario.Horario, Autor.Nome_Autor FROM Seminario, Autor

Estudo de Caso

20

WHERE Autor.Nome_Autor LIKE '%Carlos E%' AND Seminario.Cd_Palestrante = Autor.Cd_Autor ORDER BY Seminario.Nome_Seminario

Tabela B.51 - Extenso da Tabela Subconsulta

Tabela: Tabela
Cd_Tabela 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Nm_Tabela Cd_Banco Autor 1 Seminario 1 Aluno 2 Disciplina 2 Fatos 2 Professor 2 Tempo 2 Aluno 3 Aluno_Disciplina 3 Area 3 Artigo 3 Bolsa 3 Curso 3 Departamento 3 Disciplina 3 Professor 3 Tese 3 Tese_Artigo 3 Tese_Professor 3

Tabela B.52 - Extenso da Tabela Tabela

Tabela: Tabela_Virtual
Cd_Tabela_Virtual 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Nm_Tabela_Virtual Ds_Tabela_Virtual Seminario Aluno Disciplina Fatos Professor Tempo Aluno_Disciplina Area Artigo Bolsa Curso Departamento Tese Tese_Artigo Tese_Professor

Tabela B.53 - Extenso da Tabela Tabela_Virtual

Estudo de Caso

21

Tabela: Tab_Virt_Mapeada_Tabela
Cd_Tabela_Virtual Cd_Tabela 1 2 2 1 2 3 2 8 3 4 3 15 4 5 5 1 5 6 5 16 6 7 7 9 8 10 9 11 10 12 11 13 12 14 13 17 14 18 15 19

Tabela B.54 - Extenso da Tabela Tab_Virt_Mapeada_Tabela

Tabela: Tab_Virt_Referencia_Tab_Virt
Cd_Tabela_Virtual_Referencia Cd_Tabela_Virtual_Referenciada 1 2 1 5 3 5 3 8 3 11 4 2 4 3 4 5 4 6 5 8 5 12 7 2 7 3 8 11 9 8 10 2 11 12 13 2 13 8 14 9 14 13 15 5 15 13

Tabela B.55 - Extenso da Tabela Tab_Virt_Referencia_Tab_Virt

Estudo de Caso

22

Tabela: Tipo
Cd_Tipo 1 2 3 4 5 6 7 Nm_Tipo Char Datetime Int Money Smalldatetime Varchar Bit

Tabela B.56 - Extenso da Tabela Tipo

Das könnte Ihnen auch gefallen