Os tipos de dados abstractos ou estruturados são mecanismos tipo para modelação e armazenamento de objectos complexos numa base de dados relacional. Os tipos estruturados podem ter campos múltiplos incorporados, por exemplo, uma forma geométrica (uma lista de coordenadas cartesianas), ou informações sobre um funcionário (nome, morada, sexo, data de nascimento e número de funcionário) podem ser modelados e armazenados no DB2 Universal Database.
O suporte de tipos estruturados foi expandido por forma a fornecer a capacidade de criar tabelas com colunas de tipo estruturado. Além disso, os tipos estruturados podem ser imbricados dentro de um tipo estruturado. Significa isto que os atributos de um tipo estruturado já não estão limitados aos tipos básicos de SQL, podendo ser agora de outro tipo estruturado.
Na Versão 7, o utilizador pode definir funções com parâmetros de input ou parâmetros na cláusula RETURNS que sejam tipos estruturados. Pode também definir métodos para cada tipo de dados estruturado, os quais permitem a inclusão de comportamento com dados. Define-se um método quase da mesma forma que uma função, mas o seu uso está estritamente associado a tipos estruturados. Trata-se essencialmente de uma rotina com uma ocorrência de tipo estruturado como o seu primeiro argumento implícito.
Os utilitários Reorganizar Tabela (REORG) e db2look podem ser usados em tabelas com colunas de tipo estruturado. Consulte Command Reference para obter mais informações sobre REORG e o Administration Guide: Implementation e Administration Guide: Performance para obter mais informações sobre tipos estruturados e db2look.
As funções de transformação activam a utilização de colunas de tipo estruturado com programas escritos pelo utilizador. Estas funções convertem a estrutura complexa dentro de um tipo de dados estruturado num conjunto ordenado dos seus tipos básicos de SQL. Reconvertem ainda os atributos básicos nos seus tipos estruturados. Estas transformações são necessárias para mover tipos estruturados para dentro e para fora de uma base de dados. Consulte o manual Administration Guide: Implementation para mais informações.
Uma função incorporada em SQL contém simples instruções de procedimentos de SQL no seu corpo, que é incorporada na SQL de chamada (semelhante a uma macro). Permite assim que o compilador de consultas optimize toda a instrução SQL incluindo a função incorporada em SQL. Os tipos de dados estruturados recorrem às funções incorporadas em SQL para funções de transformação (consulte Funções de Transformação) e métodos (consulte Tipos Estruturados).
O DB2 Versão 7.2 fornece instruções de compostos dinâmicos, um novo tipo de SQL composto, para ajudar a reduzir o tempo de sistema do gestor de bases de dados e a melhorar o manuseamento de pedidos através da rede. As instruções de compostos dinâmicos são ideais para scripts pequenos que envolvem pouca lógica de fluxo de controlo mas bastante fluxo de dados.
Dentro da instrução de compostos dinâmicos pode:
O DB2 compila a instrução de composto dinâmico como uma única instrução. Consulte as DB2 Notas de Edição para obter mais informações.
O DB2 Versão 7.2 fornece a capacidade de executar lógica de procedimento em procedimentos armazenados, activadores e funções de SQL através de um número de instruções de SQL controladas.
Antes da Versão 7.2, os activadores forneciam apenas uma única sequência - não existiam lógicas ou ciclos condicionais. Este aperfeiçoamento aos activadores permite-lhe migrar as suas aplicações para o DB2 mais facilmente. Também irá beneficiar das funções de SQL aperfeiçoadas, tais como SCALAR, TABLE ou ROW. Por exemplo, pode utilizar funções de tabela de SQL com lógica de controlo nas funções escalar do Data Warehouse Center ou SQL para correlacionar outros sistemas de gestão de base de dados para DB2.
A Versão 7.2 permite as seguintes instruções de controlo em activadores e funções de SQL:
As instruções de controlo estão integradas no compilador de consultas do DB2. Para obter mais informações sobre as instruções de controlo e as variáveis de SQL, consulte SQL Reference. Para obter mais informações sobre este aperfeiçoamento da Versão 7.2, consulte as Notas de Edição do DB2.
Agora já pode utilizar restrições e activadores de integridade referencial com tabelas tipificadas.