ibm software group | information management © 2009 ibm corporation luiz henrique zambom santana...
TRANSCRIPT
![Page 1: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/1.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Luiz Henrique Zambom Santana
Treinamento 730 Smart Professional
![Page 2: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/2.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Agenda Introdução ao DB2
– Edições
Instalando o DB2
Gerenciando o DB2– Ferramentas
– Criando um Banco de Dados
– Criando objetos do Banco de Dados e XML
– SQL
Como DB2 lida com segurança?
O que são transações?
Simulado
Discussão
2
![Page 3: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/3.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Introdução ao DB2 Banco de Dados Relacionais da IBM
Lançado em 1983
Versões “quase” independentes:– Mainframe
– Linux, Unix e Windows (LUW)
9.7 ou Cobra: versão atual da LUW
As atuais certificações são baseadas na versão 9.1
3
![Page 4: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/4.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Introdução ao DB2 - Edições
4
![Page 5: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/5.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Instalando o DB2 Podemos fazer download do DeveloperWorks:
http://www-01.ibm.com/software/data/db2/express/download.html
5
![Page 6: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/6.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Criando e Conectando um Banco de Dados Criar um banco através da linha de comando
create database 730db
create database SYS730db
create database IBM730db
create database db3456789
create database my730db
Conectar ao banco de dados
connect <user [Usuário] using [Senha]> to [Banco de Dados]
6
![Page 7: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/7.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Esquemas Organizar logicamente os objetos do Banco de Dados
– CREATE SCHEMA FINANCEIRO
– CREATE SCHEMA VENDAS AUTHORIZATION [UserID]
Pode ser criado implicitamente também
7
![Page 8: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/8.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Tabelas Conjunto de linhas não ordenadas
– CREATE TABLE FINANCEIRO.FUNCIONARIOS(ID INTEGER)– CREATE TABLE COMERCIAL.FUNCIONARIOS(ID INTEGER)
Caso o esquema não seja apresentado explicitamente, será utilizado o usuário corrente
– CREATE TABLE [UserID].GERENTES(ID INTEGER)
8
![Page 9: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/9.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Restrições
9
Exercícios:CREATE TABLE
GERENTES
(ID INTEGER,
NOME VARCHAR(255),
CONTRATACAO DATE,
SALARIO DOUBLE,
FOTO BLOB,
DETALHES XML)
![Page 10: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/10.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Restrições Not null: evita valores nulos
Default: substitui valores nulos por um valor padrão
Check: evita que valores inválidos sejam inseridos
Informational: NOT ENFORCED ENABLE QUERY OPTIMIZATION, o otimizador utiliza a restrição para aumentar o desempenho da consulta, mas valores inválidos podem ser inseridos
Unique: evita que haja valores repetidos, pode ser utilizado em chave estrangeiras e não aceita valores nulos
Referential Integrity: chaves estrangeiras
10
![Page 11: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/11.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Restrições
11
CREATE TABLE DEPARTAMENTOS(id INTEGER NOT NULL PRIMARY KEY,nome CHAR(50) NOT NULL)
CREATE TABLE FUNCIONARIOS(id INTEGER NOT NULL,salario DOUBLE default 10000.00,idade INTEGER, sexo CHAR(1),nome CHAR(50),
CONSTRAINT inf CHECK (idade > 18)NOT ENFORCED ENABLE QUERY OPTIMIZATION,dept INTEGER REFERENCES DEPARTAMENTOS(id)ON DELETE CASCADE ON UPDATE RESTRICT
)
![Page 12: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/12.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Restrições
12
ALTER TABLE DEPARTAMENTOS ADD UNIQUE (nome)
INSERT INTO DEPARTAMENTOS VALUES (0, ‘RH')INSERT INTO DEPARTAMENTOS VALUES (1, ‘RH')INSERT INTO DEPARTAMENTOS VALUES (1, ‘TI')INSERT INTO DEPARTAMENTOS VALUES (2, ‘FINANCEIRO'), (3, 'Depto 3')
INSERT INTO FUNCIONARIOS (id, salario, idade, nome, dept)VALUES (0, 1000, 16, ‘M’, 'Emp1',0)
INSERT INTO FUNCIONARIOS (id, salario, idade, nome, dept)VALUES (1, NULL, 18, ‘M’, 'Emp2',1)
INSERT INTO FUNCIONARIOS (id, salario, idade, nome, dept)VALUES (2, 20000, 17, ‘F’, 'Emp3',1)
INSERT INTO FUNCIONARIOS (id, salario, idade, nome, dept)VALUES (2, 300000, 21, ‘M’, 'Emp4',0)
DELETE FROM DEPARTAMENTOS WHERE ID = 1
![Page 13: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/13.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Visões São como consultas armazenadas
Oferecem diferentes formas de visualizar os mesmos dados
13
![Page 14: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/14.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Visões Existem duas opções para dados inseridos através de uma
visão:– WITH LOCAL CHECK OPTION: garante que as linhas repeitaram a definição
das visões
– WITH CASCADED CHECK OPTION: garante que as linhas repeitaram a definição da visão e das visões precedentes
CREATE VIEW TI AS SELECT * FROM FUNCIONARIOS where dept = 1 WITH LOCAL CHECK OPTION
CREATE VIEW FEMININO AS SELECT * FROM TI sexo=‘F’WITH CASCADED CHECK OPTION
INSERT INTO FEMININO (id, salario, idade, nome, dept) VALUES (2, 30000, 30, ‘F’, 'Emp5',1)
INSERT INTO FEMININO (id, salario, idade, nome, dept) VALUES (2, 30000, 30, ‘M’, 'Emp6',1)
list tables for schema [UserID]
14
![Page 15: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/15.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Índices Um objeto que contém ponteiros ordenados em relação a uma
tabela base
Opções– UNIQUE: caso essa opção seja escolhida, o índice pode conter um e
apenas um valor nulo
– ColunasSecundarias: pode-se adicionar colunas secundárias
Exercícios
– CREATE INDEX emp_indx ON FUNCIONARIOS (ID DESC)
– CREATE UNIQUE INDEX empname_indx ON FUNCIONARIOS(nome)
– CREATE UNIQUE INDEX empid_indx ON FUNCIONARIOS (ID) INCLUDE (salario, idade)
15
![Page 16: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/16.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Objetos do Banco de Dados - Alias São nomes alternativos para:
– Tabelas
– Visões
– Nicknames (tabelas em bancos de dados federados)
CREATE ALIAS employee FOR FUNCIONARIOS
16
![Page 17: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/17.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Como DB2 lida com segurança? Existem três ferramentas básicas, gerenciadas pela
Sistema Operacional– Autenticação: identifica quem está acessando o banco de
dados através de nome de usuário e senha
connect <user [Usuário] using [Senha]> to [Banco de Dados]
– Autoridade: identifica grupos de usuários, organizados hierarquicamente, que realizam atividades especificas
– Privilégio: identifica quais são os direitos desse usuário em relação aos objetos do Banco de Dados
17
![Page 18: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/18.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Como DB2 lida com segurança?
18
![Page 19: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/19.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Autoridades no DB2 db2 get dbm cfg
19
• update dbm cfg using sysadm_group new_group1
• update dbm cfg using sysctr_group new_group2
• update dbm cfg using sysmaint_group new_group3
• update dbm cfg using sysmon_group new_group4
• db2 get dbm cfg
![Page 20: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/20.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Autoridades no DB2 Adicione as autoridades:
– db2 GRANT LOAD ON DATABASE to new_user1
– db2 GRANT DBADM ON DATABASE to new_user2
– db2 GRANT SECADM ON DATABASE to new_user3
Exercício1.create db myAUTHtest
2.Crie um usuário teste com senha teste
3.connect user teste using teste to myAUTHtest
4.connect to myAUTHtest
5.db2 GRANT DBADM ON DATABASE to teste
6.connect user teste using teste to myAUTHtest
20
![Page 21: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/21.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Privilégios no DB2
21
![Page 22: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/22.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Privilégios no DB2
22
1. connect to my730db2. GRANT SELECT ON TABLE FUNCIONARIOS TO teste3. GRANT UPDATE ON TABLE FUNCIONARIOS TO teste4. GRANT CONNECT TO teste5. Connect user teste using teste to my730db6. select * from FUNCIONARIOS7. REVOKE ALL PRIVILEGES ON TABLE DEPARTAMENTO FROM teste
![Page 23: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/23.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando INSERT Inserir valores de uma ou mais linhas
– INSERT INTO FUNCIONARIOS(id, salario, idade, nome, dept) VALUES (0, 1000, 16, 'Emp1',0);
– INSERT INTO FUNCIONARIOS(id, salario, idade, nome, dept) VALUES (1, 10000, 18, 'Emp2',0), (2, 555, 20, 'Emp3',1);
Criar uma tabela a partir de outra e selecionar todos os dados da primeira– CREATE TABLE EQUIPE LIKE FUNCIONARIOS
– INSERT INTO EQUIPE SELECT * FROM FUNCIONARIOS WHERE dept = 0
23
![Page 24: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/24.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando UPDATE Forma simples:
– UPDATE FUNCIONARIOS SET dept = 0, salary = 70000 WHERE id=1
Equivalemente
– UPDATE FUNCIONARIOS SET (dept, salary) = (0, 70000) WHERE id=1
24
![Page 25: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/25.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando DELETE Exemplos:
– DELETE FROM FUNCIONARIOS WHERE id =1
– DELETE FROM FUNCIONARIOS WHERE id IN (0, 2)
– DELETE FROM FUNCIONARIOS WHERE id IN (select id from staff where id =3)
– DELETE FROM FUNCIONARIOS
25
![Page 26: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/26.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando SELECT Forma mais simples:
– SELECT * FROM FUNCIONARIOS
Usando projeção da algebra relacional– SELECT nome, salario FROM FUNCIONARIOS
Valores distintos– SELECT DISTINCT dept FROM FUNCIONARIOS
Restringir o número de linhas– SELECT * FROM FUNCIONARIOS FETCH FIRST 10 ROWS ONLY
Atribuindo nomes– SELECT nome, salario AS pagamento FROM FUNCIONARIOS
– Usando WHERE– SELECT nome, salario FROM FUNCIONARIOS WHERE salario > 20000
– SELECT nome, salario FROM FUNCIONARIOS WHERE nome <> ‘Arthur’
26
![Page 27: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/27.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando SELECT Sub-selects:
– SELECT name FROM staff WHERE name LIKE 'S%‘ "SELECT lastname FROM employee WHERE lastname IN (SELECT sales_person FROM sales WHERE sales_date < '01/01/1996')“
Nomes para correlação:– SELECT e.salary FROM employee e WHERE e.salary < (SELECT
AVG(s.salary) FROM staff s)
27
![Page 28: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/28.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando SELECT Join simples (produto cartesiano):
– SELECT *FROM FUNCIONARIOS, DEPARTAMENTOS
Inner join:– Exemplo:
– SELECT * FROM FUNCIONARIOS f INNER JOIN DEPARTAMENTOS d ON d.id = f.dept
28
![Page 29: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/29.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
SQL – comando SELECT Outer join
– Left outer join inclui os resultados no inner join mais as linhas da tabela da esquerda:
– SELECT * FROM FUNCIONARIOS f LEFT OUTERJOIN DEPARTAMENTOS d ON d.id = f.dept
– Right outer inclui os resultados no inner join mais as linhas da tabela da direita:
– SELECT * FROM FUNCIONARIOS f RIGHT OUTER JOIN DEPARTAMENTOS d ON d.id = f.dept
– A full outer join combina os resultados das duas colunas e preenche com nulos os valores que não possuir correspondentes:
– SELECT * FROM FUNCIONARIOS f FULL OUTER JOIN DEPARTAMENTOS d ON d.id = f.dept
29
![Page 30: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/30.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
O que é XML? eXtensible Markup Language
Simplifica:– Definição de linguagens de marcação (e.g., XHTML, SVG)
– Definição de estruturas de dados
– Transformação de documentos (e.g., XSLT)
– Evolução de esquema do Banco de Dados
30
![Page 31: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/31.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Suporte do DB2 para XML
31
DB2
Outro SGBD
![Page 32: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/32.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Suporte do DB2 para XML O DB2 permite que dados XML
sejam inseridos em seus Banco de Dados. Para recuperação desses dados, é utilizado o XQuery um padrão do W3C. O processador de consulta do DB2 intepreta da mesma forma consultas SQL em dados XML e consultas XQuery em dados relacionais.
32
![Page 33: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/33.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Insert into XML columns
33
insert into DEPARTAMENTOS values (5,’Dept 05’,‘<info> <gerente>Maria</gerente> <email>[email protected]</email> <endereco> <rua>Tutóia</rua>
<cidade>Brasília</cidade></endereco></info>’);
insert into DEPARTAMENTOSvalues (6,’Dept 06’,‘<info> <gerente>João</gerente><endereco> <rua>Santo Amaro</rua>
<cidade>São Paulo</cidade></endereco></info>’);
ALTER TABLE DEPARTAMENTOS ADD COLUMN DETALHES XML
![Page 34: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/34.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
XPath examples Consultar documentos inteiros
– xquery db2-fn:xmlcolumn(‘FUNCIONARIOS.DETALHES')
Recuperar o nome do gerente
– xquery db2-fn:xmlcolumn(‘FUNCIONARIOS.DETALHES ')/info/gerente
– xquery db2-fn:xmlcolumn(‘FUNCIONARIOS.DETALHES ')/info/gerente/text()
Filtrando os resultados
– xquery db2-fn:xmlcolumn('FUNCIONARIOS.DETALHES ')/info[gerente=“Maria“]
– xquery db2-fn:xmlcolumn('CUSTOMER.INFO') /customerinfo[name=“João" or endereco/cidade="Brasília"]/gerente/text()
34
![Page 35: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/35.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Transações As transações, chamadas também de UOW, são
seqüências de operações recuperáveis no Banco de Dados
Em DB2 cada trasação tem início implicitamente (IMPORTANTE) e termina com um comando de ROLLBACK ou COMMIT
35
![Page 36: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/36.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Exemplo transação
36
![Page 37: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/37.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Exemplo transação
37
![Page 38: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/38.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Exemplo transação
38
![Page 39: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/39.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Transações exercício Desativar o auto commit
– db2 +c
Exercício
– Abrir um Command lLne• db2 +c• connect to 730db• create table teste1(id integer)• insert into teste1(1)
– Abrir um segundo Command Line• connect to 730db• select * from table test1
– No primeiro Command Line aberto• commit
39
![Page 40: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/40.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Cocorrência e Níveis de Isolamento Vários Usuários acessando objetos de um mesmo Banco de base
de Dados
Os seguintes fenômenos podem ocorrer:
– Alteração perdida: duas transações lêem os mesmos dados, e tentam fazer alterações ao mesmo tempo; uma das alterações será perdida
– Leitura suja: leitura de dados que ainda não foram comitados
– Leitura não repetida: uma só transação lê uma mesma linha duas vezes e recebe informações diferentes em cada leitura
– Leitura fantasma: em uma mesma transação, informações que inicialmente não são recuperadas, aparecem em uma segunda leiturat then seen in a later read operation
40
![Page 41: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/41.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura repetível Para eveitara problemas, o DB2 possui os seguintes
níveis de isolamento:– Leitura repetível
– Estabilidade de leitura
– Estabilidade de cursor
– Leitura não consolidada
41
![Page 42: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/42.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura repetível O nível de isolamento mais restritivo
Cada linha referenciada por uma transação é travada, mesmo que não seja lida ou modificada
Evita – Leitura suja, Leitura não repetida e Fantasmas
42
![Page 43: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/43.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura repetível
43
![Page 44: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/44.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Estabilidade de leitura Menos restritiva que a Leitura repetível
Não isola as transações completamente
Apenas as linhas que estão sendo recuperada ou modificada pela trasação são travadas
Evita– Leitura suja e Leitura não repetível
Fantasmas podem ocorrer
44
![Page 45: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/45.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Estabilidade de leitura
45
![Page 46: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/46.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Estabilidade de cursor Esse nível de isolamento trava apenas as linhas que estão sendo
referenciadas pelo cursor
Evita apenas leitura sujas
46
![Page 47: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/47.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Estabilidade de cursor
47
![Page 48: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/48.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura não consolidada Nível de isolamento menos restritivo
As linhas de uma trasação são travadas apenas se outra transação tentar apagar ou alterar essas linhas
Só evita a alteração perdida
48
![Page 49: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/49.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura não consolidada
49
![Page 50: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/50.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Leitura não consolidada Exercício
– Abra um Command Line•db2 +c•connect to 730db• insert into test1(1)• insert into test1(2)• insert into test1(3)
– Abra um segundo Command Line•change isolation to ur (application change)•connect to 730db•select * from table test1
– No primeiro Command Line•rollback
– No segundo Command Line•select * from table test1
50
![Page 51: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/51.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
References http://www.ibm.com/developerworks/data/library/techarticle/
0212wieser/0212wieser.html
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0601wasserman/
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0311wong/
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0603saracco2/
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0511singh/
51
![Page 52: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional](https://reader036.vdocuments.us/reader036/viewer/2022062502/5706384e1a28abb8238f706b/html5/thumbnails/52.jpg)
IBM Software Group | Information Management
© 2009 IBM Corporation
Luiz Henrique Zambom Santana
Questions?