SlideShare uma empresa Scribd logo
DB2 Express-C 9.5 Sistemas de Bancos de Dados - Univates Bruno Dadalt Zambiazi
DB2 Gerenciador de bancos relacionais com suporte a XML; Lançado em 1983 pela  IBM ; SGBD de grande porte e alto desempenho; Stored Procedures podem ser escritas em diversas linguagens; Versões para servidores Windows, Linux, Unix, Mainframes e PDA’s; Versão gratuita:  Express-C  (2006).
DB2 - Versões
Controle de Transações
Transações “ Executar uma rotina e, durante a mesma, parar o servidor. Iniciar novamente o servidor, verificando se a transação funcionou corretamente.” Método : execução de um rotina responsável pela inserção de 425 registros na tabela  retiradas ; Mensagem : "Erro fatal: [jcc][t4][2055][11259][4.8.87] O gerenciador de banco de dados não está apto a aceitar novos pedidos, todos os pedidos em progresso foram terminados, ou este pedido específico foi terminado devido a condições de erro inesperadas detectadas no sistema de destino. ERRORCODE=-4499, SQLSTATE=58009"; Nº de registros na tabela  antes de parar o servidor :  0 ; Nº de registros na tabela  após parar o servidor :  0 ; Conclusão : passou no teste, pois nenhum registro foi inserido ao ocorrer algum problema durante a transação.
Transações “ Executar duas rotinas de forma simultânea e, quando uma delas indicar que terminou, parar o servidor. Iniciar novamente o servidor e verificar se a transação que terminou teve os dados efetivados e se a outra teve as atualizações desfeitas.” Método : execução de um rotina para inserção de 25 registros na tabela  exemplares  e outra pela pela inserção de 440 registros na tabela  retiradas ; Mensagem : "Erro fatal: [jcc][t4][2055][11259][4.8.87] O gerenciador de banco de dados não está apto a aceitar novos pedidos, todos os pedidos em progresso foram terminados, ou este pedido específico foi terminado devido a condições de erro inesperadas detectadas no sistema de destino. ERRORCODE=-4499, SQLSTATE=58009"; Nº de registros na tabela  exemplares  antes de parar o servidor :  500 ; Nº de registros na tabela  retiradas  antes de parar o servidor :  0 ; Nº de registros na tabela  exemplares  após parar o servidor :  525 ; Nº de registros na tabela  retiradas  após parar o servidor :  0 ; Conclusão : passou no teste, pois a transação que estava aberta no momento da interrupção do servidor não teve as suas atualizações efetivadas.
Controle de Concorrência
Concorrência – Níveis de Isolamento Uncommited Read  (Leitura de dados não finalizados) Menor nível de isolamento, maior nível de concorrência; Não há bloqueios em operações de consultas; Operações de atualizações ocorrem da mesma forma que o Cursor Stability; Também conhecido como Dirty Read (Leitura Suja).   Cursor Stability  (Estabilidade do cursor) É o nível de isolamento padrão do DB2; Oferece o menor nível de bloqueio; Operações de consulta bloqueiam a linha até a captura; Operações de atualização bloqueiam até o fim da transação.
Concorrência – Níveis de Isolamento Read Stability   (Estabilidade da leitura) Todas as linhas que fazem parte da operação são bloqueadas até o fim da transação; Usa um grau moderado de bloqueio. Repeatable Read   (Leitura repetida) Maior nível de isolamento, menor nível de concorrência; O bloqueio é feito em qualquer linha, mesmo que esta não faça parte do resultado final; Nada pode ser feito antes do término da primeira operação em processamento.
Concorrência – Bloqueio Podem ocorrer à nível de tabela ou de linhas; Existem dois tipos: Bloqueios Divididos (Share Locks) Acontecem quando uma aplicação/transação realiza a leitura de dados e impede que os mesmos sofram alterações por outras aplicações/transações. Bloqueios Exclusivos (Exclusive Locks) Acontecem quando uma aplicação/transação quer atualizar, inserir ou remover alguma linha.
Concorrência – Níveis de Isolamento
Concorrência “ Executar duas rotinas simultâneas que alteram dados na tabela  retiradas , para verificar se uma transação interfere em outra.” Método : a primeira rotina consultou as  retiradas  do mês  03/2010 , de dois em dois dias, adicionando um dia à data de retirada e atualizando o registro. A segunda rotina consultou as  retiradas  de  20 usuários  sorteados, subtraindo um dia à data da retirada; Registro : retirada  29780 ; Datas (antiga e nova) da retirada na primeira rotina : 01/03 e 02/03; Horário da atualização : 09:48: 32:609 ; Datas (antiga e nova) da retirada na segunda rotina : 02/03 e 01/03; Horário da atualização : 09:48: 33:484 ; Conclusão : passou no teste, visto que cada processo de consulta e atualização era uma nova transação.
Otimização de Consultas
Otimização de Consultas select  reti.id_retirada ,  usua.nm_usuario ,  aten.nm_atendente ,  reti.id_livro ,  cida.nm_cidade from  user.retiradas reti ,  user.usuarios usua ,  user.atendentes aten ,  user.cidades cida where (  reti.id_usuario  = usua.id_usuario and reti.id_atendente = aten.id_atendente and usua.id_cidade  = cida.id_cidade ) and  (  usua.id_cidade = aten.id_cidade or usua.id_cidade = 1416 ) Tempo decorrido : Sem índices: 0:00: 05:81 Com índices: 0:00: 01:12 Índices criados: reti.id_usuario reti.id_atendente usua.id_cidade aten.id_cidade
Plano – Sem Índices
Plano – Com Índices
Otimização de Consultas select  aten.id_atendente ,  aten.nm_atendente ,  count( reti.id_retirada ) from  user.atendentes aten ,  user.retiradas  reti Where aten.id_atendente = reti.id_atendente group  by aten.id_atendente ,  aten.nm_atendente having  count( reti.id_retirada )  >=  all( select count( reti2.id_retirada ) from  user.retiradas reti2 group  by reti2.id_atendente ) Tempo decorrido : Original:  0:00: 10:39 Alterada: 0:00: 06:57 select aten.id_atendente ,  aten.nm_atendente ,  count( reti.id_retirada ) from  user.atendentes aten ,  user.retiradas  reti where aten.id_atendente = reti.id_atendente group  by aten.id_atendente ,  aten.nm_atendente order  by qt_atendimentos desc fetch  first 1 rows only
Replicação de Dados
Replicação Bidirecional com um mestre Igual ao modelo Master-Slave; Nomenclatura: Source e Target; O source (mestre) precisa ter um Capture rodando para capturar as alterações; Todos os targets (escravos) precisam de um Apply para aplicar as alterações;
Replicação – Master-Slave
Replicação Bidirecional sem um mestre Igual ao modelo Multi-Master; Nomenclatura: Source e Target; Ambas as partes precisam ter um Capture rodando para capturar as alterações; Ambas as partes precisam ter um Apply para aplicar as alterações nos outros servidores; Ocorre de forma assíncrona.
Replicação – Multi-Master
Suporte/recursos XML
XML - Armazenamento XML – Enabled Possui como núcleo o modelo relacional; Modelo  CLOB/Varchar : Armazena uma String não analisada sintaticamente; Na consulta, é necessário analisar a String para trabalhar com os dados; Modelo  Shredding (Fragmentação) : Documento é dividido em pequenas partes que serão armazenadas em tabelas; Mudanças no XML não são aplicadas facilmente.
XML - Armazenamento XML - Enabled
XML - Armazenamento XML Nativo (pureXML) Possui como núcleo o modelo de dados hierárquico; Acesso aos dados:  SQL ,  SQL/X ,  XQuery ,  XPath ; Instruções são processadas nativamente, ao invés de serem convertidas para SQL; DB2 é o único SGBD que dá suporte ao XML Nativo.
XML - Exemplos CREATE TABLE clientes(  id_cliente INT PRIMARY KEY NOT NULL , nm_cliente VARCHAR( 100 ) NOT NULL , xml_contatos XML ); INSERT INTO  clientes( id_cliente, nm_cliente, xml_contatos )  VALUES( 1, ‘Bruno’, ‘<endereco>Rua Sem fim, nº 666</endereco>’ );
XML – Funções e Exemplos SELECT nm_livro FROM livros WHERE XMLEXISTS( ‘$autores/autor[nome=“Bruno”]’ ); SELECT XMLQUERY( ‘$autores/autor’ ) FROM livros WHERE nm_livro = ‘Sistemas de Bancos de Dados’; SELECT nm_usuario, XMLQUERY( ‘for $x in $contatos/emails return <p>{$x}</p>’ ) AS emails FROM usuarios WHERE nm_usuario LIKE ‘Bruno%’; SELECT XMLELEMENT( NAME “id_usuario”, id ), XMLELEMENT( NAME “nm_usuario”, nome ) FROM usuarios;

Mais conteúdo relacionado

PDF
DB2 Express-C 9.5
PDF
Treinamento DBA Essential
PDF
Treinamento Data Guard
PDF
Treinamento RMAN Workshop 12c
PPTX
PDF
Oracle 18c Instalação Grid Infrastructure & Database
DOC
Apostila sql
PPT
ENPO - RMAN: Vilão ou Heroí?
DB2 Express-C 9.5
Treinamento DBA Essential
Treinamento Data Guard
Treinamento RMAN Workshop 12c
Oracle 18c Instalação Grid Infrastructure & Database
Apostila sql
ENPO - RMAN: Vilão ou Heroí?

Mais procurados (20)

PDF
Oracle Data Guard
PPTX
High Avaiability Architeture with Oracle Data Guard Broker
PDF
Apostila Oracle 10g
PPT
Mysql for IBMers
PDF
Treinamento Oracle GoldenGate 19c
PPTX
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
PPT
Oracle OEM Grid Control 11g
PDF
Oracle 11g – Inteligência em Banco de Dados
PPT
Oracle Day - Produtos de banco de dados
PDF
Banco de dados oracle
PDF
Minicurso PostgreSQl
PDF
Minicurso PostgreSQL
PPT
Otimizando um banco de dados Oracle para Exadata
PDF
Escalabilidade horizontal com PostgreSQL e Pgpool II
PDF
PostgreSQL: Conceitos e aplicações
ODP
PostgreSQL Conceitos e aplicações
PPTX
Alta Disponibilidade TechEd
PPTX
Workshop SQL Server 2012
PPTX
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
PPTX
Estrategias de backup e recovery
Oracle Data Guard
High Avaiability Architeture with Oracle Data Guard Broker
Apostila Oracle 10g
Mysql for IBMers
Treinamento Oracle GoldenGate 19c
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
Oracle OEM Grid Control 11g
Oracle 11g – Inteligência em Banco de Dados
Oracle Day - Produtos de banco de dados
Banco de dados oracle
Minicurso PostgreSQl
Minicurso PostgreSQL
Otimizando um banco de dados Oracle para Exadata
Escalabilidade horizontal com PostgreSQL e Pgpool II
PostgreSQL: Conceitos e aplicações
PostgreSQL Conceitos e aplicações
Alta Disponibilidade TechEd
Workshop SQL Server 2012
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
Estrategias de backup e recovery
Anúncio

Semelhante a DB2 Express-C (20)

PDF
Oracleplsql
PDF
Apostila oracle
PPTX
Redes de computador
PPT
Replicacao Object Sistemas
PDF
Monolith - An epic journey
PPTX
Novidades do Sql Server 2016
PDF
TimesTen In-Memory Database
PDF
Os 10 Mandamentos para realizar um projeto de upgrade SAP
PPTX
Banco de Dados - Transações e Controle de Concorrência
PPTX
Monitoramento de Serviços de Bancos de Dados - Nagios
PPTX
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
PPTX
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
PPTX
4_horas_microsoft
PDF
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
PDF
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
PDF
Oracle e SQL Server na prática mitos, semelhanças e diferenças
PDF
ALM e Operações - Workshop - Como Diagnosticar um Incidente
PDF
Elastic MeetUp Porto Alegre
PPTX
Mainframe Performance Review
PDF
Isolamento e mvcc
Oracleplsql
Apostila oracle
Redes de computador
Replicacao Object Sistemas
Monolith - An epic journey
Novidades do Sql Server 2016
TimesTen In-Memory Database
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Banco de Dados - Transações e Controle de Concorrência
Monitoramento de Serviços de Bancos de Dados - Nagios
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
4_horas_microsoft
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Oracle e SQL Server na prática mitos, semelhanças e diferenças
ALM e Operações - Workshop - Como Diagnosticar um Incidente
Elastic MeetUp Porto Alegre
Mainframe Performance Review
Isolamento e mvcc
Anúncio

Mais de Bruno Dadalt Zambiazi (7)

PDF
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
PPTX
Os porquês do português
PPT
PDF
Avalição Heurística de aplicativos Desktop e Web
PDF
[Engenharia de Software] Marquivos.com
PPT
[Engenharia de Software] Marquivos.com
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Os porquês do português
Avalição Heurística de aplicativos Desktop e Web
[Engenharia de Software] Marquivos.com
[Engenharia de Software] Marquivos.com

Último (19)

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

DB2 Express-C

  • 1. DB2 Express-C 9.5 Sistemas de Bancos de Dados - Univates Bruno Dadalt Zambiazi
  • 2. DB2 Gerenciador de bancos relacionais com suporte a XML; Lançado em 1983 pela IBM ; SGBD de grande porte e alto desempenho; Stored Procedures podem ser escritas em diversas linguagens; Versões para servidores Windows, Linux, Unix, Mainframes e PDA’s; Versão gratuita: Express-C (2006).
  • 5. Transações “ Executar uma rotina e, durante a mesma, parar o servidor. Iniciar novamente o servidor, verificando se a transação funcionou corretamente.” Método : execução de um rotina responsável pela inserção de 425 registros na tabela retiradas ; Mensagem : &quot;Erro fatal: [jcc][t4][2055][11259][4.8.87] O gerenciador de banco de dados não está apto a aceitar novos pedidos, todos os pedidos em progresso foram terminados, ou este pedido específico foi terminado devido a condições de erro inesperadas detectadas no sistema de destino. ERRORCODE=-4499, SQLSTATE=58009&quot;; Nº de registros na tabela antes de parar o servidor : 0 ; Nº de registros na tabela após parar o servidor : 0 ; Conclusão : passou no teste, pois nenhum registro foi inserido ao ocorrer algum problema durante a transação.
  • 6. Transações “ Executar duas rotinas de forma simultânea e, quando uma delas indicar que terminou, parar o servidor. Iniciar novamente o servidor e verificar se a transação que terminou teve os dados efetivados e se a outra teve as atualizações desfeitas.” Método : execução de um rotina para inserção de 25 registros na tabela exemplares e outra pela pela inserção de 440 registros na tabela retiradas ; Mensagem : &quot;Erro fatal: [jcc][t4][2055][11259][4.8.87] O gerenciador de banco de dados não está apto a aceitar novos pedidos, todos os pedidos em progresso foram terminados, ou este pedido específico foi terminado devido a condições de erro inesperadas detectadas no sistema de destino. ERRORCODE=-4499, SQLSTATE=58009&quot;; Nº de registros na tabela exemplares antes de parar o servidor : 500 ; Nº de registros na tabela retiradas antes de parar o servidor : 0 ; Nº de registros na tabela exemplares após parar o servidor : 525 ; Nº de registros na tabela retiradas após parar o servidor : 0 ; Conclusão : passou no teste, pois a transação que estava aberta no momento da interrupção do servidor não teve as suas atualizações efetivadas.
  • 8. Concorrência – Níveis de Isolamento Uncommited Read (Leitura de dados não finalizados) Menor nível de isolamento, maior nível de concorrência; Não há bloqueios em operações de consultas; Operações de atualizações ocorrem da mesma forma que o Cursor Stability; Também conhecido como Dirty Read (Leitura Suja). Cursor Stability (Estabilidade do cursor) É o nível de isolamento padrão do DB2; Oferece o menor nível de bloqueio; Operações de consulta bloqueiam a linha até a captura; Operações de atualização bloqueiam até o fim da transação.
  • 9. Concorrência – Níveis de Isolamento Read Stability (Estabilidade da leitura) Todas as linhas que fazem parte da operação são bloqueadas até o fim da transação; Usa um grau moderado de bloqueio. Repeatable Read (Leitura repetida) Maior nível de isolamento, menor nível de concorrência; O bloqueio é feito em qualquer linha, mesmo que esta não faça parte do resultado final; Nada pode ser feito antes do término da primeira operação em processamento.
  • 10. Concorrência – Bloqueio Podem ocorrer à nível de tabela ou de linhas; Existem dois tipos: Bloqueios Divididos (Share Locks) Acontecem quando uma aplicação/transação realiza a leitura de dados e impede que os mesmos sofram alterações por outras aplicações/transações. Bloqueios Exclusivos (Exclusive Locks) Acontecem quando uma aplicação/transação quer atualizar, inserir ou remover alguma linha.
  • 11. Concorrência – Níveis de Isolamento
  • 12. Concorrência “ Executar duas rotinas simultâneas que alteram dados na tabela retiradas , para verificar se uma transação interfere em outra.” Método : a primeira rotina consultou as retiradas do mês 03/2010 , de dois em dois dias, adicionando um dia à data de retirada e atualizando o registro. A segunda rotina consultou as retiradas de 20 usuários sorteados, subtraindo um dia à data da retirada; Registro : retirada 29780 ; Datas (antiga e nova) da retirada na primeira rotina : 01/03 e 02/03; Horário da atualização : 09:48: 32:609 ; Datas (antiga e nova) da retirada na segunda rotina : 02/03 e 01/03; Horário da atualização : 09:48: 33:484 ; Conclusão : passou no teste, visto que cada processo de consulta e atualização era uma nova transação.
  • 14. Otimização de Consultas select reti.id_retirada , usua.nm_usuario , aten.nm_atendente , reti.id_livro , cida.nm_cidade from user.retiradas reti , user.usuarios usua , user.atendentes aten , user.cidades cida where ( reti.id_usuario = usua.id_usuario and reti.id_atendente = aten.id_atendente and usua.id_cidade = cida.id_cidade ) and ( usua.id_cidade = aten.id_cidade or usua.id_cidade = 1416 ) Tempo decorrido : Sem índices: 0:00: 05:81 Com índices: 0:00: 01:12 Índices criados: reti.id_usuario reti.id_atendente usua.id_cidade aten.id_cidade
  • 15. Plano – Sem Índices
  • 16. Plano – Com Índices
  • 17. Otimização de Consultas select aten.id_atendente , aten.nm_atendente , count( reti.id_retirada ) from user.atendentes aten , user.retiradas reti Where aten.id_atendente = reti.id_atendente group by aten.id_atendente , aten.nm_atendente having count( reti.id_retirada ) >= all( select count( reti2.id_retirada ) from user.retiradas reti2 group by reti2.id_atendente ) Tempo decorrido : Original: 0:00: 10:39 Alterada: 0:00: 06:57 select aten.id_atendente , aten.nm_atendente , count( reti.id_retirada ) from user.atendentes aten , user.retiradas reti where aten.id_atendente = reti.id_atendente group by aten.id_atendente , aten.nm_atendente order by qt_atendimentos desc fetch first 1 rows only
  • 19. Replicação Bidirecional com um mestre Igual ao modelo Master-Slave; Nomenclatura: Source e Target; O source (mestre) precisa ter um Capture rodando para capturar as alterações; Todos os targets (escravos) precisam de um Apply para aplicar as alterações;
  • 21. Replicação Bidirecional sem um mestre Igual ao modelo Multi-Master; Nomenclatura: Source e Target; Ambas as partes precisam ter um Capture rodando para capturar as alterações; Ambas as partes precisam ter um Apply para aplicar as alterações nos outros servidores; Ocorre de forma assíncrona.
  • 24. XML - Armazenamento XML – Enabled Possui como núcleo o modelo relacional; Modelo CLOB/Varchar : Armazena uma String não analisada sintaticamente; Na consulta, é necessário analisar a String para trabalhar com os dados; Modelo Shredding (Fragmentação) : Documento é dividido em pequenas partes que serão armazenadas em tabelas; Mudanças no XML não são aplicadas facilmente.
  • 25. XML - Armazenamento XML - Enabled
  • 26. XML - Armazenamento XML Nativo (pureXML) Possui como núcleo o modelo de dados hierárquico; Acesso aos dados: SQL , SQL/X , XQuery , XPath ; Instruções são processadas nativamente, ao invés de serem convertidas para SQL; DB2 é o único SGBD que dá suporte ao XML Nativo.
  • 27. XML - Exemplos CREATE TABLE clientes( id_cliente INT PRIMARY KEY NOT NULL , nm_cliente VARCHAR( 100 ) NOT NULL , xml_contatos XML ); INSERT INTO clientes( id_cliente, nm_cliente, xml_contatos ) VALUES( 1, ‘Bruno’, ‘<endereco>Rua Sem fim, nº 666</endereco>’ );
  • 28. XML – Funções e Exemplos SELECT nm_livro FROM livros WHERE XMLEXISTS( ‘$autores/autor[nome=“Bruno”]’ ); SELECT XMLQUERY( ‘$autores/autor’ ) FROM livros WHERE nm_livro = ‘Sistemas de Bancos de Dados’; SELECT nm_usuario, XMLQUERY( ‘for $x in $contatos/emails return <p>{$x}</p>’ ) AS emails FROM usuarios WHERE nm_usuario LIKE ‘Bruno%’; SELECT XMLELEMENT( NAME “id_usuario”, id ), XMLELEMENT( NAME “nm_usuario”, nome ) FROM usuarios;