1 de 23 DB2 pureXML – Entendendo e aplicando

23
06/06/22 Version 1.1 DB2 pureXML: Entendendo e aplicando Autores: Juliano Marcos Martins [email protected] Alex Sandro R. de Souza Poletto apoletto@femanet.

description

 

Transcript of 1 de 23 DB2 pureXML – Entendendo e aplicando

Page 1: 1 de 23 DB2 pureXML – Entendendo e aplicando

04/10/23Version 1.1

DB2 pureXML:Entendendo e aplicando

Autores:Juliano Marcos Martins [email protected] Sandro R. de Souza Poletto [email protected]

Page 2: 1 de 23 DB2 pureXML – Entendendo e aplicando

2 de 23 DB2 pureXML – Entendendo e aplicando

Agenda

• Quem sou eu• Justificativa• XML• Interação entre sistemas• SOA• XML e Banco de dados• DB2 pureXML• Entendendo e aplicando• Conclusão• Referencias

Page 3: 1 de 23 DB2 pureXML – Entendendo e aplicando

3 de 23 DB2 pureXML – Entendendo e aplicando

Quem sou eu

Juliano Marcos MartinsIBM Advisory IT Specialist

Embaixador Acadêmico IBM

DB2 8.2 Fundamentals Certified

Especializando em Arquitetura de integração de sistemas

Page 4: 1 de 23 DB2 pureXML – Entendendo e aplicando

4 de 23 DB2 pureXML – Entendendo e aplicando

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

Page 5: 1 de 23 DB2 pureXML – Entendendo e aplicando

5 de 23 DB2 pureXML – Entendendo e aplicando

Dificuldade de encontrar profissionaisEasy to find:Business Analyst DBA Oracle UNIXDEV C/C++ (w DB any)DEV C/C++ (w/o DB)DEV Java (Basic) with

any DBDEV Java Full Set with

any DBDEV Microsoft

environmentProject ManagerTester (Basic)

ESTIMATED AVERAGE LEAD TIME : 2 WEEKS

Moderate to find: Business Analyst special requirementsDEV ExcelDEV MVS, DB2, COBOL, JCLProject AdministratorProject Manager special requirementsSecond Level Support

ESTIMATED AVERAGE LEAD TIME: 3 WEEKS

Difficult to find:BI / DW / OLAPDBA Oracle AIXDBA Oracle MVSDEV C/C++ (w DB DB2)DEV DB2DEV Java (Basic) with DB2DEV Lotus 123DEV NotesDEV SiebelDEV WASSAP FunctionalTester (winnrunner)DEV DB2 special requirementsDEV Excel special requirementsDEV MVS, DB2, PL/1, JCLProject Administrator special requirements

ESTIMATED AVERAGE LEAD TIME: 4 – 5 WEEKS

HOT SKILLS: DBA DB2 UNIXDEV Java Full set with DB2DEV Lotus 123 special requirementsDEV Notes special requirementsDEV WAS PortalOperational WAS Portal special requerimentsSAP ABAPSecond Level Support special requirementsDBA DB2 AIXDBA DB2 MVSDEV AssemblerDEV MVS / REXXDEV VM / REXXTester (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;

Page 6: 1 de 23 DB2 pureXML – Entendendo e aplicando

6 de 23 DB2 pureXML – Entendendo e aplicando

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.

Page 7: 1 de 23 DB2 pureXML – Entendendo e aplicando

7 de 23 DB2 pureXML – Entendendo e aplicando

SOA

Page 8: 1 de 23 DB2 pureXML – Entendendo e aplicando

8 de 23 DB2 pureXML – Entendendo e aplicando

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="1.0" encoding="UTF-8"?><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>

Page 9: 1 de 23 DB2 pureXML – Entendendo e aplicando

9 de 23 DB2 pureXML – Entendendo e aplicando

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?

Page 10: 1 de 23 DB2 pureXML – Entendendo e aplicando

10 de 23 DB2 pureXML – Entendendo e aplicando

XML e banco de dados

• Armazenamento de documentos XML em objetos• Divisão ou decomposição de dados XML• Banco de dados XML

Page 11: 1 de 23 DB2 pureXML – Entendendo e aplicando

11 de 23 DB2 pureXML – Entendendo e aplicando

DB2 pureXML

• Banco de dados híbrido

• XML é um tipo de dados

Page 12: 1 de 23 DB2 pureXML – Entendendo e aplicando

12 de 23 DB2 pureXML – Entendendo e aplicando

Trabalhando no DB2

Page 13: 1 de 23 DB2 pureXML – Entendendo e aplicando

13 de 23 DB2 pureXML – Entendendo e aplicando

Criação do banco de dados

• create database test using codeset UTF-8 territory BR

Page 14: 1 de 23 DB2 pureXML – Entendendo e aplicando

14 de 23 DB2 pureXML – Entendendo e aplicando

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

);

Page 15: 1 de 23 DB2 pureXML – Entendendo e aplicando

15 de 23 DB2 pureXML – Entendendo e aplicando

Povoando as tabelas

• Através da instrução insert

• Através do utilitário import

Page 16: 1 de 23 DB2 pureXML – Entendendo e aplicando

16 de 23 DB2 pureXML – Entendendo e aplicando

Povoando as tabelas - insert

• insert into clientes values (1, 'João da Silva', 'São Paulo', '<addr>Rua Vergueiro 79, 39508000, Paraíso</addr>')

Page 17: 1 de 23 DB2 pureXML – Entendendo e aplicando

17 de 23 DB2 pureXML – Entendendo e aplicando

Povoando as tabelas - import

• Arquivo .del• Documentos .xml a serem importados• IMPORT FROM "C:\arquivos\clientes.del" OF DEL

INSERT INTO CLIENTES; 4,"Marcos Pereira","Tarumã","<XDS FIL=""marcos.xml""/>"5,"José Damico","São Paulo","<XDS FIL=""damico.xml""/>"6,"Argemiro Lima","Rio de Janeiro","<XDS FIL=""lima.xml""/>"7,"Walter Casagrande","São Paulo","<XDS FIL=""casa.xml""/>"8,"Maria Lima","Hortolandia","<XDS FIL=""maria.xml""/>"9,"Benedita Pereira","Rio de Janeiro","<XDS FIL=""bene.xml""/>

<?xml version="1.0"?><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,"Maria Lima","Hortolandia",

Page 18: 1 de 23 DB2 pureXML – Entendendo e aplicando

18 de 23 DB2 pureXML – Entendendo e aplicando

Recuperando informações - select• select * from clientes;

• select nome from clientes where xmlexists('$c/Cliente/Endereco[estado="RJ"]'passing clientes.contatos as "c");

• select xmlquery('$c/Cliente/telefones' passing contatos as "c") from clientes where codigo = 8;

• select xmlquery('$c/Cliente/telefones/residencial[1]' passing contatos as "c") from clientes where codigo = 8;

• select xmlquery('$c/Cliente/email' passing contatos as "c") from clientes where xmlexist('$c/Cliente/email' passing contatos as "c");

• select xmlelement (name "item", xmlelement (name "codigo",codigo), xmlelement (name "nome", nome)) from itens;

Page 19: 1 de 23 DB2 pureXML – Entendendo e aplicando

19 de 23 DB2 pureXML – Entendendo e aplicando

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 protected]</email></Cliente>' ) )where codigo = 4;

• Stored procedure - DB2XMLFUNCTIONS.XMLUPDATE

Page 20: 1 de 23 DB2 pureXML – Entendendo e aplicando

20 de 23 DB2 pureXML – Entendendo e aplicando

Excluindo dados - delete

• delete from clientes where código = 1; • delete from clientes where xmlexists('$c/Clientes/endereco[estado="RJ"]' passing clientes.contatos as "c");

Page 21: 1 de 23 DB2 pureXML – Entendendo e aplicando

21 de 23 DB2 pureXML – Entendendo e aplicando

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 cobertasneste artigo, tais como “for”, “let”, “order by” e “return”.

Page 22: 1 de 23 DB2 pureXML – Entendendo e aplicando

22 de 23 DB2 pureXML – Entendendo e aplicando

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/

Page 23: 1 de 23 DB2 pureXML – Entendendo e aplicando

23 de 23 DB2 pureXML – Entendendo e aplicando

Perguntas (?)

Obrigado!

Juliano Marcos Martins [email protected]