SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Banco de Dados XML 
Diego A. Lusa 
Banco de Dados II 
Conceitos Avancados 
7 de Novembro de 2014 
1 / 18
Sumario 
1. Conceitos Basicos 
XML 
Namespaces 
2. Oracle XML DB 
Caractersticas 
XMLType 
Instruc~oes DDL 
Instruc~oes DML 
2 / 18
XML - eXtensible Markup Language 
I Linguagem criada para descrever dados 
I E 
uma linguagem de marcac~ao que n~ao apresenta um conjunto de 
tags pre-de
nidas 
I E 
extensvel e muito utilizada na Web e em arquiteturas SOA 
Exemplo 
?xml version=1.0 encoding=UTF-8? 
alunos 
aluno 
nomeFulano/nome 
sobrenomede Tal/sobrenome 
matricula83473/matricula 
/aluno 
/alunos 
3 / 18
XML - namespaces 
I E 
um metodo utilizado para evitar con
itos de nome dos elementos 
no XML 
I Quali
ca o elemento 
I Um nome quali
cado (QName) e composto pelo namespace + nome 
do elemento, no formato fNamespaceg:nome 
I Utiliza-se pre
xos para facilitar o uso de namespaces 
I Por convenc~ao, um namespace e declarado no formato de uma URI 
4 / 18
XML - namespaces 
Exemplo 
?xml version=1.0 encoding=UTF-8? 
alunos xmlns=http://upf.br/alunos 
mstr:aluno xmlns:mstr=http://upf.br/mestrado 
nomeFulano/nome 
/mstr:aluno 
grd:aluno xmlns:gdr=http://upf.br/graduacao 
nombreFulano/nombre 
/grd:aluno 
doc:aluno xmlns:doc=http://upf.br/doutorado 
nameFulano/name 
/doc:aluno 
/alunos 
5 / 18
XPath 
I Linguagem utilizada para localizar informac~oes em estruturas XML 
I Oferece um conjunto de operadores e uma sintaxe formal de consulta 
I Utiliza-se a hierarquia do schema de
nido para gerar as consultas 
I E 
utilizada conjuntamente a linguagem XSLT 
Exemplo 
/alunos/aluno[0]/nome/text() 
/alunos/*:aluno[name = 'Fulano' and age10]/id 
/alunos/doc:aluno/matricula 
/catalogo/album[@artista=Yanni] 
/catalogo/album[@artista=Yanni and @ano=2014] 
6 / 18
Oracle XML DB 
7 / 18
Caractersticas basicas 
I E 
um conjunto de tecnologias para o banco de dados Oracle, voltadas 
a: 
Armazenamento de dados XML 
Criac~ao de dados em formato XML 
Acesso, busca, validac~ao, transformac~ao, convers~ao e indexac~ao de 
dados XML 
I Includo como parte do Oracle Database a partir da vers~ao Oracle9i 
Release 2 (9.2) 
I Prov^e meios para interoperar SQL e XML 
8 / 18
Caractersticas basicas 
I Permite gravar dados XML na base de tr^es formas distintas: 
Estruturado: Utilizando o tipo de dado XMLType. E 
mais otimizado 
que as demais formas de persist^encia. 
Desestruturado: Utilizando o tipo de dado CLOB. Oferece maior 

exibilidade. 
Binario: Utilizando o tipo de dado BLOB. Melhor tecnica para 
armazenamento e
caz. 
9 / 18
XMLType 
I Tipo de dado SQL nativo criado para armazenar documentos XML 
I Pode-se utiliza-lo como coluna, variavel ou argumento em func~oes e 
procedimentos 
I Tambem e possvel criar uma tabela do tipo XMLType 
I Apenas estruturas XML bem formadas s~ao aceitas pelo tipo XMLType 
I Adicionalmente, os documentos podem ser validados contra seu XML 
Schema 
10 / 18
Criando tabelas 
Exemplo 
--Tabela com coluna XMLType 
create table xml_documento ( 
doc_id number not null, 
descricao varchar2(200) not null, 
documento xmltype not null, 
constraint pk_xml_documento primary key(doc_id) 
); 
--Tabela do tipo XMLType 
create table xml_documento_objeto of xmltype; 
11 / 18
Inserindo dados 
Exemplo 
insert into xml_documento_objeto values ( 
XMLTYPE( 
'?xml version=1.0? 
crs:cursos xmlns:crs=http://upf.br/cursos 
cr:curso tipo=mestrado xmlns:cr=http://upf.br/cursos/curso 
alunos 
aluno 
nomeFulano/nome 
matricula12345/matricula 
/aluno 
aluno 
nomeCiclano/nome 
matricula34512/matricula 
/aluno 
/alunos 
/cr:curso 
/crs:cursos 
')); 
12 / 18

Mais conteúdo relacionado

Mais procurados

Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Vivian Motti
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Vivian Motti
 
Apresentação básica de my sql
Apresentação básica de my sqlApresentação básica de my sql
Apresentação básica de my sqlMarcus Couto
 

Mais procurados (9)

6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Parte5 xml
Parte5 xmlParte5 xml
Parte5 xml
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
 
Xml pucminas2013
Xml pucminas2013Xml pucminas2013
Xml pucminas2013
 
XML - Introdução
XML - IntroduçãoXML - Introdução
XML - Introdução
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Apresentação básica de my sql
Apresentação básica de my sqlApresentação básica de my sql
Apresentação básica de my sql
 

Semelhante a Oracle XML DB

Curso XML - IBM Academic Initiative
Curso XML - IBM Academic InitiativeCurso XML - IBM Academic Initiative
Curso XML - IBM Academic InitiativeLoiane Groner
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaSergio Crespo
 
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de Vasconcelos
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de VasconcelosMonografia CEI-ES0326-T14-2008-1 - Wellington Gomes de Vasconcelos
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de VasconcelosWellington Wellingtonvasconcelo...
 
A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)Liliana Costa
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPUniversidade de São Paulo
 
Curso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTMLCurso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTMLFabio Moura Pereira
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Fabio Telles Rodriguez
 

Semelhante a Oracle XML DB (20)

eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
XML
XMLXML
XML
 
Curso XML - IBM Academic Initiative
Curso XML - IBM Academic InitiativeCurso XML - IBM Academic Initiative
Curso XML - IBM Academic Initiative
 
Tp 4 xml
Tp 4   xmlTp 4   xml
Tp 4 xml
 
Xml Ws
Xml WsXml Ws
Xml Ws
 
01- Introdução ao XML
01- Introdução ao XML01- Introdução ao XML
01- Introdução ao XML
 
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
 
XML & HTML
XML & HTMLXML & HTML
XML & HTML
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de Vasconcelos
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de VasconcelosMonografia CEI-ES0326-T14-2008-1 - Wellington Gomes de Vasconcelos
Monografia CEI-ES0326-T14-2008-1 - Wellington Gomes de Vasconcelos
 
Curso de xml
Curso de xmlCurso de xml
Curso de xml
 
Apostila xml
Apostila xmlApostila xml
Apostila xml
 
Php Básico - Parte 2
Php Básico - Parte 2Php Básico - Parte 2
Php Básico - Parte 2
 
XML - Parte 1
XML - Parte 1XML - Parte 1
XML - Parte 1
 
A e xtensible markup language (xml)
A e xtensible markup language (xml)A e xtensible markup language (xml)
A e xtensible markup language (xml)
 
Introdução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USPIntrodução à XML - Serviço de Biblioteca da EEFE-USP
Introdução à XML - Serviço de Biblioteca da EEFE-USP
 
Aula Introdução a Linguagem XML
Aula Introdução a Linguagem XMLAula Introdução a Linguagem XML
Aula Introdução a Linguagem XML
 
Curso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTMLCurso de Desenvolvimento de Sistemas Web - (X)HTML
Curso de Desenvolvimento de Sistemas Web - (X)HTML
 
Conceitos de xml
Conceitos de xmlConceitos de xml
Conceitos de xml
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
 

Mais de Diego Lusa

Cidades Inteligentes e Big Data
Cidades Inteligentes e Big DataCidades Inteligentes e Big Data
Cidades Inteligentes e Big DataDiego Lusa
 
Rede "Olhos do Bem"
Rede "Olhos do Bem"Rede "Olhos do Bem"
Rede "Olhos do Bem"Diego Lusa
 
Engenharia de software orientada a aspectos: do interesse ao aspecto
Engenharia de software orientada a aspectos: do interesse ao aspectoEngenharia de software orientada a aspectos: do interesse ao aspecto
Engenharia de software orientada a aspectos: do interesse ao aspectoDiego Lusa
 
Multiplicação de matrizes
Multiplicação de matrizesMultiplicação de matrizes
Multiplicação de matrizesDiego Lusa
 
Ordenação de pares e ímpares
Ordenação de pares e ímparesOrdenação de pares e ímpares
Ordenação de pares e ímparesDiego Lusa
 
Multiplicação de Matrizes
Multiplicação de MatrizesMultiplicação de Matrizes
Multiplicação de MatrizesDiego Lusa
 
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...Diego Lusa
 
O uso de tecnologias de big data na concepção e execução de estratégias de en...
O uso de tecnologias de big data na concepção e execução de estratégias de en...O uso de tecnologias de big data na concepção e execução de estratégias de en...
O uso de tecnologias de big data na concepção e execução de estratégias de en...Diego Lusa
 

Mais de Diego Lusa (9)

Cidades Inteligentes e Big Data
Cidades Inteligentes e Big DataCidades Inteligentes e Big Data
Cidades Inteligentes e Big Data
 
JQuery Mobile
JQuery MobileJQuery Mobile
JQuery Mobile
 
Rede "Olhos do Bem"
Rede "Olhos do Bem"Rede "Olhos do Bem"
Rede "Olhos do Bem"
 
Engenharia de software orientada a aspectos: do interesse ao aspecto
Engenharia de software orientada a aspectos: do interesse ao aspectoEngenharia de software orientada a aspectos: do interesse ao aspecto
Engenharia de software orientada a aspectos: do interesse ao aspecto
 
Multiplicação de matrizes
Multiplicação de matrizesMultiplicação de matrizes
Multiplicação de matrizes
 
Ordenação de pares e ímpares
Ordenação de pares e ímparesOrdenação de pares e ímpares
Ordenação de pares e ímpares
 
Multiplicação de Matrizes
Multiplicação de MatrizesMultiplicação de Matrizes
Multiplicação de Matrizes
 
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
 
O uso de tecnologias de big data na concepção e execução de estratégias de en...
O uso de tecnologias de big data na concepção e execução de estratégias de en...O uso de tecnologias de big data na concepção e execução de estratégias de en...
O uso de tecnologias de big data na concepção e execução de estratégias de en...
 

Oracle XML DB

  • 1. Banco de Dados XML Diego A. Lusa Banco de Dados II Conceitos Avancados 7 de Novembro de 2014 1 / 18
  • 2. Sumario 1. Conceitos Basicos XML Namespaces 2. Oracle XML DB Caractersticas XMLType Instruc~oes DDL Instruc~oes DML 2 / 18
  • 3. XML - eXtensible Markup Language I Linguagem criada para descrever dados I E uma linguagem de marcac~ao que n~ao apresenta um conjunto de tags pre-de
  • 4. nidas I E extensvel e muito utilizada na Web e em arquiteturas SOA Exemplo ?xml version=1.0 encoding=UTF-8? alunos aluno nomeFulano/nome sobrenomede Tal/sobrenome matricula83473/matricula /aluno /alunos 3 / 18
  • 5. XML - namespaces I E um metodo utilizado para evitar con itos de nome dos elementos no XML I Quali
  • 6. ca o elemento I Um nome quali
  • 7. cado (QName) e composto pelo namespace + nome do elemento, no formato fNamespaceg:nome I Utiliza-se pre
  • 8. xos para facilitar o uso de namespaces I Por convenc~ao, um namespace e declarado no formato de uma URI 4 / 18
  • 9. XML - namespaces Exemplo ?xml version=1.0 encoding=UTF-8? alunos xmlns=http://upf.br/alunos mstr:aluno xmlns:mstr=http://upf.br/mestrado nomeFulano/nome /mstr:aluno grd:aluno xmlns:gdr=http://upf.br/graduacao nombreFulano/nombre /grd:aluno doc:aluno xmlns:doc=http://upf.br/doutorado nameFulano/name /doc:aluno /alunos 5 / 18
  • 10. XPath I Linguagem utilizada para localizar informac~oes em estruturas XML I Oferece um conjunto de operadores e uma sintaxe formal de consulta I Utiliza-se a hierarquia do schema de
  • 11. nido para gerar as consultas I E utilizada conjuntamente a linguagem XSLT Exemplo /alunos/aluno[0]/nome/text() /alunos/*:aluno[name = 'Fulano' and age10]/id /alunos/doc:aluno/matricula /catalogo/album[@artista=Yanni] /catalogo/album[@artista=Yanni and @ano=2014] 6 / 18
  • 12. Oracle XML DB 7 / 18
  • 13. Caractersticas basicas I E um conjunto de tecnologias para o banco de dados Oracle, voltadas a: Armazenamento de dados XML Criac~ao de dados em formato XML Acesso, busca, validac~ao, transformac~ao, convers~ao e indexac~ao de dados XML I Includo como parte do Oracle Database a partir da vers~ao Oracle9i Release 2 (9.2) I Prov^e meios para interoperar SQL e XML 8 / 18
  • 14. Caractersticas basicas I Permite gravar dados XML na base de tr^es formas distintas: Estruturado: Utilizando o tipo de dado XMLType. E mais otimizado que as demais formas de persist^encia. Desestruturado: Utilizando o tipo de dado CLOB. Oferece maior exibilidade. Binario: Utilizando o tipo de dado BLOB. Melhor tecnica para armazenamento e
  • 15. caz. 9 / 18
  • 16. XMLType I Tipo de dado SQL nativo criado para armazenar documentos XML I Pode-se utiliza-lo como coluna, variavel ou argumento em func~oes e procedimentos I Tambem e possvel criar uma tabela do tipo XMLType I Apenas estruturas XML bem formadas s~ao aceitas pelo tipo XMLType I Adicionalmente, os documentos podem ser validados contra seu XML Schema 10 / 18
  • 17. Criando tabelas Exemplo --Tabela com coluna XMLType create table xml_documento ( doc_id number not null, descricao varchar2(200) not null, documento xmltype not null, constraint pk_xml_documento primary key(doc_id) ); --Tabela do tipo XMLType create table xml_documento_objeto of xmltype; 11 / 18
  • 18. Inserindo dados Exemplo insert into xml_documento_objeto values ( XMLTYPE( '?xml version=1.0? crs:cursos xmlns:crs=http://upf.br/cursos cr:curso tipo=mestrado xmlns:cr=http://upf.br/cursos/curso alunos aluno nomeFulano/nome matricula12345/matricula /aluno aluno nomeCiclano/nome matricula34512/matricula /aluno /alunos /cr:curso /crs:cursos ')); 12 / 18
  • 19. Atualizando dados I Para atualizar algum valor existente dentro da estrutura do XML utiliza-se o procedimento updateXML. I Dentre os argumentos do procedimento esta a express~ao XPath que indica o ponto exato da atualizac~ao Exemplo -- Atualizando primeiro aluno do mestrado update XML_DOCUMENTO_OBJETO o set o.object_value = updateXML( o.OBJECT_VALUE,--documento '/cs:cursos/c:curso[@tipo=mestrado]/alunos/aluno[1]/nome/text()',--onde atualizar 'Aluno atualizado',-- novo valor 'xmlns:c=http://upf.br/cursos/curso xmlns:cs=http://upf.br/cursos' --namespaces ); 13 / 18
  • 20. Atualizando dados I Para inserir novos valores dentro da estrutura do XML pode-se utilizar os procedimentos: insertChildXML insertChildXMLBefore insertChildXMLAfter appendChildXML I Dentre os argumentos do procedimento esta a express~ao XPath que indica o ponto exato da inserc~ao 14 / 18
  • 21. Atualizando dados Exemplo update XML_DOCUMENTO_OBJETO o set o.object_value = insertChildXML(o.OBJECT_VALUE,'/cs:cursos/c:curso[@tipo=mestrado]/alunos', 'aluno', XMLType(' aluno nomeNovo aluno inserido/nome matriculamst:12345/matricula /aluno '), 'xmlns:c=http://upf.br/cursos/curso xmlns:cs=http://upf.br/cursos'); update XML_DOCUMENTO_OBJETO o set o.object_value = appendChildXML( o.OBJECT_VALUE, '/cs:cursos/c:curso[@tipo=fundamental]/alunos', XMLType(' aluno nomeFulano do fundamental/nome matricula1111/matricula /aluno '), 'xmlns:c=http://upf.br/cursos/curso xmlns:cs=http://upf.br/cursos'); 15 / 18
  • 22. Eliminando dados I Para remover algum valor existente dentro da estrutura do XML utiliza-se o procedimento deleteXML. I Dentre os argumentos do procedimento esta a express~ao XPath que indica o ponto exato da remoc~ao Exemplo update XML_DOCUMENTO_OBJETO o set o.object_value = deleteXML( o.OBJECT_VALUE, '/cs:cursos/c:curso[@tipo=doutorado]/alunos/aluno[matricula=doc34512]', 'xmlns:c=http://upf.br/cursos/curso xmlns:cs=http://upf.br/cursos' ); 16 / 18
  • 23. Recuperando dados I Para extrar valores da estrutura XML utilizam-se os metodos extract e/ou extractValue; I Dentre os argumentos do procedimento esta a express~ao XPath que indica o ponto exato da recuperac~ao dos dados; Exemplo select d.descricao, d.DOCUMENTO.extract( '/cs:cursos/c:curso[@tipo=mestrado]/alunos/aluno[1]/nome/text()', 'xmlns:c=http://upf.br/cursos/curso xmlns:cs=http://upf.br/cursos' ).getStringVal() as valor from xml_documento d; 17 / 18
  • 25. cas Adams, Drew. Oracle R XML DB Developer's Guide 11g Release 2 (11.2). Edic~ao Fevereiro de 2014. Acesso em: 30 out. 2014. Disponvel em: http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/toc.htm 18 / 18