Arquitetura Do PostgreSQL
Arquitetura Do PostgreSQL
Arquitetura Do PostgreSQL
Quando aberta uma sesso do Postgres, trs processos (programas em execuo) trabalham de forma cooperativa: um processo daemon (postmaster); a aplicao do cliente (por exemplo, o programa psql); um ou mais servidores de banco de dados (o prprio processo postgres). As aplicaes do cliente (chamadas de frontend) que desejam acessar determinado banco de dados fazem chamadas a uma biblioteca (chamada LIBPQ). A biblioteca envia a requisio do usurio pela rede para o processo postmaster, que cria um novo processo-servidor (chamado de backend) e conecta o processo-cliente ao servidor criado. A partir da, os processos-cliente e servidor (frontend e backend) se comunicam sem a interveno do postmaster. Estgios pelos quais o comando tem que passar para chegar ao resultado. 1. Deve ser estabelecida uma conexo entre o programa e o servidor PostgreSQL. O programa transmite um comando para o servidor, e aguarda para receber de volta os resultados transmitidos pelo servidor. 2. O estgio de anlise verifica o comando transmitido pelo programa com relao correo da sintaxe, e cria a rvore de comando. 3. O sistema de reescrita recebe a rvore de comando criada pelo estgio de anlise, e procura por alguma regra (armazenada nos catlogos do sistema) a ser aplicada na rvore de comando. Realiza as transformaes especificadas no corpo das regras. 4. Uma das aplicaes do sistema de reescrita a criao de vises. Sempre que executado um comando em uma viso (ou seja, uma tabela virtual), o sistema de reescrita reescreve o comando do usurio como um comando, acessando as tabelas base especificadas na definio da viso, em vez da viso. 5. O planejador/otimizador recebe a rvore de comando (reescrita), e cria o plano de comando que ser a entrada do executor. Isto feito criando primeiro todos os caminhos possveis que levam ao mesmo resultado. Por exemplo, se existe um ndice em uma relao a ser varrido, existem dois caminhos para a varredura. Uma possibilidade uma varredura seqencial simples, e a outra possibilidade utilizar o ndice. Em seguida estimado o custo de execuo de cada um dos caminhos, e escolhido o mais barato (rpido). O caminho mais barato expandido em um plano completo para que o executor possa utiliz-lo. 6. O executor caminha recursivamente atravs da rvore do plano, e traz as linhas no caminho representado pelo plano. O executor faz uso do sistema de armazenamento ao varrer as relaes, realiza classificaes e junes, avalia as qualificaes e, por fim, envia de volta as linhas derivadas.
NIEDERAUER, Juliano. Guia de Consulta Rpida PostgreSQL. Disponvel em: < http://www.olivreiro.com.br/pdf/livros/cultura/593551.pdf > Acesso em: 13 mar. 2012. SIMKOVICS, Stefan. Captulo 41. Viso geral da estrutura interna do PostgreSQL. Disponvel em: < http://pgdocptbr.sourceforge.net/pg80/overview.html > Acesso em: 17 mar 2012.