SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
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
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>
XML
<pessoa>
Nome: Leonardo
E-mail: grandineti@hotmail.com
Mê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 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
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 2005
IBM 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:ora
cle: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=true
objBL.XMLFragment = True
objBL.SchemaGen = True
objBL.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 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
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, 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
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
35
Altova 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 xmln
s: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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 
XML - eXtensible Markup Language
XML - eXtensible Markup LanguageXML - eXtensible Markup Language
XML - eXtensible Markup Language
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
XML & HTML
XML & HTMLXML & HTML
XML & HTML
 
A Estrutura da Linguagem SQL
A Estrutura da Linguagem SQLA Estrutura da Linguagem SQL
A Estrutura da Linguagem SQL
 
Conceitos de xml
Conceitos de xmlConceitos de xml
Conceitos de xml
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Apostila modelagem de banco de dados
Apostila modelagem de banco de dadosApostila modelagem de banco de dados
Apostila modelagem de banco de dados
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
01- Introdução ao XML
01- Introdução ao XML01- Introdução ao XML
01- Introdução ao XML
 
Bd ii material
Bd ii   materialBd ii   material
Bd ii material
 
XML Schema (2002)
XML Schema (2002)XML Schema (2002)
XML Schema (2002)
 
XML - Introdução
XML - IntroduçãoXML - Introdução
XML - Introdução
 
Ado
AdoAdo
Ado
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 

Ähnlich wie Xml pucminas2013

Ähnlich wie Xml pucminas2013 (20)

PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para Bibliotecários
 
Sql
SqlSql
Sql
 
JustJava 2004: JAXB
JustJava 2004: JAXBJustJava 2004: JAXB
JustJava 2004: JAXB
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
XML_WS.pdf
XML_WS.pdfXML_WS.pdf
XML_WS.pdf
 
Apresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacionalApresentação mapeamento objeto relacional
Apresentação mapeamento objeto relacional
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016
 
Ara7129 unidade-1-v1
Ara7129 unidade-1-v1Ara7129 unidade-1-v1
Ara7129 unidade-1-v1
 
Apostila sqlserver65v1a
Apostila sqlserver65v1aApostila sqlserver65v1a
Apostila sqlserver65v1a
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Banco de Dados - Part01
Banco de Dados - Part01Banco de Dados - Part01
Banco de Dados - Part01
 

Xml pucminas2013

  • 1. 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
  • 2. Agenda Introdução Critérios Suporte dos SGBDs Ferramentas de Armazenamento 2 Ferramentas de Armazenamento Experimentos e Análise Conclusões Trabalhos relacionados
  • 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>
  • 4. XML <pessoa> Nome: Leonardo E-mail: grandineti@hotmail.com Mês aniversário: outubro. Hobbie: leitura.Mês aniversário: outubro. Hobbie: leitura. Estatura: mediana. </pessoa> 4
  • 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)
  • 6. XML e Esquemas DTD XML Schema Outros 6
  • 7. 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
  • 9. 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>
  • 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
  • 17. SGBD´s comerciais Oracle 9i->versão 10g SQL Server 2000->versão 2005 IBM DB2 v.8 17 IBM DB2 v.8
  • 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
  • 23. 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>
  • 24. 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=true objBL.XMLFragment = True objBL.SchemaGen = True objBL.SGDropTables = True...
  • 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
  • 29. Ferramentas XML-DBMS Altova XML Spy Castor, Especificação JAXB, Outras 29 Castor, Especificação JAXB, Outras Edição de documentos XML
  • 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.
  • 38. JAXB <xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema xmln s: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>
  • 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
  • 46. Conclusões Aninhamento dos elementos e ordem dos elementos Predominantemente relacional Relacionamentos 46 Padronização: modelo OR
  • 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).
  • 49. Trabalhos Relacionados e Futuros Trabalhos Relacionados Futuros Análise das novas versões Suporte nativo 49 Suporte nativo SGBDs gratuitos XQuery Framework