Este é o post final do resumo do capítulo 8 do e-book Primeiros passos com com o DB2 Express-C 9.7 e vamos falar sobre Tabelas de Catálogo do Sistema, DGTTs, CGTTs, Views, Índices, Integridade Referencial.
– TABELAS DE CATÁLOGO DO SISTEMA
O DB2 possui um conjunto de tabelas e views que informam sobre os metadados dos objetos do banco de dados. São 3 os schemas pertencentes a esse conjunto:
SYSIBM => Tabelas básicas. Ex: SYSIBM.SYSTABLES
SYSCAT => Views otimizadas baseadas na SYSIBM. Ex: SYSCAT.INDEXES
SYSSTAT => são as estatísticas do banco de dados. Ex: SYSSTAT.ROUTINES
Existem também as views administrativas com o schema SYSIBMADM. Ex: SYSIBMADM.TBSP_UTILIZATION
Você pode consultar a relação das views no link abaixo das System Catalog Views:
E as views administrativas em: http://goo.gl/IUpnJ
Algumas informações administrativas (contidas nas SYSIBMADM) podem ser referenciadas também através de chamada de função:
Exemplo:
– DGTTS (TABELAS TEMPORÁRIAS GLOBAIS DECLARADAS) E CGTTS (TABELAS TEMPORÁRIAS GLOBAIS CRIADAS)
As DGTTs são tabelas temporárias criadas em memória, que tem o tempo de vida somente durante o tempo de vida da transação (UOW – unit of work) e não podem ser referenciadas por outras transações. Como características principais temos a não contenção do catálogo, já que não é criada em nenhum catálogo DB2; não tem bloqueio de linha (locks) e conta ainda com a possibilidade de criação de índice.
Exemplo:
Observando que as DGTTs são criadas no schema SESSION, quando referenciadas deve ser pré-fixado este schema:
Exemplo:
As CGTTs foram introduzidas na versão 9.7 do DB2 LUW e diferenciam principalmente das DGTTs em virtude de sua definição ficar armazenada no catálogo DB, desta forma outras conexões podem simplesmente usar a tabela sem ser necessário criá-la novamente. Embora a estrutura de tabela possa ser usada imediatamente, os dados de cada conexão são independentes uns dos outros, e desaparecerão após o encerramento da conexão.
Temos como características das CGTTs:
– São muito mais eficientes que as tabelas regulares, possibilitando a não utilização de log de transação;
– É possível a utilização em uma view, trigger
– Índices são suportados;
– Compressão de dados é definido com padrão;
– Grant, revoke, export, import são compatíveis. Operação de Load não é;
– Constraints não são suportadas.
Exemplo:
– VIEWS
Uma visualização é uma representação dos dados nas tabelas, um apontamento. Os dados da view não são armazenados separadamente, mas são obtidos quando a visualização é chamada. São suportadas visualizações aninhadas, ou seja, visualizações criadas com base em outras visualizações.
– ÍNDICES
Um índice é um conjunto ordenado de chaves que apontam, cada uma, para uma linha de uma tabela; permitindo a exclusividade, aumentando desta forma o desempenho. Algumas das características dos índices:
– A ordem do índice pode ser crescente ou decrescente;
– As chaves de índice podem ser exclusivas ou não;
– Diversas colunas podem ser usadas no índice, índice composto;
– Se o índice e os dados físicos forem agrupados em sequências de indexação semelhantes; tornam-se desta forma um índice cluster .
– Integridade Referencial
A integridade referencial permite que seu banco de dados gerencie os relacionamentos entre as tabelas. Num banco de dados relacional, quando um registro aponta para o outro, dependente deste, há de se fazer regras para que o registro “pai” não possa ser excluído se ele tiver “filhos” (as suas dependências).
O relacionamento é feito através das chaves estrangeiras das tabelas, avaliadas antes da execução do comando de delete, insert ou update.
Exemplo:
Observando que no exemplo temos duas tabelas: EMPLOYEE e DEPARTMENT que são ligadas por uma integridade referencial através da coluna WORKDEPT (EMPLOYEE) e DEPTNO (DEPARTMENT).
Então temos:
Conceito | Descrição |
Tabela-pai | Uma tabela de dados controladora, na qual existe a chave-pai |
Tabela dependente | Uma tabela que depende dos dados da tabela-pai. Ela também contém uma chave estrangeira. Para que uma linha exista em uma tabela dependente, já deve existir uma linha correspondente dentro de uma tabela-pai. |
Chave primária | Define a chave-pai da tabela-pai. Não pode conter valores nulos (NULL) e os valores devem ser exclusivos. Uma chave primária consiste em uma ou mais colunas dentro de uma tabela. |
Chave estrangeira | Tem como referência a chave primária da tabela-pai |
Obs.: Também é possível impor restrições sobre os valores dos dados, para que se adequem a uma determinada propriedade ou regra de negócios. Por exemplo, se uma coluna de uma tabela armazena o sexo de uma pessoa, a restrição pode impor que os valores permitidos sejam somente “M” para masculino e “F” para feminino.
Para acessar as partes I e II deste Post clique em:
Para finalizar o post deixo uma pergunta sobre o conteúdo deste capítulo, em inglês, pois as provas de certificação IBM são em inglês. Escolha uma alternativa correta:
When is it appropriate to use a sequence?