52
IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana [email protected] Treinamento 730 Smart Professional

IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana [email protected] Treinamento 730 Smart Professional

Embed Size (px)

Citation preview

Page 1: IBM Software Group | Information Management © 2009 IBM Corporation Luiz Henrique Zambom Santana lhzs@br.ibm.com Treinamento 730 Smart Professional

IBM Software Group | Information Management

© 2009 IBM Corporation

Luiz Henrique Zambom Santana

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IBM Software Group | Information Management

© 2009 IBM Corporation

Luiz Henrique Zambom Santana

[email protected]

Questions?