Atenção: esse artigo tem uma palestra complementar. Clique e assista!

De que trata o artigo:

O artigo demonstra o projeto de um sistema de uma companhia de passagem aérea, apresentando algumas das novas funcionalidades do PostgreSQL 8.4


Para que serve:

Através deste artigo, o leitor terá uma visão prática das decisões de projeto a serem tomadas na modelagem de um sistema que gerencia tarefas de uma companhia aérea, e ainda uma visão ampla sobre a nova versão do PostgreSQL, onde não apenas são apresentadas as principais funcionalidades, mas também foi ensinado como explorá-las.


Em que situação o tema é útil:

Este artigo ajuda o DBA PostgreSQL na modelagem de sistemas com características similares ao projeto utilizado como estudo de caso, e ainda auxilia a equipe de desenvolvimento a decidir qual é o momento certo de realizar um upgrade de versão do PostgreSQL.

O objetivo deste artigo é modelar e projetar o sistema para uma companhia aérea que desejar um maior controle de seus vôos, funcionários e bilhetes emitidos. Para isso, serão demonstradas algumas das novidades da versão 8.4 do PostgreSQL, cuja versão saiu no início de Julho de 2009. Dentre as novidades, podemos citar o windowing functions, consultas recursivas e criação de valor padrão em parâmetros de função.

Novas Funcionalidades do PostgreSQL

Antes de iniciarmos a modelagem e projeto do sistema de uma companhia aérea, precisamos conhecer alguns dos novos recursos disponibilizados pela nova versão 8.4 do PostgreSQL, que será utilizado para o projeto do banco de dados deste sistema.

O PostgreSQL 8.4 possui mais de 293 novidades, muitas mudanças para deixar o SGDB mais competitivo contra outros SGBDs como o SQL Server e Oracle no que diz respeito a funcionalidades, outras melhorias buscam praticidade, segurança e velocidade. Neste momento, iremos apresentar algumas que mais chamam a atenção. Vamos conhecê-las? Elas estão citadas na Tabela 1.

Funcionalidades

O que isso faz

Windowing Functions

As Funções de Janelas ou "agregados de janelas" são um conjunto de functions que permitem que você faça operações como count, sum, e rank sobre (over) um subconjunto de seus dados, isso sem agrupamento. Com as windows functions, podemos gerar um relatório que demandava várias consultas com uma única consulta. Estas windows functions também ampliam o suporte do PostgreSQL para aplicações do tipo B.I. (Business Intelligense). Veremos mais sobre como isso funciona mais adiante.

Expressões de tabelas comuns e consultas recursivas

Conhecidas como CTEs (Common Table Expressions and Recursive Queries). O Principal uso da CTEs é possibilitar subconsultas complexas sem criar tabelas temporárias e principalmente permitir a criação de consultas recursivas. Isso foi uma importante implementação para o PostgreSQL, pois esta capacidade já existia no SQL Server desde a versão 2005.

ALTER SEQUENCE, VIEW, DATABASE

Foi melhorada a lógica do comando ALTER para cada tipo de objeto. Por exemplo, agora é possível reiniciar um sequence para voltar ao valor inicial através de um simples ALTER SEQUENCE RESTART.

É possível agora adicionar novas colunas em uma view diretamente pelo comando ALTER VIEW ADD COLUMN

O Alter também ganhou poderes no DATABASE. Agora podemos mover fisicamente os objetos de um Banco de Dados para um novo tablespace. Isso significa que em caso de falta de espaço, via ALTER podemos mover uma tabela para outra partição, unidade, enfim, um lugar com espaço disponível.

Parâmetros DEFAULT e Variáveis para Functions

É possível agora criar um número variável de argumentos para uma function. Além disso, é possível definir um valor padrão para argumento em funções. Assim, quando a função for invocada e não passar argumentos para ele, o valor padrão assume como argumento. Estas mudanças facilitam a migração do SQL Server e Sysbase para PostgreSQL.

Restauração paralela

A ferramenta pg_restore agora pode restaurar dados e criar objetos paralelamente, ou seja, enquanto esta criando a tabela2, ele está subindo os dados da tabela1. Isso gerou um aproveitamento melhor do hardware.

...
Quer ler esse conteúdo completo? Tenha acesso completo