Post on 04-Jul-2015
XML, padrões,
armazenamento,
publicação e utilizações
Sistemas de Informação – Puc Minas
1
publicação e utilizações
Prof. Leonardo Grandinetti Chaves, MSc, PMP
SECOMP – PUC MINAS - 2013
Agenda
� Introdução� Critérios � Suporte dos SGBDs� Ferramentas de Armazenamento
2
� Ferramentas de Armazenamento� Experimentos e Análise � Conclusões� Trabalhos relacionados
Introdução
pessoaPessoa
Nome
Introdução
XML : descreve a representação dos dados
3
nome
Árvore para Dados XMLModelo de Grafo
Sem uma limitação de profundidade
<pessoa><nome>Leonardo</nome>
<email>grandineti@hotmail.com</email> </pessoa>
XML
<pessoa>Nome: LeonardoE-mail: grandineti@hotmail.comMês aniversário: outubro. Hobbie: leitura. Mês aniversário: outubro. Hobbie: leitura.
Estatura: mediana.</pessoa>
4
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)
XML e Esquemas
� DTD� XML Schema� Outros
6
XML Schema
� <xs:complexType name="Endereço"><xs:sequence>
<xs:element name="Rua-numero" type="xs:string"/><xs:element name="Cidade" type="xs:string"/><xs:element name="Estado" type="xs:string"/><xs:element name="Estado" type="xs:string"/><xs:element name="Cep" type="xs:string"/>
</xs:sequence>
<xs:attribute name="tel contato" type="xs:string"/>� </xs:complexType>
7
Introdução
<Imovel>
<Proprietario>..</Proprietario>
<Descricao>..</Descricao>
<Endereco>..</Endereco>...</Imovel>
8
Proprietario Descricao Endereco
Esquemas XML: XML-Data, DCD, DDML, Relax NG, DTD, XML Schema, outros
Tabela:Imovel
XML Schema Tipo complexo
<xs:complexType name="livro"><xs:sequence>
<xs:element name="titulo" type="xs:string"/><xs:element name="autor" minOccurs="0"
maxOccurs="unbounded"><xs:complexType>
<xs:sequence>
9
<xs:sequence><xs:element name="nome" type="xs:string"/><xs:element name="email" type="xs:string"/>
</xs:sequence></xs:complexType>
</xs:element></xs:sequence><xs:attribute name="id" type="xs:integer"/>
</xs:complexType>
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
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 XML documentos 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
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
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
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
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
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
SGBD´s comerciais
� Oracle 9i->versão 10g� SQL Server 2000->versão 2005IBM DB2 v.8
17
� IBM DB2 v.8
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
Oracle 9i
Código Java...
Connection conn = DriverManager.getConnection("jdbc:ora
19
DriverManager.getConnection("jdbc:oracle:oci:@","hr","hr");
OracleXMLSave sav = new OracleXMLSave(conn, "employees");
sav.insertXML(sav.getURL(argv[0]));
<?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"
21
Oracle 9i
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
SQL Server - mapeamento
<Imovel>
<Proprietario>..</Proprietario>
<Descricao>..</Descricao>
<Endereco>..</Endereco>...</Imovel>
23
<ElementType name="Imovel" sql:relation="Imovel">
<element type="Proprietario" sql:field="Proprietario" />
<element type="Descricao" sql:field="Descricao" />
<element type="Endereco" sql:field="Endereco" />
...
</ElementType>
SQL Server 2000
VBScript:
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MeuServidor;database=MeuBD;uid=usuario;pwd=senha"
objBL.ErrorLogFile = "c:\erro.log"
24
objBL.ErrorLogFile = "c:\erro.log"objBL.Execute "c:\mapaImovel.xml", "c:\imovel.xml“
Criação das tabelas de forma automática:
...objBL.CheckConstraints=trueobjBL.XMLFragment = TrueobjBL.SchemaGen = TrueobjBL.SGDropTables = True...
SQL Server
25
SQL Server
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)
IBM DB2 v.8
� Possui suporte para uma API para permitir asconsultas(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
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
Ferramentas
� XML-DBMS
� Altova XML Spy
Castor, Especificação JAXB, Outras
29
� Castor, Especificação JAXB, Outras
� Edição de documentos XML
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
XML-DBMS
� As classes são traduzidas para tabelas, aspropriedades são mapeadas para colunase as referências para o relacionamentochave 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
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"));
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
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
35Altova XML Spy
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 );
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.
JAXB<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:jxb="http://java.sun.com/xml/ns/jaxb"jxb:version="1.0">
<xsd:annotation><xsd:documentation>
38
<xsd:documentation>Declaração das regras globais do documento</xsd:documentation> <xsd:appinfo><jxb:globalBindings
...="java.util.date"---------------------</jxb:globalBindings>
</xsd:appinfo></xsd:annotation>
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
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.
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
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
Análise
� Especificação do XML Schema
� Tipos de Dados
Especificação do mapeamento :
43
� Especificação do mapeamento :
� Ferramentas
� SGBDs
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
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
Conclusões
� Aninhamento dos elementos e ordem dos elementos
� Predominantemente relacional� Relacionamentos
46
� Padronização: modelo OR
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
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).
Trabalhos Relacionados e
Futuros
� Trabalhos Relacionados� Futuros
� Análise das novas versões� Suporte nativo
49
� Suporte nativo� SGBDs gratuitos� XQuery� Framework
Dúvidas
50