1 de 23 DB2 pureXML – Entendendo e aplicando

  • 244 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
244
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DB2 pureXML: Entendendo e aplicando Autores: Juliano Marcos Martins [email_address] Alex Sandro R. de Souza Poletto [email_address]
  • 2. Agenda
    • Quem sou eu
    • Justificativa
    • XML
    • Interação entre sistemas
    • SOA
    • XML e Banco de dados
    • DB2 pureXML
    • Entendendo e aplicando
    • Conclusão
    • Referencias
  • 3. Quem sou eu
    • Juliano Marcos Martins
      • IBM Advisory IT Specialist
      • Embaixador Acadêmico IBM
      • DB2 8.2 Fundamentals Certified
      • Especializando em Arquitetura de integração de sistemas
  • 4. Justificativa
    • Demanda por integração de sistemas
    • Demanda para otimização na integração de sistemas ou serviços
    • Falta mão de obra qualificada
    • Escassez de documentação em português
  • 5. Dificuldade de encontrar profissionais Easy to find: Business Analyst DBA Oracle UNIX DEV C/C++ (w DB any) DEV C/C++ (w/o DB) DEV Java (Basic) with any DB DEV Java Full Set with any DB DEV Microsoft environment Project Manager Tester (Basic) ESTIMATED AVERAGE LEAD TIME : 2 WEEKS Moderate to find: Business Analyst special requirements DEV Excel DEV MVS, DB2, COBOL, JCL Project Administrator Project Manager special requirements Second Level Support ESTIMATED AVERAGE LEAD TIME: 3 WEEKS Difficult to find: BI / DW / OLAP DBA Oracle AIX DBA Oracle MVS DEV C/C++ (w DB DB2) DEV DB2 DEV Java (Basic) with DB2 DEV Lotus 123 DEV Notes DEV Siebel DEV WAS SAP Functional Tester (winnrunner) DEV DB2 special requirements DEV Excel special requirements DEV MVS, DB2, PL/1, JCL Project Administrator special requirements ESTIMATED AVERAGE LEAD TIME: 4 – 5 WEEKS HOT SKILLS: DBA DB2 UNIX DEV Java Full set with DB2 DEV Lotus 123 special requirements DEV Notes special requirements DEV WAS Portal Operational WAS Portal special requeriments SAP ABAP Second Level Support special requirements DBA DB2 AIX DBA DB2 MVS DEV Assembler DEV MVS / REXX DEV VM / REXX Tester (loadrunner) ESTIMATED AVERAGE LEAD TIME: 6 – 8 WEEKS * The difficulty level depends on customer acceptance of training / skills ramp-up plans or premium rates acceptance for experienced resources; * The average lead time numbers are just estimates and depends on demand volumes;
  • 6. Integração entre sistemas
    • O ambiente corporativo atualmente está dividido em dois tipos de corporações:
      • 1- as que demandam que as aplicações interajam entre si cada vez mais;
      • 2- e as que já têm esse ambiente de interação implementado
    • Integração é feita através de XML na maioria dos casos.
  • 7. SOA
  • 8. XML – eXtensible Markup Language
    • Derivada da linguagem Standard Generalized Markup Language
    • Provê um formato para descrever dados estruturados
    • Especificação técnica desenvolvida pela W3C (World Wide Web Consortium)
    • <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
      • <curriculo>
        • <InformacaoPessoal>
          • <DataNascimento>23-07-68</DataNascimento>
          • <Nomecompleto>Fulano de Tal</Nomecompleto>
          • <Contatos>
            • <Morada>Rua Asfaltada, 572,Bairro do Limoeiro, SP, SP, Brasil</Morada>
            • <Telefone>97446182</Telefone>
            • <CorreioEletronico>fulano@gmail</CorreioEletronico>
          • </Contatos>
          • <Nacionalidade>brasileiro</Nacionalidade>
          • <Sexo>M</Sexo>
        • </InformacaoPessoal>
        • <objetivo>Atuar area de TI</objetivo>
        • <Experiencia>
          • <Cargo>Suporte tecnico</Cargo>
          • <Empregador>Thechnikos, Av.Nossa Sra. do Carmo, 1191 Belo Horizonte, Brasil</Empregador>
        • </Experiencia>
        • <Formacao>Superior Completo</Formacao>
      • </curriculo>
  • 9. O uso do XML na integração
    • XML é multi-plataforma, não depende de um determinado sistema operacional, bem como da arquitetura, utilizando um servidor de aplicação específico. XML é suportado por todos os softwares e hardwares do mercado;
    • XML é independente de fornecedor, não existe um fornecedor do padrão XML;
    • Pode ser convertido facilmente para outros formatos, por exemplo, XLS e HTML.
    • Manipulação no sistema de arquivos
      • Escalabilidade
      • Concorrência
      • Recuperação
      • Segurança
      • Usabilidade
    • Por que não utilizar um banco de dados?
  • 10. XML e banco de dados
    • Armazenamento de documentos XML em objetos
    • Divisão ou decomposição de dados XML
    • Banco de dados XML
  • 11. DB2 pureXML
    • Banco de dados híbrido
    • XML é um tipo de dados
  • 12. Trabalhando no DB2
  • 13. Criação do banco de dados
    • create database test using codeset UTF-8 territory BR
  • 14. Criação de tabelas
      • connect to test;
      • create table itens(
      • codigo int primary key not null,
      • nome varchar(30),
      • comentarios xml
      • );
      • create table clientes(
      • codigo int primary key not null,
      • nome varchar(50),
      • cidade varchar(50),
      • contatos xml
      • );
  • 15. Povoando as tabelas
    • Através da instrução insert
    • Através do utilitário import
  • 16. Povoando as tabelas - insert
    • insert into clientes values (1, 'João da Silva', 'São Paulo', '<addr>Rua Vergueiro 79, 39508000, Paraíso</addr>')
  • 17. Povoando as tabelas - import
    • Arquivo .del
    • Documentos .xml a serem importados
    • IMPORT FROM &quot;C:arquivosclientes.del&quot; OF DEL INSERT INTO CLIENTES;
    4,&quot;Marcos Pereira&quot;,&quot;Tarumã&quot;,&quot;<XDS FIL=&quot;&quot;marcos.xml&quot;&quot;/>&quot; 5,&quot;José Damico&quot;,&quot;São Paulo&quot;,&quot;<XDS FIL=&quot;&quot;damico.xml&quot;&quot;/>&quot; 6,&quot;Argemiro Lima&quot;,&quot;Rio de Janeiro&quot;,&quot;<XDS FIL=&quot;&quot;lima.xml&quot;&quot;/>&quot; 7,&quot;Walter Casagrande&quot;,&quot;São Paulo&quot;,&quot;<XDS FIL=&quot;&quot;casa.xml&quot;&quot;/>&quot; 8,&quot;Maria Lima&quot;,&quot;Hortolandia&quot;,&quot;<XDS FIL=&quot;&quot;maria.xml&quot;&quot;/>&quot; 9,&quot;Benedita Pereira&quot;,&quot;Rio de Janeiro&quot;,&quot;<XDS FIL=&quot;&quot;bene.xml&quot;&quot;/> <?xml version=&quot;1.0&quot;?> <Cliente> <Endereco> <rua>Rua do Mar 154</rua> <cidade>Rio de Janeiro</cidade> <estado>RJ</estado> <cep>8888888</cep> </Endereco> <telefones> <comercial>553133457898</comercial> <residencial>553133454444</residencial> <celular>553197054849</celular> </telefones> </Cliente> 8,&quot;Maria Lima&quot;,&quot;Hortolandia&quot;,
  • 18. Recuperando informações - select
    • select * from clientes;
    • select nome from clientes where xmlexists ('$c/Cliente/Endereco[estado=&quot;RJ&quot;]'passing clientes.contatos as &quot;c&quot;);
    • select xmlquery ('$c/Cliente/telefones' passing contatos as &quot;c&quot;) from clientes where codigo = 8;
    • select xmlquery ('$c/Cliente/telefones/residencial[1]' passing contatos as &quot;c&quot;) from clientes where codigo = 8;
    • select xmlquery ('$c/Cliente/email' passing contatos as &quot;c&quot;) from clientes where xmlexist('$c/Cliente/email' passing contatos as &quot;c&quot;);
    • select xmlelement (name &quot;item&quot;, xmlelement (name &quot;codigo&quot;,codigo), xmlelement (name &quot;nome&quot;, nome)) from itens;
  • 19. Alterando dados - update
    • update clientes set contatos=
    • (xmlparse(document '<Cliente>
    • <Endereco>
    • <rua>Rua dos Pássaros 154</rua>
    • <cidade>Sao Paulo</cidade>
    • <estado>SP</estado>
    • <cep>888888888</cep>
    • </Endereco>
    • <telefones>
    • <comercial>551833457898</comercial>
    • <residencial>551833454444</residencial>
    • <celular>551897054849</celular>
    • </telefones>
    • <email>email@email.com.br</email>
    • </Cliente> ' ) )
    • where codigo = 4;
    • Stored procedure - DB2XMLFUNCTIONS.XMLUPDATE
  • 20. Excluindo dados - delete
    • delete from clientes where código = 1;
    • delete from clientes where xmlexists ('$c/Clientes/endereco[estado=&quot;RJ&quot;]' passing clientes.contatos as &quot;c&quot;);
  • 21. Conclusões
    • Demanda para o armazenamento de informações XML aumentando.
    • Armazenamento e manipulação de tais documentos em banco de dados é a solução definitiva.
    • É muito importante que programadores e Administradores de Banco de Dados(DBAs) estejam familiarizados com as formas disponíveis para se trabalhar com XML em banco de dados.
    • O artigo apresenta de forma prática e sucinta os conceitos e aplicação dos mesmos, podendo servir de material de consulta.
    • Importante buscar mais informações nas referências citadas,
    • Livro DB2 PureXML.
    • A linguagem XQuery tem inúmeras funções não cobertas
    • neste artigo, tais como “ for ”, “ let ”, “ order by ” e “ return ”.
  • 22. Referencias
    • W3C - XQuery
      • http://www.w3.org/XML/Query
    • Developer Works
      • http://www.ibm.com/developerworks
    • Site DB2
      • http://www.ibm.com/db2
    • Grupo de discussão FEMA:
      • http://br.groups.yahoo.com/group/informatica_fema/
    • Meu blog
      • http://jmmwrite.blogspot.com/
  • 23. Perguntas (?)
    • Obrigado!
    Juliano Marcos Martins julianom@br.ibm.com