O documento discute o armazenamento e publicação de documentos XML. Resume os principais pontos sobre mapeamento de estruturas XML para bancos de dados relacionais utilizando ferramentas como XML-DBMS, Altova XML Spy, JAXB e Castor, além do suporte nativo de SGBDs como Oracle, SQL Server e IBM DB2. A análise aponta limitações dessas abordagens como geração de esquemas e reconstrução de documentos.
3. Introdução
pessoa
Pessoa
Nome
Introdução
XML : descreve a
representação
dos dados
3
nome
Árvore para Dados XML
Modelo de Grafo
Sem uma limitação de profundidade
<pessoa>
<nome>Leonardo</nome>
<email>grandineti@hotmail.com</email>
</pessoa>
5. Introdução
Os subelementos podem ser aninhados de
forma hierárquica
Marcação destina-se a delimitar os códigos
necessários ao processamento do documento
5
necessários ao processamento do documento
Documentos bem formados (sintaxe) e
Documentos válidos (associados a gramáticas
ou formalismos de esquemas)
10. Introdução
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
10
observa-se a crescente utilização das
ferramentas que traduzem esquemas XML
em classes das linguagens de
programação orientadas a objetos
DOM 3
11. Introdução
O mapeamento da estrutura da árvore de
documentos XML para esquemas de
objetos fornece o suporte para algumas
abordagens de armazenamento de
documentos XMLdocumentos XML
Data Binding : 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
11
12. Introdução
Abordagens de Armazenamento de
documentos XML: técnicas genéricas,regras
fixas,linguagens de consulta, etc.
12
Divergências quanto ao modelo mais
adequado para o armazenamento de
documentos XML
13. Introdução
Evolução do suporte dos sistemas
gerenciadores de bancos de dados (SGBDs)
comerciais no armazenamento de
documentos XML
13
Crescente utilização das ferramentas que
traduzem esquemas da XML em classes das
linguagens de programação orientadas a
objetos
14. Critérios
O mapeamento de elementos e atributos XML
para tabelas e colunas do banco de dados
O suporte para a modelagem do esquema do
banco de dados relacional
14
banco de dados relacional
O mapeamento dos documentos XML para um
modelo de objetos e o armazenamento em
sistemas de bancos de dados relacionais
15. Critérios
A geração ou nã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
15
incluindo as restrições
A limitação para o controle da ordem dos
elementos do esquema do documento
A especificação do XML Schema
DTDs
Tipos de dados XML mais utilizados
Outros
16. SGBDs
Mapeamento de tipos de dados complexos
para o SGBD
Verificação dos relacionamentos
Documentos com conteúdo misto
Tipos de elementos não contemplados
Tipos de dados gerados na tradução para
o SGBD
16
18. Oracle 9i
Possibilita o armazenamento do documento
utilizando um tipo especial do tipo CLOB,
chamado XMLType
Ferramenta XSU: armazenamento dos
18
Ferramenta XSU: armazenamento dos
elementos e atributos por várias tabelas
(com maior granularidade), mas não
possibilita o armazenamento dos valores dos
atributos, que exigem transformação
19. Oracle 9i
Código Java...
Connection conn =
DriverManager.getConnection("jdbc:ora
19
DriverManager.getConnection("jdbc:ora
cle:oci:@","hr","hr");
OracleXMLSave sav = new
OracleXMLSave(conn, "employees");
sav.insertXML(sav.getURL(argv[0]));
20. <?xml version="1.0"?>
Oracle 9i
Regras fixas de mapeamento. Alternativa:
utilização da XSLT mas é preciso
customização adicional
20
<?xml version="1.0"?>
<ROWSET>
<ROW num="1">
<PROPRIET>JOSE</PROPRIET>
<DESC>APTO</DESC>
<CONT>JOAO</CONT>
<LOCAL>CONTORNO</LOCAL>
</ROW>
</ROWSET>
PROPRIET DESC CONT LOCAL
JOSE APTO JOAO CONTORNO
java OracleXML putXML -user
"scott/tiger" -fileName
“imovel.xml" “imovel"
22. SQL Server 2000
Especificação do mapeamento da estrutura
do documento para o banco de dados
baseada na linguagem XDR (XML-Data
Reduced Schema)
22
Alguns atributos são usados para declarar
uma tabela e uma coluna e o
relacionamento entre duas tabelas no
esquema do banco de dados
Xpath, Utilitário XML Bulk Load
26. IBM DB2 v.8
XML Extender para o gerenciamento de
documentos XML e dois modelos para o
armazenamento relacional dos documentos:
XML Column e XML Collection
26
Possui uma linguagem de especificação do
mapeamento da estrutura do documento para
o esquema do banco de dados chamada
DAD (Data Access Definition)
27. IBM DB2 v.8
Possui suporte para uma API para permitir as
consultas(XQuery)
27
Os elementos são traduzidos para tabelas ou
colunas do banco de dados, os atributos são
mapeados para colunas e os relacionamentos
entre os elementos XML são mapeados para
os relacionamentos entre as chaves
primárias/estrangeiras das tabelas do banco
de dados
28. Suporte dos SGBD´s
O armazenamento de documentos XML
comumente exige a especificação do
mapeamento da estrutura do documento para
28
mapeamento da estrutura do documento para
o esquema do banco de dados
Proprietárias, limitadas para o mapeamento
das estruturas dos documentos XML e
encontram-se embutidas no SGBD
Intervencão do projetista
30. XML-DBMS
É um conjunto de classes Java, desenvolvidas
por BOURRET, que permite transferências de
informações entre os documentos XML e os
30
informações entre os documentos XML e os
SGBD´s
O conjunto de classes traduz o documento
como uma árvore de objetos e utiliza um
mapeamento objeto-relacional para mapear
esses objetos para um esquema de banco de
dados relacional
31. XML-DBMS
As classes são traduzidas para tabelas, as
propriedades são mapeadas para colunas
e as referências para o relacionamento
chave primária/chave estrangeira(DOM)
31
Gera a definição do esquema apenas para
bancos de dados relacionais
Inexistência de uma interface para a
manutenção do documento de
mapeamento
32. XML-DBMS
<!ELEMENT LIVRO (TITULO, CAPITULO+)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT CAPITULO (#PCDATA)>
CREATE TABLE "LIVRO" ("TITULO" VARCHAR(255) NOT
NULL,
32
NULL,
"LIVROPK" INTEGER NOT NULL,
CONSTRAINT PrimaryKey PRIMARY KEY ("LIVROPK"));
CREATE TABLE "CAPITULO" (
"CAPITULOPK" INTEGER NOT NULL,
"LIVROFK" INTEGER NOT NULL,
"CAPITULO" VARCHAR(255) NOT NULL,
CONSTRAINT PrimaryKey PRIMARY KEY ("CAPITULOPK"),
CONSTRAINT LIVROFK FOREIGN KEY ("LIVROFK")
REFERENCES "LIVRO" ("LIVROPK"));
33. Altova XML Spy
Ambiente de desenvolvimento de
aplicações que permite manipular, editar,
projetar e transformar documentos XML
com o suporte a XML Schema, DTD, XLST
e possui compatibilidade com padrões da
33
e possui compatibilidade com padrões da
indústria e os inúmeros SGBDs relacionais
e XML nativo
34. Altova XML Spy
O mapeamento de documentos XML é feito
para um modelo de objetos e uma interface
chamada XMLData possibilita a tradução do
formato DOM
34
Os processos de importação, exportação e
geração do esquema dos dados do documento
XML para os sistemas de bancos de dados
relacionais são feitos através dos métodos de
um objeto chamado Application (aplicação),
definido por esse modelo
36. Altova XML Spy
CREATE TABLE [Teste].[dbo].[IMOVEL] (
[PROPRIETARIO] varchar (255) NOT NULL ,
[DESCRICAO] varchar (255) NOT NULL ,
[TIPO] varchar (255) NOT NULL ,
36
[TIPO] varchar (255) NOT NULL ,
[ENDERECO] varchar (255) NOT NULL ,
[CONTATO] varchar (255) NOT NULL ,
[VALORMAXIMO] varchar (255) NOT NULL ,
[VALORMINIMO] varchar (255) NOT NULL );
37. JAXB
A arquitetura JAXB constitui uma
referência de implementação de um
padrão de mapeamento para classes Java
A especificação define um conjunto de
37
A especificação define um conjunto de
regras-padrão para o mapeamento
Tipos: java.lang.string, etc.
39. Castor
Framework para os objetos XML e o esquema
XML
39
Possui um conjunto de APIs que facilitam a
conversão entre objetos Java e os arquivos
XML
Similarmente à ferramenta XML-DBMS, é
possível especificar e combinar o mapeamento
de objetos em arquivos externos
40. Análise
Suportam o mapeamento de tipos de
elementos complexos para classes e tipos
de elementos simples e atributos para
propriedades
40
Ferramentas que utilizam esse
mapeamento classificam, de forma
bastante simplificada, os tipos de
elementos em classes ou propriedades da
classe.
41. Análise
Possuem limitação na geração do esquema
para o SGBD relacional, exigindo a
intervenção do projetista
Mapeamento dos esquemas dos documentos
41
Mapeamento dos esquemas dos documentos
para o SGBD relacional
Determinação dos relacionamentos entre as
tabelas geradas para o SGBD relacional
42. Análise
Geração de tabelas adicionais para
atributos do tipo composto e/ou coleções
das classes
Tradução de tipos de dados simples,
42
Tradução de tipos de dados simples,
incluindo as restrições
Limitação para o controle da ordem dos
elementos do esquema do documento,
dentre outros
43. Análise
Especificação do XML Schema
Tipos de Dados
Especificação do mapeamento :
43
Especificação do mapeamento :
Ferramentas
SGBDs
44. Análise
A reconstrução do documento
Resumidamente, as classes são traduzidas
para tabelas, as propriedades são
mapeadas para colunas e as referências são
44
mapeadas para colunas e as referências são
mapeadas para o relacionamento chave
primária/chave estrangeira
Possibilidade de alteração do resultado do
mapeamento e a utilização do formato DOM
45. Análise
Limitações: cadeia de caracteres, geração do
script, reconstrução do documento,
especificação do XML Schema, diversas
linguagens para a especificação do
mapeamento, tabelas /colunas, campos do tipo
45
mapeamento, tabelas /colunas, campos do tipo
BLOB, suporte builtin dos SGBDs, regras fixas
Limitações na geração do esquema e
armazenamento
Necessidade de customização e Intervenção do
projetista
47. Conclusões
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
47
uma codificação adicional específica
DOM
48. Conclusões
Ferramentas: campos caractere 255 posições,
blob
Objetos
Intervenção do projetista
SGBDs:
48
SGBDs:
a dificuldade de padronização;
necessidade de pré-especificação do modelo
de armazenamento dos documentos;
a complexidade da especificação do esquema
XML;
Regras fixas: predominantemente relacional
(BLOB).