Desenvolvimento - XML

O uso do XML na integração de Banco de Dados Relacionais

Este artigo visa mostrar como se pode utilizar o padrão XML na integração de Dados de Bancos Relacionais.

por Eduardo Feltrin Marques



Obs: Este artigo faz parte do projeto de conclusão de curso de Sistemas de Informação do autor.

Eduardo Feltrin Marques Aglaê Pereira Zaupa

Universidade do Oeste Paulista (UNOESTE)-

FIPP (Faculdade de Informática de Presidente Prudente)

feltrin@fipp.unoeste.br aglae@unoeste.br

RESUMO. A necessidade da troca de dados advindos de diferentes fontes vêem crescendo relativamente, justamente pelo grande tráfego de informação que é gerado tanto em sistemas convencionais como web. Tais dados, usualmente gerados por pessoas, são escritos de várias maneiras, sendo que, em alguns casos, um mesmo objeto do mundo real pode ser representado de várias formas. O objetivo da integração de dados é permitir o acesso integrado a várias fontes de informação heterogêneas e independentes, através de uma visão global.

Com a especificação do padrão XML, o mesmo passou a ser utilizado para intercâmbio de dados, uma vez que é capaz de agregar a seu conteúdo informações que o descrevem(metadados), possibilitando assim a representação de dados que não poderiam ser representadas através do modelo relacional utilizado pela maioria dos SGBDs. Com o padrão XML é possível então a criação de visões materializadas dos dados armazenados em um SGBD local e utilizar esta visão para os mais variados fins, por isso o XML (eXtensible Markup Language) vem se caracterizando como um padrão de troca e integração de dados, de forma que, os sistemas de integração de dados a têm utilizado como modelo comum.

Este artigo visa mostrar como se pode utilizar o padrão XML na integração de Dados de Bancos Relacionais

1- INTRODUÇÃO

A XML (eXtensible Markup Language, ou Linguagem Extensível de Marcação) foi criada em 1996, por especialistas do World Wide Web Consortium (W3C), órgão de regulamentação dos padrões utilizados na internet. Ela fornece um formato estruturado para descrição de dados e foi criada como um subconjunto simplificado do padrão SGML (Standard Generalized Markup Language, ou Linguagem Padrão de Marcação Generalizada).

Características de flexibilidade e portabilidade vêm fazendo com que, nos últimos anos, a XML seja aceita como um padrão para representação, intercâmbio e manipulação de dados em aplicações para as mais diversas áreas de negócios. Representação de dados em aplicações de gerenciamento de conteúdo, aplicações de transações bancárias e de publicação de conteúdo em intranets são alguns exemplos de uso da XML.

O crescimento na utilização da XML levou a um aumento significativo no volume de dados nesse formato que são armazenados, transportados e recuperados por aplicações no mundo todo. Um exemplo que ilustra essa nova demanda é a troca de dados entre dois sistemas de bancos de dados diferentes, usando documentos XML para o intercâmbio dos dados.

Essa nova realidade faz surgir novos questionamentos a respeito de onde e como armazenar esses dados, e qual a melhor maneira de integrar as tecnologias já existentes de sistemas de bancos de dados (principalmente no modelo relacional) com a XML. Também surgiram novas tecnologias para armazenamento de XML a serem consideradas, como os bancos de dados nativos de XML.

Esse trabalho de pesquisa apresenta um panorama das formas mais adotadas atualmente para a integração de dados de diversas bases relacionais em um mesmo local no formato XML.

O capítulo 2 traz um breve histórico da XML, a definição do que é a XML, e expõe alguns conceitos básicos sobre ela.

O capítulo 3 mostra algumas técnicas de integração de dados de diversas bases relacionais em um documento XML.

2- XML

O XML é uma linguagem derivada da SGML e foi idealizada por Jon Bosak, engenheiro da Sun Microsystems. O autor era conhecedor e usuário de SGML e apresentou ao W3Consortium, sua idéia de explorar o SGML em aplicações voltadas para internet. Em 1996 foi criado o XML, inicialmente como uma versão simplificada da SGML e em fevereiro de 1998, o XML tornou-se uma especificação formal, reconhecida pela W3C.

Segundo a W3 Consortium, dados semi-estruturados são dados dispostos em representações rígidas, sujeitas a regras e a restrições impostas pelo esquema que os criou. Programas que produzem tais dados os armazenam em disco, para que possam ser utilizados em formato binário ou texto.

Os dados semi-estruturados representam hoje um componente importante de ambientes heterogêneos como a internet e o padrão XML, por permitir a criação de uma marcação flexível, aceita bem variações na estrutura características desse tipo de dado.

Tabela 1 – Exemplo de um texto livre e o seu correspondente XML

2.1 - Documentos XML

Um documento XML é um texto (em formato Unicode) com tags de marcação (markup tags) e outras informações. Os documentos XML são sensíveis à letras maiúsculas e minúsculas. Um documento XML é bem formatado quando segue algumas regras básicas. Tais regras são mais simples do que para documentos HTML e permitem que os dados sejam lidos e expostos sem nenhuma descrição externa ou conhecimento do sentido dos dados XML. Documentos bem estruturados:
- tem casamentos das tags de início e fim

- as tags de elemento tem que ser apropriadamente posicionadas

Existem 6 tipos de itens de marcação que podem ocorrer no XML:
- Elementos

- Referências a entidades

- Comentários

- Instruções de processamento

- Seções marcadas

- Tipos de documentos

Elementos : São a mais comum forma de marcação. Delimitados pelos sinais de menor e maior, a maioria dos elementos identificam a natureza do conteúdo que envolvem, alguns elementos podem ser vazios, neste caso eles não têm conteúdo.


Referências a Entidades: A fim de introduzir a marcação em um documento, alguns documentos foram reservados para identificar o início da marcação. O sinal de menor, < por exemplo, identifica o início de uma marca de inicio ou término. Em XML, entidades são usadas para representar estes caracteres especiais. As entidades também são usadas para referenciar um texto freqüentemente repetido ou alterado e incluí-lo no conteúdo de arquivos externos. Cada entidade deve ter um nome único.


Comentários: Comentários iniciam com <!-- e terminam com -->. Os comentários podem conter qualquer dado, exceto a literal "--". Você pode colocar comentários entre marcas em qualquer lugar em seu documento. Comentários não fazem parte de um conteúdo textual de um documento XML. Um processador XML não é preciso para reconhecê-los na aplicação.


Instruções de Processamento: Instruções de processamento (PIs) são formas de fornecer informações a uma aplicação. Assim como os comentários, elas não são textualmente parte de um documento XML, mas o processador XML é necessário para reconhecê-las na aplicação.


Seções Marcadas: Em um documento, uma seção CDATA instrui o analisador para ignorar a maioria dos caracteres de marcação. Considere um código-fonte em um documento XML. Ele pode conter caracteres que o analisador XML iria normalmente reconhecer como marcação (< e &, por exemplo). Para prevenir isto, uma seção CDATA pode ser usada.


2.1.1 - Documentos Bem-formados

São documentos que atendem à sintaxe XML usada dentro do documento. Por exemplo, em casos de não incluir marcas de fechamento ao inserir elementos no documento, esquecer de incluir a declaração de documento XML no início do documento, se incluir caracteres que não possam ser analisados sintaticamente ou sejam inválidos, você não possuirá um documento XML bem-formado.

Documentos bem-formados são na realidade, mais do que simples documentos que seguem a sintaxe XML. Além disso, os considerados bem-formados devem atender às seguintes condições:
- Nenhum atributo pode aparecer mais do que uma vez em uma única marca de início;

- Não pode incluir referências a entidades externas em um atributo de string;

- Deve-se declarar todas as entidades exceto aquelas incluídas como parte da linguagem XML;

- Não pode se referir a uma entidade binária no corpo do conteúdo;

- Não pode criar entidades de texto ou de parâmetros recursivas seja direta, seja indiretamente;

- As entidades paramétricas devem ser declaradas antes para que se possam usá-las em um documento;

- Quaisquer marcas não - vazias devem ser aninhadas adequadamente;

- O nome na marca de fim de um elemento deve coincidir com o tipo de elemento da marca de início;

- Não podemos incluir um (<) no texto substitutivo de qualquer entidade;

2.1.2 - Documentos Válidos

Um documento bem-formado não é válido a menos que ele contenha uma DTD apropriada. O documento também precisa obedecer as restrições dessa declaração.
- Uma descrição das regras estruturais que o documento deve seguir;

- Uma lista de recursos externos ou entidades externas que criem qualquer para específica do documento;

- Quaisquer declarações dos recursos internos ou entidades internas;

- Quaisquer notações ou recursos não-XML que devem ser enumerados no documento;

- Listas de qualquer recurso não-XML que possam ser encontradas no documento.

2.2 – Linguagens de definição de esquemas

Algumas abordagens para definição de estruturas para documentos XML bastantes conhecidas são DTD (Document Type Definition) e XML Schema.

2.2.1 – DTD


Comumente, atribui-se à uma DTD a responsabilidade do uso de uma linguagem oficial para delimitar a estrutura e os possíveis valores nos documentos XML. Basicamente uma DTD define um vocabulário comum que documentos xml referenciados devem obedecer.

Complexo é um tipo que define a estrutura de um elemento, características dos sub-elementos, atributos, cardinalidade dos sub-elementos e obrigatoriedade dos atributos.

3- INTEGRAÇÃO DE DADOS

Um dos principais requisitos para a integração de sistemas de informações é a existência de um mecanismo que possa mediar e compatibilizar a troca de informações entre sistemas que utilizam diferentes formas de representações. As novas tecnologias associadas a linguagem Extensible Markup Language (XML) possibilitam o desenvolvimento de estruturas de mediação que atendem a este requisito. Integrar diversas fontes heterogêneas de dados é um desafio que a anos vem fomentando pesquisas e surgimento de novos padrões a fim de tornar transparente o acesso a estas fontes para os usuários e desenvolvedores de aplicações [Fer02].

Este artigo tem a finalidade de mostrar uma técnica usada para integrar diversas bases de dados relacionais em uma única base XML.

Para realizar tal operação é necessária a utilização de uma técnica apropriada que faça essa integração de dados de tal forma que não seja perdida ou deixada de lado nenhuma informação relevante contida em qualquer uma das bases de dados que serão integradas.

3.1 – CASAMENTO DE ESQUEMAS

A tarefa de casar esquemas, independentemente da técnica utilizada, pode ser vista como uma generalização de uma operação fundamental, chamada casamento (Match). Essa operação recebe como argumentos dois esquemas e produz um conjunto de casamentos entre elementos desses esquemas. Considerando-se, por exemplo, a existência de dois esquemas, S e T, sendo S composto por um conjunto de elementos s1, s2.....sn e T composto por t1, t2.....tn, um casamento s1 ? t1 é um valor que indica o grau de similaridade entre esses dois elementos. Normalmente este valor está contido no intervalo [0; 1], onde 1 representa o maior grau de similaridade possível. As informações nesta seção foram retiradas de [Mer07].

Para efeitos de classificação, considera-se que o casamento pode ser implementado de diferentes maneiras, envolvendo o uso de um conjunto de algoritmos de casamento ou casadores (matchers). A forma como os algoritmos são utilizados permite imaginar a solução do problema em dois níveis. No primeiro, são considerados os casadores individuais, ou seja, apenas um algoritmo é aplicado. No segundo, diversos algoritmos individuais são combinados, pelo uso de uma das seguintes alternativas:

  • Utilização de diferentes tipos de estratégias (por exemplo, busca por igualdade de nomes ou tipos) em um casador híbrido;
  • Combinação dos resultados dos casadores individuais em um casador composto.
    Instância versus esquema: as abordagens de casamento podem considerar dados das instâncias ou somente dos esquemas;
  • Elemento versus estrutura: os casamentos podem ser feitos considerando-se apenas elementos atômicos ou então estruturas complexas compreendendo diversos desses elementos;
  • Linguagem versus restrição: um casador pode usar uma abordagem baseada em lingüística (nomes de atributos, por exemplo) ou em restrições, tais como chaves e relacionamentos;
  • Cardinalidade: o processo de casamento pode resultar no casamento de um ou mais elementos de um esquema com um ou mais elementos do outro esquema;
  • Informações auxiliares: além das informações contidas em cada esquema, algumas abordagens utilizam estruturas auxiliares, tais como dicionários, esquemas globais, decisões tomadas em processos de casamento anteriores e intervenção do usuário.
  • O processo de casamento de esquemas possui duas funções importantes, uma é definir como os esquemas a serem casados interagem com os algoritmos de casamento e a outra é estabelecer critérios a serem usados no processo de casamento propriamente dito. A figura 9 mostra a visão geral do processo de casamento.

    Figura 9 – Visão Geral do Processo de Casamento

    O processo de casamento de esquema é dividido em três etapas:

  • Conversão de Esquemas: o usuário interage com o sistema fornecendo os esquemas que ele deseja que sejam casados. Estes esquemas estão em seu formato original, e precisam ser transformados em uma representação comum para que os casadores possam compreendê-lo. Esta representação comum, ou esquema canônico, é composto por um conjunto de nós e arcos conectando estes nós. Cada nó do esquema canônico possui um valor que o identifica exclusivamente dentro do grafo a que ele pertence. Os nós tabela de um esquema relacional são identificados simplesmente pelo seu nome, já os nós atributos do esquema relacional são identificados pela concatenação dos seus nomes com o nome da tabela a que eles pertencem.
    i; nj ; simij), onde ni é um nó atômico XML, nj é um nó atômico relacional e simij é a similaridade obtida para o par. Os casadores são executados em seqüência, sendo que o resultado da execução de um casador é uma combinação das similaridades por ele computadas e das similaridades computadas pelo casador anterior.
  • Filtro dos Resultados: tem por objetivo eliminar casamentos com base em alguma evidência que os caracteriza como casamentos incorretos. Um dos filtros utilizados envolve restrições de cardinalidade. Considera-se neste processo que os casamentos entre os esquemas possuem cardinalidade local e global 1:1, ou seja, um nó de um esquema pode ser casado com apenas um nó de outro esquema. A restrição de cardinalidade 1:1 funciona da seguinte forma: dando-se as opções de casamento (n1; n2; sim12) e (n1; n6; sim16), pode-se eliminar a opção que apresentar a menor similaridade para n1.
  • Os esquemas XML e relacional são representados nesta técnica como grafos acíclicos. Os casadores usam estes grafos para realizar as comparações entre os nós de ambas as representações. A Figura 10 mostra a descrição de um esquema relacional, juntamente com o grafo gerado para ele.


    Figura 10 – Esquema Canonico Relacional

    A Figura 11 mostra a descrição de um esquema xml, juntamente com o grafo gerado para ele.


    Figura 11 – Esquema Canonico XML


    3.1.1 – TÉCNICAS DE CASAMENTO LINGÜISTICO

    Um casador lingüístico possui um algoritmo de reconhecimento dos caracteres em comum entre duas cadeias, e uma métrica que permite computar a similaridade com base nos caracteres em comum.

    A técnica apresentada para o casamento lingüístico visa combater uma deficiência encontrada nas demais técnicas existentes. Essa deficiência advém de casos onde as cadeias comparadas são compostas por termos, e a maior diferença entre elas é a ordem em que os seus termos aparecem. Além disso, os termos em cada cadeia não são separados por espaços em branco. Esse tipo de cadeia pode ser encontrado tanto em esquemas XML como em esquemas relacionais. Em ambos os esquemas, os nomes dos conceitos não podem conter espaços em branco.

    Existem técnicas que possibilitam inferir a similaridade entre duas cadeias verificando os termos que elas têm em comum, onde um termo é uma seqüência de caracteres adjacentes. São as técnicas baseadas em termos. Sabendo quais são os termos das duas cadeias, podem-se utilizar diversas métricas que computem a similaridade com base nos termos em comum (Dice, Ledit, Overlap, Jaccard, ...). Nessas técnicas, a identificação dos termos é trivial: cada conjunto de caracteres separado por espaço - ou seja - uma palavra - é um termo.

    A métrica a ser utilizada deve ser baseada em termos, uma vez que o objetivo do algoritmo é fornecer termos em comum entre duas cadeias. No entanto, as métricas existentes apresentam problemas quando aplicadas ao problema em questão, principalmente pela forma como os termos são formados.


    PADRÃO EQUIV: Os nomes dos elementos XML coincidem com os nomes das colunas a qual eles se referem. Ambos os nomes representam o mesmo conceito e são escritos exatamente da mesma forma.

  • PADRÃO TABELA: Alternativa de projeto considera que os nomes de elementos atômicos assumem nomes de tabelas do banco. Essa situação pode ocorrer quando se está modelando um elemento XML que represente a coluna mais representativa de uma tabela (se existir uma coluna mais representativa).
  • PADRÃO CONCAT: O nome de um elemento atômico é uma concatenação do nome da coluna que ele representa com o nome da tabela desta coluna.
  • Convém ressaltar que podem existir mais formas de determinar como os nomes dos elementos XML são formados a partir de um esquema relacional. O estudo sobre formas alternativas de nomenclatura pode ser alvo de trabalhos futuros. Dado um par de elementos que se deseja casar, verifica-se a ocorrência de um dos três padrões de nomenclatura expostos acima. Essa verificação envolve o uso de técnicas de casamento lingüístico que retornam um valor de similaridade para cada um dos padrões analisados. O padrão com o maior valor de similaridade é escolhido vencedor, e esse valor de similaridade é atribuído ao par dos elementos casados.

    Assim, para tornar o algoritmo de casamento aqui descrito genérico, admite-se que várias técnicas lingüísticas possam ser aplicadas. O agrupamento dos resultados de cada técnica pode seguir duas abordagens distintas: a abordagem otimista e a pessimista: Na abordagem otimista, o maior valor de similaridade entre as técnicas é escolhido, e os demais são descartados. Esta abordagem é considerada otimista, pois ela procura maximizar o valor de similaridade. Já na abordagem pessimista o menor valor de similaridade entre as técnicas é escolhido.

    A principal diferença entre as abordagens otimista e pessimista é que com o uso da primeira alternativa os casamentos possuem graus de similaridade sempre maiores, ou pelo menos iguais, aos casamentos obtidos com o uso da segunda alternativa. Uma conseqüência disso é que a primeira abordagem tende a apresentar similaridades altas para casamentos incorretos. Por outro lado, a abordagem otimista pode descartar casamentos corretos que não atingiram um valor alto de similaridade.

    3.1.2.2 – CASADOR DE RELAÇÃO

    Este casador estrutural faz parte de um trabalho inicial na exploração das estruturas dos esquemas para a inferência de similaridades nos nós atômicos. Este casador utiliza a noção de nós relacionados: todo nó atômico ni possui um conjunto não vazio de nós relacionados. Os nós relacionados à ni são todos aqueles que são direta ou indiretamente conectados a ele.

    Este casador parte da suposição de que a similaridade entre um par (ni; nj) é proporcional à similaridade entre os nós relacionados de ni e os nós relacionados de nj. O cálculo da similaridade é efetuado usando uma técnica de casamento lingüístico, podendo ser a citada acima.

    Como este casador não analisa as propriedades dos nós atômicos propriamente ditos, em alguns casos podem ocorrer conflitos na análise. Porém, esses efeitos são previsíveis e até mesmo esperados. Recomenda-se que este casador não seja usado de forma isolada, mas em combinação com outro(s) casador(es), principalmente casador(es) que analise(m) as propriedades dos nós atômicos.

    
        
    

    3.1.2.3 – CASADORES DE ATRAÇÃO

    O conceito de atração considera que para todo par de nós casados, sendo cada um deles provenientes de um esquema, são gerados dois campos de atração, um em cada esquema. Todos os nós contidos em cada campo são chamados de nós internos, Os nós que geraram os campos de atração são chamados de nós origem.

    Os campos de atração atuam no sentido de atribuir similaridades entre os nós internos de um campo e os nós internos do outro campo. Em outras palavras, parte-se da suposição de que os nós internos possuem um grau de similaridade entre si semelhante à similaridade dos nós que geraram os campos. Cada campo de atração possui uma intensidade, que é equivalente às similaridades dos nós origem. Ou seja, quanto maior for a similaridade entre os nós origem, maior é a intensidade do campo. Considera-se que essa similaridade já tenha sido computada por um outro casador.

    Casadores de atração pode se dividir em Casador de Vizinhança (atribui valores de similaridade considerando a noção de vizinhança entre os nós) e Casador de Cardinalidade (atribuem valores de similaridade considerando a noção de dependência multivalorada entre os nós)

    3.1.3 – IMPLEMENTAÇÃO DOS CASADORES ESTRUTURAIS

    O objetivo dos casadores estruturais é descobrir se os casamentos retornados são corretos, ou seja, se os casamentos retornados são realmente aqueles que um usuário especialista escolheria com base na sua própria experiência. Os resultados dos experimentos são traduzidos por gráficos de revocação e precisão. Valores de similaridade são abstraídos dos gráficos, já que a preocupação principal consiste em verificar quantos casamentos corretos estão dentro do grupo dos casamentosb verdadeiros e positivos, e não em verificar os valores de similaridade propriamente ditos. Para os casos de baixa eficácia dos algoritmos, é feita uma análise dos casos não resolvidos de modo a compreender as limitações dos algoritmos propostos.

    A utilização dessa técnica se faz da seguinte maneira: são definidos os dois esquemas que se deseja casar e um conjunto de algoritmos de casamento que será aplicado. Os resultados de cada experimento são apresentados na forma de uma tabela que contém os pares de elementos casados e um valor de similaridade para o par. Cada experimento compreende a execução de uma série de etapas, que obedecem a seguinte ordem:

    3.1.3.1 – EXECUÇÃO DOS CASADORES

    Na aplicação dessa técnica, os quatro casadores propostos são executados, sendo que a sua execução obedece a uma determinada ordem. A seqüência de execução é mostrada na figura 12. A seqüência não precisa ser necessariamente esta, desde que os dois primeiros algoritmos sejam executados antes dos dois últimos. Essa restrição deve ser obedecida porque os dois últimos algoritmos utilizam similaridades pré-computadas para inferir novos valores de similaridades. Para diferenciar os últimos casadores dos primeiros no tocante ao uso de similaridades pré-computadas, os dois casadores iniciais são referenciados por casadores de base, enquanto os últimos casadores são referenciados por casadores de atração.


    Figura 12 – Seqüência de execução de casadores

    3.1.3.2 – COMBINAÇÃO DAS SIMILARIDADES

    Outra questão importante é a combinação das similaridades de cada um dos casadores. Os valores de similaridade computados por um casador devem ser combinados com os valores de similaridade computados pelo casador anterior (se houver). A combinação é dada pela média ponderada das similaridades computadas por dois algoritmos adjacentes.

    3.1.3.3 – FILTRO DOS RESULTADOS

    Somente são apresentados para o usuário os casamentos cuja similaridade tenha passado por uma etapa de filtro. Três formas de filtro são usadas:

    · FILTRO DE TIPAGEM DOS DADOS: Considera a eliminação de casamentos cujos membros do par tenham tipos de dados distintos. Os tipos de dados de um esquema relacional podem ser automaticamente obtidos através da análise dos metadados do esquema. Já esquemas DTDs não definem tipos de dados, de modo que o trabalho de atribuição dos tipos de dados dos elementos teve que ser feita manualmente. Uma forma de obterem-se automaticamente os tipos de dados para elementos de uma DTD envolve análise das instâncias de documentos XML. Trabalhos futuros podem implementar essa solução para agilizar o processo de casamento. Igualmente, o uso alternativo de XML Schema resolve a questão, já que este tipo de esquema permite a definição dos tipos de dados dos elementos.
    · FILTRO DE LIMIAR: Elimina casamentos cujo valor de similaridade seja inferior a um limiar pré-estabelecido. Os experimentos realizados [Mer07] usam um valor de limiar igual a 0.7.

    4- CONCLUSÃO

    A integração de dados é um assunto que desperta grande interesse não só da comunidade acadêmica, mas também de diversos outros setores. A necessidade das organizações por lucratividade e resultados exige o usufruto da tecnologia de ponta para a diminuição de custos, a agilidade dos seus processos e o encurtamento das fronteiras. Para isso, uma forma de aperfeiçoar seus processos é a utilização da XML como meio de interoperabilidade e integração de sistemas e/ou de dados, conforme demonstrado neste artigo.

    A técnica de Casamento de Esquemas que foi apresentada neste artigo, esta voltada somente para casamento entre bancos relacionais e documentos XML, com o armazenamento desses documentos em um servidor nativo XML.

    A técnica proposta possui formas inovadoras de analisar as estruturas dos esquemas para inferir a similaridade, visto que as técnicas existentes são limitadas, uma vez que elas ou são projetadas para casar esquemas desenvolvidos no mesmo modelo, como por exemplo, o casamento de dois esquemas relacionais, ou são técnicas genéricas que se aplicam aos diversos modelos, nesse ultimo caso, as técnicas não são adequadas porque elas não exploram as particularidades existentes entre os esquemas para calcular a similaridade.

    REFERÊNCIAS BIBLIOGRAFICAS

    [Fer02] Ferrandin, Mauri. Integrando Banco de Dados Heterogêneos através do Padrão XML. Dissertação de Mestrado. Florianópolis Outubro 2002.

    [Mau05] Mauricio, Cláudio R. Marqueto. Uma Proposta de Mapeamento do Modelo XML Schema para o Modelo Relacional. Dissertação de Mestrado Florianópolis Agosto 2005. p.94-120

    [Mat02] Mattoso, Marta; Vieira, Humberto; Gonçalves, Fátima Cristina. XQUERY, XML SCHEMA E XSL. Relatório Técnico Rio de Janeiro Julho 2002.

    [Mer07] Mergen, Sérgio Luiz Sardi. Casamento de Esquemas XML e Esquemas Relacionais. Dissertação de Mestrado. Porto Alegre. Março 2007.

    [W3c] W3 CONSORTIUM. Extensible Markup Language (XML): activity statement. Disponível em: <http://www.w3c.org.>. Acesso em: 12 de março 2007.

    [W3s07] XML Tutorial. Disponível em http://www.w3schools.com/xml/ Acesso em 24 de fevereiro de 2007.