SlideShare uma empresa Scribd logo
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

PDF
Oracle XML DB - Conceitos iniciais
PPT
Banco de Dados XML
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
PDF
XML e Banco de Dados XML Nativo
PDF
PHP e MySQL para iniciantes
PDF
Estrutura de Dados - Registros
Oracle XML DB - Conceitos iniciais
Banco de Dados XML
Aplicando Transformação em XML usando XSLT e XSL-FO - 2
Aplicando Transformação em XML usando XSLT e XSL-FO - 4
XML e Banco de Dados XML Nativo
PHP e MySQL para iniciantes
Estrutura de Dados - Registros

Mais procurados (9)

PDF
6 estruturas de dados heterogêneas
PDF
Migrando para o PHP 5
PPTX
Parte5 xml
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
PDF
Xml pucminas2013
PPTX
XML - Introdução
PDF
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
PPSX
Linguagem SQL
PDF
Apresentação básica de my sql
6 estruturas de dados heterogêneas
Migrando para o PHP 5
Parte5 xml
Aplicando Transformação em XML usando XSLT e XSL-FO - 3
Xml pucminas2013
XML - Introdução
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Linguagem SQL
Apresentação básica de my sql
Anúncio

Semelhante a Oracle XML DB (20)

PDF
Suporte XML nativo no SQL Server 2014/2016
PDF
Tecnologias XML e XML no SQL Server 2016
PPTX
eXtensible Markup Language (XML)
PDF
XML Schema (2002)
PDF
Introdução à XML - Serviço de Biblioteca da EEFE-USP
PDF
PPT
PDF
01- Introdução ao XML
PPT
PDF
XML: Uma Introdução Prática (2001)
PDF
Curso de xml
PDF
XML_WS.pdf
PPT
XML - Parte 1
PDF
JustJava 2004: JAXB
PDF
Aula Introdução a Linguagem XML
DOCX
Tp 4 xml
PDF
Curso XML - IBM Academic Initiative
PPT
Conceitos de xml
PDF
Aula de DTD Definição do Tipo de Documento
Suporte XML nativo no SQL Server 2014/2016
Tecnologias XML e XML no SQL Server 2016
eXtensible Markup Language (XML)
XML Schema (2002)
Introdução à XML - Serviço de Biblioteca da EEFE-USP
01- Introdução ao XML
XML: Uma Introdução Prática (2001)
Curso de xml
XML_WS.pdf
XML - Parte 1
JustJava 2004: JAXB
Aula Introdução a Linguagem XML
Tp 4 xml
Curso XML - IBM Academic Initiative
Conceitos de xml
Aula de DTD Definição do Tipo de Documento
Anúncio

Mais de Diego Lusa (9)

PDF
Cidades Inteligentes e Big Data
PDF
JQuery Mobile
PDF
Rede "Olhos do Bem"
PDF
Engenharia de software orientada a aspectos: do interesse ao aspecto
PDF
Multiplicação de matrizes
PDF
Ordenação de pares e ímpares
PDF
Multiplicação de Matrizes
PDF
Desenvolvimento do protótipo de uma ferramenta para Engenharia de Requisitos ...
PDF
O uso de tecnologias de big data na concepção e execução de estratégias de en...
Cidades Inteligentes e Big Data
JQuery Mobile
Rede "Olhos do Bem"
Engenharia de software orientada a aspectos: do interesse ao aspecto
Multiplicação de matrizes
Ordenação de pares e ímpares
Multiplicação de Matrizes
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...

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
Apple Pippin Uma breve introdução. - David Glotz
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
COBITxITIL-Entenda as diferença em uso governança TI
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
Aula 18 - Manipulacao De Arquivos python
Aula04-Academia Heri- Tecnologia Geral 2025

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