Paralelamente à evolução do suporte dos sistemas gerenciadores de bancos de dados (SGBDs) comerciais no armazenamento de documentos XML, observa-se a crescente utilização das ferramentas que traduzem esquemas XML em classes das linguagens de programação orientadas a objetos. Adicionalmente, a especificação nível 3 do DOM propõe a representação das interfaces do modelo DOM em classes Java.
O mapeamento da estrutura da árvore de documentos XML para esquemas de objetos fornece o suporte para algumas abordagens de armazenamento de documentos XML. Um processo, comumente chamado de data binding (ligação de dados), consiste basicamente em acoplar alguma linguagem de definição de esquemas para XML em uma linguagem tipada existente, traduzindo tipos de documentos em uma hierarquia de classes ou tipos de dado. A sua vantagem é a possibilidade de traduzir os elementos do documento para tipos de dados ou para uma hierarquia de classes de uma linguagem existente.
O W3C [1] propõem um esquema de objetos para representar a especificação complexa do XML Schema e define o DOM como um formato padrão para a manipulação dos documentos XML.
Existem outras abordagens para armazenamento de documentos XML, que são usadas nas diversas ferramentas existentes. São elas: ferramentas que permitem o mapeamento de elementos e atributos XML para tabelas e colunas do banco de dados, exigindo comumente a intervenção do usuário; ferramentas que fornecem o suporte para a modelagem do esquema do banco de dados relacional usando a linguagem do XML Schema; ferramentas que suportam o mapeamento dos documentos XML para um modelo de objetos e o armazenamento também em sistemas de bancos de dados relacionais. Uma lista de ferramentas de binding encontra-se em [2].
Algumas ferramentas suportam o mapeamento de tipos de elementos complexos para classes e tipos de elementos simples e atributos para propriedades das classes [2,3,5]. Entretanto, as ferramentas que utilizam esse mapeamento classificam, de forma bastante simplificada, os tipos de elementos em classes ou propriedades da classe. Isso significa que tipos de elementos complexos com atributos ou tipos de elementos com conteúdo misto são mapeados como classes e tipos de subelementos e atributos do tipo caractere são traduzidos para propriedades das classes. Posteriormente, as classes podem ou não ser traduzidas para tabelas no SGBD relacional.
Os relacionamentos entre as classes são traduzidos para relacionamentos entre as tabelas. Adicionalmente, os atributos das classes podem ser traduzidos para tabelas, exigindo junções adicionais.
Esse tipo de ferramenta possui limitação na geração do esquema para o SGBD relacional, exigindo a intervenção do projetista, principalmente considerando esquemas de documentos ou tipos de dados mais complexos.
Outro problema que comumente também exige a intervenção do projetista é a determinação dos relacionamentos entre as tabelas geradas para o SGBD relacional. As ferramentas também não contemplam toda a especificação do XML Schema e limitam-se ao mapeamento dos esquemas dos documentos para o SGBD relacional. Outras questões envolvem: a geração de tabelas adicionais para atributos do tipo composto e/ou coleções das classes; a tradução de tipos de dados simples, incluindo as restrições; a limitação para o controle da ordem dos elementos do esquema do documento, dentre outros.
Suporte dos SGBD’s comerciais
O armazenamento de documentos XML comumente exige a especificação do mapeamento da estrutura do documento para o esquema do banco de dados. Atualmente, a maioria dos SGBDs comerciais fornece tais especificações, que são proprietárias, limitadas para o mapeamento das estruturas dos documentos XML e encontram-se embutidas no SGBD [6,7,8,9].
Outras questões também são identificadas em relação ao suporte dos SGBDs no armazenamento dos documentos XML. Embora os SGBDs suportem a criação de tipos de dados, o armazenamento dos documentos ainda se restringe predominantemente ao modelo relacional. Uma alternativa é a possibilidade do armazenamento dos documentos em colunas do tipo BLOB, com a utilização de regras fixas de mapeamento. Entretanto, há muitas diferenças entre os SGBDs baseados no modelo objeto-relacional. A maior parte dos SGBD OR herdam a extensão de objetos da tecnologia LOB e, portanto, possui limitações na definição dos tipos de dados.
Outra observação envolve a obrigatoriedade de especificação prévia do modelo de dados para o armazenamento dos dados do documento. Os documentos podem ser armazenados em tabelas e os fragmentos podem ou não ser armazenados em tipos de dados do tipo LOB. Paralelamente aos modelos de dados implementados pelos SGBDs, não existe um padrão para especificação do mapeamento da estrutura do documento para o banco de dados e suporte a uma linguagem padrão de consulta aos documentos XML.
Conforme exposto anteriormente, algumas ferramentas possuem limitações na geração do esquema do documento XML. Além disso, a reconstrução do documento nem sempre é possível, porque os subelementos e atributos são mapeados para colunas de uma tabela no SGBD relacional, não havendo distinção entre os diferentes níveis de aninhamento e tipos de dados do esquema XML. A maior parte das ferramentas possui uma ligação com os SGBDs e permite que o armazenamento do documento XML seja customizado, desde que se utilize uma codificação adicional específica. Outra alternativa é utilizar as extensões XML nativas da próxima geração dos sistemas gerenciadores de bancos de dados.
Referências
[1] W3C (WORLD WIDE
WEB CONSORTIUM). XML Schema Part 1: Structures .Disponível em:
http://www.w3.org/TR/xmlschema-1/.
[2] BOURRET, R. XML-DBMS. Disponível
em: http://www.rpbourret.com/xmldbms.
[3] ALTOVA XML SPY. ALTOVA CORPORATION.
Disponível em: http://www.altova.com.
[4] SUN MICROSYSTEMS. Java Architecture
for XML Binding (JAXB) Bindings Schema for JAXB Disponível em:
http://java.sun.com/xml/ns/jaxb.
[5] CASTOR OPEN SOURCE DATA BINDING
FRAMEWORK. Disponível em: http://castor.exolab.org.
[6] CHAUDHRI, A.; RASHID, A.; ZICARI,
R.. XML Data Management Native XML and XML-Enabled Database Systems.
Reading: Addison-Wesley, 2003.
[7] ORACLE CORPORATION. SGBD 9i.
Disponível em: http://www.oracle.com/ip/deploy/
database/oracle9i.
[8] MICROSOFT CORPORATION. MICROSOFT
SQL SERVER. Disponível em: http://www.microsoft.com/sql/.
[9] IBM SGBD DB2. IBM CORPORATION.
Disponível em: http://www-306.ibm.com/software/data/db2/.

pode-se imaginar, um mundo inteiro utilizando dados, compartilhados e gravados, via xml, e sendo consultado por qualquer tipo de sgbd, não importando sua licença. Isso é futuro
Responder comentário
Olá Leonardo. Infelizmente tenho encontrado pouco material sobre XML de qualidade. Mas queria lhe parabenizar pelo seu material. O artigo está ótimo! E torço para que venham outros. Estamos precisando de uma boa documentação em língua portuguesa.
Responder comentário
Leonardo, mais uma vez você foi feliz no seu trabalho. Uma abordagem importante e atual. Continue assim e sucesso.
João Batista.
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Leonardo Grandinetti é Coordenador de implantação de sistemas, Analista de Informática/Fumec, Auditor e Consultor de sistemas de informação, Pós-graduado em Gerência da Tecnologia da Informação, Mestre em Ciência da Computação, Palestrante e Membro do EAI Industry Consortium.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.