.JPG hspace=0 src="/loja/img/Capa_SQL37_G.gif" border=0>

Clique aqui para ler todos os artigos desta edição

PostgreSQL

 

PostgreSQL é um poderoso SGBD objeto-relacional open source. Apesar de ter ganho popularidade nacional recentemente, o projeto está ativo há mais de 15 anos, possuindo uma forte reputação. Este SGBD pode ser instalado na maioria dos sistemas operacionais, incluindo Linux, UNIX (AIX, BSD, HP-UX, SGI ARIX, MAC OS X, Solaris, Tru64), e Windows. Ele incorpora totalmente os conceitos do ACID, incluindo suporte completo para foreign keys, joins, views, triggers e stored procedures (através de várias opções de linguagens de programação). Possui nativamente interfaces de programação para diversas linguagens, dentre elas: C/C++, Java, Perl, Python, Ruby, TCL, ODBC e muitas outras, além de ser extremamente bem documentado e possuir sites com diversas dicas para iniciantes.

Este SGBD é conhecido por ser uma solução open source para DBAs e desenvolvedores que têm familiaridade com o Oracle, por ser robusto e possuir conceitos similares.

 

Limitações de memória / storage / processador / plataforma

Nas questões de limitações, o PostgreSQL é bem flexível no que diz respeito a storage, processador e plataforma. Ele pode ser instalado em qualquer tipo de hardware com diversos tipos de sistema operacional de forma bem estável. A Tabela 1 apresenta algumas limitações.

 

Tabela 1. Limitações.

 

Recursos de desenvolvimento (trigger, stored procedures, functions, XML, java e orientação a objetos)

O PostgreSQL possui uma característica bem interessante: uma trigger e uma stored procedure partem da mesma coisa, uma function. Então, primeiro construímos uma function e depois como ela irá trabalhar. Se definirmos como trigger, então construiremos uma trigger referenciando esta function, se for stored procedure, a própria function poderá ser invocada nas queries sem haver a necessidade de fazer mais nada.

No PostgreSQL, function e stored procedure são basicamente a mesma coisa. Por exemplo, considere a tabela criada na Listagem 1.

 

Listagem 1. Criação da tabela emp.

 

CREATE TABLE emp (

nome_emp text,

salario integer,

ultima_data timestamp,

ultimo_usuario text

);

 

Vejamos agora a criação da função emp_carimbo() que será usada pela trigger na Listagem 3. Esta função foi escrita na linguagem procedural PL/PGSQL.

 

Listagem 2. Criação da função emp_carimbo()

 

CREATE FUNCTION emp_carimbo() RETURNS trigger AS ‘

   BEGIN

      -- Verificar se o nome do empregado foi fornecido

      IF NEW.nome_emp IS NULL THEN

         RAISE EXCEPTION ‘’O nome do empregado não pode ser nulo’’;

      END IF;

      IF NEW.salario IS NULL THEN

         RAISE EXCEPTION ‘’% não pode ter um salário nulo’’, NEW.nome_emp;

      END IF;

      -- Quem é que paga para trabalhar?

...

Quer ler esse conteúdo completo? Tenha acesso completo