1.2. Fundamentos da arquitetura

Antes de prosseguir, é necessário conhecer a arquitetura de sistema básica do PostgreSQL. Compreender como as partes do PostgreSQL interagem torna este capítulo mais claro.

No jargão de banco de dados, o PostgreSQL utiliza o modelo cliente-servidor. Uma sessão do PostgreSQL consiste nos seguintes processos (programas) cooperando entre si:

Como é típico em aplicações cliente-servidor, o cliente e o servidor podem estar em hospedeiros diferentes. Neste caso se comunicam através de uma conexão de rede TCP/IP. Deve-se ter isto em mente, porque arquivos que podem ser acessados na máquina cliente podem não ser acessíveis pela máquina servidora (ou somente podem ser acessados usando um nome de arquivo diferente).

O servidor PostgreSQL pode tratar várias conexões simultâneas de clientes. Para esta finalidade é iniciado um novo processo (fork [2] ) para cada conexão. Deste ponto em diante, o cliente e o novo processo servidor se comunicam sem intervenção do processo postmaster original. Portanto, o postmaster está sempre executando aguardando por novas conexões dos clientes, enquanto os clientes e seus processos servidor associados surgem e desaparecem (obviamente tudo isso é invisível para o usuário, sendo mencionado somente para ficar completo).

Notas

[1]

Também pode ser utilizada a ferramenta de administração do PostgreSQL baseada na Web phpPgAdmin . (N. do T.)

[2]

fork — Para criar um novo processo, o processo copia a si próprio através da chamada de sistema fork. O fork cria uma cópia do processo original que é em grande parte idêntica à ancestral. O novo processo possui um PID (identificador de processo) próprio, e suas próprias informações de contabilização. O fork possui a propriedade única de retornar dois valores diferentes. Do ponto de vista do filho retorna zero. Por outro lado, para o pai é retornado o PID do filho recém criado. Uma vez que fora isso os dois processos são idênticos, ambos precisam examinar o valor retornado para descobrir o papel a ser desempenhado. Linux Administration Handbook, Evi Nemeth e outros, Prentice Hall, 2002. (N. do T.)

SourceForge.net Logo