DevSecOps

7 out, 2002

PostgreSQL – Introdução e comparações

Publicidade

O PostgreSQL é uma SGBD relacional e
orientado a objetos. É um software de livre distribuição
e tem seu código fonte aberto. Oferece suporte a SQL
de acordo com os padrões SQL92 / SQL99. Em termos de
recurso pode ser comparado aos melhores bancos de dados comerciais
existentes, sendo inclusive superior em alguns aspectos, como
ao introduzir conceitos do modelo objeto-relacional que hoje
estão disponíveis em alguns bancos de dados
comerciais.

Arquitetura Básica do PostgreSQL

É importante que haja a compreensão
de sua arquitetura básica. Quando é aberta uma
sessão do Postgres, 3 processos são abertos.
 – um processo daemon (postmaster);
 – a aplicação do cliente (por exemplo,
sua aplicação em PHP)
 – um ou mais servidores de banco de dados (processo
postgres)

Um único processo postmaster gerencia
os bancos de dados existentes em uma maquina. As aplicações
do cliente(frontend) que desejam acessar determinado banco
de dados fazem chamadas a uma requisição do
usuário pela rede para o processo postmaster, que cria
um novo processo-servidor(backend) e conecta o processo-cliente
ao servidor(frontend e backend) se comuniam sem a intervenção
do postmaster. Sendo assim o postmaster o gerenciador de conexões
do PostgreSQL.

Agora vou fazer uma comparação
entre o PostgreSQL e o MySQL por serem soluções
de código fonte aberta e ambas muito utilizadas em
soluções de plataforma WEB como PHP e em sistemas
como o Linux.

Mysql PostgreSQL
Transações Não Sim
Lock
linha
Não Sim
Constraints Não Parcial
Programável Parcial Sim
Senhas Sim Sim
Failsafe Não Sim
Hotback Não Não

Transações: confirmaçãs
ou cancelamento de operações realizadas.
Lock de linha: atualização
bloqueia apenas as linhas a serem atualizadas.
Constraints: chave primária
e chave estrangeira para tabelas do banco de dados.
Programável: permite
criar triggers(por exemplo)
Senhas: validaçõs
de usuário e senha.
Fail safe:
segurança contra falhas(exemplo desligamento repentino
do sistema)
Hot backup:
verifica se é possivel realzar uma cópia consistente
da base de dados enquanto transações são
efetuadas.

Apesar de tudo o MySQL tem a vantagem de possuir
uma velocidade de acesso maior para grandes bases de dados.
No entanto, as caracteristicas de travamento de linhas, transações
e segurança contra falhas fazem do PostgreSQL uma opção
mais segura e confiável.

Comando SQL – CREATE DATABASE

Cria um novo banco de dados. Opcionalmente,
pode-se especificar um local (caminho) onde os dados
serão armazenados. Se for especificado, por exemplo,
/var/lib/pgsql‘, os dados serão gravados
nesse diretório. O usuário que executar
esse comando se tornará o dono (owner) da base.

CREATE
DATABASE
nome
     [ WITH [ LOCATION
= ‘
caminho’ ]
     [ TEMPLATE =
modelo
]
     [ ENCODING =
codificação
] ]

Parâmetro Descrição
nome O
nome do banco de dados a ser criado.
caminho A
localização do sistema de arquivos
onde será armazenado o banco de dados.
modelo Nome
do modelo a partir do qual será criado o
banco de dados. Se não for especificado,
será usado o modelo-padrão(template
1).
codificação Método
de codificação que será usado
no banco de dados. Pode ser especificado por um
string(como, por exempl, “SQL_ASCII”),
ou por um numero inteiro codificado. Se não
for especificado, será usado o método-padrão