.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?
...