4.2.1 Módulo de Pré-processamento - Projetos

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA
CURSO DE SISTEMAS DE INFORMAÇÃO
Ferramenta de conversão de esquemas XML Schema para esquemas
relacionais
Acadêmica: Crislane Spricigo da Silva
Orientador: Ronaldo dos Santos Mello, Dr.
Florianópolis, SC.
Novembro de 2007
1
SUMÁRIO
1.
INTRODUÇÃO....................................................................................................2
2.
XML E XML SCHEMA......................................................................................3
2.1
Visão Geral sobre XML....................................................................................3
2.2
Linguagem XML Schema.................................................................................4
3.
TRABALHOS RELACIONADOS.....................................................................6
3.1
Mapeamento de definições XML Schema para SQL:1999..............................6
3.2
Geração automática de esquemas relacionais a partir de esquemas XML.......7
4.
FERRAMENTA XRCONVERSION.................................................................8
4.1
Introdução.........................................................................................................8
4.2
Módulos............................................................................................................9
4.2.1
Módulo de Pré-processamento......................................................................9
4.2.2
Módulo de Mapeamento..............................................................................10
4.3
5.
Tecnologias.....................................................................................................11
BIBLIOGRAFIA................................................................................................12
2
1. INTRODUÇÃO
Atualmente muitos sistemas heterogêneos necessitam interagir entre si, com trocas de
dados comuns que levam a informação aos usuários.
Com a finalidade de tornar
eficiente o processo de troca de dados entre aplicações distintas, a W3C definiu a
linguagem XML como formato padrão para comunicação na web. É verificado que no
mesmo contexto, o modelo de dados mais utilizado nas corporações é o relacional. Este
por sua vez, possui uma maturidade que foi adquirida durante muitos anos de testes e
aprimoramentos.
Dessa forma, é claramente verificada a necessidade de interoperabilidade de dados XML
com o modelo relacional. Para que isso exista, deve ser feito um mapeamento entre os
modelos, e este trabalho é uma proposta dessa importante tarefa.
Baseada na proposta de [CRM05], está sendo desenvolvido como trabalho de conclusão
de curso, a ferramenta XRConversion, que possui como entrada uma estrutura em XML
Schema, e fornecerá como saída um script SQL para criação de tabelas no modelo
relacional. Assim, boa parte da necessidade tecnológica exposta acima pode ser
contemplada com esta ferramenta.
3
2. XML E XML SCHEMA
2.1 Visão Geral sobre XML
A W3C (World Wide Web Consortium) é um consórcio de empresas de tecnologia
que desenvolve padrões para a criação e a interpretação dos conteúdos para a Web.
Os padrões estipulados pela W3C permitem uma comunicação eficiente dos
serviços na rede, uma vez que os desenvolvedores façam uso destes padrões
[WKP07]. Entre estes, encontra-se a XML (eXtensible Markup Language) , que é
uma linguagem de marcação usada para descrição de informações.
Os documentos XML sao baseados em dois principais conceitos de estruturação:
elementos e atributos.
A figura 1 mostra um exemplo de um documento XML. De forma semelhante ao
html, os elementos são identificados por tags de inicio e tags de fim. Os elementos
complexos sao formados por outros elementos dentro da hierarquia e os elementos
simples contêm valores de dados.
Figura 1 - exemplo de Documento XML – [XML07]
4
É possível observar que a representação textual do XML é correspondente a uma
estrutura de dados em árvore. Na representação de uma árvore, os nodos internos
são os elementos complexos e os nodos folha representam elementos simples.
Dessa forma, os documentos XML são chamados de Modelo de Árvore ou
Hierárquico.
É possível caracterizar os documentos XML dentro de três categorias:
1)
Documentos XML centrados em dados: é baseado em itens de pequenos dados,
seguindo uma estrutura específica. Costumam ser extraídos a partir de banco de
dados estruturados e são comunicados na Web.
2)
Documentos XML centrados em documentos: são documentos com grande
quantidade de texto, como artigos de jornais ou livros. Normalmente não
apresentam dados estruturados.
3)
Documentos XML híbridos: são os documentos que podem possuir partes com
dados estruturados e outras partes predominantemente textuais ou não-estruturados
[ELM05].
Quando um documento XML está em conformidade com um esquema DTD ou com
XML Schema, é considerado que o documento possui dados estruturados. Se o
documento XML permite a entrada de dados sem definição no esquema, é
considerado que ele possui dados semi-estruturados, também chamado de XML sem
esquema (schemaless)[ELM05].
2.2 Linguagem XML SCHEMA
XML schema é um padrão para especificar documentos XML. É baseado nas
mesmas regras de sintaxe dos documentos XML comuns, ou seja, também é
baseado no modelo de dados de árvore, com elementos e atributos como os
principais conceitos de estruturação. Um esquema definido em XML schema –
chamado XSD define a estrutura de um XML como: seus elementos, a ordem de
5
apresentação destes, restrições de conteúdo, atributos, grupos reusáveis, novos tipos
de dados, ou seja, todas as regras que não permitam um documento com
ambigüidade ou mal formado. [CRM05]
Por ser um esquema mais elaborado, garante a ocorrência de dados estruturados
utilizando conceitos adicionais de banco de dados e de modelos de objeto, tais como
chaves, referências e identificadores[ELM05].
Um esquema XSD é formado por um elemento raiz chamado schema. Este
elemento pode ter vários elementos filhos. O esquema é dividido em dois grupos:

grupo de gerenciamento: encontram-se sempre no início do documento,
gerenciam a definição do esquema quando ele está distribuído em vários arquivos.

grupo de componentes de construção do modelo: são os elementos que compõem
o documento propriamente dito.
Neste trabalho o enfoque será dado ao grupo de componentes de construção do
modelo, será proposta a conversão destes elementos para o esquema relacional.
3. TRABALHOS RELACIONADOS
3.1 Mapeamento de definições XML Schema para SQL:1999
O objetivo da abordagem de [MAR05] é prover um algoritmo para o mapeamento
das construções que apresentam uso mais comum. O resultado do mapeamento é um
esquema objeto-relacional.
Para o início do trabalho, foram feitos levantamentos de conteúdo a partir de 199
esquemas XSD’s obtidos da web, a fim de identificar as construções efetivamente
usadas na prática, e para em seguida identificar mapeamentos eficientes para
esquemas SQL:1999.
A partir de um conjunto de esquemas XSD, foram realizados testes estatísticos para
verificar quais construções XML Schema são mais utilizadas. A partir deste ponto,
foram elaborados mapeamentos específicos para os mesmos.
6
O início da geração de esquemas ocorre com o armazenamento dos dados das
instâncias
válidas em relação ao esquema referido. Para cada XSD, deve ser
mapeado um esquema SQL:1999 correspondente, de forma a ser possível armazenar
os dados do XML extraído sem perdas estruturais significativas.
Como principais características desta proposta, têm-se:
-
Apenas XSD’s válidos são considerados – subentende-se que já passou por um
módulo de validação independente desta abordagem;
-
Apenas XSD’s que não fazem uso de construções contidas em outros esquemas
podem ser mapeadas;
-
São desconsiderados esquemas que utilizam espaços de nomes diferentes do
padrão;
-
Não são contemplados esquemas que possam gerar conteúdo misto, que
apresentam recursão e que usam recursos de derivação para a criação de tipos.
3.2 Geração automática de esquemas relacionais a partir de esquemas XML
A ferramenta desenvolvida com o nome de XRMap é uma proposta de mapeamento
automático usando regras pré-definidas [STE06].
Leva-se em consideração a integridade referencial dos dados através da
identificação de relacionamentos no esquema XML e posteriormente é gerado o
conjunto de chaves primárias e chaves estrangeiras no modelo relacional.
A ferramenta possui duas formas de mapeamento: uma totalmente automática e
outra com intervenção do usuário. A primeira etapa pela qual o XSD passa é uma
função de pré-processamento. Em seguida, é criado um XML de metadados da
seguinte forma:
7
-
Cada elemento do XSD é mapeado como um elemento TABLE, seu nome é
definido em um atributo chamado NAME;
-
Cada elemento filho é mapeado como um COLUMN, com atributos NAME e
TYPE.
A etapa seguinte é o mapeamento deste XML de metadados para o esquema
relacional.
Em caso de ter sido escolhido o modo automático, o XRMap decide quais colunas
serão chaves primárias e estrangeiras, de acordo com a cardinalidade dos elementos.
Isto é feito com base no elemento CARDINALITY criado dentro do XML de
metadados.
Quando é optado pelo mapeamento com intervenção do usuário, o usuário define
quais chaves primárias e estrangeiras devem ser criadas durante o mapeamento. Isto
é feito através da especificação dos elementos KEY e KEYREF no XSD de entrada
da ferramenta. No final do mapeamento, a ferramente XRMap cria um script SQL
com as cláusulas para criação das tabelas.
4 FERRAMENTA XRCONVERSION
4.1 Introdução
Como proposta para facilitar a comunicação de dados dos ambientes computacionais que
utilizam XML, com as estruturas providas pelo modelo relacional, foi escolhido
desenvolver a ferramenta em questão, chamada XRConversion.
As vantagens que esta ferramenta proporciona são diversas, abaixo seguem algumas:
-
Possibilita a integração de dados através da definição de protocolos XML para
transferência de dados entre banco de dados relacionais;
-
Gera redução de custos nos projetos, pois reduz o impacto na transformação de
dados entre sistemas, evitando o retrabalho na manutenção;
-
Proporciona o reaproveitamento das estruturas de banco de dados legadas, uma vez
que os modelos relacionais continuam sendo os mais estáveis e performáticos. Com
8
isso, novamente há a redução de custos, pois é desnecessária a aquisição de um
novo SGBD.
O mapeamento é feito a nível lógico e foi elaborado para que chegue a uma solução mais
abstrata e flexível possível, com isso, permite ao usuário que aplique seus conhecimentos
para obter um modelo físico mais otimizado para o seu SGBD relacional. Quando há
situações de mapeamento que a ferramenta possui mais de uma possibilidade de decisão, é
questionado ao usuário qual decisão ele deseja tomar. Esta comunicação com o usuário é
feita através de uma caixa de diálogos da interface gráfica.
4.2 Módulos
Para que seja feito um tratamento eficiente no esquema XSD de entrada, a ferramenta foi
dividida em módulos, deixando as tarefas independentes e bem definidas.
4.2.1 Módulo de Pré-processamento
Este módulo consiste em adequar o esquema XSD de entrada para uma melhor forma de
tratamento e leitura pelas regras de mapeamento. Visa a redução de complexidade na
aplicação do algoritmo.
As alterações realizadas por este módulo são:
-
Incorporação de conteúdo externo no mesmo esquema, quando há referência a outro
arquivo no grupo de gerenciamento;
-
Conversão de grupos de substituição para a tag choice;
-
Substituição de definições chamadas extension pelo próprio conteúdo a ser
extendido;
-
Eliminação de referências.
4.2.2 Módulo de mapeamento
Depois de pré-processado, o esquema é lido pelo módulo de mapeamento. Neste módulo, o
algoritmo de conversão varre o esquema e identifica seus elementos e suas possíveis
correspondências no modelo relacional. Caso seja necessário a intervenção do usuário, é
9
disparado uma ação para a interface gráfica questionar qual decisão deve ser tomada, e em
seguida o processamento continua de onde parou.
A definição em alto nível do algoritmo é a seguinte:
Figura 2 – algoritmo de conversão [CRM04].
-
Utilizando a recursão, o algoritmo de conversão lê o XSD o pré-processado;
-
Para cada elemento global encontrado no XSD, é executado o procedimento
TrataElemento, também recursivo, passando como parâmetro o elemento global;
-
O procedimento TrataElemento identifica o tipo de elemento do parâmetro
recebido e encaminha uma regra de mapeamento para o tipo identificado. Neste
momento, o TrataElemento verifica a existência de atributos e aplica as regras de
mapeamento para os atributos. Por último, verifica se há sub-elementos e em caso
positivo, o TrataElemento chama ele mesmo, passando como parâmetro o subelemento.
No esquema relacional gerado, as colunas que foram mapeadas a partir de elementos ou
atributos indicados com opcionais, devem poder assumir valores nulos (padrão para
atributos no modelo relacional) e para aqueles indicados como obrigatórios, as colunas não
podem assumir valores nulos.
Como saída, a ferramenta vai gerar um script SQL para a criação das tabelas.
4.3 Tecnologias
10
Para implementar as regras de mapeamento já definidas no trabalho de [CRM05], foi
escolhido a linguagem de programação JAVA/JSE na sua versão 6.0 [SUN07].
Foram encontradas diversas bibliotecas, conhecidas como API’s externas à linguagem
JAVA, que manipulam dados XML. Foi escolhido trabalhar com a API JAXP (JAVA API
for XML Processing) na sua versão 1.4.2 que contempla funcionalidades direcionadas ao
tema deste trabalho [JAX07].
O ambiente de desenvolvimento escolhido foi o Oracle JDeveloper versão 10, o qual tem
auxiliado satisfatoriamente na implementação das rotinas e da interface gráfica [ORA07].
Figura 3 – Tela principal da ferramenta XRConversion.
11
BIBLIOGRAFIA
[ELM05] ELMASRI, R.; NAVATHE S.B. Sistemas de banco de dados. São Paulo:
Addison Wesley, 2005.
[WKP07] W3C. Disponível em: http://pt.wikipedia.org/wiki/W3C. 2007. Acessado em 2
de novembro de 2007.
[CRM05] MAURICIO, C.R.M. Uma proposta de Mapeamento do Modelo XML
Schema para o Modelo Relacional – disponível em http://www.grupobd.inf.ufsc.br,
2007.
[MAR05] MARTINS, Patrícia; LAENDER, Alberto H. F. Mapeamento de
definições
XML Schema para SQL:1999. Departamento de Ciências da Computação –
Universidade
Federal
de
Minas
Gerais.
Disponível
em
http://www.sbbd-
sbes2005.ufu.br/arquivos/artigo-07-novo_Martins.pdf, 2005. Acessado em 10 de
novembro de 2007.
[STE06] VIAPIANA, Stevan F.; DORNELES, Carina F. Geração automática de
esquemas relacionais a partir de esquemas XML. Instituto de Ciências Exatas e
Geociências
–
Universidade
de
Passo
Fundo(UPF).
Disponível
em
http://ccet.ucs.br/erbd2007/artigos/26119.pdf, 2006. Acessado em: 10 de novembro de
2007.
[SUN07] JAVA TECHNOLOGY. Disponível em: http://java.sun.com/, 2007. Acessado
em 12 de setembro de 2007.
[JAX07] JAXP 1.4.2. Disponível em: http://jaxp.dev.java.net/1.4, 2007. Acessado em 17
de setembro de 2007.
[ORA07] Oracle Jdeveloper 10. Disponível em http://www.oracle.com, 2007. Acessado
em 10 de março de 2007.
Download