Prévia do material em texto
Administração do
SGBD PostgreSQL
Unidade 1
Conhecendo o banco de dados PostgreSQL
Diretor Executivo
DAVID LIRA STEPHEN BARROS
Gerente Editorial
CRISTIANE SILVEIRA CESAR DE OLIVEIRA
Projeto Gráfico
TIAGO DA ROCHA
Autoria
CAMILA FREITAS SARMENTO
AUTORIA
Camila Freitas Sarmento
Sou formada em Telemática com mestrado em Ciência da
Computação e, atualmente, doutoranda na área de Engenharia de Software,
com uma experiência técnico-profissional na área de Soluções Digitais
(Redes e Programação Back-End) de mais de sete anos. Atualmente sou
Analista de Informática – Programadora Web Back-End no Instituto Senai de
Tecnologia em Automação Industrial (IST-Senai). Fui professora substituta
na Universidade Estadual da Paraíba (UEPB) e atuei como professora
substituta e, posteriormente, como tutora no Instituto Federal de Educação,
Ciência e Tecnologia da Paraíba (IFPB). Sou apaixonada pelo que faço e
adoro transmitir minha experiência àqueles que estão iniciando em suas
profissões. Por isso fui convidada pela Editora Telesapiens a integrar seu
elenco de autores independentes. Estou muito feliz em poder ajudar você
nesta fase de muito estudo e trabalho. Conte comigo!
ICONOGRÁFICOS
Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez
que:
OBJETIVO:
para o início do
desenvolvimento de
uma nova compe-
tência;
DEFINIÇÃO:
houver necessidade
de se apresentar um
novo conceito;
NOTA:
quando forem
necessários obser-
vações ou comple-
mentações para o
seu conhecimento;
IMPORTANTE:
as observações
escritas tiveram que
ser priorizadas para
você;
EXPLICANDO
MELHOR:
algo precisa ser
melhor explicado ou
detalhado;
VOCÊ SABIA?
curiosidades e
indagações lúdicas
sobre o tema em
estudo, se forem
necessárias;
SAIBA MAIS:
textos, referências
bibliográficas e links
para aprofundamen-
to do seu conheci-
mento;
REFLITA:
se houver a neces-
sidade de chamar a
atenção sobre algo
a ser refletido ou dis-
cutido sobre;
ACESSE:
se for preciso aces-
sar um ou mais sites
para fazer download,
assistir vídeos, ler
textos, ouvir podcast;
RESUMINDO:
quando for preciso
se fazer um resumo
acumulativo das últi-
mas abordagens;
ATIVIDADES:
quando alguma
atividade de au-
toaprendizagem for
aplicada;
TESTANDO:
quando o desen-
volvimento de uma
competência for
concluído e questões
forem explicadas;
SUMÁRIO
Conceitos e competências gerais de um banco de dados ....... 12
Conceitos e competências gerais de um banco de dados ............................. 12
Profissionais e atividades envolvidas ................................................................................ 14
Sistema de banco de dados e o SGBD ........................................................................... 15
Abstração de dados em um SGBD ................................................................ 18
Principais funções de um SGBD ...................................................................... 19
História e evolução do PostgreSQL .....................................................22
História do banco de dados ...................................................................................................22
Modelo Hierárquico ....................................................................................................24
Modelo em Rede ..........................................................................................................25
Modelo Relacional ...................................................................................26
Modelo Orientado a Objetos ...............................................................................28
Evolução do PostgreSQL ...........................................................................................................29
PostgreSQL e a linguagem SQL ANSI ................................................. 31
Data Manipulation Language (DML) ..................................................................................34
Consultas (INSERT, UPDATE, DELETE e SELECT) ...............................34
INSERT ..............................................................................................................34
UPDATE ............................................................................................................35
DELETE ............................................................................................................ 36
SELECT ............................................................................................................ 36
Subconsultas e consultas JOINS ......................................................................37
DDL – Data Definition Language ......................................................................................... 39
DCL – Data Control Language .............................................................................................. 39
DTL – Data Transaction Language ..................................................................................... 40
Instalação do PostgreSQL ....................................................................... 41
Instalação no Windows ...............................................................................................................44
Instalação no Linux ....................................................................................................................... 49
Instalação no Mac OS .................................................................................................................. 51
9
UNIDADE
01
Administração do SGBD PostgreSQL
10
INTRODUÇÃO
Você sabia que a área de administração de banco de dados
e linguagens é essencial dentre as profissões de tecnologia da
informação? Principalmente em tempos atuais em que muitas empresas
estão atualizando seus serviços com novas tecnologias ou migrando
– antes eram somente presenciais – para o atendimento remoto. O
banco de dados de uma empresa armazena e gerencia os bens mais
valiosos e que precisam ser acessados constantemente com respostas
rápidas e assertivas. Sendo assim, com um mercado cada dia mais
competitivo e acelerado, torna-se imprescindível a contratação de
profissionais para garantir a migração de sistemas, o gerenciamento
dos dados, o monitoramento de desempenho etc. E essa será a sua
principal responsabilidade. E para cumprir essas responsabilidades são
exigidos conhecimentos adequados, pois são informações críticas à
empresa! E então? Vamos nessa compreender como tudo funciona? Ao
longo desta unidade letiva você vai mergulhar neste universo!
Administração do SGBD PostgreSQL
11
OBJETIVOS
Olá. Seja muito bem-vindo à Unidade I. Nosso objetivo é auxiliar
você no desenvolvimento das seguintes competências profissionais até o
término desta etapa de estudos:
1. Definir o conceito de banco de dados, conhecendo suas
competências gerais e finalidades.
2. Compreender a origem e história do PostgreSQL no contexto dos
SGBDs.
3. Entender como funciona a arquitetura do PostgreSQL no
contexto das aplicações que o acessam e atualizam por meio da
linguagem SQL.
4. Instalar o PostgreSQL em um servidor de dados.
E aí? Pronto para embarcar rumo ao sucesso? Então venha comigo
conhecer sobre esse assunto incrível e que vai deixá-lo preparado para
dar os primeiros passos em direção à satisfação profissional. Ao trabalho!
Administração do SGBD PostgreSQL
12
Conceitos e competências gerais de um
banco de dados
OBJETIVO:
Ao término deste capítulo você será capaz de entender
a definição de um SGBD e suas principais características.
Isso será fundamental para o exercício de sua profissão.
As pessoas que tentaram administrar um banco de dados
sem a devida instrução tiveram problemas ao manusear o
banco e perderam informações importantes da empresa.
E então? Motivado para desenvolver essa competência?
Então vamos lá. Avante!
Conceitos e competências gerais de um
banco de dados
Você sabiaque o banco de dados pode ser considerado a parte
mais importante e valiosa de uma empresa? Pois é! Ele é responsável
por receber dados e fornecer informações (quando bem organizado)
essenciais para a produtividade da empresa e experiência do usuário,
além de impactar na tomada de decisão, alinhamento de informações
entre a equipe e nos resultados de uma empresa.
Antes de conhecermos a definição de um banco de dados, devemos
ter ciência dos seguintes termos: dado, informação e conhecimento. Você
sabia que o dado é conhecido como a matéria-prima da informação?
Isso mesmo! Sabe por quê? Porque são informações não tratadas que,
isoladamente, não possuem nenhum significado. E o que é informação?
Já sabe, né? São dados agrupados e tratados para que possamos extrair
significado e compreensão. E, assim, compreender a realidade de
determinada informação, gerando o conhecimento.
Dito isso, podemos entender que eles se relacionam entre si de
forma gradativa, como se fosse uma pirâmide para o conhecimento.
Sendo assim, podemos dizer que o conjunto de dado, informação e
conhecimento pode estabelecer a tomada de decisão de uma empresa.
Vejamos melhor com base na figura 1.
Administração do SGBD PostgreSQL
13
Figura 1 - Relacionamento entre dado, informação e conhecimento
Conhecimento
Informação
Dado
Fonte: Elaborado pela autora (2021).
EXPLICANDO MELHOR:
Podemos utilizar o Censo Demográfico como exemplo. O
Censo coleta os dados por meio de uma pesquisa com
os habitantes de um determinado território. Então, após
o recolhimento e a agrupação dos dados, tem-se as
informações acerca daquela população. Tais como: número
de mulheres, média salarial etc. Sendo assim, com as
informações reunidas e analisadas, podemos compreender
determinado evento ou tomar alguma decisão com base
nessas informações, isto é, identificar onde a saúde deve
ser priorizada, qual a melhor cidade para investir em um
polo industrial, entre outras possibilidades.
Para o banco de dados (BD), do inglês Database, não existe uma
definição precisamente formal. Contudo, pode-se dizer que um banco
de dados é um conjunto, logicamente coerente, de dados mutuamente
relacionados entre si e que foram armazenados com um propósito
específico.
Você já teve experiência com banco de dados? Se refletirmos
um pouco, podemos perceber que os bancos de dados estão sempre
presentes em nossas rotinas e o acessamos constantemente, por
exemplo: quando realizamos uma compra on-line, alguma movimentação
financeira, serviços de e-mail, acesso às redes sociais e vários outros
serviços em nuvem.
Administração do SGBD PostgreSQL
14
Profissionais e atividades envolvidas
Agora que você entende o que é um banco de dados, você pode
se perguntar: “Quem vai utilizar?” ou “Quem trabalha com isso?”. Um banco
de dados pode ser utilizado por diversos usuários e profissionais que
podemos classificar da seguinte forma:
• Administrador de Dados (DB): responsável pela organização
lógica dos dados a fim de fornecer informações para a tomada de
decisão da empresa. Mantém atualizado o modelo de dados da
empresa garantindo a consistência com o modelo de negócios,
assegurando a qualidade da informação e a representação mais
fidedigna possível com a realidade.
• Administrador de Bancos de Dados (DBA): responsável por autorizar
acessos, coordenar a manutenção e o monitoramento dos dados
a fim de garantir o melhor desempenho, acesso e segurança em
plataformas de hardware e software.
• Projetista do banco de dados (DB designer): profissional que
escolhe a estrutura mais adequada para a representação e
armazenamento dos dados. É ele que realiza a definição das
tabelas, índices etc.
• Usuário final: usuário que interagem com o banco de dados
por meio de aplicações e linguagens em diferentes níveis, seja
realizando operações de consultas avançadas, seja por meio de
aplicações preestabelecidas para o acesso.
• Analista de Sistemas e Programadores: estabelece os requisitos
que carecem para os usuários e implementa as especificações
desenvolvendo, testando, documentando, depurando e mantendo
os programas.
Você sabia que há uma enorme confusão quanto à atuação de um
profissional DB e DBA? Sobretudo em pequenas empresas nas quais a
atuação não é tão requisitada. Contudo, em grandes empresas essa
diferença e atuação são bastante claras e necessárias. Pois é! Mas agora
você já sabe e está familiarizado com a diferença. Não é mesmo? Pois,
Administração do SGBD PostgreSQL
15
enquanto um cuida da parte técnica e física dos dados (DBA), o outro
(DA) se encarrega da administração dos dados, focando nos aspectos de
negócio da empresa. E a atuação das duas funções em uma empresa é
chamada de Processo de normalização.
SAIBA MAIS:
Quer saber mais sobre o processo de normalização?
Recomendamos o acesso à seguinte fonte de consulta
e aprofundamento: Artigo: “Normalização de dados: um
desafio para o projetista de banco de dados” (BECK; LUZ,
2010), acessível aqui.
Sistema de banco de dados e o SGBD
Agora que você entende o que é um banco de dados e os atores
envolvidos, você pode se perguntar: “Existe algum meio em que eles
realizam o gerenciamento de tudo isso?”. Pois é exatamente isso que vamos
te explicar: o Sistema de Banco de Dados e o Sistema de Gerenciamento
de Banco de Dados que, inclusive, são distintos.
Independentemente da aplicação, seja para sistemas de gestão de
empresas (ERP, do inglês Enterprise Resource Planning), relacionamento
com o cliente (CRM, do inglês Customer Relationship Management) ou
controle financeiro, a base de dados de uma empresa tem alto valor
agregado.
Quando se trata de dados é fundamental para os usuários (usuários
finais ou profissionais) realizar a inserção e o acesso desses dados que
estão armazenados, para isso, tem-se o Sistema de Gerenciamento
de Banco de Dados – SGBD (do inglês, Database Management System
– DBMS) que podemos definir como um sistema que reúne o processo
de acepção, construção, compartilhamento e manipulação do banco de
dados.
Para compreendermos melhor um SGBD vejamos, como exemplo,
a figura 2. Podemos considerar uma empresa de calçados que possui
vários sistemas, entretanto, o acesso ao banco de dados ocorre com base
no Sistema de Gerenciamento.
Administração do SGBD PostgreSQL
http://revistas.unifenas.br/https://scorm.onilearning.com.br/scorm.php?scorm=23363e0c108d44b9f7e78e6d9f09e0ce&estudante=0&nome=&licao=&sessao=c1od13buu70rdsee5pgas1fc4n/RE3C/article/view/45
16
Figura 2 - Modelo de uma implementação SGBD
Fonte: Elaborado pela autora (2021).
Ainda assim, para promover a segurança da informação e a
organização dos dados que estão armazenados no banco de dados,
é necessário realizar a abstração dos dados para os usuários a fim de
simplificar a interação.
Para isso, temos o Sistema de Banco de Dados – SBD, que é uma
composição dos Programas de Aplicação (PA) do usuário (por exemplo:
sistema de emissão de relatório de uma empresa, cálculo da média salarial
dos funcionários etc.) e do SGBD, que, por sua vez, realiza consultas no
banco de dados.
Então, podemos entender que o SGBD (Sistema de Gerenciamento
de Banco de Dados), o BD (Banco de Dados) e os PA (Programas de
Aplicação) compõem o sistema de banco de dados. Vejamos como ocorre
a organização na figura 3.
Administração do SGBD PostgreSQL
17
Figura 3 - Visualização Simplificada do Sistema de Banco de Dados
Fonte: Elaborado pela autora (2021).
Ainda assim, o Sistema de Banco de Dados pode apresentar-se
como:
• Centralizado - em que um computador central fica responsável
por todo o processamento da aplicação, tais como: funções do
sistema, programas aplicativos, interfaces dos programas e
funcionalidades oferecidas pelo SGBD.
• Distribuído - em que um SGBD gerencia múltiplos banco de dados
que estão logicamente inter-relacionados, mas em espaços físicosdiferentes, conectados por meio de uma rede de comunicação.
Podendo ser capazes de executar, de forma autônoma, diversos
programas.
Com o avanço da tecnologia e a expansão de empresas, o uso
de um Sistema de Banco de Dados Distribuído tornou-se amplamente
utilizado e recomendado por profissionais da área por ser mais eficaz e
econômico, oferecendo o gerenciamento de banco de dados distribuído e
apresentar-se aos usuários de forma transparente. Agora que você já sabe
a diferença entre um SGBD e um SBD! A seguir, veremos em detalhes a
arquitetura de um SGBD.
Administração do SGBD PostgreSQL
18
Abstração de dados em um SGBD
Ainda há pouco, vimos alguns conceitos e a diferença entre um
SBD e um SGBD. Mas como o SBGD apresenta os dados aos usuários?
Falamos também sobre o SGBD apresentar os dados aos usuários de
forma transparente. E como é caracterizada essa apresentação? É isso
que iremos aprender agora.
O ANSI/SPARC – Instituto Americano de Normas Nacionais (do
inglês, American National Standards Institute)/Comitê de Planejamento e
Requisitos de Padrões (do inglês, Standards Planning And Requirements
Committee) – definiu uma arquitetura baseada em três níveis de abstração
de dados para um sistema de gerenciamento, considerando os vários
níveis de conhecimento/interação do usuário. Sendo assim, temos os
seguintes níveis de abstração dos dados: nível externo, nível conceitual
e nível interno.
O primeiro nível, chamado de nível externo (ou nível de visões)
é o nível mais alto da abstração que utiliza um esquema externo. Ele
descreve o banco de dados, por meio de objetos e relacionamentos,
conforme as necessidades do usuário. Faz uma ponte entre a modelagem
e a implementação do modelo em um tipo de SGBD.
Considerando o nível conceitual (ou nível lógico), o segundo
nível utiliza um esquema conceitual. Pois descreve todos os dados que
serão armazenados no BD, utilizando conceitos de entidades, atributos
e relacionamentos, sem abordar a implementação da estrutura física de
armazenamento.
O terceiro nível, nível interno (ou nível físico), é especificado conforme
o SGBD e contém detalhes de implementação da estrutura de dados no
modo físico de armazenamento e caminho dos dados. Apresentando-se,
dessa forma, como o nível mais baixo de abstração dos dados.
Em um sistema de banco de dados, poderá haver múltiplos níveis
externos, pois vale salientar que o banco de dados em sua completude
não interessa aos usuários, apenas uma visão que consista na parte dos
dados de interesse. Vejamos o esquema na figura 4.
Administração do SGBD PostgreSQL
19
Figura 4 - Esquema de níveis de abstração
Fonte: Elaborado pela autora (2021).
Ainda, na arquitetura de três níveis (ANSI/SPARC), além de
considerar os vários coeficientes de conhecimento/interação do usuário
que o banco de dados oferece, também oferece a Independência de
Dados, isto é, caso ocorra alguma modificação em um esquema, os
outros níveis não serão afetados.
São considerados dois níveis em relação à Independência dos
dados: Independência física, permite a modificação dos dados sem afetar
os altos níveis, restringindo-se apenas à parte física; e a Independência
lógica, é a possibilidade de modificar o esquema conceitual sem afetar os
programas aplicativos.
Tais definições de nível nunca se tornaram um padrão formal, mas a
ideia de independência de dados é amplamente adotada.
E então? Está gostando do assunto? Agora vamos entender as
principais funções de um SGBD? Vamos nessa!
Principais funções de um SGBD
Falamos no início do capítulo que um banco de dados pode ser
considerado a parte mais valiosa da empresa. Posteriormente, explicamos
Administração do SGBD PostgreSQL
20
o que são Sistemas de Banco de Dados e Sistemas de Gerenciamento
de Banco de Dados. Sendo assim, a definição você já sabe! E sobre as
funções? Você parou para se perguntar quais são as funções, propriamente
ditas, de um SGBD? Pois é! Iremos falar exatamente sobre isso agora.
IMPORTANTE:
Um SGBD pode utilizar diversas abordagens para atender
ao propósito da modelagem e manutenção de dados.
Contudo, fornece o mesmo conjunto de requisitos
funcionais e é ele quem realiza a comunicação entre o
banco de dados e os usuários do sistema, levando em
consideração, também, os administradores de sistemas.
Sendo assim, um Sistema de Gerenciamento de Banco de Dados
(SGBD) possui várias funções. Então, separamos as principais:
• Segurança - garante a segurança dos dados para que as
informações sejam lidas/editadas apenas por usuários autorizados.
Ainda, realiza o controle de operação de acesso (recuperação ou
modificação).
• Controle de Integridade - consiste na especificação do padrão
de formato para os dados ou valores assumidos como um padrão.
• Controle de concorrência - assegura que as transações
ocorram de forma mais segura possível e sigam as regras ACID
(Atomicidade, Consistência, Isolamento e Durabilidade).
• Recuperação e tolerância a falhas - fornece recursos para cópia
de segurança e restauração dos dados caso ocorra alguma falha.
SAIBA MAIS:
Quer se aprofundar neste tema? Recomendamos o acesso
à seguinte fonte de consulta e aprofundamento: Artigo:
“Sistema gerenciador de banco de dados: Sgbd exist xml”
(TANAKA et al., 2012), acessível aqui.
Administração do SGBD PostgreSQL
http://periodicos.unifacef.com.br/https://scorm.onilearning.com.br/scorm.php?scorm=23363e0c108d44b9f7e78e6d9f09e0ce&estudante=0&nome=&licao=&sessao=c1od13buu70rdsee5pgas1fc4n/resiget/article/view/288.
21
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu tudo?
Agora, só para termos certeza de que você realmente
entendeu o tema de estudo deste capítulo, vamos
resumir tudo o que vimos: nesta Unidade, o conceito de
dado, informação e conhecimento foi apresentado para,
posteriormente, definirmos banco de dados. Apresentamos
o conceito de Sistema de Banco de Dados e os elementos
que o compõem e mostramos a diferença entre um
Sistema de Banco de Dados – SBD (que pode apresentar-
se como centralizado e distribuído) e um Sistema de
Gerenciamento de Banco de Dados – SGBD. Agora você
não vai se confundir, não é mesmo? Conversamos também
sobre os profissionais e atividades envolvidas com banco
de dados e apresentamos outro conceito que muitas
pessoas se confundem: um profissional DB e um DBA, você
lembra qual é? Ah! Também falamos sobre abstração de
dados e os níveis de abstração que são: físico, conceitual e
externo; e, ainda, abordamos a independência de dados no
contexto da arquitetura ANSI/SPARC.
Administração do SGBD PostgreSQL
22
História e evolução do PostgreSQL
OBJETIVO:
Olá! Agora que você já leu sobre os conceitos e definições
sobre o SGBD e já sabe qual sua função, vamos conhecer
um pouco mais falando sobre a evolução? Pois conhecer
a história da evolução é fundamental para a compreensão
da organização de um banco de dados comum. Ao
término deste capítulo você será capaz de entender a
história e evolução do PostgreSQL, além da evolução da
representatividade dos dados por meio dos Modelos de
Dados. Ficou curioso(a)? Vamos à leitura então!
História do banco de dados
No tópico anterior vimos que o banco de dados pode ser
considerado o bem mais valioso de uma empresa. Você lembra? Você
viu também que existe uma forma de gerenciamento dos dados para
garantir a entrega ao usuário de forma adequada, seja profissional da área
ou usuário final.
Nesse sentido, você parou para se perguntar como tudo isso
começou? Os Sistemas de Gerenciamento de Banco de Dados são uma
evolução dos Sistemas de Arquivos com armazenamento em disco.
Antes disso, o conceito do surgimento de banco de dados iniciava
a partir do armazenamento dos dados em fichas de papel e organizado
em pastas. E isso dava muito trabalho para localizar alguma informação,
principalmente quando as pastas não estavam bem organizadas e
catalogadas.
Vocêjá presenciou alguma empresa com um caso assim? E
você, como organiza seus arquivos? É muito diferente da realidade
de antigamente? Você já deve ter visto empresas ainda com essa
metodologia, mas, inevitavelmente, grandes empresas precisam atender
seus clientes com a maior eficiência possível e, para isso, um banco de
dados que ofereça melhores condições é essencial.
Administração do SGBD PostgreSQL
23
Com a evolução dos arquivos manuais, ocorreu a migração para
os arquivos digitais que ficavam armazenados em disco com a ajuda do
sistema de arquivos do Sistema Operacional.
Contudo, surgiu a necessidade de maior eficiência (tempo e espaço).
Sendo assim, no início da década de 1960, Charles Willian Bachman,
projetou o primeiro Sistema de Gerenciamento de Banco de Dados de
propósito geral, chamado Integrated Data Store (IDS). Ele foi o primeiro a
receber o Prêmio Turing em 1973.
O prêmio Toring é outorgado pela Association for Computing
Machinery (ACM) e é destinado, anualmente, a uma pessoa que realizou
grandes contribuições para a computação, cujas contribuições sejam
duradouras e fundamentais para a área.
Posteriormente, ainda na década de 1960, uma empresa dos
Estados Unidos, IBM (International Business Machines Corporation),
desenvolveu o IMS (Information Management System), o SGBD, que
utilizava (mas que ainda é utilizado em vários locais) o modelo hierárquico
para a estruturação dos dados.
VOCÊ SABIA?
Você sabia que o sistema de passagens aéreas era
completamente manual? Exatamente! E um simples
processo de reserva custava entre 90 minutos até 3 horas
para concluir. Então, o sistema de passagens aéreas,
SABRE, foi desenvolvido em parceria com a IBM e hoje é a
principal fonte de informações do setor aéreo.
O ano de 1970 é considerado um marco histórico para a área de
bancos de dados que alterou todo o panorama comercial, pois houve uma
grande evolução e uso dos serviços de banco de dados, cuja empresa
IBM, por meio de Edgar Frank Codd (que também ganhou o prêmio
Tuning em 1981), projetou uma nova representação de dados, o Modelo
de Dados Relacional.
A partir de então, usuários poderiam acessar os bancos de dados
sem que seja necessário conhecimento técnico e isso permitiu que o uso
Administração do SGBD PostgreSQL
24
do SGBD com essa estrutura de representação fosse amplamente utilizado
e diversas empresas ampliaram seus sistemas de armazenamento
permitindo consultas mais complexas.
Em 1976, Peter Chen projeta o modelo Entidade-Relacionamento
(ER), proporcionando aos projetistas a possibilidade de modelar o banco
de dados sem se preocuparem com a estrutura lógica das tabelas.
No final da década de 80, foi desenvolvida a Linguagem de Consulta
Estruturada, Structured Query Language (SQL), que se tornou um padrão
mundial, mesmo após o surgimento de várias outras linguagens, mas que
não deram certo, tais como: SQL92 e SQL2.
Mencionamos há pouco sobre alguns modelos de dados. Você
notou? Mas você sabe o que é um Modelo de Dados? Modelo de Dados
é uma forma de representação resultante de uma abstração. Um Modelo
de Dados é descrição da estrutura dos dados contidos no banco de dados
representados por meio de um modelo gráfico.
Vamos agora falar sobre eles. Veremos os principais modelos
de dados conforme sua evolução, que são: Modelo de Rede; Modelo
Hierárquico, Modelo Relacional e Modelo Orientado a Objetos.
Modelo Hierárquico
Foi o primeiro a ser estruturado. Esse modelo estrutura-se
seguindo uma hierarquia de segmentos, isto é, utiliza árvores para a
representatividade lógica dos dados, na qual os níveis inferiores (também
chamados de registros-filhos) dependem dos níveis acima (ou registros-
pai) e que estão conectados por meio de ligações.
Tais ligações são associações entre dois registros (considera-se que
um registro é uma coleção de campos – ou tributos). Dessa forma, no
modelo hierárquico, a representatividade dos dados possui cardinalidade
1:N, cuja organização ocorre partindo da raiz (o registro mais alto) para os
registros-filhos da esquerda para a direita.
Cardinalidade 1:N significa que dentro da representatividade dos
dados pode haver a ligação de 1 registro para vários (1:N).
Administração do SGBD PostgreSQL
25
Considere como exemplo um departamento de hospital. Então um
departamento pode ter vários médicos e um médico ter vários pacientes.
Nesse sentido, ocorrerá algumas inconveniências com os dados: se um
paciente pertencer a mais de um departamento, os dados (nesse modelo)
deverão ser replicados, ocasionando a redundância, inconsistência e
provável perda de informações. Vejamos o esquema na figura 5.
Figura 5 - Modelo Hierárquico.
Departamento
Médico
Paciente
Fonte: Elaborado pela autora (2021).
Diante desse contexto, podemos entender que um registro
(paciente) pode estar associado a outros registros (departamentos) desde
que seus dados sejam replicados. Dessa forma, a replicação apresenta as
seguintes desvantagens para uma base de dados:
• Cada registro-pai pode ter vários registros-filhos.
• Não se admite um registro-filho com mais de um registro-pai.
• Dois segmentos podem ter apenas uma relação.
• O acesso aos registros-filhos ocorre sempre a partir da raiz (o
registro mais alto) para os registros-filhos a cada consulta ao
banco e sempre na mesma ordem.
Modelo em Rede
O Modelo em Rede organiza-se semelhantemente ao Modelo
Hierárquico e é representado por ligações (SET) que apontam o
relacionamento entre a coleção de registros.
Administração do SGBD PostgreSQL
26
O Modelo em Rede é conduzido a fim de minimizar os problemas
do modelo antecessor, no Modelo Hierárquico, agora os registros-filhos
podem ligar-se a mais de um registro-pai.
Sendo assim, tais ligações permitem que os dados possam ser
acessados sem ter de necessariamente passar pela raiz, isto é, o acesso
aos segmentos pode acontecer nos dois sentidos (de baixo para cima
e vice-versa), já no Modelo Hierárquico, o acesso ocorre somente do
superior para o inferior.
Considere como exemplo uma fábrica (ver figura 6) que tem os
setores de couro e calçados, e esses dois podem trabalhar em conjunto
e produzir botas em couro. Sendo assim, no modelo em rede, perde-se a
restrição do modelo em hierarquia.
Figura 6 - Modelo em Rede
Calçados
Sandália
Couro
Bota
Fábrico
Fonte: Elaborado pela autora (2021).
Modelo Relacional
O Modelo Relacional é amplamente utilizado por oferecer alto grau
de independência dos dados e proporcionar uma definição simples e com
alto desempenho para armazenamento e recuperação de dados. Além
disso, separa a representação conceitual dos dados do armazenamento
físico. Vamos considerar como exemplo a mesma fábrica (ver figura 7) que
pode ter vários funcionários. Causando a relação de muitos funcionários
que pertencem a uma fábrica. No caso de considerarmos setor, em vez
de fábrica, a relação seria de muitos (setores) para muitos (funcionários).
Administração do SGBD PostgreSQL
27
Figura 7 - Modelo em Rede
Fábrica
Funcionário
Pertence
Fonte: Elaborado pela autora (2021).
Nesse modelo é estruturada uma visualização dos dados em
tabelas inter-relacionadas, cuja relação é composta por atributos (ou
campos) que identificam o tipo de dado que o banco armazena e linhas
(uma instância do esquema) que são chamadas de registro (tupla).
Na figura 8 podemos observar uma representação gráfica de
uma tabela que possui cinco campos, sendo: número, nome, data de
nascimento, gênero e número do departamento.
Figura 8 - Representação gráfica de uma tabela
Fonte: Elaborado pela autora (2021).
Vale considerar que a tabela pode conter milhares de registros
(linhas) e é na fase inicial, Projeto do Banco de Dados, que os campos
da tabela são preestabelecidos e cada campo possui sua classificação
de acordo com o tipo de dado que será armazenado, tais como: texto,
decimal, data, inteiroetc.
Administração do SGBD PostgreSQL
28
No caso da Chave Primária, ela pode assumir um valor de
autoincremento, ou seja, à medida que vai ocorrendo a inserção dos
registros, o valor é autoincrementado. Dessa forma, ele se torna essencial
para a identificação de um registro específico na tabela. Para o caso de
arquivos, existe um tipo de armazenamento chamado Binary Large Objects
(BLOB), que pode ser fotos, documentos em PDF, vídeos etc.
Modelo Orientado a Objetos
Os Modelos Orientados a Objetos são utilizados para o tratamento
de objetos complexos (tais como: textos e imagens) e dinâmicos (tais
como: simulações e programas) que são organizados de forma hierárquica
com seus respectivos tipos e subtipos, e que também podem conter
referências para outros objetos.
VOCÊ SABIA?
Você sabia que em um projeto de banco de dados com o
Modelo Orientado a Objetos o projetista tem a liberdade
para especificar tanto a estrutura quanto a complexidade
dos objetos quando tratando-se das operações que podem
ser aplicadas aos objetos.
Vamos considerar como exemplo a mesma fábrica que pode ter
vários funcionários. Contudo, a descrição do Modelo de Dados é análoga
ao desenvolvimento de um modelo de classe no formato UML (Unified
Modeling Language). Vejamos melhor na figura 9.
Figura 9 - Modelo Orientado a Objetos
Fonte: Elaborado pela autora (2021).
Administração do SGBD PostgreSQL
29
E então? O que achou desse assunto? Mais à frente iremos te
mostrar na prática! Não é legal? Por enquanto estamos esquecendo
de falar sobre alguma coisa? Claro! O nosso querido PostgreSQL e sua
história não poderia ficar de fora. Vamos lá conhecer!
Evolução do PostgreSQL
O PostgreSQL é um SGBD objeto-relacional, desenvolvido
pelo PostgreSQL Global Development Group, com mais de 30 anos de
desenvolvimento ativo.
O PostgreQSL é um projeto de código aberto, isto é, de forma
aberta e pública permite que desenvolvedores manipulem e modifiquem
suas versões. Para isso, o grupo possui uma equipe de committers (uma
equipe de desenvolvedores) para avaliar o código fornecido pelo editor
voluntário e, posteriormente, aceitar ou recusar uma nova versão.
O PostgreSQL teve início com o projeto chamado Ingres no
Departamento de Ciência da Computação da Universidade de Berkeley
na Califórnia sob a liderança de Michael Stonebraker. Em 1986, a equipe
publicou uma série de documentos que descrevia a base do sistema, e
daí em diante várias outras versões com novos suportes foram lançadas.
O PostgreSQL admite que as funções definidas pelos
desenvolvedores também sejam escritas em outras linguagens (tais como:
PL/pgSQL, PL/Python, PL/Java, PL/Perl); são as chamadas Linguagens
Procedurais (PLs).
Na documentação do PostgreSQL, o grupo afirma que, em 1994,
Andrew Yu e Jolly Chen adicionaram um interpretador da linguagem SQL
ao POSTGRES chamado Postgres95, que foi totalmente escrito em ANSI C.
Posteriormente, em 1996, escolheram um novo nome para o Postgres95,
o PostgreSQL, para refletir o relacionamento entre o POSTGRES original e
as versões mais recentes com capacidade da linguagem SQL.
ACESSE:
Quer saber mais sore os releases lançadas do PostgreSQL?
Então acesse aqui.
Administração do SGBD PostgreSQL
http://pgdocptbr.sourceforge.net/pg80/release.html#RELEASE-8-0
30
Sendo assim, considerando a evolução história do PostgreSQL,
temos:
• 1986-1995: Início do projeto na Universidade de Berkeley.
• 1996-1998: Novas correções de bugs.
• 1999-2001: Relacionamento do Postgres e o Padrão SQL.
• 2002-2005: Suporte nativo para Windows.
• 2005-2011: Novas funcionalidades avançadas.
SAIBA MAIS:
Quer se aprofundar neste tema? Recomendamos o acesso
à seguinte fonte de consulta e aprofundamento: Artigo:
“Uma reflexão sobre banco de dados orientados a objetos”
(BOSCARIOLI et al., 2006), acessível aqui.
RESUMINDO:
Como foi sua leitura? Gostou de saber toda essa evolução
que aconteceu? Viu a importância de conhecer a história da
evolução da organização de um banco de dados comum?
Vamos pensar em tudo o que vimos para revisar tudo o que
aprendemos: vimos nesta Unidade o marco histórico para
a área de bancos de dados. Lembra? Falamos do Modelo
Hierárquico e agora sabemos que são associações entre
dois registros. Depois vimos o Modelo em Rede, que é uma
extensão do Modelo Hierárquico que ganha a possibilidade
dos registros-filhos se conectarem a vários registros-pai
e com isso permite que os dados possam ser acessados
sem ter de necessariamente passar pela raiz. Também
conhecemos o famoso e utilizado Modelo Relacional, que
proporciona uma definição simples e com alto desempenho
para armazenamento e recuperação de dados e, depois,
o Modelo Orientado a Objetos, que é utilizado para o
tratamento de objetos complexos e dinâmicos. Também
conhecemos a evolução de PostgreSQL, passando por
onde tudo começou.
Administração do SGBD PostgreSQL
https://deinfo.uepg.br/~conged/artigo4.pdf.
31
PostgreSQL e a linguagem SQL ANSI
OBJETIVO:
Se você já chegou até aqui foi porque já viu os conceitos
e definições de SGBD e conheceu a história e evolução
do banco de dados e do PostgreSQL. Está preparado
para o que vem agora? Antes de você realizar a prática
do PostgreSQL, é um pré-requisito que você conheça a
linguagem SQL ANSI. Mas não se preocupe, o aprendizado
é simples e tranquilo de compreensão. Vamos lá?
O SQL (do inglês, Structured Query Language ou Linguagem de
Consulta Estruturada) foi criado no início dos anos 1970 no laboratório
da IBM e teve seu nome SEQUEL. É uma linguagem utilizada para
manipular banco de dados do tipo relacional por meio de um Sistema de
Gerenciamento de Banco de Dados.
O PostgreSQL Global Development Group desenvolveu um projeto
de tradução para o português do Brasil e disponibilizou de forma pública
toda a documentação.
ACESSE:
Neste link, você terá acesso a todo o material da
documentação sobre a linguagem SQL. Por meio dele, você
pode consultar, baixar, copiar e distribuir (conforme sua
licença TPL – The PostgreSQL License). Além disso, por meio
do site, você terá acesso a atualizações da documentação,
tais como: a comparação entre o PostgreSQL e os
gerenciadores de banco de dados Microsoft SQL Server,
Oracle e IBM DB2. Ainda há seções sobre convenção da
linguagem e vários exemplos de utilização. Atualmente, a
versão 8.0.0 já se encontra traduzida na íntegra.
Sendo assim, estruturamos o material sobre a linguagem SQL
fazendo uma compilação do material disponibilizado pelo PostgreSQL
Global Development Group para uma melhor compreensão da linguagem
e como base introdutória para o PostgreSQL.
Administração do SGBD PostgreSQL
http://pgdocptbr.sourceforge.net/
32
Antes de entrarmos no conceito das declarações da linguagem,
devemos conhecer os operadores aritméticos, as cláusulas e as funções
do SQL, que são:
Operadores Aritméticos
• Lógicos: AND, OR, NOT
• Aritméticos: +, -, *, /
• Relacionais: = (igual a), > (maior que), < (menor que), >= (maior
igual a), <= (menor igual a), <> (diferente de), LIKE, BETWEEN
• Conjunturais: ANY, ALL, EXIST, NOT EXIST, IN, NOT IN
Cláusulas
• FROM: especifica a tabela em que os registros serão selecionados.
• WHERE: especifica a condição de seleção dos registros.
• GROUP BY: agrupa os registros especificados.
• HAVING: expressa a condição de seleção dos grupos de registros.
• ORDER BY: ordena os registros especificados.
• DISTINCT: seleciona os registros não repetidos.
Funções
• AVG (n): calcula o valor médio de uma coluna específica.
• COUNT (n): calcula a soma da quantidade de linhas (registros).
• MAX (n): retorna o maior valor de uma coluna buscada.
• MIN (n): retorna o menor valor de uma coluna buscada.
• SUM (n): calcula a soma dos valores de uma coluna.
Existem diversas funções SQL, são elas: funções de valores
simples, funções de grupos de valores, funções que devolvem valores
de caracteres, funçõesque devolvem valores numéricos, funções para
manipular datas e funções de conversão. Contudo, separamos as mais
usuais a fim de minimizar a quantidade de conteúdo apresentado. Haja
vista que nosso foco é o PostgreSQL, não é mesmo? Mas vale a pena
você conferir as demais.
Administração do SGBD PostgreSQL
33
O SQL interage com o SGBD para executar várias tarefas e permite
que todas as transações realizadas no banco de dados possam ser
intermediadas pelo SGBD utilizando essa linguagem.
Todavia, a linguagem SQL não possui uma padronização rígida.
Mas, apesar disso, é essencial seguir o padrão mais utilizado por motivos
de boas práticas. Sendo assim, temos a seguinte convenção:
• Convém a utilização de letra maiúscula para os comandos -
SELECT, WHERE, AND, OR, ORDER BY, HAVING, CREATE, ALTER,
INSERT, UPDATE, DELETE, entre outros.
• Convém a utilização de letra minúscula para os nomes de
funções, nomes de tabelas e colunas etc.
De acordo com Elmasri e Navathe (2005), a linguagem SQL é uma
linguagem abrangente por possuir comando para definição de dados,
consultas e atualizações.
As empresas desenvolvedoras de Sistemas de Gerenciamento de
Banco de Dados (SGBD) podem expandir a linguagem SQL padrão ANSI
para aceitar outros recursos que não são suportados na linguagem nativa,
tais como:
• Laços de repetição e desvio: while, IF, FOR.
• Comandos de manipulação de telas e relatórios.
• Comandos de manipulação de arquivos.
IMPORTANTE:
Apesar da ANSI (American National Standart Institute)
ter publicado um padrão para a linguagem SQL, outros
padrões surgiram, tais como: SQL2, SQL3 e o SQL99, e
independentemente da versão, a SQL disponibiliza quatro
tipos de linguagens: DML, Linguagem de Manipulação
de Dados; DDL, Linguagem de Definição de Dados; DCL,
Linguagem de Controle de Dados e; DTL, Linguagem de
Transação de Dados.
Administração do SGBD PostgreSQL
34
Diante desse contexto, apresentaremos as respectivas definições
das linguagens. Entretanto, neste capítulo abordaremos em detalhes
somente a DML por questões de organização do conteúdo e sincronização
com a prática. Dessa forma, ao longo do material, veremos as demais
linguagens com seus respectivos exemplos. Combinado assim?
Data Manipulation Language (DML)
Data Manipulation Language (DML) (do inglês, Linguagem de
Manipulação de Dados) é uma linguagem do SQL utilizada para a
realização de inclusões de informações; consultas de informações
armazenadas no banco de dados; modificações de informações e
exclusões de dados presentes em registros. Ainda, as DMLs possuem
tipos diferentes conforme os distribuidores de BD e há dois tipos de DML:
• Procedural: nesse tipo de linguagem, o código do programa
é escrito como uma sequência de instruções, que o usuário
especifica quais os dados são necessários e como obtê-los.
• Não procedural (declarativa): o usuário especifica apenas quais os
dados de interesse. Também são conhecidas na literatura como
linguagem funcional ou aplicativa.
O padrão estabelecido pela ANSI para a SQL é o não procedural
e cada declaração SQL é um comando declarativo, cuja capacidade
funcional é organizada pela palavra inicial da declaração. Vejamos seus
principais comandos no próximo item.
Consultas (INSERT, UPDATE, DELETE e SELECT)
Sabemos que o PostgreSQL nos possibilita gerenciar o banco de
dados. Contudo, para que possamos realizar um bom gerenciamento, é
essencial que compreendamos as consultas da linguagem SQL a fim de
promover a manipulação dos dados. Sendo assim, vejamos:
INSERT
O INSERT é declaração utilizada para inserir registros (também
conhecidos por tuplas ou linhas) em uma tabela de banco de dados.
Administração do SGBD PostgreSQL
35
A sintaxe da declaração INSERT dá-se da seguinte forma:
INSERT INTO tabela (coluna1, coluna2, ..., colunaN) VALUES (valor1,
valor2, ..., valorN);
A formatação do comando é essencial, pois, caso ocorra algum erro
de sintaxe, a nova linha não é adicionada à tabela do banco de dados e é
retornado um erro. Já para os casos em que a coluna não for especificada,
o valor padrão é utilizado.
INSERT INTO tabela_pagamento (nome_produto, data_venda, valor)
VALUES ('calculadora', '2020-08-05', 180);
Para os casos em que o comando seja para adicionar os valores
para todas as colunas da tabela existente no banco de dados, os nomes
das colunas podem não ser especificados. Vejamos:
INSERT INTO tabela_pagamento VALUES ('calculadora', '2020-08-05',
'180');
Para a inserção correta, é necessário seguir a mesma ordem dos
valores e das colunas. Também existem formas de inserção avançada,
chamada MULTIROW INSERT.
UPDATE
O UPDATE é declaração utilizada para modificar/editar registros
(tuplas) em uma tabela de banco de dados. Vale salientar que com o
UPDATE é possível alterar um ou mais registros que obedeçam à condição
estabelecida. A sintaxe da declaração UPDATE dá-se da seguinte forma:
UPDATE tabela SET coluna1=valor1, coluna2=valor2, ..., colunaN=valorN
WHERE condição;
Vamos considerar a atualização da tabela anterior para todos
os campos. Lembrando que: caso a atualização seja apenas para uma
coluna, as demais colunas não precisam constar na declaração SQL de
atualização. Vejamos:
Administração do SGBD PostgreSQL
36
UPDATE tabela_pagamento SET nome_produto='calculadora científica',
data_venda='2019-08-05', valor='350') WHERE ProdutoID=1;
DELETE
O DELETE é declaração utilizada para deletar registros (tuplas)
em uma tabela de banco de dados. Vale salientar que com o DELETE
também é possível alterar um ou mais registros que obedeçam à condição
estabelecida. A sintaxe da declaração DELETE dá-se da seguinte forma:
DELETE FROM tabela WHERE condição;
Vamos considerar remoção de todas as linhas da tabela em que o
nome do produto seja calculadora científica. Vejamos:
DELETE FROM tabela_pagamento WHERE nome_produto='calculadora
científica';
Já para o caso em que todas as linhas da tabela precisam ser
removidas, isto é, esvaziando a tabela, mas mantendo sua integridade,
temos a seguinte declaração:
DELETE FROM tabela_pagamento;
SELECT
O SELECT é declaração utilizada para obter um conjunto de
resultados de registros (tuplas) pertencentes a uma ou mais tabelas do
banco de dados. Vale salientar que com o SELECT também é possível
consultar diferentes tabelas.
A sintaxe da declaração SELECT dá-se da seguinte forma:
SELECT coluna1, coluna2, ..., colunaN FROM tabela;
Administração do SGBD PostgreSQL
37
Vamos considerar, como exemplo, a seleção de TODOS os campos
da tabela. Vejamos:
SELECT * FROM tabela_pagamento;
Para o caso em que desejamos selecionar apenas campos
específicos da tabela., temos como exemplo:
SELECT data_venda FROM tabela_pagamento;
Subconsultas e consultas JOINS
No caso de consultas mais avançadas, é possível realizar
subconsultas utilizando mais de uma instrução em uma declaração,
ou melhor, consultas dentro de consultas. Também realizar junções de
tabelas, as chamadas consultas JOINS, combinando linhas de duas ou
mais tabelas. Para ambos os casos, vamos utilizar as seguintes tabelas
como exemplo para todos os casos: Perceba que o que está conectando
as duas tabelas é a coluna do campo referência.
Quadro 1 – Tabela pagamento/estoque
Tabela pagamento
referência nome_produto valor
202 Calculadora 180
203 Teclado 220
204 Mouse 150
Tabela estoque
referência qtd_entrada qtd_saida
202 30 12
203 20 5
204 8 2
Fonte: Elaborado pela autora (2021).
Administração do SGBD PostgreSQL
38
Nesse caso, vejamos melhor o uso de subconsultas com o exemplo
a seguir, que realiza a remoção dos registros da tabela_pagamento
em que os registros que contenham o nome do produto da tabela_
pagamento sejam os mesmos da tabela_débito. Sendo assim, podemos
criar a seguinte instrução de subconsulta:
DELETE FROM tabela_pagamento WHERE referência IN (SELECT
referência FROM tabela_debito);
Todas as consultaspodem ser realizadas como subconsultas, ou
seja, entre parênteses, que retorna os registros e seus campos e que
também podem ser utilizadas expressões de subconsultas (EXISTS) e
combinações (CASE e EXISTS).
Vejamos agora um exemplo de uso de junções de tabelas,
realizando a junção dos campos qtda_saída e valor das tabelas em que a
referência seja a mesma. Vejamos:
SELECT qtd_saida, valor
FROM tabela_pagamento
INNER JOIN tabela_debito
ON tabela_pagamento.referencia = tabela_debito.referencia;
Existem diferentes tipos de junções de tabelas, tais como: LEFT
JOIN, RIGHT JOIN, FULL JOIN. Sendo assim, podemos resumir os
comandos visualizando a figura 10.
Figura 10 - Diagrama dos diferentes tipos de JOIN
Fonte: Elaborado pela autora (2021).
Administração do SGBD PostgreSQL
39
Em que:
• INNER JOIN: retorna registros que possuem valores
correspondentes nas duas tabelas.
• LEFT (OUTER) JOIN: retorna todos os registros da tabela da
esquerda (Tabela 1) e os correspondentes da tabela da direita
(Tabela 2).
• RIGHT (OUTER) JOIN: retorna todos os registros da tabela da direita
(Tabela 2) e os correspondentes da tabela da esquerda (Tabela 1).
• FULL (OUTER) JOIN: retorna todos os registros de ambas as
tabelas quando houver uma correspondência.
DDL – Data Definition Language
O DDL – Data Definition Language (do inglês, Linguagem de
Definição de Dados) é uma linguagem do SQL utilizada para manipular
tabelas e elementos. Neste caso, temos os comandos:
• CREATE: criar bancos e tabelas.
• ALTER: alterar as colunas de uma tabela no banco de dados, por
exemplo, adicionar uma coluna em uma tabela específica.
• DROP: utilizado para deletar um registro em uma tabela, uma
tabela ou um banco de dados.
DCL – Data Control Language
O DCL – Data Control Language (do inglês, Linguagem de Controle
de Dados) é uma linguagem do SQL utilizada em ambiente multiusuário, ou
seja, para controlar o acesso aos dados. Neste caso, temos os comandos:
• GRANT: utilizado para autorizar usuários.
• REVOKE: utilizado para bloquear usuários.
Veremos os comandos com exemplos na Unidade II em
Gerenciamento de usuários.
Administração do SGBD PostgreSQL
40
DTL – Data Transaction Language
O DTL – Data Transaction Language (do inglês, Linguagem de
Transação de Dados) é uma linguagem do SQL utilizada para gerenciar as
transações que ocorrem dentro do banco de dados. Neste caso, possui
três comandos:
• BEGIN TRANSACTION: utilizado para iniciar uma transação.
• COMMIT: utilizado para enviar as alterações no banco de forma
permanente.
• ROLLBACK: utilizado para cancelar as alterações realizadas nas
transações desde o último COMMIT ou ROLLBACK realizado no
banco.
SAIBA MAIS:
Ficou curioso sobre muitos comandos e já quer praticar
antes de instalar um SGBD no seu computador? É fácil! No
site da w3schools é possível ver exemplos e colocar em
prática. Ele está acessível pelo link.
RESUMINDO:
Olá! Gostou de saber sobre a linguagem SQL ANSI e
suas declarações? Lembra de tudo o que vimos? Vamos
relembrar para reformar tudo o que aprendemos: vimos
nessa Unidade que o nome original do SQL era SEQUEL.
Também falamos sobre os operadores aritméticos, as
cláusulas e as funções do SQL e vimos que apesar da ANSI
ter publicado um padrão para a linguagem SQL, outros
padrões surgiram, tais como: SQL2, SQL3 e o SQL99 e,
mesmo assim, soubemos que a SQL disponibiliza quatro
tipos de linguagens: DML, Linguagem de Manipulação
de Dados; DDL, Linguagem de Definição de Dados; DCL,
Linguagem de Controle de Dados; e DTL, Linguagem de
Transação de Dados. Também falamos que a linguagem
DML apresenta-se de forma procedural e não procedural
(que é o padrão estabelecido pela ANSI). Além disso,
mostramos as declarações com exemplos de INSERT,
UPDATE, DELETE E SELECT. Além de alguns exemplos de
subconsultas e consultas JOINs.
Administração do SGBD PostgreSQL
www.w3schools.com/sql/.
41
Instalação do PostgreSQL
OBJETIVO:
Você sabia que o PostgreSQL é um SGBD e que é o mais
utilizado no mundo para desenvolvimento com banco de
dados? Pois é! E agora que você já conhece a linguagem
SQL ANSI, vamos à prática? Neste capítulo, vamos aprender
como realizar a instalação no ambiente Windows e Linux.
Vamos ver?
Há muitas informações e tutoriais sobre como instalar e manipular
o PostgreSQL por meio da documentação oficial. A comunidade do
PostgreSQL fornece muitos fóruns para você se familiarizar, tirar dúvidas
e descobrir o funcionamento. Além da possibilidade de encontrar
oportunidades de trabalho.
ACESSE:
Para iniciar o processo de instalação, acesse o site do
PostgreSQL para realizar o download da versão desejada
conforme o sistema operacional clique aqui.
No site, é possível realizar o download de várias versões para os
seguintes sistemas operacionais: Linux x86-64, Linux x86-32, Mac OS X,
Windows x86-64, Windows x86-32.
O site do PostgreSQL também fornece um guia de instalação para
a versão 12.0 em que é possível encontrar as plataformas suportadas,
requisitos de hardware e software. Além da instalação/desinstalação e
troubleshooting.
A própria documentação afirma que o PostgreSQL na versão 12.0
é suportada em Windows de 64 bits (Windows 2012R2, Windows 2016,
Windows 2019) e Mac OS X (OS X Server 10.12, 10.13 e 10.14).
No caso dos usuários Linux, O EDB deixou de fornecer instaladores
Linux a partir do PostgreSQL 11, pois o grupo incentiva os usuários a usar
os pacotes nativos da plataforma. Contudo, as versões posteriores terão
suporte até o final da vida útil.
Administração do SGBD PostgreSQL
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
42
Quanto aos requisitos de hardware, é necessário seguir um padrão
mínimo para a instalação e execução do PostgreSQL que requer um
processador de 1 GHz com 2 GB de memória RAM e 512 MB de HDD.
Ainda deve-se considerar espaço de memória em disco adicional para os
dados ou componentes de suporte.
Quanto aos pré-requisitos de software, para que o Sistema
Operacional permita a instalação, é necessário possuir privilégios de
superusuário (em sistema Mac) ou de administrador (em sistema Windows).
E então, compreendeu tudo? Vamos partir para as instalações nos
Sistemas Operacionais? Lembrando que: caso tenha problemas com a
instalação, não desista! Você pode verificar o arquivo de log da instalação
que é criado nos seguintes caminhos: %TEMP% para o sistema Windows e
/temp para o sistema Mac OS X.
O nome desse arquivo de log é install-postgresql.log e nele você
encontrará a senha do superusuário especificada durante a instalação,
que, no caso, deve ser trocada antes do compartilhamento do log com
qualquer pessoa.
No caso do Windows, certifique-se de aplicar as atualizações do
sistema operacional antes de chamar o instalador do PostgreSQL, pois,
caso (durante o processo de instalação) o instalador encontre erros, então
você deve:
1. Desinstalar o PostgreSQL e excluir o diretório de dados na pasta
de instalação (aquele %TEMP% que te falamos anteriormente).
2. Criar um usuário no Windows com o nome postgres e adicioná-
lo ao grupo de administradores.
3. Confirmar se a desinstalação deu certo:
• abrir o cmd do Windows (pressionar a tecla Windows e digitar
cmd). Então, ao aparecer a imagem prompt de comando, clique
no botão direito e executar como administrador (ver Figura 11).
• Quando abrir o Prompt de Comando, digitar net user postgres /
delete. Então, aparecerá a mensagem: não foi possível localizar o
nome de usuário (ver figura 11). Isso significa que foi sucesso.
Administração do SGBD PostgreSQL
43
Figura 11 - Imagem ao localizar o Prompt de Comando
Fonte: Elaborado pela autora (2021).
Figura 12 - Imagem do comando para desinstalar o PostgreSQL
Fonte: Elaborado pela autora (2021).
ACESSE:
Ainda, caso você tenha executado essa etapa e revisado
o arquivo de log, mas ainda não conseguiu solucionar o
problema,o grupo PostgreSQL indica que você acesse os
fóruns do EnterpriseDB acessando aqui.
Administração do SGBD PostgreSQL
www.enterprisedb.com/.
44
Visto os possíveis problemas e como solucioná-los, vamos aos
passos da instalação nos Sistemas Operacionais?
Instalação no Windows
Olá! Se você já chegou até aqui, então é porque já verificou se o
Sistema Operacional está atualizado e não há o PostgreSQL instalado.
Sendo assim, vamos às etapas de instalação:
1. Após abrir o Prompt de Comando como administrador (mostramos
como fazer isso na figura 13), então digite o comando: net user /
add postgres senha. Fazendo isso, você irá criar um usuário com
o nome postgres e senha.
Substitua a palavra senha por sua senha ou uma senha padrão.
Neste exemplo a senha foi teste.
Figura 13 - Imagem do comando de instalação do PostgreSQL
Fonte: Elaborado pela autora (2021).
2. Adicionar o usuário e senha criados para o PostgreSQL ao grupo
de administradores do Windows (ver figura 14) com o comando:
net localgroup administradores postgres /add.
Figura 14 - Comando para adicionar o usuário ao grupo de administradores do Windows
Fonte: Elaborado pela autora (2021).
3. Após usuário criado com suas devidas permissões, abrir um
Prompt de Comando para o usuário postgres (figura 15) com o
comando: runas /user:postgres cmd.exe
Administração do SGBD PostgreSQL
45
Figura 15 - Comando para abrir um Prompt de Comando com o nome do usuário criado
Fonte: Elaborado pela autora (2021).
Nota: Nesta etapa, será solicitada a senha que você criou para
o usuário. Está lembrado? Ao digitar a senha, a tela continuará sem
apresentar nenhum símbolo, não se preocupe! Conclua a digitação e
aperte ENTER que a nova janela irá aparecer.
4. No novo terminal, você precisará entrar na pasta do instalador.
Para isso, digite cd e o endereço da pasta em que se encontra o
instalador (figura 16).
Figura 16 - Comando para entrar na pasta do instalador do PostgreSQL
Fonte: Elaborado pela autora (2021).
Perceba que o meu endereço foi C:\Users\cfsar\Camila\postgres.
Mas o seu pode mudar. Verifique corretamente onde está o instalador que
você realizou o download do site do PostgreSQL e copie o endereço da
pasta.
Administração do SGBD PostgreSQL
46
5. Agora estamos na etapa de execução do instalador. Sendo assim,
digite o nome do arquivo no Prompt de Comando conforme a
figura 17. Então o guia gráfico de instalação do PostgreSQL será
aberto (ver figura 18).
Figura 17 - Comando para executar o instalador do PostgreSQL
Fonte: Elaborado pela autora (2021).
Verifique o nome do arquivo corretamente, pois irá mudar conforme
a versão que você faça o download.
Figura 18 - Imagem do guia de instalação do PostgreSQL
Fonte: Elaborado pela autora (2021).
6. Agora, a partir desse momento, você irá seguir os passos de
instalação padrão do guia, clicando em Next>. Deixe todos os
componentes selecionados conforme figura 19.
Administração do SGBD PostgreSQL
47
Figura 19 - Seleção dos componentes de instalação do PostgreSQL
Fonte: Elaborado pela autora (2021).
7. Não há necessidade de modificar os caminhos dos arquivos
indicados pelo guia (ver figura 20), sugerimos que deixe o padrão.
Figura 20 - Seleção do diretório do PostgreSQL.
Fonte: Elaborado pela autora (2021).
Administração do SGBD PostgreSQL
48
8. Você também pode se deparar com a solicitação de usuário
e senha (ver figura 21), mas é a mesma que você criou. Está
lembrado(a)?
Figura 21 - Imagem do processo de inserção da senha na instalação do PostgreSQL
9. O número da porta já vem 5432 por padrão, caso não apareça,
você pode digitar esse mesmo número.
Figura 22 - Inserção do número da porta do PostgreSQL
Fonte: Elaborado pela autora (2021).
Administração do SGBD PostgreSQL
49
10. Em todos os próximos passos, você poderá ir aceitando o padrão
de instalação e clicando em próximo até a tela de finalização e
pronto! Para verificar se tudo foi instalado corretamente, você
poderá abrir o Gerenciador de Tarefas (apertando a tecla ctrl +
alt+ del) e ir na aba Serviços. Lá, você poderá visualizar o serviço
do PostgreSQL instalado como mostrado na figura 23.
Figura 23 - Tela de confirmação da instalação do PostgreSQL
Fonte: Elaborado pela autora (2021).
Instalação no Linux
Olá! Se está aqui, então será porque irá instalar o PostgreSQL no
Sistema Operacional Linux. Sendo assim, iremos te apresentar o passo a
passo da instalação da versão 12, a mais atual, que foi lançada em outubro
de 2019 e possui suporte até o final de 2024. Vamos à prática!
Administração do SGBD PostgreSQL
50
1. O primeiro passo é instalar o vim (um editor de texto do Linux)
com os seguintes comandos: sudo apt -y install vim bash-
completion wget e depois: sudo apt -y upgrade conforme
podemos visualizar na figura 24.
Figura 24 - Instalação do vim PostgreSQL
Fonte: Elaborado pela autora (2021).
2. Depois, iremos baixar os repositórios (figura 25) com os comandos:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.
asc | sudo apt-key add –
e
echo “deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-
pgdg main” |sudo tee /etc/apt/sources.list.d/pgdg.list
Figura 25 - Tela da etapa de baixar os repositórios
Fonte: Elaborado pela autora (2021).
3. Após isso, você irá dar o comando de atualização dos repositórios
com sudo apt update e, posteriormente, sudo apt -y install
postgresql-12 postgresql-client-12 para realizar a instalação
do PostgreSQL na versão 12.
Administração do SGBD PostgreSQL
51
Figura 26 - Tela instalação da versão 12 do PostgreSQL
Fonte: Elaborado pela autora (2021).
4. Por fim, você pode verificar se a instalação ocorreu com sucesso
com o seguinte comando: systemctl status postgresql.
service, que será apresentado na tela o status de ativo (ver
figura 27).
Figura 27 - Tela de confirmação de instalação
Fonte: Elaborado pela autora (2021).
Instalação no Mac OS
A instalação do PostgreSQL no Mac OS X difere um pouco das
demais plataformas, pois, o instalador do Mac OS X é um App Bundle,
que é um conjunto de arquivos e diretórios em um formato prescrito.
Administração do SGBD PostgreSQL
52
O instalador está disponível no site como um arquivo de imagem de
disco (.dmg) ou como um arquivo com extensão (.zip) do Stack Builder.
Para extrair o instalador, simplesmente monte a imagem do disco e copie
o instalador no local desejado ou execute-o por meio do homebrew com
o seguinte comando: brew install postgresql.
SAIBA MAIS:
Quer se aprofundar neste tema? Recomendamos o acesso
à seguinte fonte de consulta e aprofundamento: Artigo:
“The design of POSTGRES” (STONEBRAKER; ROWE, 1986),
acessível aqui.
RESUMINDO:
Chegamos ao final da unidade. Gostou de ver todo o processo
de instalação nos diferentes sistemas operacionais? Você
realizou a instalação na sua máquina? Se não, não perca
tempo! Mãos à obra! E caso já tenha instalado, parabéns!
Aposto que está curioso(a) para o que virá na próxima
Unidade, não é mesmo? Vamos relembrar o que acabamos
de ver para fixar melhor: vimos que a comunidade do
PostgreSQL fornece muitos fóruns para que possamos
nos familiarizar com o ambiente. Além disso, oferece
versões para diversões sistemas operacionais, são eles:
Linux x86-64, Linux x86-32, Mac OS X, Windows x86-64,
Windows x86-32. Vimos também que o PostgreSQL requer
uma configuração mínima de hardware para a instalação e
execução do PostgreSQL que é: um processador de 1 GHz
com 2 GB de memória RAM e 512 MB de HDD. Depois disso,
apresentamos toda a prática de instalação nos Sistemas
Windows, Linux e Mac OS.
Administração do SGBD PostgreSQL
https://dl.acm.org/doi/abs/10.1145/16856.16888
53
REFERÊNCIAS
BECK, R. O.; LUZ, F. D. Normalização de dados: um desafio para
o projetista de banco de dados. 1. ed. RE3C – Revista Eletrônica
Científica de Ciência da Computação, v. 5, n.1, 2010. Disponível em:
https://bit.ly/3DthBHe.Acesso em: 20 jul. 2020.
CARVALHO, V. PostgreSQL: banco de dados para aplicações web
modernas. São Paulo: Editora Casa do Código, 2017.
FRANCO, G.; VALE, L. (s.d.). A importância e influência do setor de
compras nas organizações. TecHoje. Disponível em: http://bit.ly/35gA60Q.
Acesso em: 4 jul. 2017.
HASS, R. How Much maintenance_work_mem Do I Need?. 2019.
Disponível em: https://bit.ly/3GhiVid. Acesso em: 22 ago. 2020.
Administração do SGBD PostgreSQL
Conceitos e competências gerais de um banco de dados
Conceitos e competências gerais de um banco de dados
Profissionais e atividades envolvidas
Sistema de banco de dados e o SGBD
Abstração de dados em um SGBD
Principais funções de um SGBD
História e evolução do PostgreSQL
História do banco de dados
Modelo Hierárquico
Modelo em Rede
Modelo Relacional
Modelo Orientado a Objetos
Evolução do PostgreSQL
PostgreSQL e a linguagem SQL ANSI
Data Manipulation Language (DML)
Consultas (INSERT, UPDATE, DELETE e SELECT)
INSERT
UPDATE
DELETE
SELECT
Subconsultas e consultas JOINS
DDL – Data Definition Language
DCL – Data Control Language
DTL – Data Transaction Language
Instalação do PostgreSQL
Instalação no Windows
Instalação no Linux
Instalação no Mac OS