Templates são uma poderosa ferramenta para a criação de bancos de dados padronizados, e uma característica estável implementada no PostgreSQL. No entanto, nem sempre é bem corretamente utilizada e entendida. Neste texto será comentado o seu funcionamento e os benefícios que podem ser obtidos.
* Templates de Bancos de Dados
Templates são modelos. Criar um banco de dados com base em um template é simplesmente utilizar um banco de dados como modelo para a criação de outro. Como ganhos do uso de templates podem ser destacados:
- Melhor padronização dos bancos de dados criados
- Maior velocidade na criação de novos bancos de dados, evitando-se a necessidade de se rodar scripts e criar objetos após a sua criação.
* Implementação no PostgreSQL
No PostgreSQL, a criação de qualquer banco de dados se dá pela cópia de objetos e estrutura de um banco já existente para o novo a ser criado. São definidos por padrão dois bancos de dados templates: template0 e template1, no entanto qualquer banco de dados pode ser utilizado como template em um servidor PostgreSQL.
O template0 é mais enxuto e deve ser predominantemente utilizado para criação de bancos que serão populados via restauração de backup. Não apresenta todos objetos e funções do template1, o qual é mais utilizado e é recomendado como principal padrão para criação de novos bancos de dados.
Acrescentar funções, tabelas e outros objetos a um banco de dados template, é torná-los disponíveis a qualquer novo banco de dados que for criado posteriormente. A atualização de bancos criados anteriormente com o template que foi atualizado deve ser feita de forma manual caso seja necessária.
Abaixo, a criação de bancos de dados utilizando templates:
-- Criação sem parâmetro -T, cria banco de dados com base no template 1
C:\Program Files\PostgreSQL\8.3\bin>createdb -U postgres dbtemplate "Banco de Dados Template 1"
-- Criação de novo banco de dados com base no template 0
C:\Program Files\PostgreSQL\8.3\bin>createdb -U postgres -T template0 dbtemplate2 "Banco de Dados Template 0"
-- Criação de novo banco de dados com base no template 1
C:\Program Files\PostgreSQL\8.3\bin>createdb -U postgres dbtemplate3 "Banco de Dados Template 1"
* Personalização de Template no PostgreSQL
Personalizar um template para uso na criação de novos bancos de dados é relativamente fácil e demanda apenas algumas precauções:
- Evitar alterar os templates padrão do PostgreSQL (template0 e template1) - Crie novos bancos de dados e personalize-os, utilizando-os posteriormente como templates.
- Planeje que tipo de função o banco de dados template deve oferecer: banco de dados web, banco de dados para Data Warehouse, etc., criando templates específicos mais adequados.
- Nomeie seus templates de forma distinta, para diferenciá-los de bancos de dados de aplicações.
- Não utilizar bancos de dados de aplicações como templates. O processo de cópia do template para o novo banco de dados exige que o template não esteja sofrendo acesso por parte de outros usuários, o que pode gerar erros na criação de novos bancos.
Abaixo, uma proposta de atividade para testar a personalização do banco de dados template dbtemplate3:
- Abra o banco de dados dbtemplate3.
- Crie as rotinas CPF_formatar e CPF_validar que estão na seção de algoritmos deste blog.
- Feche o banco de dados.
- Crie novo banco de dados, chamado "corporativo", utilizando como template o dbtemplate3.
- Abra o banco de dados "corporativo" e localize as funções que você adicionou ao template.
Nenhum comentário:
Postar um comentário