



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento fornece uma introdução ao sgbd relacional de código aberto postgresql, destacando suas peculiaridades, como o mecanismo de travamento/bloqueio, o suporte a múltiplos tipos de índices e a linguagem procedural pl/pgsql. Além disso, aborda a arquitetura do postgresql, a criação de um banco de dados, o arquivo de configuração de autenticação do cliente e as transações.
Tipologia: Resumos
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




O PostgreSQL é um SGBD Relacional de Objetos de código aberto, baseado no POSTGRES de Berkeley. Suporta grande parte do padrão ANSI SQL e outras funcionalidades. Oferece um dos mais sofisticados mecanismos de travamento/bloqueio. Suporte para MCC – Multiversion Concurrency Control – ou MVCC. Nesse mecanismo, processos de leitura não bloqueiam processo de escrita e vice-versa, reduzindo drasticamente (às vezes eliminando) a contenção entre transações concorrentes e paralisação parcial ou completa (deadlock). Isso é possível pois é criado várias versões dos itens que estão sendo utilizados pelas transações. Utiliza WAL – Write Ahead Loggin – para garantir a integridade dos dados e loggins de transações. Suporte para múltiplos tipos de índices (B-Tree – default, rTree e Hash) permitindo a escolha do índice mais eficiente para cada aplicação. Sua linguagem procedural é a PL/pgSQL (adicionado a partir do PostgreSQL 11). Também suporta PL/Java, PL/Python e PL/Perl para procedimentos armazenados. Possui integridade transacional. Suporte completo à arquitetura de rede cliente-servidor. Replicação Master-Slave e Alta Disponibilidade. A partir da versão 9.0 do PostgreSQL, foi adicionado um recurso de Streaming Replication (SR) nativamente ao PostgreSQL , permitindo a replicação de transações, por padrão de forma síncrona, assim que concluídas sem necessidade de aguardar que um segmento seja completado. Excelente escalabilidade vertical, mas não tão boa escalabilidade horizontal. Uma coleção de databases gerenciados por uma única instância PostgreSQL constitui um cluster de banco de dados. Os objetos do banco de dados (tabelas, views, triggers, stored procedures, domínios, etc) são agrupados em schemas , que são subdivisões dentro de um database.
Para criar um database, pode-se utilizar o comando SQL “CREATE DATABASE” ou utilizar o comando “createdb <nome_banco>” diretamente no shell, bastando estar logado com o usuário postgres. Já para excluir um banco pode-se utilizar o comando “dropdb <nome_banco>”. O psql é um utilitário de linha de comando que permite executar comandos SQL. Para conectar-se no banco com, basta utilizar o comando “psql <nome_banco>”. O comando “psql \l” lista todos os bancos de dados do PostgreSQL. O comando “psql \h” lista todos os comandos suportados pelo utilitário.
Além dos tipos padrões do ANSI SQL, o PostgreSQL suporta outros tipos de dados, como: dados enumerados; geométricos; georeferênciais (point); JSON; XML; Matrizes compostas; intervalo; endereço de rede; sequência de bits; pg_lsn; e pseudo-tipos. Money → armazena um valor em moeda, de 8 bytes, com uma precisão fracionária fixa. A precisão fracionária é determinada pela configuração da variável “lc_monetary” do database. Text → armazena sequências de caracteres de qualquer tamanho, sendo semelhante ao varchar (que também existe). Name → armazena identificadores nos catálogos internos do banco (já mencionado acima). “char” → diferente do char(1), pois ele usa apenas um byte de armazenamento. Bytea → armazena uma string binária, suportando dois formatos externos para entrada e saída, o “escape” (default) e o “hex” , respectivamente. O “hex” codifica os dados binários como dois dígitos hexadecimais por byte, o mais significativo primeiro, sendo que ele é compatível com diversos aplicativos e protocolos externos e tende a ser mais rápido para converter do que o formato “escape”.
boolean → pode ter vários estados para entrada: true (yes, on ou 1); false (no, off ou 0); e unknown (representado por null). Como saída é “t” ou “f”.
Concatenação de Strings É possível concatenar string nos comandos SQL através do operador “ || ”. É possível fazer o cast explicitamente (conforme a palavra text) ou deixar que seja feito implicitamente. Serial e BigSerial A técnica mais simples e comum para adicionar uma chave primária no PostgreSQL é usar os tipos de dados SERIAL e BIGSERIAL. SERIAL não é um tipo de dado verdadeiro, mas é simplesmente uma notação abreviada que instrui o PostgreSQL a criar um identificador exclusivo e incrementado automaticamente para a coluna especificada. Sequence Possui as mesmas funcionalidades de SEQUENCE’s do Oracle. Foreing Keys É possível definir um campo como FK direto na sua definição. Transação Delimitado por BEGIN e um COMMIT ou ROLLBACK. Também oferece o SAVEPOINT e ROLLBACK TO
relevante para o tipo de conexão), bem como o método de autenticação a ser usado para conexões que utilizam estes parâmetros. O primeiro registro com os dados: tipo de correspondência de conexão, endereço do cliente, banco de dados solicitado e nome de usuário é usado para executar a autenticação. Não há nenhuma possibilidade de múltiplas tentativas, ou seja, se um registro é escolhido e a autenticação falhar, os registros subsequentes não são considerados. Se nenhum registro coincide, o acesso é negado. Abaixo temos um exemplo do arquivo: