Resumo DB2


DB2 – Data Base Software

Introdução

A história do  DB2, suas versões, edições e suas respectivas características.

DB2 é um produto de banco de dados IBM. É um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS). DB2 é projetado para armazenar, analisar e recuperar os dados de forma eficiente. Produto DB2 é estendido com o apoio de recursos orientados a objetos e estruturas não-relacionais com XML.

Inicialmente, a IBM desenvolveu o produto DB2 para a sua plataforma específica.Desde o ano 1990, decidiu desenvolver um Universal Database (UDB) DB2 Server, que pode ser executado em qualquer sistema operacional de autoridade, tais como Linux, UNIX e Windows. Para o IBM DB2, a versão atual é de 10,5 UDB com as características de BLU Aceleração e seu nome de código como 'Kepler'. Todas as versões do DB2 até hoje estão listados abaixo:

Versão

Nome de Código

3.4

Teia de aranha

8.1, 8.2

Pancada

9.1

Víbora

9,5

Viper 2

9,7

Cobra

9.8

Acrescentou características com apenas pureScale

10.1

Galileo

10.5

Kepler

 

 

Dependendo da exigência de características necessitados de DB2, as organizações selecionam versão apropriada do DB2. A tabela a seguir mostra edições do servidor DB2 e as suas características:

Edições

Características

Advanced Enterprise Server Edition e Enterprise Server Edition (AESE / ESE)

É Designed para meados de tamanho para as organizações empresariais de grande porte. Plataforma - Linux, UNIX e Windows. O particionamento de tabela High Availability Disaster Recovery (HARD) Tabela de Consulta Materializada (MQTs) Multidimensional Clustering (MDC) concentrador Connection compactação de backup XML Pure Federações Homogêneos

Workgroup Server Edition (WSE)

Ele é projetado para Workgroup ou organizações empresariais de médio porte. Usando este WSE você pode trabalhar com - High Availability Disaster Recovery (HARD) Reorganização online XML Pure Federação Serviço Web de suporte do DB2 Federações Homogêneos compressão de backup replicação SQL Homogêneo

Expresso -C

Ele fornece todas as capacidades do DB2 a custo zero. Ele pode ser executado em qualquer sistema físico ou virtual com qualquer tamanho de configuração.

Express Edition

Ele é projetado para o nível de entrada e de organizações empresariais de médio porte. É servidor de dados DB2 cheio de recursos. Oferece serviços limitados. Esta edição vem com - Web Serviço Federações DB2 federações homogêneos Homogeneous SQL Replications compressão de backup

Empresa Developer Edition

Ele oferece apenas desenvolvedor de aplicativos single. É útil para projetar, construir e prototipar os pedidos de implantação em qualquer um servidor IBM. O software não pode ser usado para o desenvolvimento de aplicações.

 

  

Instalação do Servidor

Você pode baixar a versão de teste do DB2 Server ou comprar a licença do produto de www.ibm.com . Existem duas versões de DB2 separadas disponíveis para a transferência, dependendo do tamanho do sistema operacional, na qual se destina a ser executada. Por exemplo, se você deseja fazer o download de um servidor DB2 para Linux de 32 bits ou o sistema operacional UNIX, então você precisa fazer o download de um servidor DB2 de 32 bits. O mesmo se aplica para o servidor DB2 de 64 bits.

Os requisitos de hardware

Processador: Mínimo Núcleo 2 Duo

Ram: 1GB mínimo

Disco rígido: 30 GB mínimo

Requisitos de Software

Antes de instalar o servidor DB2, o sistema precisa se preparar com o software necessário nele. No Linux, você precisa instalar o "libstdc ++ 6.0".

Verificar compatibilidade do sistema

Antes de instalar o DB2 Server, você precisa verificar se o seu sistema é compatível com o servidor DB2. Para confirmar a compatibilidade, você precisa chamar o comando 'db2prereqcheck' no console de comando.

Instalando o DB2 no sistema operacional Linux

Abra o Terminal e definir o caminho da pasta de imagem de instalação do DB2 no console usando "<pasta de instalação do DB2> CD" comando. Em seguida, digite o comando "./db2prereqcheck”, o que confirma a compatibilidade do sistema com o servidor DB2.

./db2prereqcheck

 
  
Figura -1 mostra os requisitos de compatibilidade do sistema operacional Linux e sistema de hardware.
 
Siga os passos indicados para a instalação do DB2 em seu sistema Linux:
 
·         Abra o terminal.
·         Faça login como usuário root.
·         A pasta de instalação do DB2 em Abrir.
·         Digite " ./db2setup " e pressione Enter.
 
Este processo irá iniciar a execução de configuração do servidor DB2.
 
 
 Digite " ./db2setup " e pressione Enter no terminal root para iniciar o processo de instalação do DB2 Server.
 
Ao fazê-lo , o "Wizard de Configuração" será exibida. [ Figura - 2 ]

 

Na página de configuração de plataforma de lançamento , selecione " Instalar um Produto " opção no menu do lado esquerdo . Selecione a opção "DB2 Advanced Enterprise Server Edition " . Selecione "Instalar Novo" Button.
 
Um novo quadro aparece com o nome de " assistente de configuração do DB2 " . Clique em " Next" . [ Figura - 3 ]
A próxima tela aparece com contrato de licença do DB2. Selecione a opção " I accept the terms ... " Clique em " Next" . [ Figura 4 - ]
Próxima tela vem com oferta do tipo de instalação , que é definido como " típica " por padrão.
 
Mantenha a mesma seleção . Clique em " Next" . [ Figura - 5 ]

 

A próxima tela aparece com ação de instalação .
 
Selecione "Instalar o DB2 Advanced Enterprise Server Edition ... "
 
Clique em " Next" . [ Figura - 6 ]

 

Na próxima tela , o programa de instalação pede para seleção de diretório de instalação.
Manter o padrão e clique em "Next" .
 
A próxima tela surge com a autenticação do usuário. Digite sua senha para o usuário " dasusr1 " .
 
( Sua senha pode ser idêntico ao nome de usuário , de modo que é conveniente lembrar. )

 

 

 

Na tela seguinte , a configuração pede-lhe para a criação da instância do servidor DB2.

 

Aqui , é a criação de uma instância do DB2 com o nome " db2inst1 " .

 
A próxima tela pede-lhe o número de partições que você precisa para sua instância padrão.
Você tem uma escolha de partições " único ou múltiplo " .
Selecione "instância única partição " . Clique em "Next " .
 

 

 

Na próxima tela , a configuração pede-lhe para autenticação por exemplo DB2 que está sendo criado .
 
Aqui, por padrão, nome de usuário é criado como " db2inst1 " . Você pode digitar a senha mesmo como nome de usuário .
 
Clique em " Next" .

 

Na próxima tela , a configuração pede para inserir as informações de autenticação para o usuário " db2fenc " .
Aqui, você pode digitar a senha mesmo como nome de usuário .
Clique em " Next" .
Na próxima tela , você pode selecionar "Não configuração de seu servidor DB2 para enviar notificações neste momento" opção.
 
Clique em " Next" .
A próxima tela mostra as informações sobre a configuração do DB2.
 
Clique em " Finish" .
 
O procedimento de instalação do DB2 ser concluída nesta fase.
 
  
Verificando a instalação do DB2
 
Você precisa verificar a instalação do servidor DB2 para a sua utilidade. Ao completar a instalação do DB2 Server, sair do modo de usuário atual e login para o usuário " db2inst1 " . No ambiente do usuário " db2inst1 " , você pode abrir terminal e execute os seguintes comandos para verificar se o seu produto DB2 está instalado corretamente ou não.
 
db2level
Este comando mostra a versão e serviço atual nível do produto DB2 instalado por exemplo atual.
 
sintaxe:
db2level 
exemplo:
db2level 
saída :
DB21085I Instance "db2inst2" uses "64" bits       
And DB2 code release "SQL10010" with level     
identifier "0201010E". Informational tokens     
are "DB2 v10.1.0.0", "s120403",     
"LINUXAMD64101", and Fix Pack "0".  
Product is installed at "/home/db2inst2/sqllib".  
db2licm
Este comando mostra todas as informações de licença relacionados do nosso Produto do DB2 .
 
sintaxe:
db2licm <parameter> 
exemplo:
db2licm -l 
saída :
Product name:                     "DB2 Advanced Enterprise Server Edition" 
License type:                     "Trial" 
Expiry date:                      "10/02/2014" 
Product identifier:               "db2aese" 
Version information:              "10.1"  
Product name:                     "DB2 Connect Server" 
License type:                     "Trial" 
Expiry date:                      "10/02/2014" 
Product identifier:               "db2consv" 
Version information:              "10.1" 
Command Line Processor (CLP)
O CLP pode ser iniciado em um dos três modos :
 
O modo de comando : Neste modo , cada instrução de comandos SQL e deve ser prefixado por "DB2" . Por exemplo, a consulta " db2 ativar amostra base de dados" .
 
Modo de entrada interativo: você pode lançar este modo usando o comando "DB2" . Aqui , você pode passar instruções SQL sem prefixo. Por exemplo, " ativar amostra base de dados" .
 
Modo em lote : Aqui, você precisa criar um arquivo de script , que contém todas as consultas SQL de exigências e salve o arquivo com a extensão " .db2 " . Você pode chamar isso em linha de comando usando a sintaxe " db2 -tf < filename.db2 >".


 

 

INSTANCIA

Uma instância é um ambiente lógico para o Gerenciador de Banco de Dados DB2. Usando exemplo, você pode gerenciar bancos de dados. Dependendo de nossas necessidades, você pode criar várias instâncias em uma máquina física. O conteúdo do diretório Instância são:

  • O arquivo de configuração do gerenciador de banco
  • Diretório do sistema de banco de dados
  • Diretório de Nós
  • Configuração do Nó Arquivo [db2nodes.cfg]
  • Arquivos de depuração, arquivos de despejo

Para o DB2 Database Server, a instância padrão é "DB2". Não é possível alterar o local do diretório Instância após a sua criação. Uma instância pode gerenciar vários bancos de dados. Em um exemplo, cada banco de dados tem um nome único, o seu próprio conjunto de tabelas de catálogos, arquivos de configurações, autoridades e privilégios.


Você pode criar várias instâncias em um db2server em Linux, UNIX e Windows. É possível instalar vários DB2Servers em uma máquina física.

Criando instância no Linux

Você pode criar várias instâncias no Linux e UNIX, se DB2 Server está instalado como usuário root. Uma instância podem funcionar simultaneamente no Linux e UNIX de forma independente. Você pode trabalhar em uma única instância do gerenciador de banco de dados de cada vez.

Uma pasta Instância contém arquivos de configuração de banco de dados e pastas. O diretório Instância é armazenado em locais diferentes no Windows, dependendo das versões do sistema operacional.

Instâncias de Listagem

O comando a seguir é usado para listar casos:

db2ilist

Este comando lista todas as instâncias que estão disponíveis em um sistema.

Sintaxe:

db2ilist 
Exemplo: [ Para ver quantos casos são criados na cópia do DB2 ]
 
db2ilist 
saída :
 
db2inst1 
db2inst2 
db2inst3 
Comandos do ambiente Instância
Estes comandos são úteis para trabalhar com arranjo de exemplo, no CLI DB2.
 
obter instância
Este comando mostra detalhes da instância atualmente em execução .
 
sintaxe:
 
db2 get instance 
Exemplo: [ Para ver a instância atual que ativou o usuário atual ]
 
db2 get instance
saída :
The current database manager instance is : db2inst1 
Set instância
Para iniciar ou parar o gerenciador de banco de dados de uma instância de DB2 UDB , o seguinte comando é executado para a instância atual .
 
sintaxe:
set db2instance=<instance_name> 
Exemplo: [ Para organizar o meio ambiente " db2inst1 " para usuário atual ]
set db2instance=db2inst1
db2start
Usando este comando, você pode iniciar uma instância . Antes disso, você precisa executar "set instância" .
sintaxe:
db2start
saída :
SQL1063N DB2START processing was successful
db2stop
Usando este comando você pode parar uma instância em execução .
 
sintaxe:
db2stop 
saída :
SQL1064N DB2STOP processing was successful.

 

 

Criando uma instância

Vamos ver como criar uma nova instância .

 

db2icrt

Se você quer criar uma nova instância , você precisa fazer login com root. ID da instância não é um ID de raiz ou um nome de raiz.

 

Aqui estão os passos para criar uma nova instância :

 

Passo 1: Criar um usuário do sistema operacional , por exemplo.

 

sintaxe:

useradd -u <ID> -g <group name> -m -d <user location> <user name> 
-p <password>  
Exemplo: [ Para criar um usuário , por exemplo, com o nome ' db2inst2 ' em ' db2iadm1 ' grupo e password ' db2inst2 ']
 
useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2  
Passo 2: Vá para o diretório da instância do DB2 no usuário root para criar nova instância.
 
Localização:
cd /opt/ibm/db2/v10.1/instance
Passo 3: Criar instância usando a seguinte sintaxe :
 
sintaxe:
./db2icrt -s ese -u <inst id> <instance name>
Exemplo: [ Para criar uma nova instância " db2inst2 " no usuário " db2inst2 " com as características de " ESE " ( Enterprise Server Edition) ]
 
./db2icrt -s ese -u db2inst2 db2inst2
saída :
DBI1446I The db2icrt command is running, please wait.
 ….
 ….. 
DBI1070I Program db2icrt completed successfully.
Arranjar comunicação da porta e host para uma instância
Edite o arquivo / etc / services e adicionar o número da porta . Na sintaxe apresentado a seguir, ' inst_name ' indica o nome da instância e ' inst_port ' indica o número da porta da instância.
sintaxe:
db2c_<inst name> <inst_port>/tcp
Exemplo: [ Adicionando ' 50001 / tcp' número da porta , por exemplo, ' db2inst2 ' com ' db2c_db2inst2 ' variável no arquivo ' serviços ' ]
db2c_db2inst2 50001/tcp
Sintaxe 1: [Update Database Configuration Manager com o nome do serviço. A seguinte sintaxe ' svcename ' indica o nome do serviço da instância e ' inst_name ' indica o nome da instância ]
db2 update database manager configuration using svcename db2c_&<inst_name>
Exemplo 1: [ Atualização de configuração DBM com svcename variável com valor ' db2c_db2inst2 ', por exemplo ' db2inst2 '
db2 update database manager configuration using svcename db2c_db2inst2 
saída
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.
Sintaxe 2: definir o protocolo de comunicação " tcpip " para a instância atual
db2set DB2COMM=tcpip 
Syntax 3: [ Interrompendo e iniciando o exemplo atual para obter valores atualizados a partir de configuração do gerenciador de banco de dados ]
db2stop 
db2start 
 
Atualizando uma instância
Você pode atualizar uma instância utilizando seguinte comando:
 
db2iupdt
 
Este comando é usado para atualizar a instância no mesmo lançamento de versão . Antes de executar este comando , você precisa parar o gerenciador de banco de dados de exemplo usando o comando " db2stop " . A sintaxe abaixo " inst_name " indica o nome da instância do servidor DB2 anterior liberada ou instalado, o que você deseja atualizar a versão mais recente ou versão do servidor DB2 instalado.
 
Sintaxe 1: Para atualizar uma instância no modo normal
db2iupdt <inst_name> 
Exemplo 1:
./db2iupdt db2inst2 
Sintaxe 2: Para atualizar uma instância no modo de depuração
db2iupdt -D <inst_name> 
exemplo
db2iupdt -D db2inst2  

Atualizando uma instância
Você pode atualizar uma instância da versão anterior da cópia do DB2 para a versão recém- instalada atual de cópia do DB2.
 
db2iupgrade
 
No sistema Linux ou UNIX , esse comando está localizado no diretório / instance DB2DIR . Nos seguintes sintaxes , " inst_name " indica a instância do DB2 versão anterior e " inst_username " indica a corrente do usuário da instância cópia versão DB2 instalado.
 
Sintaxe 2 :
db2iupgrade -d -k -u <inst_username> <inst_name>  
exemplo:
db2iupgrade -d -k -u db2inst2 db2inst2 
Parâmetros de comando :
-d: Muda o modo de depuração por diante.
 
-k : Mantém o tipo de instância pré -upgrade , se for apoiada na cópia do DB2 , a partir de onde você estiver executando este comando.
 
Se você estiver usando o Super User ( su) no Linux para o comando db2iupgrade , você deve emitir o comando "su" com a opção - " " .
 
Drop de uma instância
Você pode deixar cair ou eliminar a ocorrência, que foi criado pelo comando " db2icrt " .
 
db2idrop
 
No sistema operacional Linux e UNIX , esse comando está localizado no diretório DB2_installation_folder / instance .
 
Sintaxe: [ na seguinte sintaxe : ' inst_username ' indica nome de usuário de exemplo e ' inst_name ' indica nome de instância ]
db2idrop -u <inst_username> <inst_name> 
Exemplo: [ Para Deletar db2inst2 ]
./db2idrop -u db2inst2 db2inst2  
A utilização de outros comandos com instância
 
Comando para descobrir instância DB2 que estamos trabalhando agora .
Sintaxe 1: [ para verificar a ocorrência atual ativado por gerente de banco de dados ]
db2 get instance  
saída :
The current database manager instance is:  db2inst1  
Sintaxe 2: [ Para ver a instância atual com pedaços de funcionamento e versão ]
db2pd -inst | head -2  
exemplo:
db2pd -inst | head -2  
saída :
Instance db2inst1 uses 64 bits and DB2 code release SQL10010   
Syntax 3: [ Para verificar o nome da instância atual Ativa ]
db2 select inst_name from sysibmadm.env_inst_info    
exemplo:
db2 select inst_name from sysibmadm.env_inst_info    
saída :
INST_NAME  --------------------------------------  
db2inst1              
1 record(s) selected.  
Sintaxe: [ Para definir uma nova instância como padrão]
db2set db2instdef=<inst_name> -g   
Exemplo: [ Para matriz instância recém-criada como uma instância padrão ]
 
db2set db2instdef=db2inst2 -g   
DATABASES

 

Um banco de dados é uma coleção de tabelas, esquemas, conjuntos de buffers, registros, grupos de armazenamento e espaços de tabelas que trabalham em conjunto para lidar com operações de banco de dados de forma eficiente.

Diretório do banco de dados é um repositório organizado de bancos de dados. Quando você cria um banco de dados, todos os detalhes sobre banco de dados são armazenados em um diretório de banco de dados, tais como detalhes de dispositivos de armazenamento padrão, arquivos de configuração e lista de tabelas temporário etc.

Partição Diretório global é criada na pasta exemplo. Esta pasta contém todas as informações globais relacionadas ao banco de dados. Este diretório global de partição é nomeado como NODExxxx / SQLyyy, onde xxxx é o número da partição de dados e yyy é o sinal de banco de dados.

No diretório de partição global, um diretório específico-membro é criado. Este diretório contém informações de banco de dados local. O diretório específico do membro é nomeado como MEMBERxxxx onde xxxx é um número de sócio. Ambiente DB2 Enterprise Server Edition é executado em um único membro e tem diretório específico apenas um membro. Este diretório específico membro é exclusivamente nomeado como MEMBER0000.

Diretório global particionado

Diretório Local: <instância> / NODExxx / SQLxxx

O diretório partição global contém arquivos de banco de dados relacionados, conforme listado abaixo.

  • Impasse global write-to-file evento monitoramento arquivos
  • Arquivos de informações do espaço de tabela [SQLSPCS.1, SQLSPCS.2]
  • Arquivos de controle do grupo de armazenamento [SQLSGF.1, SQLSGF.2]
  • Os arquivos temporários de contêineres espaço de tabela. [/ Caminho de armazenamento / /T0000011/C000000.TMP/SQL00002.MEMBER0001.TDA]
  • Arquivo de configuração global [SQLDBCONF]
  • Arquivos históricos [DB2RHIST.ASC, DB2RHIST.BAK, DB2TSCHG.HIS, DB2TSCHG.HIS]
  • Arquivos relacionados com a exploração madeireira [SQLOGCTL.GLFH.1, SQLOGCTL.GLFH.2]
  • Arquivos de bloqueio [SQLINSLK, SQLTMPLK]
  • Os recipientes de armazenagem automática

Diretório específico Estados

Local do diretório: / NODExxxx / SQLxxxx / MEMBER0000

Este diretório contém:

  • Objetos associados a bases de dados
  • Tampão de arquivos de informação piscina [SQLBP.1, SQLBP.2]
  • Evento de monitoramento arquivos locais
  • Arquivos relacionados com a exploração madeireira [SQLOGCTL.LFH.1, SQLOGCTL.LFH.2, SQLOGMIR.LFH].
  • Arquivos de configuração local
  • Impasses evento arquivo monitor. Os eventos de conflito detalhados monitorar os arquivos são armazenados no diretório do banco de dados do nó de catálogo, em caso de ESE e do ambiente de banco de dados particionado.

Criação de banco de dados

Você pode criar um banco de dados na instância utilizando o comando "CREATE DATABASE". Todos os bancos de dados são criados com o grupo de armazenamento padrão "IBMSTOGROUP", que é criado no momento da criação de uma instância. No DB2, todas as tabelas do banco de dados são armazenados na "tabela", que usam seus respectivos grupos de armazenamento.

Os privilégios para banco de dados são automaticamente definidos como públicos [CREATETAB, BINDADD, CONNECT, IMPLICIT_SCHEMA, e SELECT], no entanto, se a opção RESTRICTIVE está presente, os privilégios não são concedidos como PUBLIC.

Criação de banco de dados não-restritiva

Este comando é usado para criar um banco de dados não-restritivo.

Sintaxe: [Para criar um novo banco de dados. 'Database_name' indica um nome novo banco de dados, o que você deseja criar.]

db2 create database <database name>
Exemplo: [ Para criar um novo banco de dados não restritivo com nome de 'um' ]
db2 create database one
saída :
DB20000I The CREATE DATABASE command completed successfully.
Criação de banco de dados restritivo
Banco de dados restritivo é criado em chamar este comando .
 
Sintaxe: [ Na sintaxe abaixo , " db_name " indica o nome do banco de dados. ]
db2 create database <db_name> restrictive 
Exemplo: [ Para criar um novo banco de dados restritivos com o nome de 'dois' ]
db2 create database two restrictive 
 
Criação de banco de dados com uma posição diferente do definido pelo usuário
Criar um banco de dados com o grupo de armazenamento padrão " IBMSTOGROUP " em caminho diferente. Mais cedo, o comando foi submetido " criar banco de dados ", sem qualquer local definido pelo usuário para armazenar ou criar banco de dados em um local particular. Para criar o banco de dados usando o banco de dados definido pelo usuário local , o seguinte procedimento é seguido :
 
Sintaxe: [ Na sintaxe abaixo , ' db_name ' indica o ' nome do banco de dados ' e ' data_location ' indica onde tem que armazenar dados em pastas e ' db_path_location ' indica localização do controlador de ' data_location '.]
db2 create database '<db_name>' on '<data location>' dbpath on '<db_path_location>'  
Exemplo: [ Para criar banco de dados chamado "quatro" , onde os dados são armazenados em ' data1 ' e esta pasta está armazenada em ' dbpath1 ']
db2 create database four on '/data1' dbpath on '/dbpath1'
Visualizando arquivos do diretório de banco de dados local ou do sistema
Você executar este comando para ver a lista de diretórios disponíveis na instância atual .
 
sintaxe:
db2 list database directory 
exemplo:
db2 list database directory 
saída :
System Database Directory  
 Number of entries in the directory = 6  
 Database 1 entry:  
 Database alias                       = FOUR  
 Database name                        = FOUR  
 Local database directory             = 
 /home/db2inst4/Desktop/dbpath  
 Database release level               = f.00  
 Comment                              =  
 Directory entry type                 = Indirect  
 Catalog database partition number    = 0  
 Alternate server hostname            =  
 Alternate server port number         =  
Database 2 entry: 
Database alias                       = SIX  
Database name                        = SIX  
Local database directory             = /home/db2inst4  
Database release level               = f.00  
Comment                              =  
Directory entry type                 = Indirect  
Catalog database partition number    = 0  
Alternate server hostname            =  
Alternate server port number         = 
Ativação de banco de dados
Este comando inicia -se todos os serviços necessários para um determinado banco de dados para que o banco de dados está disponível para aplicação.
 
Sintaxe: [' db_name ' indica o nome do banco ]
db2 activate db <db_name> 
Exemplo: [ Ativando o banco de dados 'um' ]
db2 activate db one  
Desativação banco de dados
Usando este comando, você pode interromper os serviços de banco de dados .
 
sintaxe:
db2 deactivate db <db_name>
Exemplo: [ Para desativar banco de dados 'um' ]
db2 deactivate db one
Conectando-se a base de dados
Depois de criar um banco de dados, para colocá-lo em uso , você precisa conectar no banco de dados.
 
sintaxe:
db2 connect to <database name> 
Exemplo: [ conectar banco de dados único a atual CLI ]
db2 connect to one 
saída :
Database Connection Information  
 Database server        = DB2/LINUXX8664 10.1.0  
 SQL authorization ID   = DB2INST4  
 Local database alias   = ONE  
Verificando se do banco de dados é restritiva
Para verificar se este banco de dados é restritiva ou não, aqui é a sintaxe:
 
Sintaxe: [In a seguinte sintaxe : ' db' indica banco de dados, " cfg 'indica configuração, ' db_name 'indica o nome do banco ]
db2 get db cfg for <db_name> | grep -i restrict 
Exemplo: [ Para verificar se "um" banco de dados é restrito ou não ]
db2 get db cfg for one | grep -i restrict 
saída :
Restrict access     
Configurando o gerenciador de banco de dados e banco de dados
Configuração Instância ( configuração do gerenciador de banco de dados) é armazenada em um arquivo chamado ' DB2SYSTEM ' e a configuração relacionado banco de dados é armazenado em um arquivo chamado ' SQLDBCON ' . Esses arquivos não podem ser editados diretamente. Você pode editar esses arquivos usando ferramentas que exigem API. Usando o processador de linha de comando, você pode usar esses comandos .
 
Banco de dados Gerenciador de parâmetros de configuração
Sintaxe: [ Para obter as informações de Instância de banco de dados gerente ]
db2 get database manager configuration   

OU

db2 get dbm cfg   
Sintaxe: [ Para atualizar instância do gerenciador de banco de dados ]
db2 update database manager configuration   

OU

db2 update dbm cfg 
Sintaxe: [ Para redefinir as configurações anteriores ]
db2 reset database manager configuration  

OU

db2 reset dbm cfg
Parâmetros de configuração de banco de dados
Sintaxe: [ Para obter as informações de banco de dados ]
db2 get database configuration   

OU

db2 get db cfg  
Sintaxe: [ Para atualizar a configuração de banco de dados 
db2 update database configuration    

OU

db2 update db cfg  
Sintaxe: [ Para repor os valores previamente configurados na configuração do banco de dados
db2 reset database configuration 

OU

db2 reset db cfg 
Sintaxe: [ Para verificar o tamanho do atual banco de dados ativo ]
db2 "call get_dbsize_info(?,?,?,-1)"   
Exemplo: [ Para verificar o tamanho do banco de dados Atualmente Activate ]
db2 "call get_dbsize_info(?,?,?,-1)"      
saída :
Value of output parameters   
--------------------------   
Parameter Name  : SNAPSHOTTIMESTAMP   
Parameter Value : 2014-07-02-10.27.15.556775  
Parameter Name  : DATABASESIZE   
Parameter Value : 105795584  
Parameter Name  : DATABASECAPACITY   
Parameter Value : 396784705536  
Return Status = 0    
Estimando espaço necessário para a base de dados
Para estimar o tamanho de um banco de dados , a contribuição dos seguintes fatores devem ser considerados :
 
·         As tabelas de catálogo do sistema
·         User Data Table
·         Longa Data Field
·         Large Object ( LOB) Dados
·         índice Espacial
·         Espaço de Trabalho Temporário
·         dados XML
·         Log espaço de arquivo
·         Diretório do banco de dados local
·         Os arquivos de sistema
  
Verificando as autoridades do banco de dados
Você pode usar a seguinte sintaxe para verificar quais as autoridades do banco de dados são concedidos a PUBLIC no banco de dados não- restritivo.
 
Passo 1: conectar ao banco de dados com a autenticação do usuário -id e senha de instância.
 
Sintaxe: [ Para se conectar ao banco de dados com nome de utilizador e palavra-passe ]
db2 connect to <db_name> user <userid> using <password>      
Exemplo: [ Para Conectar "um" banco de dados com o " db2inst4 'id de usuário e senha " db2inst4 ']
db2 connect to one user db2inst4 using db2inst4   
saída :
Database Connection Information  
 Database server        = DB2/LINUXX8664 10.1.0  
 SQL authorization ID   = DB2INST4  
 Local database alias   = ONE    
Passo 2: Para verificar as autoridades do banco de dados.
 
Sintaxe: [ A sintaxe abaixo mostra o resultado de serviços de autoridade para banco de dados atual ]
db2 "select substr(authority,1,25) as authority, d_user, d_group, 
d_public, role_user, role_group, role_public,d_role from table( 
sysproc.auth_list_authorities_for_authid ('public','g'))as t 
order by authority"      
exemplo:
db2 "select substr(authority,1,25) as authority, d_user, d_group, 
d_public, role_user, role_group, role_public,d_role from table( 
sysproc.auth_list_authorities_for_authid ('PUBLIC','G'))as t 
order by authority"   
 
 saída :
AUTHORITY                 D_USER D_GROUP D_PUBLIC ROLE_USER ROLE_GROUP ROLE_PUBLIC D_ROLE  
------------------------- ------ ------- -------- --------- ---------- ----------- ------  
ACCESSCTRL                *      *       N        *         *          N           *       
BINDADD                   *      *       Y        *         *          N           *       
CONNECT                   *      *       Y        *         *          N           *       
CREATETAB                 *      *       Y        *         *          N           *       
CREATE_EXTERNAL_ROUTINE   *      *       N        *         *          N           *       
CREATE_NOT_FENCED_ROUTINE *      *       N        *         *          N           *       
CREATE_SECURE_OBJECT      *      *       N        *         *          N           *       
DATAACCESS                *      *       N        *         *          N           *       
DBADM                     *      *       N        *         *          N           *       
EXPLAIN                   *      *       N        *         *          N           *       
IMPLICIT_SCHEMA           *      *       Y        *         *          N           *       
LOAD                      *      *       N        *         *          N           *       
QUIESCE_CONNECT           *      *       N        *         *          N           *       
SECADM                    *      *       N        *         *          N           *       
SQLADM                    *      *       N        *         *          N           *       
SYSADM                    *      *       *        *         *          *           *       
SYSCTRL                   *      *       *        *         *          *           *       
SYSMAINT                  *      *       *        *         *          *           *       
SYSMON                    *      *       *        *         *          *           *       
WLMADM                    *      *       N        *         *          N           *        
 
Dropando o Banco de Dados
Usando o comando Gota, você pode remover o nosso banco de dados do diretório de banco de dados exemplo . Esse comando pode apagar todos os seus objetos , mesa, espaços , contentores e arquivos associados.
 
Sintaxe: [ Para retirar qualquer banco de dados de uma instância ]
db2 drop database <db_name>
Exemplo: [ Para largar ' seis ' banco de dados de exemplo ]
db2  drop database six 
saída :
DB20000I The DROP DATABASE command completed successfully 
 
Bufferpools

O conjunto de buffers é parte de um espaço de memória principal, que é atribuído pelo gerente de banco de dados. O objetivo do bufferpools é armazenar em cache de dados de tabelas e índices do disco. Todos os bancos de dados têm seus próprios conjuntos de buffers. A buffers padrão é criado no momento da criação do novo banco de dados. É chamado de "IBMDEFAULTBP". Dependendo das necessidades dos utilizadores, é possível criar um número de conjuntos de buffers. No conjunto de buffers, o gerente de banco de dados coloca os dados de linha de tabela como uma página. Esta página permanece no conjunto de buffers até que o banco de dados é desligado ou até que o espaço é escrito com novos dados. As páginas do conjunto de buffers, que são atualizados com os dados, mas não são escritos para o disco, são chamados de páginas "sujo". Após as páginas de dados atualizados no conjunto de buffers são gravados no disco, o conjunto de buffers está pronto para assumir outro dado.

Relação entre tablespaces e bufferpools

Cada espaço de tabela está associada a um conjunto de buffers específica em um banco de dados. Um espaço de tabela está associada a um conjunto de buffers. O tamanho do conjunto de buffers e tabela deve ser o mesmo. Várias bufferpools permitem que você configure a memória utilizada pelo banco de dados para aumentar o seu desempenho global.

Tamanhos de buffers

O tamanho da página do conjunto de buffers é definido quando você usar o comando "CREATE DATABASE". Se você não especificar o tamanho da página, vai demorar tamanho padrão página, que é 4KB. Uma vez que o conjunto de memórias tampão é criada, não é possível modificar o tamanho da página posterior

Listando os bufferpools disponíveis no diretório de banco de dados atual

Sintaxe: [A sintaxe abaixo mostra todos os buffers disponíveis na base de dados]

db2 select * from syscat.bufferpools   
Exemplo: [ Para ver bufferpools disponíveis no banco de dados atual ]
db2 select * from syscat.bufferpools  
saída :
BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE 
NUMBLOCKPAGES BLOCKSIZE   NGNAME
------------------------------------------------------------ 
IBMDEFAULTBP                                                                                                                
 1 -                                                                                                  
 -2        4096 N                  0           0 -     
 
 1 record(s) selected.  
Criando o conjunto de buffers
Para criar um novo conjunto de buffers para o servidor de banco de dados , você precisa de dois parâmetros , ou seja, " nome de buffers " e "tamanho da página " . A consulta a seguir é executado para criar um novo conjunto de buffers .
 
Sintaxe: [ Na sintaxe abaixo , ' bp_name ' indica o nome do conjunto de buffers e ' tamanho ' indica o tamanho de página que você precisa declarar para bufferpools ( 4K , 8K , 16K , 32K) ]
db2 create bufferpool <bp_name> pagesize <size> 
Exemplo: [ Para criar um novo conjunto de buffers com o nome " bpnew " e tamanho " 8192 " ( 8Kb ) . ]
db2 create bufferpool bpnew pagesize 8192  
saída
DB20000I The SQL command completed successfully.  
Descartando o conjunto de buffers
Antes de eliminar o conjunto de buffers , é necessário verificar se algum espaço de tabela é atribuído a ele .
 
Sintaxe: [ Para largar o conjunto de buffers ]
 
drop bufferpool <bp_name>  
Exemplo: [ Para largar ' bpnew ' buffers chamado ]
db2 drop bufferpool bpnew  
saída
DB20000I The SQL command completed successfully.  

Tablespaces


Um espaço de tabela é uma estrutura de armazenamento, que contém tabelas, índices, objetos grandes, e os dados de comprimento. Ele pode ser usado para organizar os dados em um banco de dados em grupo de armazenamento lógico que é relacionada com o local onde os dados armazenados em um sistema. Este tablespaces são armazenados em grupos de partição de banco de dados

 

Benefícios de espaços de tabelas no banco de dados

Os espaços de tabela são benéficos no banco de dados de várias maneiras dadas como segue:

Recuperação: Tablespaces fazer backup e restaurar as operações mais conveniente. Usando um único comando, você pode fazer backup ou restaurar todos os objetos de banco de dados em espaços de tabela.

Automatic Storage Management: gerente de banco de dados cria e estende-contentores, dependendo das necessidades.

Utilização da memória: Um único conjunto de buffers pode gerenciar vários espaços de tabela. Você pode atribuir tabela temporários para o seu próprio conjunto de buffers para aumentar o desempenho de atividades, tais como o tipo ou associações.

Recipiente

Os espaços de tabela contém um ou mais recipientes. Um recipiente pode ser um nome de diretório, o nome do dispositivo, ou um nome de arquivo. Numa base de dados, uma única tabela pode ter vários recipientes no mesmo dispositivo de armazenamento físico. Se a tabela é criada com a opção automática de tabela de armazenamento, a criação e gestão de contêineres é feita automaticamente pelo gerenciador de banco de dados. Se não for criado com opção automática de tabela de armazenamento, você precisa definir e gerenciar os recipientes.

Tabela padrão

Quando você cria um novo banco de dados, o gerenciador de banco cria alguns espaços de tabela padrão para banco de dados. Estas tabela serão usadas como um armazenamento de dados temporários e de usuário. Cada banco de dados deve conter, pelo menos, três espaços de tabela como dado aqui:

  1. Tablespace Catalog
  2. Tablespace Usuário
  3. Tabela temporário

Tablespace Catalog: Ele contém tabelas de catálogo do sistema de banco de dados. É nomeado como SYSCATSPACE e não pode ser descartado.

Tablespace do Usuário: Esta tabela contém tabelas definidas pelo usuário. Em um banco de dados, temos uma tabela de usuário padrão, nomeado como USERSPACE1. Se você não especificar qual tabela deve ser definida pelo usuário para uma mesa no momento de criá-lo, em seguida, o gerenciador de banco escolhe tabela de usuário padrão para você.

Tabela temporário: Um espaço de tabela temporário contém dados de tabelas temporários. Esta tabela contém o sistema de tabela temporários ou usuário tabela temporário.

Sistema de tabela temporário mantém dados temporárias, exigidas pelo gerente do banco de dados durante a execução da operação, tais como o tipo ou associações. Um banco de dados deve ter pelo menos um sistema de tabela temporário e é nomeado como TEMPSPACE1. É criado no momento da criação da base de dados. Usuário tabela temporário mantém dados temporários de tabelas. Ele é criado com DECLARE GLOBAL TEMPORARY TABLE ou CREATE GLOBAL TEMPORARY TABLE. Esta tabela temporário não é criado por padrão no momento da criação do banco de dados.

Tablespaces e gerenciamento de armazenamento:

Tablespaces pode ser configurado de diferentes maneiras, dependendo de como você deseja usá-los. Você pode configurar o sistema operacional para gerenciar alocação de espaço de tabela, você pode deixar o gerenciador de banco de alocar espaço ou você pode escolher alocação automática de tabela para seus dados.

Os seguintes três tipos de espaços gerenciados estão disponíveis:

Sistema espaço gerenciado (SMS): gerente de sistema de arquivos do sistema operacional aloca e gerencia o espaço onde a tabela é armazenado. O espaço de armazenamento é alocado na demanda. Este modelo consiste em arquivos que representam objetos do banco de dados. Este tipo de tabela foi reprovada na versão 10.1 para espaços de tabela definidas pelo usuário, e ele não está obsoleto para catálogo e tabela temporários.

Banco de dados espaço gerenciado (DMS): O servidor de banco de dados controla o espaço de armazenamento. O espaço de armazenamento é pré-alocada no sistema de arquivos baseado na definição de contêiner que você especificar quando você cria o espaço de tabela DMS. Ele está obsoleto a partir da versão 10.1 Fix Pack 1 para espaços de tabela definidas pelo usuário, mas não está obsoleto para tablespace do sistema e espaço de tabela temporário.

 Tablespace Automatic Storage: servidor de banco de dados podem ser gerenciados automaticamente. Servidor de banco de dados cria e amplia recipientes depender de dados sobre a base de dados. Com o gerenciamento de armazenamento automático, não é obrigada a fornecer definições de contêineres. O servidor de banco de dados cuida de criação e extensão de contentores para fazer uso do armazenamento alocado para o banco de dados. Se você adicionar espaço de armazenamento para um grupo de armazenamento, novas embalagens são criados automaticamente quando o recipiente existente atingir sua capacidade máxima. Se você quiser usar o armazenamento recém-adicionado imediatamente, você pode reequilibrar o espaço de tabela.

Página, mesa e tabela de tamanho:

DMS temporárias e espaços de tabela de armazenamento automático, o tamanho da página que você escolher para o seu banco de dados determina o limite máximo para o tamanho do espaço de tabela. Para SMS mesa e espaços de tabela de armazenamento automático temporários, o tamanho da página restringe o tamanho da própria tabela. Os tamanhos de página pode ser 4KB, 8KB, 16KB ou 32KB.

Tipo Tablespace

Página 4K limite de tamanho

Página 8K limite de tamanho

16K limite de tamanho de página

32K limite de tamanho de página

DMS, tabela periódica armazenamento automático não apenas temporário

64G

128G

256G

512G

DMS, DMS temporárias e espaço não temporária de armazenamento automático de mesa grande

1892G

16384G

32768G

65536G

 

 Storage Groups


Um conjunto de caminhos de armazenamento para armazenar a tabela de banco de dados ou objetos, é um grupo de armazenamento. Você pode atribuir as áreas de tabela para o grupo de armazenamento. Quando você cria um banco de dados, todos os espaços de tabela tomar storagegroup padrão. O grupo de armazenamento padrão para um banco de dados é "IBMSTOGROUP '. Quando você cria um novo banco de dados, o grupo de armazenamento padrão está ativa, se você passar o parâmetro "AUTOMATIC STOGROUP NO" no final do comando "CREATE DATABASE". O banco de dados não tem qualquer grupo de armazenamento padrão.

Listagem StorageGroups

Você pode listar todos os StorageGroups no banco de dados.

Sintaxe: [Para ver a lista de StorageGroups disponíveis no banco de dados atual]

db2 select * from syscat.stogroups
Exemplo: [ Para ver a lista de storagegorups disponíveis no banco de dados atual ]
db2 select * from syscat.stogroups
 
Criando um storagegroup
Aqui é uma sintaxe para criar uma storagegroup no banco de dados :
 
Sintaxe: [ Para criar um novo STOGROUP . O ' stogroup_name ' indica nome do novo grupo de armazenamento e "caminho" indica o local onde os dados (tabelas) são armazenados ]
db2 create stogroup  on path
Exemplo: [ Para criar um novo STOGROUP ' STG1 ' no caminho da pasta ' data1 ']
db2 create stogroup stg1 on ‘/data1
saída :
DB20000I The SQL command completed succesfully 
Criando tabela com STOGROUP
Aqui está como você pode criar um espaço de tabela com StoreGroup :
 
Sintaxe: [ Para criar um novo espaço de tabela usando grupo de armazenamento existia ]
db2 create tablespace <tablespace_name>  using stogroup <stogroup_name> 
Exemplo: [ Para criar uma nova tabela com o nome ' ts1 ' usando existia armazenamento grupo ' STG1 ']
db2 create tablespace ts1 using stogroup stg1 
saída :
DB20000I The SQL command completed succesfully 
Alterando um storagegroup
 
É possível alterar o local de um StoreGroup usando seguinte sintaxe :
 
Sintaxe: [ Para deslocar um grupo de armazenamento do local antigo para o novo local ]
db2 alter stogroup  add location’, location 
Exemplo: [ Para modificar caminho do local do local antigo para o novo local para o grupo de armazenamento chamado " SG1 ']
db2 alter stogroup sg1 add ‘/path/data3’, ‘/path/data4 
 
 Drop caminho de pasta de storagegroup
 
Antes de eliminar caminho de pasta de storagegroup , você pode adicionar nova localização para o storagegroup usando o comando alter .
 
Sintaxe: [ Para largar velho caminho do local do grupo de armazenamento ]
 
 
db2 alter stogroup  drop ‘/path 
Exemplo: [ Para largar localização do grupo de armazenamento de ' STG1 ']
db2 alter stogroup stg1 drop ‘/path/data1  
Rebalancing uma tablespace
Rebalancing de tablespace é necessária quando criamos uma nova pasta para storagegroup ou espaços de tabela enquanto as operações são realizadas no banco de dados e a tabela fica cheia. Atualizações de reequilíbrio arquivos de configuração de banco de dados com o novo storagegroup .
 
Sintaxe: [ Para reequilibrar o espaço de tabela do caminho do grupo de armazenamento antigo para o novo grupo de armazenamento ]
db2 alter tablspace <ts_name> rebalance   
Exemplo: [ Para rebalancear ]
db2 alter tablespace ts1 rebalance   
Renomear um storagegroup
Sintaxe: [ Para modificar o nome do nome de armazenamento existente ]
db2 rename stogroup <old_stg_name> to <new_stg_name>   
Exemplo: [ Para modificar o nome do grupo de armazenamento de ' SG1 "para novo nome ' sgroup1 ']
db2 rename stogroup sg1 to sgroup1   
Drop Storage Group
Passo 1: Antes de eliminar qualquer storagegroup , você pode atribuir algum storagegroup diferente para os espaços de tabela .
 
Sintaxe: [ Para atribuir outro storagegroup para espaço de tabela. ]
db2 alter tablspace <ts_name> using stogroup <another sto_group_name>    
Exemplo: [ Para mudar de um STOGROUP antigo para o novo STOGROUP chamado ' sg2 ' por tabela ' ts1 ']
db2 alter tablespace ts1 using stogroup sg2   
Passo 2 :
Sintaxe: [ Para largar o STOGROUP existente ]
db2 drop stogorup <stogroup_name>   
Exemplo: [ Para largar STOGROUP ' STG1 ' de banco de dados ]
db2 drop stogroup stg1  

Esquemas

Um esquema é uma coleção de objetos nomeados classificados logicamente no banco de dados.

Em um banco de dados, não é possível criar vários objetos de banco de dados com o mesmo nome. Para fazer isso, o esquema proporciona um ambiente de grupo. Você pode criar vários esquemas em um banco de dados e você pode criar vários objetos de banco de dados com o mesmo nome, com diferentes grupos de esquema.

Um esquema pode conter tabelas, funções, índices, tablespaces, procedimentos, gatilhos etc. Por exemplo, você cria dois esquemas diferentes nomeadas como "profissional" e "pessoal" para um banco de dados "empregado". É possível fazer duas tabelas diferentes com o mesmo nome "Employee". Neste ambiente, uma tabela tem informação profissional e o outro tem informações pessoais dos funcionários. Apesar de ter duas tabelas com o mesmo nome, eles têm dois esquemas diferentes "pessoais" e "profissionais". Assim, o utilizador pode operar com sem encontrar qualquer problema. Este recurso é útil quando há restrições sobre a nomeação de tabelas.

Vejamos alguns comandos relacionados ao esquema:

 

Obtendo esquema atualmente ativo

Sintaxe:

db2 get schema  
Exemplo: [ Para organizar ' esquema_1 ' para ambiente da instância atual ]
db2 set schema=schema1 
Criando um novo esquema
Sintaxe: [ Para criar um novo esquema com ID de usuário autorizado ]
db2 create schema <schema_name> authroization <inst_user> 
Exemplo: [ Para criar esquema " esquema_1 " autorizada com ' db2inst2 "]
db2 create schema schema1 authorization db2inst2 
Exercício
Vamos criar duas tabelas diferentes com o mesmo nome , mais dois esquemas diferentes. Aqui, você cria a tabela funcionário com dois esquemas diferentes, um para uso pessoal e outro para o profissional da informação .
 
Passo 1: Criar dois esquemas .
 
Esquema 1: [ Para criar esquema chamado profissional ]
db2 create schema professional authorization db2inst2 
Esquema 2: [ Para criar esquema chamado pessoal ]
db2 create schema personal authorization db2inst2
Etapa 2: Criar duas tabelas com o mesmo nome para detalhes Funcionário
 
Tabela 1: professional.employee
 
[ Para criar uma nova tabela de "empregado" na base de dados usando o nome do esquema "profissional" ]
db2 create table professional.employee(id number, name 
varchar(20), profession varchar(20), join_date date, 
salary number); 
Tabela2 : personal.employee
 
[ Para criar uma nova tabela ' empregado ' no mesmo banco de dados, com o nome do esquema 'pessoal' ]
db2 create table personal.employee(id number, name 
varchar(20), d_birth date, phone bigint, address 
varchar(200));  
Depois de executar essas etapas , você tem duas tabelas com o mesmo nome "empregado" , com dois esquemas diferentes.
 
 
Tipos de Dados
 

Em tabelas de banco de dados DB2, cada coluna tem o seu próprio tipo de dados em função das exigências do desenvolvedor. O tipo de dados é dito para ser do tipo e da gama dos valores nas colunas de uma tabela.

Built-in tipos de dados

  • Datetime
    • TIME: Representa a hora do dia em horas, minutos e segundos.
    • TIMESTAMP: Representa sete valores de data e hora na forma de ano, mês, dia, horas, minutos, segundos e microssegundos.
    • DATA: Representa data do dia em três partes, sob a forma de ano, mês e dia.
  • Corda
    • Personagem
  • CHAR (comprimento fixo): comprimento fixo de cadeias de caracteres.
    • Comprimento variável
  • VARCHAR: Variando cadeias de caracteres de comprimento.
  • CLOB: grandes cadeias de objeto, você pode usar isso quando uma cadeia de caracteres podem exceder os limites do tipo de dados VARCHAR.
    • Gráfico
  • Grahpic
    • Tamanho fixo: comprimento fixo cadeias gráficas que contém caracteres de dois bytes
    • Comprimento variável
  • VARGRAPHIC: Variando caráter cadeia gráfica que contém caracteres duplos bye.
  • DBCLOB: tipo de objeto grande
    • Binário
  • BLOB (comprimento variável): string binário em grande objeto
  • BOOLEAN: Sob a forma de 0 e 1.
  • Numérico Assinado
    • Exato
  • Binário inteiro
    • SMALLINT [16BIT]: Usando isso, você pode inserir pequenos valores int em colunas
    • INTEIRO [32BIT]: Usando isso, você pode inserir grandes valores int em colunas
    • BIGINT [64BIT]: Usando isso, você pode inserir valores maiores int em colunas
  • Decimal
    • DECIMAL (embalado)
    • DECFLOAT (ponto flutuante decimal): Usando isso, você pode inserir decimal números de ponto flutuante
    • Aproximado
  • Pontos flutuantes
    • REAIS (precisão simples): Usando este tipo de dados, você pode inserir precisão simples números de ponto flutuante.
    • DUPLO (precisão dupla): Usando este tipo de dados, você pode inserir dupla precisão números de ponto flutuante.
  • eXtensible Mark-up Language
    • XML: Você pode armazenar dados XML para esta coluna tipo de dados.

Tabelas

As tabelas são estrutura lógica mantido pelo administrador de banco de dados. Em uma mesa de cada bloco vertical chamado de coluna (Tuple) e cada bloco horizontal chamado de linha (Entity). A inserção de dados armazenados sob a forma de colunas e linhas é conhecida como uma mesa. Nas tabelas, cada coluna tem um outro tipo de dados. As tabelas são usadas para armazenar dados persistentes.

Tipo de tabelas

  • Tabelas básicas: Eles detêm dados persistentes. Existem diferentes tipos de tabelas de base, incluindo:
    • Tabelas regulares: tabelas de uso geral, mesas comuns com índices são tabelas de uso geral.
    • Multidimensional Clustering Table (MDC): Este tipo de tabela em cluster fisicamente em mais de uma chave, e é usado para manter o ambiente de banco de dados grandes. Estes tipos de tabelas não são suportados no DB2 pureScale.
    • Insira tempo Tabela de agrupamento (ITC): Semelhante ao tabelas MDC, as linhas estão agrupados no momento em que são inseridos nas tabelas. Eles podem ser divididos tabelas. Eles também não suportam ambiente pureScale.
    • Mesas agrupada por intervalos Table (RCT): Estes tipos de tabelas fornecer acesso rápido e direto de dados. Estes são implementados como clusters seqüenciais. Cada registro na tabela tem um ID de registro. Estes tipos de tabelas são utilizados onde os dados são agrupados firmemente com uma ou mais colunas na tabela. Este tipo de tabelas também não suportam em DB2 pureScale.
    • As tabelas particionadas: Estes tipos de tabelas são usadas em esquema de organização de dados, em que os dados da tabela é dividida em vários objetos de armazenamento. As partições de dados pode ser adicionado a, ligado e desligado a partir de uma tabela particionada. Você pode armazenar partição de dados múltiplos de uma tabela em um espaço de tabela.
    • Tabelas temporais: História de uma tabela em um banco de dados são armazenados em tabelas temporais tais como detalhes das modificações feitas anteriormente.
  • Tabelas temporárias: Para o trabalho temporário de diferentes operações de banco de dados, você precisará usar tabelas temporárias. As tabelas temporárias (DGTTs) não aparecem no catálogo do sistema, colunas XML não pode ser utilizado em tabelas temporárias criadas.
  • Tabelas de consulta materializadas: MQT podem ser usados ??para melhorar o desempenho de consultas. Estes tipos de tabelas são definidos por uma consulta, o qual é utilizado para determinar os dados nas tabelas.

Criando tabelas

A sintaxe a seguir cria a tabela:

Sintaxe: [Para criar uma nova tabela]

db2 create table <schema_name>.<table_name>

(column_name column_type....) in <tablespace_name>  

Exemplo: Criamos uma tabela para armazenar detalhes "trabalhador" no esquema de " profissional " . Esta tabela tem " id , nome, jobrole , joindate , salário " campos e esses dados de mesa seria armazenado na tabela " ts1 " .

db2 create table professional.employee(id int, name

varchar(50),jobrole varchar(30),joindate date,

salary double) in ts1  

saída :

DB20000I The SQL command completed successfully.   

Listagem Detalhes da tabela

A sintaxe a seguir é usada para listar detalhes da tabela :

 

Sintaxe: [ Para ver a lista de tabelas criado com esquemas ]

db2 select tabname, tabschema, tbspace from syscat.tables   

Exemplo: [ Para ver a lista de tabelas no banco de dados atual

db2 select tabname, tabschema, tbspace from syscat.tables    

saída :

TABNAME      TABSCHEMA     TBSPACE

------------ ------------- --------

EMPLOYEE     PROFESSIONAL    TS1 

 

 

 1 record(s) selected.    

Listagem de colunas em uma tabela

A sintaxe a seguir lista colunas em uma tabela :

 

Sintaxe: [ Para ver colunas e tipos de dados de uma tabela ]

db2 describe table <table_name>   

Exemplo: [ Para ver as colunas e tipos de dados de tabela ' empregado ']

db2 describe table professional.employee   

saída :

            Data type                   Column

Column name  schema    Data type name    Length    Scale Nulls

------ ----- --------- ----------------- --------- ----- ------

ID           SYSIBM    INTEGER             4         0     Yes

NAME         SYSIBM    VARCHAR             50        0     Yes

JOBROLE      SYSIBM    VARCHAR             30        0     Yes

JOINDATE     SYSIBM    DATE                4         0     Yes

SALARY       SYSIBM    DOUBLE              8         0     Yes 

 

  5 record(s) selected.  

Colunas ocultas

 

Você pode ocultar uma coluna inteira de uma mesa. Se você chama de " select * from " consulta, as colunas ocultas não são devolvidos na tabela resultante . Quando você insere dados em uma tabela , um "insert" declaração sem uma lista de colunas não espera que os valores para as colunas implicitamente ocultas. Estes tipos de colunas são altamente referenciado em tabelas de consulta materializadas . Estes tipo de colunas não suportam para criar tabelas temporárias.

 

Criando a tabela com coluna oculta

 

A sintaxe a seguir cria a tabela com colunas ocultas :

 

Sintaxe: [ Para criar uma tabela com colunas ocultas ]

db2 create table <tab_name> (col1 datatype,col2 datatype

implicitly hidden)   

Exemplo: [ Para criar uma tabela "cliente" com colunas ocultas ' telefone ']

db2 create table professional.customer(custid integer not

null, fullname varchar(100), phone char(10)

implicitly hidden)    

 

Inserção de valores de dados na tabela

A sintaxe a seguir insere valores na tabela :

 

Sintaxe: [ Para inserir valores em uma tabela ]

db2 insert into <tab_name>(col1,col2,...)

 values(val1,val2,..)   

Exemplo: [ Para inserir valores na tabela ' cliente ']

db2 insert into professional.customer(custid, fullname, phone)

values(100,'ravi','9898989')

 

 

db2 insert into professional.customer(custid, fullname, phone)

values(101,'krathi','87996659')

 

 

db2 insert into professional.customer(custid, fullname, phone)

values(102,'gopal','768678687')

saída :

DB20000I  The SQL command completed successfully.

Recuperando valores da tabela

A sintaxe a seguir recupera valores da tabela :

 

Sintaxe : [ Para recuperar valores formar uma tabela ]

 

db2 select * from <tab_name>   

Exemplo: [ Para recuperar valores da tabela "cliente" ]

db2 select * from professional.customer

saída :

CUSTID      FULLNAME

----------- ------------------------

        100 ravi

                

        101 krathi

                

        102 gopal 

                

  3 record(s) selected.

Recuperando valores de uma tabela incluindo colunas ocultas

 

A sintaxe a seguir recupera valores de colunas selecionadas :

 

Sintaxe: [ Para recuperar valores colunas escondidas selecionados a partir de uma tabela ]

 

 

db2 select col1,col2,col3 from <tab_name>   

Exemplo: [ Para recuperar colunas selecionadas valores resultam de uma tabela ]

db2 select custid,fullname,phone from professional.customer 

saída :

CUSTID  FULLNAME    PHONE

------- ---------   ------------

100     ravi        9898989

 

101     krathi      87996659

 

102     gopal       768678687

 

  3 record(s) selected.

Se você quiser ver os dados nas colunas ocultas , você precisa executar "describe " comando.

 

sintaxe:

db2 describe table <table_name> show detail   

exemplo:

db2 describe table professional.customer show detail 

saída :

Column name     Data type schema     Data type name  Column

           column    Partitionkey  code

                                       Length   Scale    Nulls    

number     sequence      page     Hidden      Default

--------------- -------------------- --------------- -------- ----

---- -------- ---------- ------------- -------- ----------- ------

--- 

CUSTID          SYSIBM               INTEGER         4        0

No       0          0         0        No

FULLNAME        SYSIBM               VARCHAR         100      0

Yes      1          0        1208     No    

 

PHONE           SYSIBM               CHARACTER       10       0    

Yes      2          0             1208     Implicitly 

 

3 record(s) selected.

Alterando o tipo de colunas da tabela

Você pode modificar a nossa estrutura de tabela usando este " alter" o comando da seguinte forma:

 

sintaxe:

db2 alter table <tab_name> alter column <col_name> set data type <data_type>  

Exemplo: [ Para modificar o tipo de dados para a coluna " id " de " int " para " bigint " para a tabela funcionário ]

db2 alter table professional.employee alter column id set data type bigint     

Saída : :

DB20000I The SQL command completed successfully. 

Alterando nome da coluna

 

Você pode alterar o nome da coluna , como mostrado abaixo :

 

Sintaxe: [ Para modificar o nome da coluna do nome antigo para o novo nome de uma tabela ]

db2 alter table <tab_name> rename column <old_name> to <new_name>    

Exemplo: [ . Para modificar o nome da coluna do " nome completo " para " custname " em " clientes " da tabela ]

db2 alter table professional.customer rename column fullname to custname 
Descartando as tabelas
Para eliminar qualquer tabela , você precisa usar o comando " GOTA " da seguinte forma:
sintaxe:
db2 drop table <tab_name>    
Exemplo: [ Para soltar banco de dados forma de tabela cliente ]
db2 drop table professional.customers   
Para apagar toda a hierarquia da tabela ( incluindo gatilhos e relação) , você precisa usar " GOTA tabela de hierarquia de comando" .
Sintaxe: .
db2 drop table hierarchy <tab_name>
Exemplo: [ Para largar hierarquia inteira de uma tabela 'cliente' ]
db2 drop table hierarchy professional.customers     

Alias

Alias ??é um nome alternativo para objetos de banco de dados. Ele pode ser usado para fazer referência ao objeto de banco de dados. Pode-se dizer, é um apelido para objetos de banco de dados. Alias ??são definidos para os objetos para fazer seu nome curto, reduzindo assim o tamanho da consulta e aumentando a legibilidade da consulta.

Criando aliases objeto de banco de dados

Você pode criar banco de dados objeto alias como mostrado abaixo:

Sintaxe:

db2 create alias <alias_name> for <table_name> 
Exemplo: Criação de nome alternativo para a tabela table " professional.customer "
db2 create alias pro_cust for professional.customer    
Se você passar "SELECT * FROM PRO_CUST " ou "SELECT * FROM PROFESSIONAL.CUSTOMER " o servidor de banco de dados irá mostrar o mesmo resultado.
 
Sintaxe: [ Para recuperar valores de uma tabela diretamente com nome do esquema ]
db2 select * from <schema_name>.<table_name>   
Exemplo: [ Para recuperar valores de cliente tabela ]
db2 select * from professional.customer    
saída :
CUSTID  FULLNAME    PHONE
------- ---------   ------------ 
100     ravi        9898989 
101     krathi      87996659 
102     gopal       768678687 
  
  3 record(s) selected.    
Recuperando valores usando nome de alias da tabela
Você pode recuperar os valores do banco de dados usando o nome do alias , como mostrado abaixo :
 
Sintaxe: [ Para recuperar valores da tabela , chamando o nome do alias da tabela ]
db2 select * from <alias_name>    
Exemplo: [ Para recuperar valores de tabela cliente usando o nome alias]
db2 select * from pro_cust
saída :
CUSTID  FULLNAME    PHONE
------- ---------   ------------ 
100     ravi        9898989 
101     krathi      87996659 
102     gopal       768678687 
  
  3 record(s) selected.    

Restrições

Para impor a integridade do banco de dados, um conjunto de regras é definido, chamado restrições. As restrições quer permitir ou proibir os valores nas colunas.

Em atividades de banco de dados em tempo real, os dados devem ser adicionados com algumas restrições. Por exemplo, em um banco de dados de vendas, as vendas-id ou transação-id deve ser único. Os tipos de restrições são:

  • NOT NULL
  • Único
  • Chave primária
  • Chave Estrangeira
  • Verificar
  • Informativa

Restrições associam-se unicamente com tabelas. Eles são aplicados a tabelas particulares.Eles são definidos e aplicados para a mesa no momento da criação da tabela.

Explicação de cada restrição:

NOT NULL

É regra para proibir valores nulos de um ou mais colunas dentro da tabela.

Sintaxe:

db2 create table <table_name>(col_name col_type not null,..)  
Exemplo: [ . Para criar uma tabela de vendas, com quatro colunas ( id, itemname , qty , preço) neste adicionando restrições " não nulos " para todas as colunas para evitar a formação de qualquer célula nulo na tabela ]
db2 create table shopper.sales(id bigint not null, itemname 
varchar(40) not null, qty int not null,price double not null)   
 
Inserindo valores não nulos na tabela
Você pode inserir valores na tabela , como mostrado abaixo :
 
Exemplo: [ ERRORoneous Consulta ]
db2 insert into shopper.sales(id,itemname,qty) 
values(1,'raagi',12) 
Saída : [ consulta correta ]
DB21034E  The command was processed as an SQL statement because 
it was not a 
 
valid Command Line Processor command.  During SQL processing 
it returned: 
 
SQL0407N  Assignment of a NULL value to a NOT NULL column 
"TBSPACEID=5, 
 
TABLEID=4, COLNO=3" is not allowed.  SQLSTATE=23502 
 
Exemplo: [ consulta correta ]
db2 insert into shopper.sales(id,itemname,qty,price) 
values(1,'raagi',12, 120.00)  
 
db2 insert into shopper.sales(id,itemname,qty,price) 
values(1,'raagi',12, 120.00) 
saída :
DB20000I The SQL command completed successfully.
 
 Unique Constraints
 
Usando essas restrições, você pode definir os valores das colunas de forma exclusiva. Para isso, as restrições exclusivas são declarados com restrição " não nulo" no momento da criação da tabela .
 
sintaxe:
db2 create table <tab_name>(<col> <col_type> not null unique, ...) 
exemplo:
db2 create table shopper.sales1(id bigint not null unique, 
itemname varchar(40) not null, qty int not null,price 
double not null)  
Inserindo os valores na tabela
Exemplo: Para inserir quatro linhas diferentes com ids únicos como 1, 2, 3 e 4 .
db2 insert into shopper.sales1(id, itemname, qty, price) 
values(1, 'sweet', 100, 89)  
 
db2 insert into shopper.sales1(id, itemname, qty, price) 
values(2, 'choco', 50, 60)  
 
db2 insert into shopper.sales1(id, itemname, qty, price) 
values(3, 'butter', 30, 40)  
 
db2 insert into shopper.sales1(id, itemname, qty, price) 
values(4, 'milk', 1000, 12)  
Exemplo: Para inserir uma nova linha com o valor " id" 3
db2 insert into shopper.sales1(id, itemname, qty, price) 
values(3, 'cheese', 60, 80)   
Resultado: quando você tenta inserir uma nova linha com o valor id existiu ele vai mostrar este resultado:
DB21034E  The command was processed as an SQL statement 
because it was not a 
 
valid Command Line Processor command.  During 
SQL processing it returned: 
 
SQL0803N  One or more values in the INSERT statement, 
UPDATE statement, or foreign key update caused by a
DELETE statement are not valid because the primary key, 
unique constraint or unique index identified by "1" constrains 
table "SHOPPER.SALES1" from having duplicate values for the 
index key. SQLSTATE=23505   
chave primária
Semelhante às restrições exclusivas , você pode usar uma " chave primária " e uma " chave estrangeira " restrição de declarar relações entre várias tabelas.
 
sintaxe:
db2 create table <tab_name>( ,.., primary
key ()) 
Exemplo: Para criar a tabela ' salesboys ' com " sid " como uma chave primária
db2 create table shopper.salesboys(sid int not null, name 
varchar(40) not null, salary double not null, constraint 
pk_boy_id primary key (sid))
 
chave estrangeira
Uma chave estrangeira é um conjunto de colunas em uma tabela , que são obrigados a corresponder a pelo menos uma chave primária de uma linha em outra tabela. É uma restrição referencial ou restrição de integridade referencial . É uma regra lógica sobre os valores em várias colunas em uma ou mais tabelas . Ele permite relação necessária entre as tabelas .
 
Mais cedo, você criou uma tabela chamada " shopper.salesboys " . Por esta tabela , a chave primária é " sid " . Agora que você está criando uma nova tabela que tem detalhes pessoais de vendas do menino com diferentes esquema chamado " empregado " e tabela chamada " salesboys " . Neste caso, " sid " é a chave estrangeira.
 
sintaxe:
db2 create table <tab_name>(<col> <col_type>,constraint 
<const_name> foreign key (<col_name>)  
                  reference <ref_table> (<ref_col>)  
Exemplo: [ Para criar uma tabela chamada ' salesboys ' com a coluna ' sid ' chave estrangeira ]
db2 create table employee.salesboys( 
            sid int,  
            name varchar(30) not null,  
            phone int not null,  
            constraint fk_boy_id  
            foreign key (sid)  
            references shopper.salesboys (sid) 
                           on delete restrict 
                       ) 
Exemplo: [ Inserção de valores em chaves de mesa " shopper.salesboys " primárias ]
db2 insert into shopper.salesboys values(100,'raju',20000.00), 
(101,'kiran',15000.00), 
(102,'radha',10000.00), 
(103,'wali',20000.00), 
(104,'rayan',15000.00)
Exemplo: [ Inserção de valores na tabela de chave estrangeira " employee.salesboys " [ sem erro ]]

 

db2 insert into employee.salesboys values(100,'raju',98998976), 
(101,'kiran',98911176), 
(102,'radha',943245176), 
(103,'wali',89857330),  
(104,'rayan',89851130) 
Se você entrar com um número desconhecido , o que não é armazenado em " shopper.salesboys " tabela, ele irá mostrar-lhe de erro SQL.
 
Exemplo: [ execução de erro ]
db2 insert into employee.salesboys values(105,'rayan',89851130) 
saída :
DB21034E  The command was processed as an SQL statement because it 
was not a valid Command Line Processor command.  During SQL 
processing it returned: SQL0530N  The insert or update value of 
the FOREIGN KEY "EMPLOYEE.SALESBOYS.FK_BOY_ID" is not equal to any 
value of the parent key of the parent table.  SQLSTATE=23503  
Checking Constraint
Você precisa usar esta restrição para adicionar restrições condicionais para uma coluna específica em uma tabela.
sintaxe:
db2 create table                                                      
 (  
  primary key (),                                                       
  constraint  check (condition or condition)  
 )
Exemplo: [ Para criar a tabela com os valores emp1 restrições ]
db2 create table empl                                                     
 (id           smallint not null,                                         
  name         varchar(9),                                                
  dept         smallint check (dept between 10 and 100), 
  job          char(5)  check (job in ('sales', 'mgr', 'clerk')), 
  hiredate     date,                                                      
  salary       decimal(7,2),                                              
  comm         decimal(7,2),                                              
  primary key (id),                                                       
  constraint yearsal check (year(hiredate) > 1986 or salary > 40500)  
 )
Inserção de valores
Você pode inserir valores em uma tabela , como mostrado abaixo :
db2 insert into empl values (1,'lee', 15, 'mgr', '1985-01-01' , 
40000.00, 1000.00) 
Descartando a restrição
Vejamos as sintaxes para soltando vários constrangimentos .
 
Droping a Constraint
sintaxe:
db2 alter table <tab_name> drop unique <const_name>

Dropping primary key

sintaxe:
db2 alter table <tab_name> drop primary key 

Dropping check constraint

sintaxe:
db2 alter table <tab_name> drop check <check_const_name>  

Dropping foreign key

sintaxe:
db2 alter table <tab_name> drop foreigh key <foreign_key_name>  

 

 Indices

Indeces é um conjunto de indicadores, que referem a linhas de uma tabela, blocos em tabelas MDC ou ITC, os dados XML em um objeto de armazenamento XML que são logicamente ordenados pelos valores de uma ou mais chaves. Ele é criado em colunas da tabela DB2 para acelerar o acesso a dados para as consultas, e para agrupar e particionar os dados de forma eficiente. Ele também pode melhorar o desempenho de operação na vista. Uma tabela com um índice exclusivo pode ter linhas com chaves únicas. Dependendo dos requisitos de mesa, você pode tomar diferentes tipos de índices.

Tipos de índices

  • Índices originais e não-exclusivo
  • Agrupado e índices não agrupados

A criação de índices

Para a criação de um índice único, você usa seguinte sintaxe:

Sintaxe:

db2 create unique index <index_name> on 
<table_name>(<unique_column>) include (<column_names..>)
Exemplo: Para criar um índice para a tabela " shopper.sales1 " .
db2 drop index sales_index 

Triggers

Um gatilho é um conjunto de ações, que são realizadas para responder a um INSERT, UPDATE e DELETE operação em uma tabela especificada no banco de dados. Os gatilhos são armazenados no banco de dados de uma só vez. Eles lidam com a governança de dados. Eles podem ser acessados ??e compartilhados entre múltiplas aplicações. A vantagem de usar gatilhos é, se houver mudança precisa ser feita na aplicação, que é feito no gatilho; em vez de mudar cada aplicativo que está acessando o gatilho. Triggers são fáceis de manter e reforçar o desenvolvimento de aplicativos mais rápido. Triggers são definidos usando uma instrução SQL "CREATE TRIGGER".

Tipos de gatilhos

Existem três tipos de gatilhos:

1. Antes de gatilhos

Eles são executados antes de qualquer operação SQL.

2. Depois de gatilhos

Eles são executados após qualquer operação SQL.

Criando um gatilho ANTES

Vamos ver como criar uma seqüência de gatilho:

Sintaxe:

db2 create sequence <seq_name> 
Exemplo: Criação de uma seqüência de gatilhos para a tabela shopper.sales1
db2 create sequence sales1_seq as int start with 1 increment by 1 
sintaxe:
db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set 
<table_object>.<col_name>=nextval for <sequence_name> 
Exemplo: Criação de trigger para a tabela shopper.sales1 para inserir números de chave primária automaticamente
db2 create trigger sales1_trigger no cascade before insert on 
shopper.sales1 referencing new as obj for each row set 
obj.id=nextval for sales1_seq
Agora tente inserir quaisquer valores 
db2 insert into shopper.sales1(itemname, qty, price) 
values('bicks', 100, 24.00) 
 
 Recuperando valores da tabela
Vamos ver como recuperar valores de uma tabela :
 
sintaxe:
db2 select * from <tablename>
exemplo:
db2 select * from shopper.sales1
saída :
  ID       ITEMNAME       QTY 
-------  ------------   ---------- 
    3      bicks            100 
    2      bread            100 
  
  2 record(s) selected. 
Criando um gatilho AFTER
Vamos ver como criar um trigger depois :
 
sintaxe:
db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set
 <table_object>.<col_name>=nextval for <sequence_name> 
Exemplo: [ Para inserir e recuperar os valores ]
db2 create trigger sales1_tri_after after insert on shopper.sales1 
for each row mode db2sql begin atomic update shopper.sales1 
set price=qty*price; end  
saída :
//inseting values in shopper.sales1 
db2 insert into shopper.sales1(itemname,qty,price) 
values('chiken',100,124.00) 
//output 
ID    ITEMNAME       QTY         PRICE 
----- -------------- ----------- -----------                      
    3 bicks          100         2400.00 
    4 chiken         100         12400.00 
    2 bread          100         2400.00 
 
         3 record(s) selected. 
Drop Trigger
Aqui é como um gatilho de banco de dados é descartado :
 
sintaxe:,
db2 drop trigger <trigger_name>  
Exemplo:
db2 drop trigger slaes1_trigger   
Sequencias

A seqüência é uma função de software que gera números inteiros em ordem crescente ou decrescente, dentro de um intervalo definido, para gerar chave primária e coordenar outras chaves entre a mesa. Você usa seqüência para que recorram números inteiros dizer, por employee_id ou transaction_id. A sequência pode suportar SMALLINT, BIGINT, INTEGER, e tipos de dados decimal. A sequência pode ser compartilhado entre vários aplicativos. A sequência é aumentado ou diminuído, sem distinção de transações.

A seqüência é criado por instrução CREATE SEQUENCE.

Tipos de sequências

Existem dois tipos de seqüências disponíveis:

  1. NEXTVAL: Ele retorna um valor incrementado por um número de seqüência.
  2. Valor retornado recentemente gerado: VALOR ANTERIOR

Parâmetros de sequências

Os seguintes parâmetros são utilizados para sequências:

Tipo de Dados: Este é o tipo de valor incrementado devolvido dados. (SMALLINT, BIGINT, INTEGER, NÚMERO, DOUBLE)

COMEÇA COM: O valor de referência, com a qual a sequência começa.

MINVALUE: um valor mínimo para uma sequência para começar.

MAXVALUE: Um valor máximo para uma sequência.

INCREMENTO POR: valor do passo pelo qual uma seqüência é incrementado.

Ciclismo seqüência: a cláusula CICLO faz com que a geração da sequência repetidamente.A geração de sequência é realizada por referência o valor devolvido, que é armazenada na base de dados por meio da geração de sequência anterior.

Criando uma seqüência

Você pode criar seqüência usando a seguinte sintaxe:

Sintaxe:

db2 create sequence <seq_name> 
Exemplo: [ Para criar uma nova sequência com o nome ' sales1_seq ' e valores crescentes a partir de 1 ]
db2 create sequence sales1_seq as int start 
with 1 increment by 1  
Visualizando as sequências
Você pode ver uma seqüência usando a sintaxe de dados abaixo:
 
sintaxe:
db2 value <previous/next> value for <seq_name>
Exemplo: [ Para ver uma lista de anterior valor atualizado em sequência ' sales1_seq ']
db2 values previous value for sales1_seq  
saída :
1 
----------- 
  4 
  1 record(s) selected. 

Dropping the sequence

Para remover a sequência , você precisa usar o comando " DROP SEQUENCE " . Aqui está como fazê-lo:
 
sintaxe:
db2 drop sequence <seq_name>>
Exemplo: [ Para largar seqüência ' sales1_seq ' de banco de dados ]
db2 drop sequence sales1_seq  
saída :
DB20000I The SQL command completed successfully. 
 
 Views

A vista é uma forma alternativa de representar os dados armazenados nas tabelas. Não é uma tabela real e que não tem qualquer armazenamento permanente. Vista fornece uma maneira de olhar para os dados em uma ou mais tabelas. É uma especificação chamada de uma tabela de resultados.

Criar uma view

Você pode criar um modo de exibição usando a seguinte sintaxe:

Sintaxe:

db2 create view <view_name> (<col_name>,
<col_name1...) as select <cols>.. 
from <table_name> 
Exemplo: Criação de vista para a tabela shopper.sales1
db2 create view view_sales1(id, itemname, qty, price) 
as select id, itemname, qty, price from 
shopper.sales1  
Modificando uma view
Você pode modificar uma vista usando a seguinte sintaxe :
 
sintaxe:
db2 alter view <view_name> alter <col_name> 
add scope <table_or_view_name> 
Exemplo: [ Para adicionar nova coluna de tabela para ' view_sales1 ' visão existente ]
db2 alter view view_sales1 alter id add 
scope shopper.sales1  

Dropping the view

Você pode deixar uma vista usando a seguinte sintaxe :
 
sintaxe:
db2 drop view <view_name> 
exemplo:
db2 drop view sales1_view

 DB2 com XML

Recurso pureXML permite armazenar documentos XML bem formados em colunas de tabelas de banco de dados. Essas colunas possuem banco de dados XML. Os dados são mantidos em sua forma hierárquica nativa por armazenamento de dados XML na coluna XML. Os dados XML armazenados podem ser acessados ??e gerido pela funcionalidade do servidor de banco de dados DB2. O armazenamento de dados XML em sua forma hierárquica nativa permite busca eficiente, recuperação e atualização de XML.Para atualizar um valor em dados XML, você precisa usar XQuery, SQL ou a combinação de ambos.

A criação de um banco de dados e tabela para armazenar dados XML

Criar um banco de dados, emitindo a seguinte sintaxe:

Sintaxe:

db2 create database xmldb 
Por padrão, os bancos de dados usar set UTF-8 (Unicode ) de código. Ative o banco de dados e conectar a ele :
 
sintaxe:
db2 activate db <db_name>
db2 connect to <db_name>
exemplo:
db2 activate db xmldb 
db2 connect to xmldb 
Crie um arquivo XML bem formado e criar uma tabela com o tipo da coluna como 'XML' dados. É obrigatório passar a consulta SQL que contém sintaxe XML dentro de aspas duplas .
 
sintaxe
db2 create table <schema>.<table>(col <datatype>, 
col <xml datatype>)” 
exemplo:
db2 "create table shope.books(id bigint not null 
primary key, book XML)"
Insira valores XML na tabela , documentos XML bem formados são inseridos tipo XML coluna usando 'Inserir' SQL comunicado.
 
sintaxe:
db2 insert into <table_name> values(value1, value2)” 
exemplo:
exemplo:
db2 "insert into shope.books values(1000, '<catalog>  
<book> 
 
<author> Gambardella Matthew</author> 
<title>XML Developers Guide</title> 
<genre>Computer</genre> 
<price>44.95</price> 
<publish_date>2000-10-01</publish_date> 
<description>An in-depth look at creating application 
with XML</description> 
</book> 
 
</catalog>')"  
Atualizando dados XML em uma tabela
Você pode atualizar os dados XML em uma tabela usando a seguinte sintaxe:
 
sintaxe:
db2 update <table_name> set <column>=<value> where 
<column>=<value>”  
exemplo:
db2 "update shope.books set book='<catalog>  
 
<book> 
<author> Gambardella, Matthew</author>  
<title>XML Developers Guide</title>  
<genre>Computer</genre>  
<price>44.95</price>  
<publish_date>2000-10-01</publish_date>  
<description>An in-depth XML</description>
  
</book> 
 
</catalog>' where id=1000"  

 

Backup e Recovery


 Métodos de backup e recuperação são projetados para manter nossa informação segura. Na Command Line Interface (CLI) ou Graphical User Interface (GUI) usando utilitários de backup e recuperação, você pode ter backup ou restaurar os dados de bancos de dados em DB2 UDB.

Logging

Os arquivos de log consistem de logs de erros, que são usados ??para se recuperar de erros de aplicação. Os logs de manter o registro de alterações no banco de dados. Existem dois tipos de log conforme descrito abaixo:

O log circular

É um método em que os logs de transação antigas são substituídas quando houver necessidade de atribuir um novo arquivo de log de transações, apagando as seqüências de arquivos de log e reutilizando-os. Você está autorizado a tomar apenas full back-up no modo offline. ou seja, o banco de dados deve estar off-line para tirar o backup completo.

Logging Archive

Este modo suporta Online Backup e recuperação de banco de dados usando arquivos de log chamados recuperação de avanço. O modo de backup pode ser alterado de circular para arquivar, definindo logretain ou userexit a ON. Para o log de arquivo, banco de dados de configuração de backup exigem um diretório que é gravável para o processo de DB2.

Backup

Usando o comando de backup que você pode tomar cópia do banco de dados inteiro. Esta cópia de backup inclui arquivos de sistema de banco de dados, arquivos de dados, arquivos de log, controlar as informações e assim por diante.

Você pode tirar cópia de segurança ao trabalhar offline, bem como online.

Backup offline

Sintaxe: [Para listar os ativos aplicativos / bancos de dados]

db2 list application  
saída :
Auth Id  Application    Appl.      Application Id                                                
DB       # of   
         Name           Handle              
Name    Agents  
-------- -------------- ---------- ---------------------
----------------------------------------- -------- -----  
DB2INST1 db2bp          39         
*LOCAL.db2inst1.140722043938                                   
ONE      1  
Sintaxe: [ Para forçar aplicativo usando app . Id Manipulados ]
db2 "force application (39)"   
saída :
DB20000I  The FORCE APPLICATION command completed 
successfully.  
 
DB21024I  This command is asynchronous and may not 
be effective immediately. 
Sintaxe: [ Para encerrar conexão de banco de dados ]
db2 terminate  
Sintaxe: [ Para desativar banco de dados ]
db2 deactivate database one   
Sintaxe: [ Para tirar o arquivo de backup ]
db2 backup database <db_name> to <location> 
exemplo:
db2 backup database one to /home/db2inst1/ 
saída :
Backup successful. The timestamp for this backup image is : 
20140722105345  
Backup online
Para começar , você precisa alterar o modo de log circular para o Registro de Arquivos .
 
Sintaxe: [ Para verificar se o banco de dados está usando o log circular ou arquivo ]
db2 get db cfg for one | grep LOGARCH  
saída :
First log archive method (LOGARCHMETH1) = OFF  
 Archive compression for logarchmeth1  (LOGARCHCOMPR1) = OFF 
 Options for logarchmeth1              (LOGARCHOPT1) =   
 Second log archive method             (LOGARCHMETH2) = OFF  
 Archive compression for logarchmeth2  (LOGARCHCOMPR2) = OFF  
 Options for logarchmeth2              (LOGARCHOPT2) =   
Na saída , os valores realçados são [ logarchmeth1 e LOGARCHMETH2 ] no modo off , o que implica que o banco de dados atual no modo " LOGGING CIRCULLAR " . Se você precisa trabalhar com o modo de ' Registro de Arquivos " , que você precisa para mudar ou adicionar o caminho nas variáveis ??logarchmeth1 e LOGARCHMETH2 presente no arquivo de configuração.
 
Atualizando logarchmeth1 com o diretório do arquivo necessário
Sintaxe: [ Para fazer diretórios ]
 
mkdir backup 
mkdir backup/ArchiveDest  
Sintaxe: [ Para fornecer permissões de usuário para pasta ]
chown db2inst1:db2iadm1 backup/ArchiveDest 
Sintaxe: [ Para atualizar LOGARCHMETH1 configuração ]
db2 update database configuration for one using LOGARCHMETH1 
'DISK:/home/db2inst1/backup/ArchiveDest'
Você pode tirar backup offline para a segurança , ative o banco de dados e conectar a ele.
 
Sintaxe: [ Para ter backup online]
db2 backup database one online to 
/home/db2inst1/onlinebackup/ compress include logs   
saída :
db2 backup database one online to 
/home/db2inst1/onlinebackup/ compress include logs   
Verifique arquivo de backup usando seguinte comando:
 
sintaxe:
db2ckbkp <location/backup file>   
exemplo:
db2ckbkp 
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001 
Listagem o histórico de arquivos de backup
 
sintaxe:
db2 list history backup all for one    
saída :
   List History File for one 
  
Number of matching file entries = 4 
 
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
Backup ID  
 -- --- ------------------ ---- --- ------------ ------------ 
 --------------
  B  D  20140722105345001   F    D  S0000000.LOG S0000000.LOG 
 
 ------------------------------------------------------------ 
 ----------------   
 
 Contains 4 tablespace(s): 
 00001 SYSCATSPACE  
 
 00002 USERSPACE1
 
 00003 SYSTOOLSPACE 
 
 00004 TS1 
  ------------------------------------------------------------ 
  ---------------- 
  Comment: DB2 BACKUP ONE OFFLINE  
  
 Start Time: 20140722105345  
 
   End Time: 20140722105347
   
     Status: A
 ------------------------------------------------------------ 
 ---------------- 
 EID: 3 Location: /home/db2inst1 
 
 
 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
 Backup ID
 -- --- ------------------ ---- --- ------------ ------------ 
 --------------  
  B  D  20140722112239000   N       S0000000.LOG S0000000.LOG   
 ------------------------------------------------------------ 
 ------------------------------------------------------------- 
 ------------------------------- 
 
 Comment: DB2 BACKUP ONE ONLINE  
 
 Start Time: 20140722112239 
 
   End Time: 20140722112240  
   
     Status: A 
 ------------------------------------------------------------ 
 ----------------  
  EID: 4 Location: 
SQLCA Information 
 
 sqlcaid : SQLCA     sqlcabc: 136   sqlcode: -2413   sqlerrml: 0 
 
 sqlerrmc:   
 sqlerrp : sqlubIni  
 sqlerrd : (1) 0                (2) 0                (3) 0 
 
           (4) 0                (5) 0                (6) 0  
                    
 sqlwarn : (1)      (2)      (3)      (4)        (5)       (6)  
 
           (7)      (8)      (9)      (10)       (11)  
 sqlstate: 
 
 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log  
 Backup ID
  -- --- ------------------ ---- --- ------------ ------------ 
  -------------- 
   B  D  20140722112743001   F    D  S0000000.LOG S0000000.LOG   
 
 ------------------------------------------------------------ 
 ---------------- 
 Contains 4 tablespace(s): 
 
 00001 SYSCATSPACE 
 
 00002 USERSPACE1 
 
 00003 SYSTOOLSPACE 
 
 00004 TS1
  ------------------------------------------------------------- 
  ---------------- 
  Comment: DB2 BACKUP ONE OFFLINE 
  
 Start Time: 20140722112743 
 
   End Time: 20140722112743 
   
     Status: A 
 ------------------------------------------------------------- 
  ---------------- 
 EID: 5 Location: /home/db2inst1 
 
 Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log 
 Backup ID   
  ------------------------------------------------------------- 
  ----------------
  
R  D  20140722114519001   F                                
20140722112743 
 
 ------------------------------------------------------------ 
 ----------------  
 Contains 4 tablespace(s):  
 
 00001 SYSCATSPACE 
 
  00002 USERSPACE1 
  
 00003 SYSTOOLSPACE  
 
 00004 TS1
 ------------------------------------------------------------ 
 ----------------  
Comment: RESTORE ONE WITH RF
  
 Start Time: 20140722114519 
 
   End Time: 20140722115015  
     Status:
          
 ------------------------------------------------------------ 
 ----------------  
  EID: 6 Location:  
 
Restaurar o banco de dados de backup
Para restaurar o banco de dados do arquivo de backup, você precisa seguir a sintaxe dada :
 
sintaxe:
db2 restore database <db_name> from <location> 
taken at <timestamp> 
exemplo:
db2 restore database one from /home/db2inst1/ taken at 
20140722112743  
saída :
SQL2523W  Warning!  Restoring to an existing database that is 
different from  
 
the database on the backup image, but have matching names. 
The target database  
 
will be overwritten by the backup version.  The Roll-forward 
recovery logs
 
associated with the target database will be deleted.  
 
Do you want to continue ? (y/n) y 
 
DB20000I  The RESTORE DATABASE command completed successfully.   
Rolar para a frente todos os logs localizados no diretório de log , incluindo alterações mais recentes , pouco antes da falha de unidade de disco .
 
sintaxe:
db2 rollforward db <db_name> to end of logs and stop   
exemplo:
db2 rollforward db one to end of logs and stop  
saída :
                                 Rollforward Status  
 Input database alias                   = one  
 Number of members have returned status = 1  
 Member ID                              = 0  
 Rollforward status                     = not pending  
 Next log file to be read               =  
 Log files processed                    = S0000000.LOG - 
 S0000001.LOG  
 Last committed transaction            = 2014-07-22- 
 06.00.33.000000 UTC  
DB20000I  The ROLLFORWARD command completed successfully. 

Database Security

Banco de dados e funções do DB2 podem ser gerenciados por dois modos diferentes de controles de segurança:

  1. Autenticação
  2. Autorização

Autenticação

A autenticação é o processo de confirmação de que um usuário efetua login somente em conformidade com os direitos para executar as atividades que ele está autorizado a executar. A autenticação do usuário pode ser realizada em nível de sistema operacional ou o próprio nível de banco de dados. Usando ferramentas de autenticação para biometria, como retina e figura imprime estão em uso para manter o banco de dados de hackers ou usuários mal-intencionados.

A segurança de banco de dados podem ser gerenciados a partir de fora do sistema de banco de dados DB2. Aqui estão alguns tipos de processo de autenticação de segurança:

  • Baseado em autenticações do sistema operacional.
  • Lightweight Directory Access Protocol (LDAP)

Para DB2, o serviço de segurança é uma parte do sistema operacional como um produto separado. Para autenticação, são necessárias duas credenciais diferentes, essas são ID de usuário ou nome de usuário e senha.

Autorização

Você pode acessar o banco de dados DB2 e sua funcionalidade dentro do sistema de banco de dados DB2, que é gerido pelo gerente de banco de dados DB2. A autorização é um processo gerenciado pelo gerente de banco de dados DB2. O gerente obtém informações sobre o usuário autenticado atual, que indica que a operação de banco de dados o usuário pode executar ou acesso.

Aqui são maneiras diferentes de permissões disponíveis para autorização:

Permissão Primária: Concede o ID de autorização diretamente.

Permissão secundário: Subsídios para os grupos e funções se o usuário é membro

Permissão Pública: Subsídios para todos os usuários publicamente.

Permissão sensível ao contexto: Subsídios para o papel de contexto confiável.

A autorização pode ser dada aos usuários com base nas categorias abaixo:

  • Autorização em nível de sistema
  • O administrador do sistema [SYSADM]
  • Controle do Sistema [SYSCTRL]
  • A manutenção do sistema [SYSMAINT]
  • Monitor do sistema [SYSMON]

Autoridades fornecer de controle sobre a funcionalidade em nível de instância. Autoridade para fornecer privilégios de grupo, para controlar as operações de manutenção e de autoridade. Por exemplo, banco de dados e banco de dados objetos.

  • Autorização em nível de banco de dados
  • Administrador de Segurança [SECADM]
  • Banco de Dados Administrador [DBADM]
  • Controle de Acesso [ACCESSCTRL]
  • O acesso aos dados [DATAACCESS]
  • Administrador SQL. [SQLADM]
  • Administrador de gerenciamento de carga de trabalho [WLMADM]
  • Explique [EXPLICAR]

Autoridades fornecer controles dentro do banco de dados. Outras autoridades para banco de dados incluem com LDAD e CONNECT.

  • Objeto de nível Autorização: autorização objeto de nível envolve a verificação de privilégios quando uma operação é realizada em um objeto.
  • Com base em conteúdo de Autorização: O usuário pode ter ler e escrever o acesso a linhas e colunas individuais em uma tabela específica usando o acesso de controle baseado em rótulo [LBAC].

Tabelas do DB2 e arquivos de configuração são usados ??para gravar as permissões associadas a nomes de autorização. Quando um usuário tenta acessar os dados, as permissões gravadas verificar as seguintes permissões:

  • Nome de autorização do usuário
  • Qual grupo pertence ao usuário
  • Que papéis são concedidos diretamente para o usuário ou indiretamente a um grupo
  • Permissões adquiridos através de um contexto confiável.

Ao trabalhar com as instruções SQL, o modelo de autorização do DB2 considera que a combinação das seguintes permissões:

  • Permissões concedidas para o ID de autorização primário associado com as instruções SQL.
  • IDs de autorização secundários associados com as instruções SQL.
  • Concedido ao PÚBLICO
  • Concedido ao papel contexto confiável.

Autoridades de nível Instância

Vamos discutir algumas autoridades instância relacionado.

Autoridade de administração do Sistema (SYSADM)

É mais alto nível de autoridade administrativa no nível de instância. Os usuários com autoridade SYSADM pode executar algumas bases de dados e comandos do gerenciador de banco de dados dentro da instância. Os usuários com autoridade SYSADM pode realizar as seguintes operações:

  • Atualizar um banco de dados
  • Restaurar um banco de dados
  • Update Database arquivo de configuração do gerenciador.

 

 

Autoridade de controle do Sistema (SYSCTRL)

É o nível mais alto em autoridade de controle do sistema. Ele fornece para executar operações de manutenção e utilitários contra a instância do gerenciador de banco de dados e suas bases de dados. Estas operações podem afetar os recursos do sistema, mas eles não permitem o acesso direto aos dados no banco de dados.

Os usuários com autoridade SYSCTRL pode realizar as seguintes ações:

  • A atualização do banco de dados, ou o diretório Nó Distributed Serviço Connect (DCS)
  • Forçar os usuários fora da em nível de sistema
  • Criação ou remoção de um nível de banco de dados
  • Criando, alterando, ou soltando um espaço de tabela
  • O uso de qualquer espaço de tabela
  • Restaurar Banco de Dados

 toridade de manutenção do Sistema (SYSMAINT)

É um segundo nível de autoridade de controlo do sistema. Ele fornece para executar operações de manutenção e utilitários contra a instância do gerenciador de banco de dados e suas bases de dados. Estas operações afetam os recursos do sistema, sem permitir acesso direto aos dados no banco de dados. Esta autoridade é projetado para usuários para manter bancos de dados dentro de uma instância do gerenciador de banco de dados que contém dados sensíveis.

Somente os usuários com SYSMAINT ou autoridades do sistema nível superior podem realizar as seguintes tarefas:

  • Tomando de backup
  • Restaurando o backup
  • Recuperação de avanço
  • Iniciando ou Parando instância
  • Restaurando tablespaces
  • Execução de comando db2trc
  • Tomando monitor do sistema instantâneos no caso de um usuário de nível Instância ou um usuário de nível de banco de dados.

Um usuário com SYSMAINT pode realizar as seguintes tarefas:

  • Consultar o estado de um espaço de tabela
  • Atualizando arquivos de histórico de log
  • Reorganização de tabelas
  • Usando RUNSTATS (Coleção estatísticas do catálogo)

  Autoridade Monitor System (SYSMON)

Com essa autoridade, o usuário pode monitorar ou tirar fotos de instância do gerenciador de banco de dados ou a sua base de dados. Autoridade SYSMON permite que o usuário execute as seguintes tarefas:

  • GET SWITCHES MONITOR gerenciador de banco
  • GET SWITCHES MONITOR
  • GET SNAPSHOT
  • LISTA
    • LISTA bancos de dados ativos
    • APLICAÇÕES LISTA
    • Lista de grupos DATABASE PARTITION
    • APLICAÇÕES LIST DCS
    • Listar pacotes
    • LISTA DE QUADROS
    • EMBALAGENS DE LISTA TABLESPACE
    • LISTA TABLESPACES
    • UTITLITIES LISTA
  • MONITOR REAJUSTE
  • SWITCHES ATUALIZAÇÃO MONITOR

Autoridades de banco de dados

Cada autoridade de banco de dados contém o ID de autorização para executar alguma ação sobre o banco de dados. Essas autoridades do banco de dados são diferentes dos privilégios. Aqui está a lista de algumas autoridades do banco de dados:

ACCESSCTRL: permite conceder e revogar todos os privilégios de objeto de banco de dados e autoridades.

BINDADD: Permite criar um novo pacote no banco de dados.

CONNECT: Permite conectar ao banco de dados.

CREATETAB: Permite criar novas tabelas no banco de dados.

CREATE_EXTERNAL_ROUTINE: Permite criar um procedimento a ser usado por aplicativos e usuários dos bancos de dados.

DATAACCESS: Permite acessar os dados armazenados nas tabelas de banco de dados.

DBADM: Aja como um administrador de banco de dados. Ele dá todas as outras autoridades de bancos de dados, exceto ACCESSCTRL, DATAACCESS e SECADM.

Explico: Permite para explicar planos de consulta, sem exigir-lhes para manter os privilégios para acessar os dados nas tabelas.

IMPLICIT_SCHEMA: Permite ao usuário criar um esquema implicitamente através da criação de um objeto usando uma instrução CREATE.

CARGA: Permite carregar os dados na tabela.

QUIESCE_CONNECT: Permite acessar o banco de dados enquanto ele está em repouso (temporariamente desativado).

SECADM: Permite a agir como um administrador de segurança para o banco de dados.

SQLADM: Permite monitorar e ajusta instruções SQL.

WLMADM: Permite a agir como um administrador de carga de trabalho

 Privilégios

SETSESSIONUSER

Privilégios autorização ID envolvem ações em IDs de autorização. Há apenas um privilégio, o chamado privilégio SETSESSIONUSER. Ele pode ser concedido para o usuário ou um grupo e permite que o usuário sessão para mudar de identidade a qualquer um dos IDs de autorização em que os privilégios são concedidos. Esse privilégio é concedido pela autoridade SECADM usuário.

Privilégios de esquema

Este privilégios envolvem ações no esquema do banco de dados. O proprietário do esquema tem todas as permissões para manipular os objetos de esquema, como tabelas, visões, índices, pacotes, tipos de dados, funções, triggers, procedimentos e aliases. Um usuário, um grupo, um papel, ou pública pode ser concedida a qualquer utilizador dos seguintes privilégios:

  • CREATEIN: permite criar objetos dentro do esquema
  • ALTERIN: permite modificar objetos dentro do esquema.

DROPIN

Isso permite excluir os objetos dentro do esquema.

Privilégios de espaço de tabela

Estes privilégios envolvem ações nas áreas de tabela no banco de dados. O usuário pode ser concedido o privilégio USE para os espaços de tabela. Os privilégios, em seguida, permitir-lhes para criar tabelas dentro de tabela. O proprietário privilégio pode conceder o privilégio USE com o comando WITH GRANT OPTION na tabela quando tabela é criada. E SECADM ou ACCESSCTRL autoridades tem as permissões para usar os privilégios na tabela.

Privilégios de tabelas e exibições

O usuário deve ter autoridade CONNECT no banco de dados para ser capaz de usar os privilégios de tabelas e exibições.Os privilégios para tabelas e exibições são as indicadas a seguir:

CONTROL

Ele fornece todos os privilégios para uma tabela ou uma visão incluindo queda e concessão, revogar os privilégios individuais da tabela para o usuário.

ALTER

Ele permite ao usuário modificar uma tabela.

APAGAR

Ele permite ao usuário excluir linhas da tabela ou exibição.

INDEX

Ele permite que o usuário inserir uma linha na tabela ou exibição. Ele também pode executar utilitário de importação.

Referências

Ele permite que os usuários criem e excluir uma chave estrangeira.

SELEÇÃO

Ele permite que o usuário para recuperar linhas de uma tabela ou view.

ATUALIZAÇÃO

Ele permite que o usuário altere as entradas em uma tabela, vista.

Privilégios da Embalagem

O usuário deve ter autoridade CONNECT para o banco de dados.Package é um objeto de banco de dados que contém as informações do gerenciador de banco para acessar os dados da maneira mais eficiente para uma determinada aplicação.

CONTROL

Ele fornece ao usuário com privilégios de religação, quedas ou executoras pacotes. Um usuário com privilégios esta é concedida para ligar e privilégios EXECUTE.

BIND

Ele permite ao usuário ligar ou religar esse pacote.

EXECUTAR

Permite executar um pacote.

Índice privilégios

Esse privilégio recebe automaticamente privilégio CONTROL no índice.

Privilégios de seqüência

Sequência recebe automaticamente os privilégios de uso e ALTER na sequência.

Privilégios de rotina

Ela envolve a acção de rotinas, tais como funções, procedimentos e métodos, no banco de dados.

Roles

Um papel é um objeto de banco de dados que os grupos múltiplos privilégios que podem ser atribuídas aos usuários, grupos, pública ou outros papéis usando instrução GRANT.

Restrições sobre os papéis

  • Um papel não pode possuir objetos de banco de dados.
  • Permissões e papéis concedidas a grupos não são considerados ao criar os seguintes objetos de banco de dados.
    • Pacote contendo SQL estática
    • Visualizações
    • Tabelas de consulta materializada (MQT)
    • Triggers
    • Rotinas SQL

Criando e concessão de associação em funções

Sintaxe: [Para criar um novo papel]

db2 create role <role_name> 
Exemplo: [ Para criar uma nova função chamada ' venda ' para adicionar um pouco de tabela a ser gerida por algum usuário ou grupo ]
db2 create role sales 
saída :
DB20000I The SQL command completed successfully. 
 Concedendo papel de DBADM para uma tabela específica
Sintaxe: [ Para conceder a permissão de um papel em uma tabela ]
db2 grant select on table <table_name> to role <role_name> 
Exemplo: [ Para adicionar permissão para gerenciar uma tabela ' shope.books ' para o papel das vendas ']
db2 grant select on table shope.books to role sales 
saída :
DB20000I  The SQL command completed successfully. 
Administrador de segurança concede papel para os usuários necessários. ( Antes de usar este comando , você precisa criar os usuários . )
 
Sintaxe: [ Para adicionar usuários a uma função ]
db2 grant role <role_name> to user <username> 
Exemplo: [ Para adicionar um ' mastanvali ' usuário a uma função 'vendas ']
db2 grant sales to user mastanvali
saída :
DB20000I  The SQL command completed successfully. 
 
hierarquias de Função
Para a criação de uma hierarquia de papéis , cada função é concedido permissões / associação com outra função .
 
Sintaxe: [ antes de esta sintaxe criar um novo papel com o nome de "produção" ]
db2 grant role <roll_name> to role <role_name>
Exemplo: [ Para fornecer permissão de um papel de "vendas" para outro "produção" papel ]
db2 grant sales to role production