Beruflich Dokumente
Kultur Dokumente
rea de Concentrao :
LINHA DE PESQUISA:
CINCIA DA COMPUTAO SISTEMAS DE INFORMAO E BANCOS DE DADOS PROF. DR. MARCUS COSTA SAMPAIO
Orientador :
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
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.
s fantsticas Ana Lcia e Vera, pelo carinho e pacincia com que atendem aos alunos da Copin.
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 5 6
Captulo 2
Abordagens e Tecnologias para Integrao de Informaes de Mltiplas Fontes de Dados 7
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
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
Decises Planos
Supervisores e Executivos
Operaes
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.
Introduo
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.
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.
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).
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".
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
Site B
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.
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.
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.
14
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
"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.
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.
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.
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.
1 2
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.
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).
20
a necessria flexibilidade esperada pelos usurios de EIS. O processamento OLAP tornou-se ento a alma do EIS.
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.
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:
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.
24
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"
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:
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.
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.
Como desvantagens deste enfoque, podemos apontar: complexidade de se criar e manter o DW;
28
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.
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).
30
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.
31
HTTP Segunda Camada Combinador de Resultados Pginas Web Gerente de Metadado Metaban co de Software de Definio de Integrador
L V D C
ODBC
Terceira Camada
Fonte de
Fonte de
...
Fonte de
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
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.
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
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
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.
36
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
Tabela Nome Semntica TB2 ST4 Atributos Nome Tipo Chave Estrangeira Referncia Semntica AT5 TP1 SA10 AT6 TP3 SA11 Tabela 3.6 Tabela TB2
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
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
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
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.
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).
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.
43
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.
44
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.
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
46
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.
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
Fonte
...
Fonte
INTERN ET
HTTP
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
Transforma dor de
Metaba nco de
Seletor de Fontes
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
BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento
52
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
Armazena informaes sobre os departamentos da companhia Tipo Chave Estrangeira Inteiro Char Inteiro Referncia Semntica Cdigo do Departamento Nome do Departamento Nmero do Telefone
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
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
BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento
53
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
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
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
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
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
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
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
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
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
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} -
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
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
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
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
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
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
BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento
61
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.
4
Transforma dor de Metaba nco de
3
Coletor de5 Fontes Estimador de Fontes
7 6
Seletor de Fontes
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
...
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.
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
Conforme podemos observar na Figura 4.5, os atributos virtuais a serem selecionados so 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
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,
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
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
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
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.
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).
A prxima etapa de a definio de ordenaes. Ordenaremos nosso conjuntoresposta final pelo nome do departamento, como se pode observar na Figura 4.11.
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).
Para finalizar, necessrio definir algumas informaes sobre a consulta, como: ttulo, descrio e nome do usurio (Figura 4.13).
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, },
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
Operador = =
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
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
BDRV: Um Sistema Integrador de Bancos de Dados Relacionais - Viso Geral de Seu Funcionamento
79
Como estamos interessados apenas nos empregados do departamento de Informtica, devemos estabelecer um filtro no atributo virtual
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).
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,
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
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
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
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
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
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
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
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.
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.
93
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
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).
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: 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: 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: 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
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
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: 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: 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
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: 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: 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: 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
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: 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: 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
98
IDC
Gerente de
L V D C
Combinador de
Integrado r
Pginas Web
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
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.
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.
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.
100
101
Nm_Tabela_Global
De acordo com o exemplo, o UDC seleciona as tabelas virtuais: Empregado, Departamento, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto e Projeto.
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
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 (".").
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
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,
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
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.
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:
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
Continuando com o nosso exemplo, a consulta final ao BDV Organizao gerada pela IDC :
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
109
{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
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.
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.
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
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
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.
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
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
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
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
Os componentes do Integrador, a serem descritos a seguir, so: Analisador de Consulta; Coletor de Fontes; Estimador de Fontes; Seletor de Fontes;
115
Transformador de Consultas.
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
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.
116
Lista
de
Agrupamentos:
formada
por
"strings"
do
tipo
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.
117
Projeto
Nm_Projeto
Tabela 5.39 - Resultado Produzido pelo Algoritmo de coleta de atributos e tabelas virtuais
O resultado produzido pelo algoritmo com relao ao nosso pode ser visto nas tabelas a seguir:
118
Nome da Tabela Nome do Atributo Virtual Virtual Empregado Empregado Nm_Empregado Cargo
Selecionado
Funo de Agregao
3 4
Projeto Departamento
Nm_Projeto Nm_Departamento
Filtro ndice do Atributo Virtual Operador Constante 4 = Informtica Tabela 5.41 - Filtros: Resultado Produzido Pelo Algoritmo de Coleta de Filtros
119
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
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
121
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
122
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.
123
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.
124
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
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:
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.
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
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
128
Entrada:
Estrutura de dados Fontes.
Sada:
Preenchimento dos campos fonte, porcentagem e subconjunto, referentes estrutura de dados Estatstica.
129
130
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
131
Entrada:
Estrutura de dados Estatstica.
Sada:
Preenchimento do campo selecionada, referente estrutura de dados Estatstica.
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
Entrada:
Estrutura de dados Consulta; Estrutura de dados Filtro; Estrutura de dados Juno; Estrutura de dados Estatstica.
Sada:
133
134
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
135
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.
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
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:
138
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).
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
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:
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:
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
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.
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
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.
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.
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.
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
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
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.
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
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.
Estudo de Caso
16
Finalmente, o stimo passo simplesmente fornecer algumas informaes em relao consulta, conforme podemos observar na Figura 6.6.
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.
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
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.
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
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
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
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: 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
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
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
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
Mestrando
991
Mestrando
Mestre
11
981
Mestrando
12
991
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
14
991
Mestrando
15
991
Mestrando
16
961
Mestre
17
961
Mestre
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: 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
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: 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
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
148
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: 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
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: 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: 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
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: 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: 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
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: 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: 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: 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
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
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
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
141
Liberdade Campina Grande PB 3417819 Computao Bach. em Cincia da Computao UFPB
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
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: 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
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
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
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: 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: 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: 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
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
1 1 1
6 4 7
9 14 4
Especfica
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: 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
0 0 0 0 0 0
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
9 10 11 12 13 14 15
1 1 2 1 5 6 1
141
Portugus 16 1
17
103
Portugus
17
18 19
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: Tese_Artigo
Cd_Tese Cd_Artigo 15 1
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
141
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
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
144
1 1 1 1 1 0 17 18 18 19 19 19 59 62 100 94 100
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
141
95 95 95
68 70 72
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
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
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: 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
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
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: Banco
Cd_Banco 1 2 3 Nm_Banco Cd_Gerenciador BDSEMINAR 2 DWCOPIN 2 SYSCOPIN 2
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
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
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
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: Esquema_Global
Cd_Esquema_Global Nm_Esquema_Global Ds_Esquema_Global 1 COPIN Integra os BDs BDSEMINAR, DWCOPIN e SYSCOPIN
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: Gerenciador
Cd_Gerenciador 1 2 3 Nm_Gerenciador Interbase SQL Server Oracle
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
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: 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: 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
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: 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
Estudo de Caso
22
Tabela: Tipo
Cd_Tipo 1 2 3 4 5 6 7 Nm_Tipo Char Datetime Int Money Smalldatetime Varchar Bit