Preparação para o Exame 730 DB2 9 Fundamentals, Parte 3: Acessando Dados do DB2

Este tutorial fornece uma introdução aos objetos que formam um banco de dados DB2 e os diferentes fatores que afetam como o banco de dados é criado. Após uma breve introdução a objetos do DB2, vamos examinar as diferentes ferramentas para criar, acessar e manipular objetos do DB2. Este é o terceiro de uma série de sete tutoriais para ajudá-lo a se preparar para o exame 730 DB2® 9 for Linux®, UNIX®, and Windows™ Fundamentals.

George Baklarz, Program Director, DB2 Technical Sales, IBM

George BaklarzGeorge Baklarz, Bacharel em Matemática, Mestre em Ciências (Ciência da Computação), é gerente no Grupo de Suporte de Pré-vendas Mundial do DB2. Ele tem mais de vinte e um anos de experiência com o DB2 e é coautor de DB2 UDB Version 8.1 Database Administration Certification Guide (Prentice-Hall, 2003), DB2 Version 8: The Official Guide (Prentice-Hall, 2003) e Apache Derby -- Off to the Races (Prentice-Hall, 2005). Em seu tempo livre, ele ensina teoria de banco de dados na Universidade de Guelph e se apresenta em várias conferências, inclusive no International DB2 Users Group. É possível contatar George quando não está viajando pelo e-mail baklarz@yahoo.com.



16/Set/2011

Antes de Iniciar

Sobre esta série

Pensando em buscar certificação nos fundamentos do DB2 (Exame 730)? Nesse caso, você está no lugar certo. Esta série de sete tutoriais de preparação para certificação de DB2 cobre todo o básico—os tópicos que você precisará entender antes de ler a primeira questão do exame. Mesmo se não estiver planejando em buscar certificação imediatamente, este conjunto de tutoriais é um ótimo local para começar a aprender o que há de novo no DB2 9.

Sobre este tutorial

Este tutorial é o terceiro de uma série de sete tutoriais que podem ajudá-lo a se preparar para DB2 9 Fundamentals Certification (Exame 730). O material deste tutorial cobre principalmente os objetivos da Seção 3 do teste (consulte Recursos para obter informações adicionais).

A instalação do DB2 não é coberta neste tutorial. Se ainda não tiver feito isso, recomendamos muito que você faça download e instale uma cópia do IBM DB2 Express-C (consulte Recursos). Instalar o DB2 ajudará a entender muitos dos conceitos que são testados no exame DB2 9 Fundamentals Certification.

Após ter instalado o produto DB2, você irá querer um banco de dados ativado e em execução o mais rápido possível. Este tutorial apresenta os objetos que formam um banco de dados DB2 e os fatores que afetam como o banco de dados é criado. Após uma breve introdução a objetos do DB2, vamos examinar as diferentes ferramentas para criar, acessar e manipular objetos do DB2.

Objetivos

Após concluir este tutorial, você deve poder:

  • Criar um banco de dados DB2 por conta própria
  • Catalogá-lo para ser usado por outros usuários
  • Examinar e manipular os objetos dentro desse banco de dados.

Pré-requisitos

O processo de instalar o DB2 não é coberto neste tutorial. Se ainda não tiver feito isso, recomendamos muito que você faça download e instale uma cópia do DB2 Express-C (consulte Recursos). Instalar o DB2 ajudará a entender muitos dos conceitos que são testados no exame DB2 9 Family Fundamentals Certification. Se necessário, o IBM Support Portal for DB2 LUW tem recursos para ajudá-lo no processo de instalação (consulte Recursos).

Requisitos do sistema

Não é necessário ter uma cópia do DB2 para concluir este tutorial. No entanto, você aproveitará melhor o tutorial se fizer download da versão de avaliação gratuita do IBM DB2 9 para trabalhar ao longo deste tutorial (consulte Recursos).


O que Forma um Banco de Dados DB2?

Recursos lógicos, físicos e de desempenho de um banco de dados

Um banco de dados DB2 é na verdade formado por uma coleção de objetos. Da perspectiva do usuário, um banco de dados é uma coleção de tabelas que estão geralmente relacionadas da mesma maneira.

Da perspectiva de um administrador de banco de dados (DBA -- esse é você), é um pouco mais complicado do que isso. O banco de dados real contém muitos dos objetos físicos e lógicos a seguir:

  • Tabelas, visualizações, índices, esquemas
  • Bloqueios, acionadores, procedimentos armazenados, pacotes
  • Buffer pools, arquivos de log, espaços de tabela

Alguns desses objetos, como tabelas ou visualizações, ajudam a determinar como os dados são organizados. Outros objetos, como espaços de tabelas, fazem referência à implementação física do banco de dados. Por fim, alguns objetos, como buffer pools e outros objetos de memória, lidam somente com como o desempenho do banco de dados é gerenciado.

Em vez de insistir em todas as possíveis combinações de parâmetros e objetos, o DBA deve primeiro se concentrar na implementação física do banco de dados. Como você cria um banco de dados e aloca o armazenamento em disco necessário para ele? Para responder essa questão de forma apropriada, é necessário conhecer os objetos básicos do banco de dados e como eles são mapeados para armazenamento em disco físico.

O modelo de armazenamento do DB2

O DB2 tem um modelo de armazenamento lógico e físico para manipular dados. Os dados reais com os quais os usuários lidam estão localizados em tabelas. Enquanto tabelas podem ser formadas por colunas e linhas, o usuário não tem nenhum conhecimento da representação física dos dados. Esse fato é às vezes referido como a independência física dos dados.

As tabelas em si são colocadas em espaços de tabelas. Um espaço de tabela é usado como uma camada entre o banco de dados e os objetos contêineres que retêm os dados de tabela reais. Um espaço de tabela pode conter mais de uma tabela.

Um contêiner é um dispositivo de armazenamento físico. Pode ser identificado por um nome de diretório, um nome de dispositivo ou um nome de arquivo. Um contêiner é designado a um espaço de tabela. Um espaço de tabela pode se estender por muitos contêineres, o que significa que é possível contornar limitações do sistema operacional que possam limitar a quantia de dados que um contêiner pode ter. O relacionamento entre todos esses objetos é ilustrado na figura abaixo.

Figura 1. Modelo de armazenamento do DB2
Modelo de armazenamento do DB2

Apesar de uma tabela ser o objeto básico que é colocado em um espaço de tabela, um DBA deve estar ciente de objetos adicionais dentro do sistema do DB2 e como eles são mapeados para um espaço de tabela.

Tabelas, índices, campos longos e espaços de tabela

Tabelas, índices e campos longos (às vezes chamados de objetos binários grandes ou BLOBs) são objetos que são criados dentro de um banco de dados DB2. Esses objetos são mapeados para um espaço de tabela que é mapeado para o armazenamento em disco físico.

Uma tabela é um conjunto não ordenado de registros de dados. Ela consiste em colunas e linhas que são geralmente conhecidas como registros. As tabelas podem ser tabelas permanentes (base), tabelas temporárias (declaradas) ou tabelas temporárias (derivadas). Da perspectiva de um DBA, o espaço é alocado para cada um desses objetos de tabela, mas em diferentes espaços de tabela.

Um índice é um objeto físico associado a uma única tabela. Índices são usados para impingir exclusividade em uma tabela (ou seja, assegurar que não haja valores duplicados) e para melhorar o desempenho ao recuperar informações. Índices não são necessários para executar suas instruções SQL (Linguagem de Consulta Estruturada); no entanto, seus usuários apreciarão sua percepção na criação de alguns deles para acelerar o processamento de consulta!

Um campo longo (ou BLOB) é um tipo de dado localizado dentro de uma tabela. Esse tipo de dados é geralmente formado por dados não estruturados (uma imagem, um documento, um arquivo de áudio) e geralmente contém uma quantia significativa de informações. Armazenar esse tipo de dado dentro de uma tabela levaria a sobrecarga excessiva ao excluir, inserir e manipular esses objetos. Em vez de armazená-los diretamente na linha da tabela, um ponteiro é armazenado e faz a ligação com um ponto em um espaço de tabela Grande (anteriormente conhecido como um espaço de tabela de Campo Longo). DBAs precisam estar cientes desse tipo de dados para que possam criar os espaços de tabelas apropriados para conter esses objetos.

Outro tipo de dado especial é XML (Linguagem de Marcação Extensível). XML é um tipo de dados que pode ser armazenado dentro de uma linha ou em um espaço de tabela separado semelhante a objetos BLOB. O tipo de dados XML é exclusivo por poder se estender por diversas páginas de uma tabela, enquanto que outros tipos de dados devem permanecer na mesma página que a linha. Um DBA precisará trabalhar com os designers de aplicativos para determinar se os objetos XML que estão sendo armazenados na tabela devem ser mantidos em páginas (dados) regulares ou colocados em seu próprio espaço de tabela separado. Se o desempenho de recuperação for um fator crítico, o DBA deve usar um tamanho de página grande e manter colunas XML no mesmo espaço de tabela que os dados regulares.

Munido de conhecimento desses diferentes tipos de objetos, agora você está pronto para determinar o tipo de espaço que precisa alocar.

Espaços de tabela DMS e SMS

Os espaços de tabelas são a camada lógica entre o banco de dados e as tabelas armazenadas nesse banco de dados. Os espaços de tabelas são criados dentro de um banco de dados e tabelas são criadas dentro de espaços de tabelas. O DB2 suporta três tipos de espaços de tabelas:

  • System-Managed Space (SMS): Aqui, o gerenciador do sistema de arquivos do sistema operacional aloca e gerencia o espaço. Antes do DB2 9, criar um banco de dados ou um espaço de tabela sem quaisquer parâmetros resultará em todos os espaços de tabela serem criados como objetos SMS.

  • Database-Managed Space (DMS): Aqui, o gerenciador do banco de dados controla o espaço de armazenamento. Esse espaço de tabela é, essencialmente, uma implementação de um sistema de arquivos de propósito especial projetada para melhor atender as necessidades do gerenciador do banco de dados.

  • Automatic Storage com DMS: O armazenamento automatizado não é realmente um tipo separado de espaço de tabela, mas uma maneira diferente de manipulação de armazenamento DMS. Contêineres DMS requerem mais manutenção (consulte a seção abaixo) e Automatic Storage foi apresentado no DB2 V8.2.2 como uma maneira de simplificar o gerenciamento de espaço.

Os espaços de tabelas SMS requerem muito pouca manutenção. No entanto, os espaços de tabelas SMS oferecem menos opções de otimização e não podem executar tão bem quanto os espaços de tabelas DMS.

Portanto, qual design de espaço de tabela você deve escolher?

SMS, DMS e armazenamento automático

Apesar de a tabela a seguir não ser exaustiva, ela contém algumas coisas que devem ser consideradas ao decidir entre espaços de tabelas SMS, DMS e de armazenamento automático.

Tablela 1. Comparando espaços de tabelas SMS, DMS e de armazenamento automático
RecursoSMSDMSArmazenamento automático
Striping? Sim Sim Sim
Tipo padrão Versão 8 Não Versão 9
Gerenciamento de objetos Sistema operacional DB2 DB2
Alocação de espaço Aumenta/diminui on demand Pré-alocado; o tamanho pode diminuir e aumentar, mas requer intervenção do DBA. Pré-alocado; pode aumentar automaticamente.
Facilidade de administração Melhor; pouco ou nenhum ajuste necessário Boa, mas algum ajuste necessário (por exemplo, EXTENTSIZE PREFETCHSIZE ) Melhor; pouco ou nenhum ajuste necessário
Desempenho Muito bom Melhor; pode atingir até 5 a 10% de vantagem com contêineres brutos Melhor; não pode usar contêineres brutos, no entanto
Tamanho máximo do espaço de tabela 64 GB (Página de 4 K) 2 TB (Página de 4 K) 2 TB (Página de 4 K)

Além do gerenciamento simplificado usando espaços de tabelas SMS, a diferença mais significativa entre os dois modelos de armazenamento é o tamanho máximo de um espaço de tabela. Usando o SMS, o DBA fica restrito a colocar no máximo 64 GB em um espaço de tabela. Essa quantia pode ser aumentada alterando o tamanho da página para 32 K (512 GB), ao custo de possivelmente menos espaço usável em uma página. Mover para um modelo DMS aumentará o limite de espaço de tabela para 2 TB com um tamanho de página de 4 K. A quantia de armazenamento disponível pode aumentar até 16 TB com um tamanho de página de 32 K. Apesar de haver outras maneiras de aumentar o tamanho de uma tabela atém do limite de 64 GB, a abordagem mais simples pode ser usar espaços de tabelas DMS inicialmente.

DMS e armazenamento automático

O DB2 Versão 8.2.2 apresentou a noção de AUTOMATIC STORAGE. O armazenamento automático permite que o DBA configure o banco de dados com caminhos de armazenamento que podem ser usados para toda a criação de contêiner de espaço de tabela. Em vez de o DBA codificar explicitamente o local e o tamanho dos espaços de tabelas, o sistema irá alocá-los automaticamente. No DB2 9, um banco de dados será criado com armazenamento automático, a menos que o DBA substitua explicitamente essa configuração.

Bancos de dados ativados para armazenamento automático têm um conjunto de um ou mais caminhos de armazenamento associados a eles. Um espaço de tabela pode ser definido como "gerenciado por armazenamento automático" e seus contêineres designados e alocados pelo DB2 com base nesses caminhos de armazenamento. Um banco de dados pode ser ativado para armazenamento automático somente quando é primeiramente criado. Não é possível ativar o armazenamento automático para um banco de dados que não foi definido originalmente para usá-lo. De forma semelhante, não é possível desativar o armazenamento automático para um banco de dados que foi projetado originalmente para usá-lo.

A tabela a seguir resume algumas das diferenças entre gerenciar armazenamento não automático e armazenamento automático:

Tablela 2. Comparando armazenamento não automático e armazenamento automático
RecursoArmazenamento não automáticoArmazenamento automático
Criação de contêiner Contêineres devem ser fornecidos explicitamente quando o espaço de tabela é criado. Contêineres não podem ser fornecidos quando o espaço de tabela for criado; eles serão designados e alocados automaticamente pelo DB2.
Redimensionamento de contêiner O redimensionamento automático de espaços de tabelas está desativado (AUTORESIZE NO) por padrão. O redimensionamento automático de espaços de tabelas está ativado (AUTORESIZE YES) por padrão.
Tamanho inicial O tamanho inicial para o espaço de tabela não pode ser especificado usando a cláusula INITIALSIZE. O tamanho inicial para o espaço de tabela pode ser especificado usando a cláusula INITIALSIZE.
Modificação de contêiner Operações de contêiner podem ser executadas usando a instrução ALTER TABLESPACE (ADD, DROP, BEGIN NEW STRIPE SET, etc.). Operações de contêiner não podem ser executadas, pois o DB2 está em controle do gerenciamento de espaço.
Facilidade de administração Uma operação de restauração redirecionada pode ser usada para redefinir os contêineres associados ao espaço de tabela. Uma operação de restauração redirecionada não pode ser usada para redefinir os contêineres associados ao espaço de tabela, pois o DB2 está em controle do gerenciamento de espaço.

A principal razão para a introdução do modelo de Automatic Storage foi para simplificar o gerenciamento de espaços de tabelas DMS ao mesmo tempo que retinha as características de desempenho. Haverá situações em que o DBA deve definir todas as características dos espaços de tabelas que estão sendo usados, mas muitos aplicativos se beneficiarão do gerenciamento reduzido necessário com o Automatic Storage.

Resumo do modelo de armazenamento do DB2

Cobrimos muito chão nesta seção. Vamos resumir o que aprendemos sobre bancos de dados DB2.

  • Um banco de dados é uma coleção de objetos, o que inclui tabelas, índices, visualizações e objetos longos.
  • Esses objetos são armazenados dentro de espaços de tabelas, que, por sua vez, são formados por contêineres.
  • Os espaços de tabelas podem ser gerenciados pelo sistema operacional (SMS) ou pelo DB2 (DMS, Automatic Storage).
  • Você decidirá que tipo de espaço de tabela a ser usado com base principalmente nos fatores de desempenho e manutenção.

Agora que você é um especialista nos diferentes tipos de espaços de tabelas, chegou a hora de criar seu primeiro banco de dados. A próxima seção mostrará como.


Criando seu Primeiro Banco de dados

First Steps

Como parte do processo de instalação do DB2, o painel First Steps é exibido, permitindo que o usuário gere vários bancos de dados de amostra com os quais trabalhar:

Figura 2. Painel DB2 First Steps
Painel DB2 First Steps

Selecionar a opção Database Creation exibirá um menu adicional para permitir que você crie o banco de dados SAMPLE.

Figura 3. Painel Create database
Painel Create database

A maioria dos usuários irá querer criar o banco de dados SAMPLE e usar o mesmo para explorar os recursos do DB2. Esse painel pode ser chamado selecionando First Steps a partir da pasta Setup Tools no DB2 Program group (em ambientes do Windows). Além disso, emitir o comando db2sampl a partir de um prompt de linha de comando também irá gerar o banco de dados SAMPLE.

Quando o botão SAMPLE for selecionado, um painel adicional é exibido para determinar onde o banco de dados SAMPLE será criado.

Figura 4. Área de janela Create SAMPLE database
Área de janela Create SAMPLE database

Ao criar o banco de dados SAMPLE, é recomendado selecionar a opção XML and SQL objects and data . Essa opção irá gerar o banco de dados no formato UTF-8 (Unicode) que permitirá que você manipule objetos XML. Se não selecionar a opção XML, não será possível incluir os objetos XML em seu banco de dados SAMPLE.

Para obter informações adicionais sobre a ferramenta First Steps, consulte o primeiro tutorial desta série.

Vamos para a criação de um banco de dados DB2 sem uma GUI.

Meu primeiro banco de dados real

Criar um banco de dados DB2 a partir de uma linha de comando é relativamente simples. Para criar um banco de dados, você deve chamar o DB2 Command Line Processor (CLP). Isso pode ser realizado selecionando Command Line Processor na pasta Command Line Tools no DB2 Program Group (consulte a figura abaixo) ou executando o comando db2cmd db2 de uma linha de comando do sistema operacional. (Para obter informações adicionais sobre o Command Line Processor, consulte o primeiro tutorial desta série.)

Figura 5. Selecionar Command Line Processor
Selecionar Command Line Processor

A sintaxe para criar um banco de dados do DB2 é a seguinte:

CREATE DATABASE MY1STDB

"Só isso?", você pergunta? Só isso! O único elemento que é necessário como parte de um comando CREATE DATABASE é o nome do banco de dados. As regras para o nome de um banco de dados são:

  • O nome do banco de dados pode consistir nos seguintes caracteres: a-z, A-Z, 0-9, @, # e $.

  • O primeiro caractere do nome deve ser um caractere alfabético, @, # ou $; não pode ser um número ou as sequências de letras SYS, DBM ou IBM.

  • Um nome de banco de dados ou alias de banco de dados é uma cadeia de caractere exclusiva que contém de uma a oito letras, números ou caracteres de palavras-chave do conjunto descrito acima.

É claro que há muito mais opções que estão disponíveis para você; não é necessário inserir somente um nome. Vamos examinar o que realmente aconteceu como resultado desse comando.

O que o DB2 criou?

Ao emitir o comando CREATE DATABASE, o DB2 criou vários arquivos. Esses arquivos incluem arquivos de log, informações de configuração, arquivos de histórico e três espaços de tabelas. Esses espaços de tabelas são:

  • SYSCATSPACE: É onde o catálogo do sistema do DB2 é mantido que controla todos os metadados associados a objetos do DB2.
  • TEMPSPACE1: Uma área de trabalho temporária a qual o DB2 pode colocar resultados intermediários.
  • USERSPACE1: Um local onde todos os objetos de usuários (tabelas, índices) residem por padrão.

Todos esses arquivos são colocados no diretório DB2 localizado em sua unidade padrão. A unidade padrão é geralmente o volume no qual o produto DB2 foi instalado.

Para aplicativos simples, essa configuração padrão pode ser suficiente para suas necessidades. No entanto, você deve querer alterar o local de seus arquivos de banco de dados ou alterar a maneira que o DB2 gerencia esses objetos. Em seguida, vamos explorar o comando CREATE DATABASE em mais detalhes.

Uma nota especial para migrar do DB2 Versão 8: Antes do DB2 9, um comando CREATE DATABASE criaria os espaços de tabelas SMS para todos os objetos listados acima. No DB2 9, todos os espaços de tabelas serão definidos como espaços de tabela de Automatic Storage (DMS).

O comando CREATE DATABASE

A sintaxe integral do comando CREATE DATABASE do DB2 pode ser localizado na Referência de Comando do DB2, mas o diagrama a seguir ilustra a maioria das opções nas quais o DBA estaria interessado.

Lista 1. Comando CREATE DATABASE
>>-CREATE--+-DATABASE-+-database-name-+----------------------+-->
           '-DB-------'               '-| Database options |-'
Lista 2. Opções do banco de dados
Create Database options:
 
|--+----------------------------+------------------------------->
   '-AUTOMATIC STORAGE--NO|YES--'
>--+---------------------------------------------+-------------->
   |     .-,---------.                           |
   |     V           |                           |
   '-ON----+-path--+-+--+----------------------+-'
           '-drive-'    '-DBPATH ON--+-path--+-'
                                     '-drive-'
>--+-----------------------+------------------------------------>
   '-ALIAS--database-alias-'
>--+----------------------------------------------+------------->
   '-USING CODESET--codeset--TERRITORY--territory-'
>--+-----------------------------------+------------------------>
   |                .-SYSTEM---------. |
   '-COLLATE USING--+-COMPATIBILITY--+-'
                    +-IDENTITY-------+
                    +-IDENTITY_16BIT-+
                    +-UCA400_NO------+
                    +-UCA400_LSK-----+
                    +-UCA400_LTH-----+
                    '-NLSCHAR--------'
 
>--+---------------------------------------+-------------------->
   '-CATALOG TABLESPACE--| tblspace-defn |-'
>--+------------------------------------+----------------------->
   '-USER TABLESPACE--| tblspace-defn |-'
>--+-----------------------------------------+------------------>
   '-TEMPORARY TABLESPACE--| tblspace-defn |-'
Lista 3. Definição do espaço de tabela
tblspace-defn:
 
|--MANAGED BY--------------------------------------------------->
 
                      .-,------------------.
                      V                    |
>--+-SYSTEM USING--(----'container-string'-+--)--------------------------------+-->
   |                    .-,-----------------------------------------------.    |
   |                    V                                                 |    |
   +-DATABASE USING--(----+-FILE---+--'container-string'--number-of-pages-+--)-+
   |                      '-DEVICE-'                                           |
   '-AUTOMATIC STORAGE---------------------------------------------------------'
 
>--+-----------------------------+------------------------------>
   '-EXTENTSIZE--number-of-pages-'
>--+-------------------------------+---------------------------->
   '-PREFETCHSIZE--number-of-pages-'
>--+---------------------+--+---------------------------------+->
   '-AUTORESIZE--+-NO--+-'  '-INITIALSIZE--integer--+-K|M|G-+-'
                 '-YES-'                            
>--+------------------------------------+----------------------->
   '-INCREASESIZE--integer--+-PERCENT-+-'
                            '-+-K|M|G-'
>--+-------------------------------+----------------------------|
   '-MAXSIZE--+-NONE-------------+-'
              '-integer--+-K|M|G-'

Nas seções a seguir, você aprenderá quais são essas várias opções e como elas seriam usadas.

Local do banco de dados

Um dos parâmetros do comando CREATE DATABASE é a opção ON path/drive . Essa opção indica ao DB2 onde você deseja criar o banco de dados. Se um caminho não for especificado, o banco de dados é criado no valor do caminho do banco de dados padrão especificado em Database Manager settings (parâmetro DFTDBPATH ).

Figura 6. Tela DBM Configuration
Tela DBM Configuration

Por exemplo, o comando CREATE DATABASE a seguir coloca o banco de dados no diretório TEST na unidade D: em um sistema operacional Windows:

CREATE DATABASE MYDB ON D:\TEST

Escolher armazenamento automático (o padrão) permite que o DBA configure o banco de dados com caminhos de armazenamento que podem ser usados para toda a criação de contêiner de espaço de tabela. Em vez de o DBA codificar explicitamente o local e o tamanho dos espaços de tabelas, o sistema irá alocá-los automaticamente. Por exemplo, a instrução de criação do banco de dados a seguir configurará armazenamento automático para todos os espaços de tabelas no banco de dados.

Lista 4. Instrução de criação do banco de dados
CREATE DATABASE TEST 
	AUTOMATIC STORAGE ON 
	/db2/storagepath001,
	/db2/storagepath002,
	/db2/storagepath003
	AUTORESIZE YES 
	INITIALSIZE 300 M
	INCREASESIZE 75 M
	MAXSIZE NONE

Após a opção AUTOMATED STORAGE ON, três diretórios de arquivos (caminhos) são mostrados. Esses três caminhos são os locais em que contêineres de um espaço de tabela residirão. As opções restantes são:

  • AUTORESIZE YES

    No caso de um espaço de tabela ficar sem espaço, o sistema estenderá automaticamente o tamanho dos contêineres.

  • INITIALSIZE 300 M

    Qualquer espaço de tabela definido sem tamanho inicial usará como padrão 300 MB de tamanho. Os contêineres terão cada um 100 MB de tamanho (há três caminhos de armazenamento).

  • INCREASESIZE 75 M (ou %)

    Caso o espaço de tabela fique sem espaço, o espaço total do espaço de tabela será aumentado em 75 M no tamanho. Uma porcentagem também pode ser especificada, nesse caso o espaço de tabela será aumentado em tamanho como uma porcentagem de seu tamanho atual.

  • MAXSIZE NONE

    O tamanho máximo do espaço de tabela será ilimitado. Se o DBA quiser colocar um limite sobre quanto armazenamento um espaço de tabela pode ter, ele pode fazer isso especificando um valor máximo.

Quando um espaço de tabela é definido usando AUTOMATIC STORAGE, nenhum parâmetro adicional precisa ser fornecido:

CREATE TABLESPACE TEST MANAGED BY AUTOMATIC STORAGE;

Quaisquer dos parâmetros associados a um espaço de tabela podem ser fornecidos nesse comando; no entanto, o uso de armazenamento automático pode simplificar muito a manutenção de espaços de tabela de rotina. Os espaços de tabela associados a tabelas de produção grandes críticas provavelmente requereriam intervenção do DBA.

Ao criar um espaço de tabela em um banco de dados que não está ativado para armazenamento automático, a cláusula MANAGED BY SYSTEM ou MANAGED BY DATABASE deve ser especificada. Usar essas cláusulas na criação de um espaço de tabela system managed space (SMS) ou de um espaço de tabela database managed space (DMS), respectivamente. Uma lista explícita de contêineres deve ser fornecida em ambos os casos.

Se um banco de dados for ativado para armazenamento automático, existe outra opção. A cláusula MANAGED BY AUTOMATIC STORAGE pode ser especificada ou a cláusula MANAGED BY pode ser deixada fora completamente (que implica armazenamento automático). Nenhuma definição de contêiner é fornecida nesse caso, pois o DB2 designa os contêineres automaticamente.

Páginas de códigos e sequências de intercalação

Uma página de códigos de caracteres é associada a todos os tipos de dados de caracteres do DB2 (CHAR, VARCHAR, CLOB, DBCLOB). Uma página de códigos pode ser considerada como uma tabela de referência usada para converter dados alfanuméricos para os dados binários armazenados no banco de dados. Um banco de dados DB2 pode usar somente uma única página de códigos. A página de códigos é estabelecida durante o comando CREATE DATABASE usando as opções CODESET e TERRITORY. A página de códigos pode usar um byte único para representar um caractere alfanumérico (um byte único pode representar 256 elementos exclusivos) ou diversos bytes.

Idiomas como o inglês contêm relativamente poucos caracteres exclusivos; portanto, uma página de códigos de byte único é suficiente para armazenar dados. Idiomas como japonês requerem mais de 256 elementos para representarem todos os seus caracteres exclusivos; portanto, uma página de códigos de diversos bytes (geralmente uma página de códigos de byte duplo) é necessária.

Por padrão, a sequência de intercalação de um banco de dados é definida de acordo com o conjunto de código usado no comando CREATE DATABASE. Se você especificar a opção COLLATE USING SYSTEM, os valores de dados são comparados com base no TERRITORY especificado para o banco de dados. Se a opção COLLATE USING IDENTITY for usada, todos os valores são comparados usando sua representação binária de maneira byte a byte.

O DB2 Administration Guide lista as várias páginas de códigos que estão disponíveis ao criar um banco de dados. Na maioria das instâncias, um DBA deixaria esse valor usar como padrão a mesma página de códigos que o sistema operacional no qual o banco de dados está executando.

Uma nota especial para os aplicativos que requerem o uso de dados XML. Atualmente, o DB2 suporta somente colunas XML em um banco de dados que tenha sido definido como Unicode (UTF-8). Se um banco de dados não tiver sido criado com suporte Unicode, não poderá ter colunas XML criadas dentro dele.

Definições de espaços de tabelas

Cada um de nossos três espaços de tabela (SYSCATSPACE, TEMPSPACE1, USERSPACE1) é criado automaticamente no diretório padrão (palavra-chave ON), a menos que você especifique o local. Para cada espaço de tabela, o DBA pode especificar as características do sistema de arquivos que o espaço de tabela deve usar.

Os três espaços de tabela são definidos usando a seguinte sintaxe:

Lista 5. Definições de espaços de tabelas
>--+---------------------------------------+--------------------> 
   '-CATALOG TABLESPACE--| tblspace-defn |-'
  
>--+------------------------------------+-----------------------> 
   '-USER TABLESPACE--| tblspace-defn |-'
  
>--+-----------------------------------------+------------------>
   '-TEMPORARY TABLESPACE--| tblspace-defn |-'

Se qualquer uma dessas palavras-chave for omitida, o DB2 usará os valores padrão para gerar os espaços de tabela. A definição de espaço de tabela segue essas opções e tem a seguinte sintaxe:

Lista 6. Opções de definição de espaço de tabela
|--MANAGED BY--------------------------------------------------->
  
                      .-,------------------.
                      V                    |
>--+-SYSTEM USING--(----'container-string'-+--)--------------------------------+-->
   |                    .-,-----------------------------------------------.    |
   |                    V                                                 |    |
   '-DATABASE USING--(----+-FILE---+--'container-string'--number-of-pages-+--)-'
                          '-DEVICE-'
  
>--+-----------------------------+------------------------------> 
   '-EXTENTSIZE--number-of-pages-'
  
>--+-------------------------------+----------------------------> 
   '-PREFETCHSIZE--number-of-pages-'

Observe que a sintaxe acima não inclui as opções associadas com bancos de dados de Automatic Storage.

Vamos dar uma olhada nessa sintaxe em detalhes. A opção MANAGED BY indica que o DB2 deve gerar esses espaços de tabela e determinar como o espaço será gerenciado. Os espaços de tabela SMS usam a palavra-chave SYSTEM USING da seguinte forma:

SYSTEM USING ('container string')

Para um espaço de tabela SMS, container string identifica um ou mais contêineres que pertencerão ao espaço de tabela e no qual os dados do espaço de tabela serão armazenados. Cada cadeia de caractere de contêiner pode ser um nome de diretório absoluto ou relativo. O nome de diretório, se não absoluto, é relativo ao diretório do banco de dados. Se qualquer componente do nome de diretório não existir, ele é criado pelo gerenciador do banco de dados. O formato da cadeia de caractere e contêiner depende no sistema operacional.

Os espaços de tabelas DMS são definidos com a palavra-chave DATABASE USING:

DATABASE USING ( FILE/DEVICE 'container string' number of pages )

Para um espaço de tabela DMS, a cadeia de caractere de contêiner identifica um ou mais contêineres que pertencerão ao espaço de tabela e no qual os dados do espaço de tabela serão armazenados. O tipo do contêiner (FILE ou DEVICE ) e seu tamanho (em páginas PAGESIZE ) são especificados. O tamanho também pode ser especificado como um valor de número inteiro seguido por K (para kilobytes), M (para megabytes) ou G (para gigabytes). É possível especificar uma combinação de contêineres FILE e DEVICE.

Para um contêiner FILE, a cadeia de caractere de contêiner deve ser um nome de arquivo absoluto ou relativo. O nome do arquivo, se não absoluto, é relativo ao diretório do banco de dados. Se qualquer componente do nome de diretório não existir, ele é criado pelo gerenciador do banco de dados. Se o arquivo não existir, ele será criado e inicializado para o tamanho especificado pelo gerenciador do banco de dados. Para um contêiner DEVICE, a cadeia de caractere de contêiner deve ser um nome de dispositivo e o dispositivo já deve existir.

Uma observação importante: Todos os contêineres devem ser exclusivos em todos os bancos de dados; um contêiner pode pertencer a somente um espaço de tabela.

EXTENTSIZE  number of pages

EXTENSIZE especifica o número de páginas PAGESIZE que o banco de dados gravará em um contêiner antes de ir para o próximo contêiner. O valor de EXTENSIZE também pode ser especificado como um valor de número inteiro seguido por K, M ou G. O gerenciador do banco de dados circula pelos contêineres repetidamente à medida que dados são armazenados.

PREFETCHSIZE number of pages

PREFETCHSIZE especifica o número de páginas PAGESIZE que serão lidas do espaço de tabela quando a pré-busca de dados estiver sendo realizada. O valor do tamanho da pré-busca também pode ser especificado como um valor de número inteiro seguido por K, M ou G.

A pré-busca lê dados necessários para uma consulta antes de serem referenciados pela consulta, de forma que a consulta não precise esperar até o sistema subjacente executar operações de E/S.

Comando CREATE DATABASE de amostra

Segue um exemplo de um comando CREATE DATABASE que usa muitas das opções discutidas nos painéis anteriores.

Lista 7. Comando CREATE DATABASE
( 1) CREATE DATABASE MY1STDB
( 2)  DFT_EXTENT_SZ 4
( 3)  CATALOG TABLESPACE MANAGED BY DATABASE USING
( 4)   (FILE 'C:\CAT\CATALOG.DAT' 2000, FILE 'D:\CAT\CATALOG.DAT' 2000)
( 5)    EXTENTSIZE 8
( 6)   PREFETCHSIZE 16
( 7) TEMPORARY TABLESPACE MANAGED BY SYSTEM USING
( 8)  ('C:\TEMPTS','D:\TEMPTS')
( 9) USER TABLESPACE MANAGED BY DATABASE USING
(10)   (FILE 'C:\TS\USERTS.DAT' 121)
(11)   EXTENTSIZE 24
(12)   PREFETCHSIZE 48

Vamos dar uma olhada em cada linha em mais detalhes:

  1. CREATE DATABASE: Essa instrução define o nome do banco de dados que estamos criando.

  2. DFT_EXTENT_SZ 4: Esse parâmetro indica ao DB2 que o tamanho da extensão padrão é 4 páginas, a menos que determinado o contrário explicitamente.

  3. CATALOG TABLEPSACE MANAGED BY DATABASE USING: O espaço de catálogo do DB2 será gerenciado pelo banco de dados.

  4. FILE 'C:\....': O local do espaço de tabela será dividido entre dois arquivos, cada um com 2.000 páginas de espaço.

  5. EXTENTSIZE 8: O EXTENTSIZE será 8 páginas.

  6. PREFETCHSIZE 16: Durante o processamento de consulta, 16 páginas serão lidas imediatamente.

  7. TEMPORARY TABLESPACE MANAGED BY SYSTEM USING: O espaço temporário usado pelo DB2 será manipulado pelo sistema operacional.

  8. 'C:\TEMPTS' ...: O espaço temporário será dividido em dois arquivos cujos tamanhos é ajustado automaticamente durante a execução do DB2.

  9. USER TABLESPACE MANAGED BY DATABASE USING: O espaço do usuário (onde as tabelas reais são colocadas) será gerenciado pelo DB2 diretamente.

  10. FILE 'C:\TS\...': Há somente um contêiner para esse espaço e ele consiste em 121 páginas.

  11. EXTENTSIZE 24: O EXTENTSIZE para o espaço de tabela USER será de 24 páginas.

  12. PREFETCHSIZE 48: Consultas farão a pré-busca de 48 páginas de uma vez.

Resumo de criação do banco de dados

Esta seção forneceu alguma base sobre como criar um banco de dados DB2. Na maioria dos casos, os valores padrão do comando CREATE DATABASE fornecerá um banco de dados que pode ser usado para desenvolvimento e teste.

Ao decidir colocar um banco de dados na produção, será necessário colocar mais esforço na colocação de dados e nas definições de espaços de tabelas usadas pelo DB2. Apesar de isso poder precisar de mais planejamento, o resultado final será um banco de dados mais fácil de gerenciar com, potencialmente, melhor desempenho.


Catalogando seu Banco de Dados DB2

Por que catalogar o banco de dados?

O DB2 cataloga bancos de dados automaticamente quando são criados. Ele cataloga uma entrada para o banco de dados no diretório de banco de dados local e outra entrada o diretório de banco de dados do sistema. Se o banco de dados for criado a partir de um cliente remoto (ou para um cliente que esteja executando a partir de uma instância diferente na mesma máquina), uma entrada também é feita no diretório de banco de dados do sistema na instância do cliente.

Então, por que um banco de dados precisa ser catalogado? Sem essas informações, um aplicativo não pode conectar a um banco de dados! O DB2 tem diversos diretórios que são usados para acessar bancos de dados. Esses diretórios permitem que o DB2 localize bancos de dados conhecidos dele, estejam eles no sistema local ou em um sistema remoto. O diretório de banco de dados do sistema contém uma lista e indicação de ponteiro de onde cada um dos bancos de dados conhecidos podem ser localizados. O diretório de nós contém informações relacionadas a como e onde sistemas remotos ou instâncias podem ser localizados. Para colocar uma entrada em qualquer um desses diretórios, um comando CATALOG é usado. Para remover uma entrada, o comando UNCATALOG é usado.

O comando CATALOG

O comando CATALOG está diagramado abaixo.

Lista 8. Comando CATALOG
>-CATALOG--+-DATABASE-+--database-name--+-----------+----------> 
           '-DB-------'                 '-AS--alias-'
 
>--+-------------------+----------------------------------------> 
   +-ON--+-path--+-----+
   |     '-drive-'     |
   '-AT NODE--nodename-'
 
>--+--------------------------------------------------------------+-->
   '-AUTHENTICATION--+-SERVER-----------------------------------+-'
                     +-CLIENT-----------------------------------+
                     +-SERVER_ENCRYPT---------------------------+
                     +-KERBEROS TARGET PRINCIPAL--principalname-+
                     +-DATA_ENCRYPT-----------------------------+
                     '-GSSPLUGIN--------------------------------'
 
>--+------------------------+----------------------------------> 
   '-WITH--"comment-string"-'

Catalogar um banco de dados é uma atividade relativamente direta. Normalmente essa etapa não é necessária quando você tiver criado um banco de dados. No entanto, pode ser necessário fazer isso se tiver descatalogado um banco de dados anteriormente, se quiser configurar um ALIAS (nome alternativo) para esse banco de dados ou se precisar acessar esse banco de dados a partir de um cliente.

Catalogando no cliente

Um usuário que precisa conectar a um banco de dados DB2 deve catalogar o banco de dados em uma estação de trabalho local. Para fazer isso, o usuário usaria o comando CATALOG ou o DB2 Configuration Assistant (CA). O CA permite manter uma lista de bancos de dados aos quais seus aplicativos podem conectar. Ele cataloga nós e bancos de dados enquanto protege o usuário de complexidades inerentes dessas tarefas. (Para obter informações adicionais sobre o Configuration Assistant, consulte o primeiro tutorial desta série.)

Há três maneiras de catalogar um banco de dados em um cliente:

  • Configuração automatizada usando descoberta
  • Configuração automatizada usando perfis de acesso
  • Configuração manual

Todos esses métodos são descritos neste tutorial. Da perspectiva de um cliente, catalogar bancos de dados usando um perfil ou descoberta é a maneira mais fácil de fazer isso. A configuração manual requer conhecimento do local e das características do banco de dados para executar o comando com sucesso.

Para usar uma das configurações automatizadas, o DBA deve gerar perfis para seus usuários ou configurar serviços de descoberta dentro do banco de dados DB2. Não vamos entrar em detalhes sobre a criação desses recursos neste tutorial, mas seria bom que você lesse o manual DB2 Administration para obter detalhes adicionais sobre esses recursos.

Configuração automatizada usando descoberta

Se usar esse tipo de configuração automatizada, não é necessário fornecer nenhuma informação de comunicação detalhada para ativar o cliente DB2 para entrar em contato com o servidor DB2.

Para incluir um banco de dados em seu sistema usando descoberta, será necessário percorrer as seguintes etapas. (Observe que um DB2 Administration Server (DAS) deve estar em execução e ativado para o recurso de descoberta do CA retornar informações sobre sistemas locais do DB2.)

  1. Inicie o CA. É possível fazer isso a partir do menu Start no Windows ou por meio do comando db2ca no Windows ou UNIX.

  2. Na barra de menus do CA, sob Selected, escolha Add Database Using Wizard.

  3. Selecione o botão de opções Search the Network e clique em Next.

  4. Dê um clique na pasta ao lado de Known Systems para listar todos os sistemas conhecidos de seu cliente.

  5. Clique no sinal de mais ( + ) ao lado de um sistema para obter uma lista das instâncias e bancos de dados no mesmo. Selecione o banco de dados que deseja incluir, em seguida, clique em Next.

  6. Insira um nome de alias do banco de dados local no campo Database Alias. Também é possível inserir um comentário que descreva esse banco de dados no campo Comment, se desejar.

  7. Se estiver planejando usar ODBC, registre esse banco de dados como uma origem de dados ODBC. ODBC já deve estar instalado para executar essa operação.

  8. Clique em Finish.

Agora, você está pronto para usar o banco de dados incluído.

Configuração automatizada usando perfis de acesso

Perfis de acesso são outro método automatizado para configurar um cliente DB2 para acessar servidores DB2 remotos e seus bancos de dados. Um perfil de acesso contém as informações que um cliente precisa para catalogar os bancos de dados em um servidor DB2.

Como com descoberta, ao usar perfis de acesso, não é necessário fornecer nenhuma informação de comunicação detalhada para ativar o cliente DB2 para contatar o servidor DB2.

Existem dois tipos de perfis de acesso:

  • Perfis de acesso ao servidor são criados a partir de servidores DB2. Eles contêm informações sobre todas as instâncias e bancos de dados que o servidor DB2 catalogou.

  • Perfis de acesso ao cliente são usados para duplicar os bancos de dados catalogados e/ou as configurações de clientes (DBM CFG, CLI/ODBC) de um cliente para outro.

Ambos os tipos de perfis podem ser exportados de um sistema do DB2 e, em seguida, importados para outro.

Você geralmente usaria perfis de acesso para configurar um grande número de clientes. O DB2 Control Center pode ser usado para exportar e, em seguida, importar um sistema de perfil de acesso ao servidor. (Para saber mais sobre o Control Center, consulte o primeiro tutorial desta série.) Um perfil de acesso ao cliente é exportado, em seguida, importando usando o Configuration Assistant (CA).

Se houver um grande número de clientes para configurar, deve-se considerar também o uso de LDAP (Lightweight Directory Access Protocol). LDAP permite armazenar informações de catálogo em um local centralizado. Cada cliente precisa saber apenas o local centralizado para poder conectar a qualquer banco de dados que foi disponibilizado na rede. Consulte o DB2 Administration Guide para obter detalhes adicionais sobre LDAP.

Configuração manual

Também é possível configurar manualmente uma conexão com o banco de dados. Para fazer isso, é necessário saber os detalhes da configuração de comunicações entre o cliente e o servidor.

É possível usar uma configuração manual para seus bancos de dados do host, usar descoberta para conectar por meio de um servidor DB2 Connect ou usar essas informações para uma conexão direta de seu cliente, conforme descrito nas seções anteriores. Há duas maneiras de configurar conexões manualmente:

  • Use a opção Manual no CA. Nesse caso, serão solicitados por meio de uma interface de GUI todos os valores que precisa inserir.

  • Use os comandos CATALOG NODE/DB. Nesse caso, você deve saber a sintaxe dos comandos e inserir os comandos a partir de uma interface de linha de comando.

Em nenhum dos dois casos, é possível usar configuração manual para explorar algumas opções avançadas que não estão disponíveis usando métodos automatizados -- você poderia escolher o local onde a autenticação ocorre, por exemplo.

O método CATALOG NODE/DB de linha de comando é o mais complicado dos dois, mas vem com uma vantagem: é possível salvar as etapas de configuração em scripts, de forma que a configuração possa ser refeita se necessário.

Usando o CA para catalogar um banco de dados

Nas seções a seguir, você verá as etapas necessárias para catalogar manualmente um banco de dados usando o Configuration Assistant.

Antes de prosseguir, é necessário saber as seguintes informações:

  • Um dos protocolos suportados pela instância do servidor que contém o banco de dados
  • As informações de conexão do protocolo necessárias para configurar a conexão com a instância do servidor
  • O nome do servidor
  • O nome do banco de dados no servidor remoto

A tela inicial do CA é chamada selecionando-se o Configuration Assistant a partir da pasta DB2.

Figura 7. Selecionar o Configuration Assistant
Selecionar o Configuration Assistant

Após selecionar esse programa, a tela a seguir será exibida:

Figura 8. Configuration Assistant
Configuration Assistant

A seção superior dessa tela fornece ao usuário uma lista de bancos de dados atualmente catalogados no sistema. Há diversos itens de menu aqui que permitem que um usuário configure as conexões com o banco de dados, mas a opção em que um DBA estaria interessado é o botão Add Database Using Wizard no menu Selected :

Figura 9. Add database using Wizard
Add database using Wizard

Escolher Add ativa o Add Database Wizard.

As seções a seguir descrevem cada etapa necessária na configuração do cliente.

CA: Qual método usar?

O primeiro painel do assistente CCA pergunta qual método você gostaria de usar para catalogar o banco de dados.

Figura 10. Configurando uma conexão
Configurando uma conexão

O assistente fornece ao usuário três maneiras possíveis de catalogar um banco de dados:

  • Usar um perfil
  • Procurar na rede
  • Configurar uma conexão manualmente

A opção na qual estamos interessados é a configuração manual. (Conforme as seções anteriores descreveram, usar um perfil ou procurar na rede são métodos muito mais fáceis para um usuário que deseja catalogar um banco de dados em um cliente.)

Agora que você selecionou a opção de configuração manual, é necessário selecionar o protocolo de comunicação desejado.

CA: Protocolo de comunicação

No painel abaixo, você seleciona o protocolo que será usado para conectar ao banco de dados. O conteúdo da caixa Protocol Parameters muda conforme o protocolo. Seguem os protocolos que podem ser escolhidos, juntamente com alguns de seus parâmetros:

  • TCP/IP: Nome do host/endereço IP do servidor, número da porta
  • NetBIOS: Nome da estação de trabalho do servidor, número do adaptador
  • Named Pipe: Nome do computador servidor, instância
  • APPC/APPN: Nome o destino simbólico do servidor
  • LOCAL: Um banco de dados local nesta máquina

Todos os protocolos que o DB2 suporta são listados aqui. Se tiver escolhido APPC, suas opções de sistema operacional serão: OS/390 ou z/OS, OS/400, VM ou VSE. Servidores DB2 no Windows e UNIX não aceitam mais conexões de clientes de entrada usando APPC. No entanto, clientes DB2 ainda podem conectar a sistemas host usando APPC se tiverem o DB2 Connect instalado.

Se escolher TCP/IP, suas opções são: baseado em LAN, OS/390 ou z/OS, OS/400 ou VM.

Você deve verificar se a máquina está configurada de forma apropriada na rede antes de clicar em Finish.

Figura 11. Selecionar protocolo de comunicação
Selecionar protocolo de comunicação

CA: Detalhes de comunicação

Neste ponto, você insere os detalhes de comunicação do banco de dados que deseja catalogar. Essa tela será diferente para cada protocolo de comunicação. O exemplo mostrado aqui é para um banco de dados localizado na mesma máquina que o cliente (local).

Figura 12. Selecionar banco de dados local
Selecionar banco de dados local

CA: Detalhes do banco de dados

Agora, você insere os detalhes do banco de dados que deseja catalogar. Insira o nome do banco de dados (conforme conhecido no servidor) no campo Database Name. É possível aceitar o mesmo nome que o alias local para o banco de dados ou alterar o alias para um nome de sua opção. Também é possível inserir uma descrição, se quiser.

Figura 13. Inserir o nome do banco de dados
Inserir o nome do banco de dados

CA: Configurações de ODBC

É possível registrar o banco de dados como uma origem de dados ODBC. Por padrão, a caixa que indica que você deseja fazer isso está selecionada, como é possível ver na figura abaixo. É possível otimizar as configurações de ODBC selecionando esse aplicativo no menu Optimize for Application .

Figura 14. Registrar ODBC
Registrar ODBC

Se você planeja executar aplicativos do Windows com relação a esse banco de dados, você deve se familiarizar com as diversas configurações de otimização disponíveis nesse ambiente.

CA: Nó, sistema e opções de segurança

Há três painéis adicionais que são exibidos como parte do Configuration Assistant. As Security Options são exibidas para qualquer tipo de banco de dados, mas os painéis Node e System são exibidos somente para bancos de dados remotos.

  1. Informações do nó: Você deve preencher as informações do nó se planeja usar o Control Center, já que isso afetará o comportamento dessa ferramenta. Os nomes do sistema e da instância são fornecidos pelos valores de DB2SYSTEM e DB2INSTANCE no servidor. Você também deve selecionar o sistema operacional do sistema remoto.

    Figura 15. Inserir informações do nó
    Inserir informações do nó
  2. Informações do sistema: É necessário fornecer as informações do sistema para indicar ao DB2 o sistema, o host e o sistema operacional do sistema remoto no qual o banco de dados reside.

    Figura 16. Fornecer informações do sistema
    Fornecer informações do sistema
  3. Informações de segurança: Aqui é possível especificar onde a autenticação do usuário ocorre (no servidor, que é o padrão, no cliente ou em um host ou OS/400). Também é possível optar por usar a segurança SOCKS para conexões TCP/IP, que permitiria acessar um banco de dados remoto fora de seu firewall. (Para saber mais sobre segurança do DB2, consulte o segundo tutorial desta série.)

    Figura 17. Inserir informações de segurança
    Inserir informações de segurança

CA: Operação de catálogo bem-sucedida

Ao clicar em Finish na tela Catálogo de CCA, o DB2 tentará catalogar o banco de dados. Se isso for bem-sucedido, a janela a seguir é exibida:

Figura 18. Tela Add Database Confirmation
Tela Add Database Confirmation

Nesse ponto, é possível testar a conexão para assegurar que o cliente possa se comunicar com o banco de dados. Se o teste for bem-sucedido, é possível usar um aplicativo para acessar o banco de dados DB2.

Figura 19. Conexão de teste
Conexão de teste

Resumo de catálogo

Catalogar um banco de dados DB2 geralmente não é necessário no servidor no qual foi criado. No entanto, para acessar um banco de dados de um cliente, esse cliente deve primeiro catalogar o banco de dados localmente de forma que os aplicativos possam acessá-lo.

O comando CATALOG pode ser usado para catalogar um banco de dados, mas o Configuration Assistant (CA) é uma ferramenta muito mais fácil de usar e permite a descoberta automatizada e a catalogação de bancos de dados.

Como uma alternativa para catalogar bancos de dados em cada cliente, um DBA poderia usar também serviços LDAP para criar um repositório central de informações do banco de dados.


Manipulando Objetos do DB2 com o Control Center

Usando o Control Center

O Control Center é o ponto central de administração para o DB2. O Control Center fornece ao usuário as ferramentas necessárias para executar tarefas de administração típicas do banco de dados. Ele permite fácil acesso a outras ferramentas de administração do servidor, fornece uma visão geral clara de todo o sistema, permite gerenciamento de banco de dados remoto e fornece assistência passo a passo para tarefas complexas.

Então por que passamos por todo aquele sofrimento de aprender como criar bancos de dados da linha de comando? Apesar de o Control Center tornar sua vida mais fácil, há momentos em que você deseja criar scripts que criam objetos ou chamam a manutenção do banco de dados automaticamente. O Control Center pode ajudá-lo a gerar, gerenciar e planejar esses scripts, mas todos são executados como comandos do DB2. E, em alguns casos, o Control Center pode não estar disponível no sistema operacional que você está usando, portanto, não terá outra alternativa, a não ser usar comandos do DB2.

O Control Center é chamado a partir da pasta General Administration no grupo de programas do DB2:

Figura 20. Iniciar o Control Center
Iniciar o Control Center

A tela que é exibida será semelhante à figura a seguir:

Figura 21. Control Center principal
Control Center principal

O objeto Systems representa máquinas locais e remotas. Para exibir todos os sistemas DB2 que seu sistema catalogou, expanda a árvore de objetos clicando no sinal de mais ( + ) ao lado de Systems. A parte esquerda da tela lista sistemas DB2 disponíveis (locais e remotos). Na figura, o sistema LOCAL contém uma instância do DB2, DB2, na qual o banco de dados SAMPLE está localizado. Quando Tables está destacado, detalhes sobre cada sistema são mostrados em Contents Pane. Várias das tabelas existentes no banco de dados SAMPLE são exibidas na figura acima.

Os componentes principais do Control Center são:

  • Menu Bar: Usada para acessar funções do Control Center e a ajuda on-line.
  • Tool Bar: Usada para acessar as outras ferramentas de administração.
  • Objects Pane: Mostrada do lado esquerdo da janela do Control Center. Contém todos os objetos que podem ser gerenciados a partir do Control Center, assim como o relacionamento dos mesmos uns com os outros.
  • Contents Pane: Está localizada do lado direito da janela Control Center e contém os objetos que pertencem ou correspondem ao objeto selecionado na Objects Pane.
  • Contents Pane Toolbar: Esses ícones são usados para padronizarem a visualização dos objetos e informações na Contents Pane. Essas funções também podem ser selecionadas no menu View.
  • Details Pane: A Details Pane exibe informações detalhadas sobre o objeto selecionado.

Ajuda instantânea também está disponível no Control Center, fornecendo uma descrição curta para cada ícone da barra de ferramentas à medida que você passa o ponteiro do mouse sobre o ícone.

Criando e manipulando bancos de dados

O Control Center pode ser usado para criar e gerenciar seus bancos de dados. Lembra-se do comando CREATE DATABASE usado anteriormente para criar seu primeiro banco de dados? Nos próximos painéis, você verá como fazer a mesma coisa usando o Control Center.

Do lado esquerdo do Control Center (a Objects Pane), posicione seu mouse sobre a palavra-chave Database e clique com o botão direito do mouse na mesma. Isso abrirá um menu das opções que estão disponíveis para os bancos de dados. Nesse caso, você selecionaria Create Database > Standard..., conforme mostrado na figura abaixo:

Figura 22. Criando um novo banco de dados
Criando um novo banco de dados

Após selecionar essa opção, o DB2 apresentará uma série de painéis que precisarão ser preenchidos para criar um banco de dados. Em seguida, você verá como usar esses assistentes para simplificar algumas das tarefas comuns do DBA.

Assistente Create Database: Nome do banco de dados

O assistente Create Database o guiará por várias etapas para gerar um banco de dados. A primeira tela pede o nome do banco de dados, a unidade padrão onde deseja criá-lo (se não especificar mais nada) e um nome alternativo. Além disso, é possível incluir um comentário sobre conteúdo do banco de dados.

Algumas observações especiais sobre esse primeiro painel. Se quiser usar colunas XML no banco de dados, ele deve estar definido como UTF-8 (Enable database for XML). Além disso, Automatic Storage é o padrão para um banco de dados no DB2 9. Se quiser substituir esse padrão, você deve selecionar I want to manage my storage manually.

Figura 23. Denominar o banco de dados
Denominar o banco de dados

Assistente Create Database: Usuário/catálogo/tabelas temporárias

Os próximos três painéis do assistente pedem que você preencha informações sobre como gostaria que o usuário, o catálogo e o espaço de tabela temporário fossem criados. Se a opção Low Maintenance for selecionada, o assistente criará um espaço de tabela SMS. se selecionar High Performance, será necessário especificar os dispositivos e sistemas de arquivos que planeja usar para esse espaço de tabela.

Figura 24. Alocação de espaço de banco de dados
Alocação de espaço de banco de dados

Para qualquer uma das opções, é possível especificar os contêineres (arquivos, dispositivos) que você deseja alocar para o espaço de tabela. Se clicar no botão Add, um painel adicional será exibido para permitir que você defina os contêineres que estão sendo usados.

Figura 25. Contêineres de banco de dados
Contêineres de banco de dados

Se você não especificar contêineres ou arquivos para seus espaços de tabela, o DB2 irá gerar um automaticamente para você na unidade padrão especificada anteriormente.

Assistente Create Database: Opções de desempenho

Há dois parâmetros de desempenho que podem ser configurados: EXTENTSIZE e PREFETCHSIZE.

Figura 26. Ajuste do banco de dados
Ajuste do banco de dados

Vamos dar uma olhada em cada um deles:

  • EXTENTSIZE: Uma extensão é uma unidade de espaço dentro de um contêiner de um espaço de tabela. Objetos de banco de dados (exceto LOBs e long varchars) são armazenados em páginas dentro do DB2. Essas páginas são agrupadas em extensões. O tamanho da extensão é definido no nível do espaço de tabela. Quando o tamanho da extensão é estabelecido para o espaço de tabela, ele não pode ser alterado. O parâmetro de configuração do banco de dados DFT_EXTENT_SZ especifica o tamanho da extensão padrão para todos os espaços de tabelas no banco de dados. Esse valor pode variar de 2 a 256 páginas; assim, o tamanho absoluto variaria de 8 KB a 1024 KB para páginas de 4 KB ou de 16 KB a 2048 KB para páginas de 8 KB. Esse número pode se substituído usando-se o parâmetro EXTENTSIZE na instrução CREATE TABLESPACE .

    Se tiver a intenção de usar armazenamento em cluster multidimensional (MDC) no design de suas tabelas, o tamanho da extensão se tornará uma decisão crítica do design. Tabelas MDC alocarão uma extensão para cada novo conjunto de dimensões criado. Se o tamanho da extensão for muito grande, então há a possibilidade de grande parte da extensão estar vazia (para conjuntos de dimensões com poucos registros). Para obter informações adicionais sobre MDC e seu impacto em EXTENTSIZE, consulte o DB2 Administration Guide.

  • PREFETCHSIZE: Pré-busca sequencial é a capacidade do gerenciador do banco de dados de antecipar uma consulta, lendo páginas antes de essas páginas serem realmente referidas. Essa recuperação assíncrona pode reduzir tempos de execução de forma significativa. É possível controlar até que ponto a pré-busca é executada alterando o parâmetro PREFETCHSIZE na instrução CREATE TABLESPACE . Por padrão, esse valor é configurado para o parâmetro de configuração do banco de dados DFT_PREFETCH_SZ . Esse valor representa quantas páginas serão lidas por vez quando uma solicitação de pré-busca for acionada pelo DB2. Ao configurar esse valor para um múltiplo do tamanho da extensão, diversas extensões podem ser lidas em paralelo. Essa função é até mais efetiva quando os contêineres do espaço de tabela estão em discos rígidos separados.

Os valores padrão para esses parâmetros são adequados para muitos aplicativos, mas você pode querer experimentar com PREFETCHSIZEs mais altos para aplicativos fazem consultas pesadas ou analisam grandes quantias de dados.

Assistente Create Database: Página de códigos e sequência de intercalação

A próxima opção que você encontrará como parte da criação do banco de dados é a que envolve páginas de códigos e sequências de intercalação.

Figura 27. Sequência de intercalação e página de códigos
Sequência de intercalação e página de códigos

Quando um aplicativo do DB2 é ligado a um banco de dados DB2, a página de códigos do aplicativo e a do banco de dados são comparadas. Se as páginas de códigos não forem iguais, será tentada conversão de página de códigos para cada instrução SQL. Se estiver usando uma página de códigos diferente daquela do banco de dados que está sendo acessado, é importante assegurar que as páginas de códigos sejam compatíveis e que a conversão possa ser realizada.

Por padrão, a sequência de intercalação de um banco de dados é definida de acordo com o conjunto de código usado no comando CREATE DATABASE . Se você especificar a opção COLLATE USING SYSTEM, os valores de dados são comparados com base no TERRITORY especificado para o banco de dados. Se a opção COLLATE USING IDENTITY for usada, todos os valores são comparados usando sua representação binária de maneira byte a byte. Quando for necessário armazenar dados em seu formato nativo (binário), evite usar tipos de dados com páginas de código. Geralmente é vantajoso usar páginas de códigos de aplicativo e de banco de dados idênticas para evitar o processo de conversão de página de códigos.

Assistente Create Database: Criar resumo

Após todos os seus parâmetros terem sido inseridos no sistema, o assistente Create Database apresentará uma tela de resumo com todas as seleções feitas.

Figura 28. Página de resumo do assistente
Página de resumo do assistente

Um recurso extremamente útil dessa página de resumo é seu botão Show Command . Se pressioná-lo, você verá o comando DB2 que será usado para criar o banco de dados, conforme mostrado na figura abaixo.

Figura 29. Show Command
Show Command

É possível salvar esse comando para execução posterior ou recortar e colar o mesmo em um script que possa estar sendo desenvolvido. Se estiver satisfeito com os parâmetros inseridos no sistema, clique no botão Finish para criar o banco de dados.

Resumo do Control Center

O DB2 Control Center é uma ferramenta eficiente que torna a manutenção de banco de dados de rotina extremamente fácil. Há vários assistentes disponíveis para ajudá-lo a criar ou modificar muitos dos objetos de banco de dados.

Também é possível usar o Control Center para gerar comandos do DB2 para uso posterior em scripts ou programas. Esse recurso permite desenvolver o comando que você deseja usar sem realmente executá-lo.


Criando e Acessando Objetos Básicos do DB2

Mais truques do Control Center

Embora o Control Center seja certamente útil para criar bancos de dados, ele tem muita funcionalidade adicional que pode ser usada para criar, modificar ou excluir praticamente qualquer objeto de banco de dados. Vamos dar uma olhada no que mais o Control Center tem.

Figura 30. Control Center
Control Center

Do lado esquerdo da tela, temos a Objects Pane. Se quiser criar um novo objeto, posicione seu mouse sobre o tipo de objeto (tabela) e clique com o botão direito do mouse no mesmo. Para a maioria dos objetos, isso apresentará um menu de opções, inclusive uma para criar o objeto.

Figura 31. Criar ova tabela
Criar ova tabela

Como um DBA, você deve se familiarizar os esses botões Create. Inicialmente, esses assistentes podem ser extremamente úteis na determinação de como os comandos do DB2 são gerados. Tirar vantagem do botão Show Command pode ser uma excelente ferramenta de aprendizado. Mesmo DBAs experientes não têm vergonha de usar o Control Center para gerar comandos raramente usados!

Modificando objetos existentes

Novos objetos são criados clicando-se com o botão direito do mouse no nome do objeto na Objects Pane. Se precisar modificar ou excluir um objeto, é necessário exibi-lo na Contents Pane no lado direito do Control Center.

Figura 32. Modificar o Control Center
Modificar o Control Center

No painel mostrado na figura acima, as tabelas localizadas no banco de dados SAMPLE são listadas na Contents Pane. Agora que essas tabelas são exibidas, é possível modificá-las. Clique com o botão direito do mouse no objeto que deseja modificar. Você verá o seguinte menu:

Figura 33. Menu Modification
Menu Modification

Há diversas ações que podem ser executadas com relação a objetos da tabela. Por exemplo, é possível visualizar o conteúdo de amostra da tabela, alterar a tabela ou reorganizá-la.

Dois comandos que sejam de interesse de DBAs são os comandos Show Related e Generate DDL. Show Related exibirá todos os objetos de banco de dados, como índices ou espaços de tabelas, relacionados a essa tabela. O comando Generate DDL realizará engenharia reversa da definição dessa tabela, de forma que seja possível recriar o design da tabela no caso de uma falha. (É claro que você sempre faz backup de seu banco de dados, certo?)

Details Pane

O Control Center também contém a Details Pane que fornece mais detalhes sobre um item que foi selecionado na Object Pane. Esse recurso é parcialmente útil, já que fornece uma visualização rápida da definição de tabela. Por exemplo, quando uma tabela é selecionada, a Details Pane exibirá o esquema de tabela (a definição de coluna) juntamente com opções para exibir o conteúdo da tabela, consultar a tabela ou mostrar objetos relacionados.

Figura 34. Details Pane
Details Pane

Se um tipo de objeto diferente for selecionado, a Details Pane mostrará opções de manipulação adequadas para o tipo de objeto selecionado.


Recapitulação

Resumo

O DB2 Control Center também pode ser usado para modificar objetos existentes dentro do banco de dados. Para cada tipo de objeto, serão apresentadas várias opções que definem o que podem alterar.

A maioria das ações que um DBA executa a partir do Control Center pode ser capturada e salva para uso em um script. Isso, juntamente com os assistentes de comandos, pode tornar a manutenção no banco de dados muito mais simples do que digitar comandos.

Informações adicionais sobre o DB2 Control Center podem ser localizadas na ajuda on-line fornecida com a ferramenta. Além disso, o DB2 Administration Guide e a Referência de Comandos do DB2 têm muitas informações sobre recursos de banco de dados, funções e como projetar um banco de dados para o melhor desempenho. Esses manuais são uma excelente referência e devem estar à disposição ao projetar seus bancos de dados!

Recursos

Aprender

Obter produtos e tecnologias

  • DB2 9: Obtenha uma versão de avaliação do DB2 9, disponível para download gratuito.
  • DB2 Express-C: Faça download do DB2 Express-C, uma versão gratuita do DB2 Express Edition para a comunidade que oferece os mesmos recursos de dados centrais que o DB2 Express Edition e fornece uma base sólida para desenvolver e implementar aplicativos.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=757115
ArticleTitle=Preparação para o Exame 730 DB2 9 Fundamentals, Parte 3: Acessando Dados do DB2
publish-date=09162011