Você está na página 1de 14

DB2 Universal Database v.8.

Cláudio Willemann
IBM DB2 UDB Certified
claudio@sabianti.com.br

Agenda
• Visão Geral do DB2 Universal Database
• Interfaces Gráficas - GUI
• Criando Databases e sua Localização
• Criando Objetos
• Movimentação de Dados
• Recuperação – Backup & Restore
• Monitoramento e Determinação de Problemas
• Concorrência
• Alternativas de Aplicativos
• Segurança

Cláudio Willemann – IBM DB2 UDB Certified

Criando um database

Cláudio Willemann – IBM DB2 UDB Certified

1
Criando um database

• Quando um database é criado no


DB2:
– três tablespaces são definidos:
• SYSCATSPACE: tabelas de catálogo
• USERSPACE1: tabelas do usuário
• TEMPSPACE1: area temporária
– As tabelas de catálogo sã o criadas
– Arquivos primários de log

Cláudio Willemann – IBM DB2 UDB Certified

Comando de criação de database

* existem mais opções na criação de um database.


Ver o Manual DB2 Command Reference

Cláudio Willemann – IBM DB2 UDB Certified

Conectando no database
• Activate database
• Connect to database
– 1a. Conexão paga o
custo de alocação de
memória
• Buffer Pool
• Database Heap

Cláudio Willemann – IBM DB2 UDB Certified

2
Tablespaces
• Tablespace
– Camada lógica entre os
objetos do database e seu
armazenamento físico
– Podem ser de dois tipos:
• System Managed Storage
(SMS)
• Database Managed Storage
(DMS)

• Pagesize: 4 KB, 8KB, 16 KB


ou 32 KB.

Cláudio Willemann – IBM DB2 UDB Certified

Tablespaces SMS e DMS


• SMS
– System Managed Storage (SMS) : tipo de tablespace
implementado através de um sistema de arquivos ou
diretórios onde o armazenamento é controlado pelo
Sistema Operacional
• DMS
– Database Managed Storage (DMS) : tipo de
tablespace implementado através de raw devices ou
arquivo onde o armazenamento é controlado pelo
database manage

Cláudio Willemann – IBM DB2 UDB Certified

SMS x DMS
Feature SMS DMS
Striping? Yes Yes
Object Management Operating system DB2
Space allocation Grows/shrinks on demand Preallocated; size can shrink and grow but
requires DBA intervention.
Ease of administration Best; little or no tuning required Good, but some tuning required (e.g..
EXTENTSIZE,PREFETCHSIZE)

Performance Very good Best; can achieve up to 5 to 10% advantage


with raw containers

Cláudio Willemann – IBM DB2 UDB Certified

3
DMS Tablespaces
• Regular tablespace
– Tabelas comuns
– index
• Large tablespaces
– LOB’s
– index

Cláudio Willemann – IBM DB2 UDB Certified

Definições de Armazenamento
• Container : sistema de arquivo ou raw
Database device utilizado como unidade de
armazenamento na definição de uma
DMS Tablespaces SMS Tablespaces TS4 tablespace, possibilitando I/O paralelo e o
espalhamento dos dados.
SYSCATSPACE USERSPACE1

TS2 TEMPSPACE1 • Extent : porção de um tablespace que será


escrito em um container
TS1
TS3 • Tablespace : conjunto de containers
utilizado como unidade de armazenamento
Container
Container
para uma tabela ou conjunto de tabelas
0
0, 1 & 2
Container Container Container Container Container Container
0 1 0 0 0 0
hdisk2 hdisk3

hdisk1
hdisk1 hdisk2 hdisk3 hdisk4 hdisk4

Cláudio Willemann – IBM DB2 UDB Certified

Container

• O tipo de Tablespace define o tipo de


Container a ser utilizado.
– SMS: diretórios
– DMS: File ou Device

Cláudio Willemann – IBM DB2 UDB Certified

4
Escrevendo nos Containers - Extents

• Extent : porção de um tablespace que


será escrito em um container.
– Apenas um database
– Várias páginas. Default: 32 páginas
– Pode ter entre 2 e 254 páginas

Cláudio Willemann – IBM DB2 UDB Certified

Tablespace – Comando de criação

Cláudio Willemann – IBM DB2 UDB Certified

Exemplos de criação de Tablespaces

Cláudio Willemann – IBM DB2 UDB Certified

5
Informações sobre os tablespaces - Comando list tablespace
• db2 list tablespaces
– table space ID number
– name of the table space
– type of table space
– contents, or the type of data that can be placed in the table space
– state of the table space
– detailed explanation of the table space state
• db2 list tablespaces show detail
– total number of pages
– usable pages
– used pages
– free pages
– high water mark (pages)
– page size
– extent size
– prefetch size
– number of containers

Cláudio Willemann – IBM DB2 UDB Certified

Informações sobre os tablespaces e Containers


Comando list tablespace

• db2 list tablespace containers for x


– container ID
– name of containers
– type of containers

• db2 list tablespace containers for x show detail


– total pages
– usable pages
– information on accessibility

Cláudio Willemann – IBM DB2 UDB Certified

Comando Alter tablespace

• Adicionar ou excluir um container em um tablespace DMS

• Modificar o tamanho de um container em um tablespace DMS

• Modificar o PREFETCHSIZE

• Modificar o OVERHEAD

• Modificar o TRANSFERRATE

• Modificar o BUFFERPOOL designado

Cláudio Willemann – IBM DB2 UDB Certified

6
Adicionando Containers

• Adicionar container com o


tablespace ativo
• Apenas em tablespaces
DMS
• Rebalanceamento
automático

Cláudio Willemann – IBM DB2 UDB Certified

Buffer Pool
• Área de memória usada para o cache das páginas de
dados e índices, e são lidas como se estivessem nos
discos.
• Acesso aos dados é mais rápido.
• Default buffer pool é criado junto à criação do database
• IBMDEFAULTBP é o Buffer pool default
• Tamanho default Win: 250 páginas x 4Kb

Cláudio Willemann – IBM DB2 UDB Certified

Buffer Pool – Comando de Criação

Cláudio Willemann – IBM DB2 UDB Certified

7
Agenda
• Visão Geral do DB2 Universal Database
• Interfaces Gráficas - GUI
• Criando Databases e sua Localização
• Criando Objetos
• Movimentação de Dados
• Recuperação – Backup & Restore
• Monitoramento e Determinação de Problemas
• Concorrência
• Alternativas de Aplicativos
• Segurança

Cláudio Willemann – IBM DB2 UDB Certified

Criando uma Tabela


• Via Control Center
• Linha de Comandos – DB2 CLP
CREATE TABLE BOOKS ( BOOKID INTEGER,
BOOKNAME VARCHAR(100),
ISBN CHAR(10) )
• Criando uma tabela igual à outra já existente:
CREATE TABLE MYBOOKS LIKE BOOKS
• Como popular uma tabela:
– INSERT
– LOAD
– IMPORT

Cláudio Willemann – IBM DB2 UDB Certified

Alterando e excluíndo uma Tabela


• ALTER TABLE
– Adicionar uma ou mais colunas
– Adicionar um excluir uma chave-primária (primary key)
– Adicionar ou excluir uma ou mais constraints (integridade-referencial)
– Adicionar ou excluir check constraints
– Alterar o tamanho de uma coluna VARCHAR

ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1)

• NÃO PODE SER ALTERADO EM UMA TABELA


– Excluir uma coluna de uma tabela
– Alterar um TABLESPACE de uma tabela

• DROP TABLE statement


– Apaga os dados
– Apaga a definíção da tabela (Tabelas de catálogo)
– Remove a tabela do database

DROP TABLE BOOKS

Cláudio Willemann – IBM DB2 UDB Certified

8
LOB – Large Objects

Colunas para armazenamento de


objetos de grandes volumes
• Vídeos
• Áudios
• Imagens
• Textos longos
– Armazena direto no DB
– Permite até 2Gb
– Variável LOCATOR:
• Permite dividir logicamente o
arquivo em partes
• Agilidade na pesquisa
• Retrive de parte do arquivo

Cláudio Willemann – IBM DB2 UDB Certified

Identity Columns
• Gera automaticamente os valores
para unique primary key, para cada
registro inserido na tabela.
• Evita problemas de performance e
concorrência causados por aplicações
que geram o próprio contador for a
do database.
– Lock de tabela
– Incrementa o contador
– Commit
– Libera o lock
• Apenas uma transação pode
incrementar o contador por vez.

Cláudio Willemann – IBM DB2 UDB Certified

Generated Columns

• Geradas a partir de expressões


envolvendo outras colunas
• Valor é avaliado/calculado no
momento da transação
• Ganho de performance
– Contra statements que repete
muitas vezes as expressões
– Expressões complexas

Cláudio Willemann – IBM DB2 UDB Certified

9
Tabelas Temporárias
• Criada no momento da
operação
• Dura o mesmo que a
conexão com o database
• Armazenada no
TEMPSPACE1 ou
tablespaces temporários
• Não é armazenada no
catálodo do DB2

Cláudio Willemann – IBM DB2 UDB Certified

VIEWS
• Oferece uma visão selecionada dos dados de uma tabela

• Motivo para ter uma view:


– Simplificar o acesso aos dados
– Restringir o acesso colunas e registros

• Para o usuário, é o mesmo que acessar uma tabela


• A view não ocupa espaço no database

SYSIBM.SYSVIEWS,

Cláudio Willemann – IBM DB2 UDB Certified

Criando uma VIEW


• Oferece uma visão diferente dos dados de uma tabela

CREATE VIEW NONFICTIONBOOKS AS SELECT * FROM BOOKS WHERE BOOKTYPE = 'N'

• Permite criar uma view e atribuir nomes diferentes para os campos da tabela na view

CREATE VIEW MYBOOKVIEW (TITLE,TYPE) AS SELECT BOOKNAME,BOOKTYPE FROM


BOOKS

• Views podem ser:


– UPDATABLE
– READY-ONLY
– READY-ONLY with CHECK OPTION
– NASTED VIEW with CHECK OPTION

Cláudio Willemann – IBM DB2 UDB Certified

10
INDEX - índices
• Ordenar os valores chaves de uma coluna ou colunas da tabela

• Razões para criar índices:


– Para garantir a unicidade de valores em uma coluna
– Para melhorar a performance de queries sobre uma tabela
• DB2 optimizer usa os indices para obter uma melhor performance ao executar as
queries e também para apresentar o resultado da query (consulta) na ordem do
índice.

CREATE INDEX IBOOKNAME ON BOOKS (BOOKNAME)

– Clustering Index (ex.: armazena os novos registros próximos de outros com


chaves-primárias parecidas)

Cláudio Willemann – IBM DB2 UDB Certified

INDEX - índices
• Índices ocupam espaço do database
– avaliar a real necessidade do índice
• Devem ser atualizados, se a tabela sofrer alterações
• Índices vão melhorar significativamente a performance das
queries, quando criados apropriadamente

• Para ajuda: DB2 Índex Advisor

Cláudio Willemann – IBM DB2 UDB Certified

CONSTRAINTS
Maneira de garantir quais os dados podem ser inseridos em
uma tabela

• Referential integrity constraints


– Usado para definir os relacionamentos entre tabelas
• Unique constraints
– Usado para garantir que os valores em uma coluna são únicos
• Table check constraints
– Usado para validar se os dados de uma coluna não viola as regras
definidas para popular esta coluna.

Cláudio Willemann – IBM DB2 UDB Certified

11
REFERENCIAL INTEGRITY CONSTRAINTS

• Usado para definir os relacionamentos entre tabelas

• Tabela de Autores (AUTHORS) e tabela de livros escritos pelos autores


(BOOKS). É criado um relacionamento entre BOOKS e AUTHORS para garantir
que cada livro tenha um autor, que exista na tabela AUTHORS.

CREATE TABLE AUTHORS (AUTHORID INTEGER NOT NULL PRIMARY KEY,


LNAME VARCHAR(100),
FNAME VARCHAR(100))
CREATE TABLE BOOKS (BOOKID INTEGER NOT NULL PRIMARY KEY,
BOOKNAME VARCHAR(100),
ISBN CHAR(10),
AUTHORID INTEGER REFERENCES AUTHORS)

Cláudio Willemann – IBM DB2 UDB Certified

REFERENCIAL INTEGRITY CONSTRAINTS


(Integridade Referencial)

• Exclusão de Registros na
tabela “Pai”
– DB2 checa se existem
registros dependentes
– Ação tomada baseada em
regras:
• Restrict ou No Action
• Cascade
• Set Null

Cláudio Willemann – IBM DB2 UDB Certified

UNIQUE CONSTRAINTS
• Garantir que os dados de uma coluna são únicos
• Pode ser definidos para uma ou mais colunas
• As colunas de uma Constraint devem ser definidas como NOT NULL

• Quando se define a UNIQUE CONSTRAINTS


– Create Table
– Alter Table
• Como definir?
– PRIMARY KEY somente uma por tabela
• Usado para garantir que não existam registros duplicados
– UNIQUE somente um valor para a tabela
• Usado para impedir que um mesmo valor seja utilizado para outros registros

CREATE TABLE BOOKS (BOOKID INTEGER NOT NULL PRIMARY KEY,


BOOKNAME VARCHAR(100),
ISBN CHAR(10) NOT NULL CONSTRAINT
BOOKSISBN UNIQUE )

Cláudio Willemann – IBM DB2 UDB Certified

12
TABLE CHECK CONSTRAINTS

• Usado para validar se os dados de uma coluna não viola as


regras definidas para popular esta coluna.

– Suponha que seja inserida uma coluna na tabela BOOKS para


identificar o tipo de livro, e os valores que queremos atribuir são:
• F (fiction) e N (nonfiction).

ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1) CHECK


(BOOKTYPE IN ('F','N') )

Cláudio Willemann – IBM DB2 UDB Certified

Triggers

• Execução automática de
instruções, após INSERT,
UPDATE ou DELETE,
baseado em regras de negócios.
• Elimina redundância de código
• Força o uso das regras
• Fácil manutenção

Cláudio Willemann – IBM DB2 UDB Certified

UDF – User Defined Functions


• Permite o uso de funções
específicas
• Funções escalares
• Uso de parâmetros
• Códigos C, C++, Java etc.

Cláudio Willemann – IBM DB2 UDB Certified

13
UDF – Fencing
• Limita a área de atuação da UDF
– Fenced: não atua na área de
armazenamento do DB2. A
Integridade Referencial não é
comprometida.
– NotFenced: atua na área de
armazenamento do database. Em
caso de erro, a Integridade
Referencial do DB2 pode ficar
comprometida.

Cláudio Willemann – IBM DB2 UDB Certified

IBM DB2 Universal Database


Cláudio Willemann
IBM DB2 UDB Certified
claudio@sabianti.com.br

14

Você também pode gostar