Template Da Aula 1
Template Da Aula 1
Template Da Aula 1
Apresentação
O PostgreSQL é um sistema de gerenciamento de banco de dados objeto-
relacional (SGBDOR) de código aberto baseado em um sistema desenvolvido na
universidade de Berkeley e fornecendo suporte ao SQL92/SQL99 além de
outras funcionalidades modernas, particularmente aos aspectos Objeto
Relacional e geográficos.
Ao longo desta aula iremos estudar a história e arquitetura deste SGBD.
Objetivos
1
Conteúdo online
História do PostgreSql
Ao longo dos anos o PostGreSql teve várias versões cada uma acrescentando novas
funcionalidades:
2
PostgreSQL Data Base Management System
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
hereby granted, provided that the above copyright notice and this paragraph and the
following two paragraphs appear in all copies.
3
ARQUITETURA DO POSTGRESQL
O Cluster do PostGreSql é composto de estruturas de memória e Processos (fig1),
vamos ver cada um deste itens com mais detalhes.
Estruturas de Memória
O PostgreSQL possui duas estruturas básicas de memória .(fig. 2):
4
Figura 2 – Estruturas de Memória
Fonte: Administração de Banco de Dados – Fabio Caiut
5
Figura 3 – Arquitetura de Processos do PostGreSql
Fonte: Administração de Banco de Dados – Fabio Caiut
6
FIM LINK WAL
Stats Coletor - realiza a coleta das estatísticas do banco de dados para uso pelo
otimizador.
Logger - registrar o que acontece na operação do SGBD, como acesso de usuários,
erros ou problemas com locks. Não confundir com o LOG DE TRANSAÇÕES que como
vimos no PostGreSql é denominado WAL.
Vacuum Worker – é quem executa efetivamente o Vacuum, existem por padrão 3
deles em execução que são gerenciados pelo AutoVacuum.
Archiver – realiza o arquivamento dos segmentos de WAL em um local pré-definido
no arquivo de configuração.
Sender e Receiver – são os processos que permitem a replicação binária do servidor
Vários dos processos que vimos são opcionais, em uma instalação típica a estrutura
dos processos é a exibida na figura 4
7
Figura 4 –Processos em uma configuração padrão
Fonte: Administração de Banco de Dados – Fabio Caiut
Processos Backend
Como já falamos estes processos são criados para atender a conexão dos usuários
O processo de conexão é realizado da seguinte forma:
Passo1 – um cliente solicita uma nova conexão ao postmaster
Passo2 – o postmaster realiza autenticação do usuário.
Passo3 – se a autenticação foi bem sucedida o postmaster cria um processo
(backend) para atender ao usuário
Passo4 – o processo criado passa a atender ao usuário
8
Figura 5 – Estabelecimento de Conexão
Fonte: Administração de Banco de Dados – Fabio Caiut
9
Figura 7 – Retorno do Comando
Arquivos do Servidor
Além das estruturas vistas até agora no Servidor PostgreSql temos uma serie de
arquivos que balizam o funcionamento do servidor.
Vamos a eles:
10
postgresql.conf – arquivo principal de configuração do SGBD. Possui uma lista
de parâmetros que controla o funcionamento do cluster.
Além destes arquivos de configuração o PostGreSql gera uma estrutura de
diretórios de denominada normalmente pg_data
tem Descrição
11
tem Descrição
Páginas de Dados
Todas as tabelas e índices são armazenados como uma matriz de páginas de tamanho
fixo (geralmente 8 kB, embora um tamanho de página diferente possa ser selecionado
12
ao compilar o servidor). Em uma tabela, todas as páginas são logicamente equivalentes;
portanto, um item (linha) específico pode ser armazenado em qualquer página. Nos
índices, a primeira página geralmente é reservada como uma meta-página contendo
informações de controle e pode haver diferentes tipos de páginas no índice,
dependendo do método de acesso ao índice.
Item Descrição
13
Linhas das tabelas
compriment
Campo Tipo o Descrição
14
O bitmap nulo estará presente apenas se o bit HEAP_HASNULL estiver definido
t_infomask. Se estiver presente, começa logo após o cabeçalho fixo e ocupa bytes
suficientes para ter um bit por coluna de dados (ou seja,t_nattsbits por completo). Nesta
lista de bits, 1 bit indica não nulo, 0 bit é nulo. Quando o bitmap não está presente,
todas as colunas são assumidas como não nulas.
15
Atividades
Atividade 1:
Onde são registradas as operações realizadas pelas transações no PostGreSql?
Gabarito comentado
No WAL (Write-Ahead Logging).
O Wal corresponde no Postgresql a estrutura de log de transações do sistema, ou
seja aonde são registradas as operações realizadas pelas transações
Atividade2:
Quantos processos backend estarão em execução se tivermos 5 conexões no SGBD?
Gabarito Comentado:
Serão 5
No Postgresql os processos de backend mantem um relação direta com as conexões,
sendo gerada 1 processo para cada conexão.
Como na situação citada existem 5 conexões existirão 5 processos em backend, um
para cada conexão que irá atender as requisições.
Gabarito Comentado:
Na licença de seu produto deverá constar que:
16
Gabarito Comentado:
O Postgresql é multi-processo, ou seja ele tem um processo Pai, denominado
Postmaster que gera processos filhos para atender as demais tarefas do sistema.
pela inicialização do SGBD, e faz a carga de todos os outros processos
Referências
Manual do PostGreSql
Santos E. V. Administração do PostGreSql 1ª.Ed 2017
Caiut , Fabio Administração de Banco de Dados 1ª.Ed 2015
Próximos passos
Explore +
Livro PostGreSql
https://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico
17