Baixe o app para aproveitar ainda mais
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
Compartilhar