Baixe o app para aproveitar ainda mais
Prévia do material em texto
Administração do SGBD PostgreSQL Camila Freitas Sarmento Diretor Executivo DAVID LIRA STEPHEN BARROS Gerente Editorial CRISTIANE SILVEIRA CESAR DE OLIVEIRA Projeto Gráfico TIAGO DA ROCHA Autora CAMILA FREITAS SARMENTO A AUTORA Camila Freitas Sarmento Olá. Meu nome é 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: INTRODUÇÃO: 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 ........................................................................... 16 Abstração de dados em um SGBD ................................................................ 19 História e evolução do PostgreSQL .....................................................25 História do banco de dados ...................................................................................................25 Modelo hierárquico .....................................................................................................28 Modelo em rede .......................................................................................................... 30 Modelo relacional ........................................................................................................ 31 Modelo orientado a objetos .................................................................................34 Evolução do PostgreSQL .......................................................................................................... 36 PostgreSQL e a linguagem SQL ANSI ................................................. 39 DML - Data Manipulation Language ............................................................................ 43 Consultas (INSERT, UPDATE, DELETE e SELECT) ...............................44 INSERT ..............................................................................................................44 UPDATE ............................................................................................................45 DELETE ............................................................................................................ 46 SELECT .............................................................................................................47 Subconsultas e Consultas JOINS .....................................................................47 DDL - Data Definition Language ......................................................................................50 DCL - Data Control Language ...........................................................................................50 DTL - Data Transaction Language ..................................................................................51 Instalação do PostgreSQL ........................................................................53 Instalação no Windows ...............................................................................................................57 Instalação no Linux ....................................................................................................................... 64 Instalação no Mac OS .................................................................................................................66 9 CONHECENDO O BANCO DE DADOS POSTGRESQL UNIDADE 01 10 INTRODUÇÃO Você sabia que a área de administração de banco de dados e linguagens é essencial entre 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 para o atendimento remoto, o que era somente presencial. O banco de dados de uma empresa armazena e gerencia os bens mais valiosos e 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. 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 nesse universo! 11 OBJETIVOS Olá. Seja muito bem-vindo à Unidade 1. 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 esse assunto incrível que vai deixá-lo preparado para dar os primeiros passos em direção à satisfação profissional. Ao trabalho! 12 Conceitos e Competências gerais de um Banco de Dados INTRODUÇÃO: Ao término deste capítulo você será capaz de entender a definição de um SGBD e suas principais características, o que 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? Vamos lá. Avante!. Conceitos e competências gerais de um banco de dados VOCÊ SABIA? Você sabia que o banco de dados pode ser considerado a parte mais importante e valiosa de uma empresa? Pois é! Ele é responsável por receber dados e fornecerinformações (quando bem organizado) essenciais para a produtividade da empresa e experiência do usuário, além de impactar a tomada de decisão, o alinhamento de informações entre a equipe e os 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 têm nenhum significado. E o que é informação? Já sabe, não é? 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. 13 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 a partir da Figura 1. Figura 1 – Relacionamento entre dado, informação e conhecimento Fonte: Elaborado pela autora. 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. 14 DEFINIÇÃO: 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. REFLITA: Você já teve experiência com banco de dados? Se refletirmos um pouco, podemos perceber que eles estão sempre presentes em nossas rotinas e que o acessamos constantemente, por exemplo, quando realizamos uma compra online, alguma movimentação financeira, usamos serviços de e-mail, acessamos as redes sociais e vários outros serviços em nuvem. Profissionais e atividades envolvidas Agora que você entende o que é um banco de dados, 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 e 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 e por 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 de software. 15 • Projetista do Banco de Dados (DB designer): é o profissional que escolhe a estrutura mais adequada para a representação e o armazenamento dos dados. É ele que realiza a definição das tabelas, dos índices etc. • Usuário final: é o usuário que interage com o banco de dados por meio de aplicações e de linguagens em diferentes níveis, seja realizando operações de consultas avançadas ou 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? Você sabia que há uma enorme confusão quanto à atuação de um profissional DB e DBA? Sobretudo em pequenas empresas onde 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. Agora você já sabe e está familiarizado com a diferença. 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. A atuação das duas funções em uma empresa é chamada 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 pelo link https://bit.ly/34eyLu9. (Acesso em 20 jul. 2020). https://bit.ly/34eyLu9 16 Sistema de banco de dados e o SGBD Agora que você sabe o que é um banco de dados e os atores envolvidos, pode se perguntar: “Existe algum meio em que eles realizam o gerenciamento de tudo isso?”. É exatamente isso que vamos 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), para relacionamento com o cliente (CRM, do inglês Customer Relationship Management) ou para controle financeiro, a base de dados de uma empresa tem alto valor agregado. DEFINIÇÃO: Quando se trata de dados, é fundamental para os 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. Exemplo: Para compreendermos melhor um SGBD, vejamos um exemplo na Figura 2. Podemos considerar uma empresa de calçados que possui vários sistemas, entretanto, o acesso ao banco de dados ocorre a partir do Sistema de Gerenciamento. 17 Figura 2 – Modelo de uma implementação SGBD Fonte: Elaborado pela autora. Ainda assim, para promover a segurança da informação e a organização dos dados armazenados no banco de dados, é necessário realizar a abstração dos dados para os usuários a fim de simplificar a interação. DEFINIÇÃ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 o SGBD que, por sua vez, realiza consultas no banco de dados. 18 EXPLICANDO MELHOR: 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 na Figura 3 como ocorre a organização. Figura 3 – Visualização simplificada do sistema de banco de dados Fonte: Elaborado pela autora. 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, como: funções do sistema, programas aplicativos, interfaces dos programas e funcionalidades oferecidas pelo SGBD. 19 • Distribuído – em que um SGBD gerencia múltiplos bancos de dados que estão logicamente inter-relacionados, mas em espaços físicos diferentes, conectados por meio de uma rede de comunicação, podendo ser capazes de executar, de forma autônoma, diversos programas. NOTA: 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, oferecer o gerenciamento de banco de dados distribuído e apresentar aos usuários de forma transparente. Agora vocêjá sabe a diferença entre um SGBD e um SBD! A seguir, veremos em detalhes a arquitetura de um SGBD. Abstração de dados em um SGBD Vimos alguns conceitos e a diferença entre um SBD e um SGBD. Porém, 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: externo, conceitual e interno. 20 DEFINIÇÃO: O primeiro, chamado nível externo (ou nível de visões) é o mais alto da abstração que utiliza um esquema externo. Ele descreve o banco de dados por meio de objetos e de relacionamentos, conforme as necessidades do usuário, além de fazer uma ponte entre a modelagem e a implementação do modelo em um tipo de SGBD. DEFINIÇÃO: Considerado o nível conceitual (ou nível lógico), o segundo 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. DEFINIÇÃO: O terceiro, 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. 21 Figura 4 – Esquema de níveis de abstração Fonte: Elaborado pela autora. IMPORTANTE: Ainda, a arquitetura de três níveis (ANSI/SPARC), além de considerar os vários coeficientes de conhecimento/ interação do usuário com o banco de dados, oferece também a Independência de Dados, isto é, caso ocorra alguma modificação em um esquema, os outros níveis não serão afetados. 22 DEFINIÇÃO: São considerados dois níveis em relação à independência dos dados: independência física, que permite a modificação dos dados sem afetar os altos níveis, restringindo-se apenas à parte física; e a independência lógica, que é a possibilidade de modificar o esquema conceitual sem afetar os programas aplicativos. NOTA: 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! 1.1.1 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 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 as funções? Você parou para se perguntar quais são as funções propriamente ditas de um SGBD? Vamos falar exatamente sobre isso agora. IMPORTANTE: Um SGBD pode utilizar diversas abordagens para atender o propósito da modelagem e a 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 SGBD tem várias funções. Então, separamos as principais: 23 • 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 uma 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: Artigo “Sistema gerenciador de banco de dados: Sgbd exist xml” (TANAKA et al., 2012), acessível pelo link http://periodicos.unifacef.com.br/index. php/resiget/article/view/288 (Acesso em: 26 jul. 2020). 24 RESUMINDO: E então, gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir: vimos nesta Unidade o conceito de dado, informação e conhecimento 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 as atividades envolvidas com Banco de Dados e apresentamos outro conceito que faz muitas pessoas se confundirem: um profissional DB e um DBA. Também falamos sobre abstração de dados e 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. 25 História e evolução do PostgreSQL INTRODUÇÃO: Olá! Agora que você já leu os conceitos e as definições do SGBD e já sabe sua função, vamos falar um pouco mais sobre a evolução? Conhecer a história da evolução é fundamental para compreender a organização de um banco de dados comum. Ao término deste capítulo você será capaz de entender a história e a evolução do PostgreSQL, além da evolução da representatividade dos dados por meio dos Modelos de Dados. Ficou curioso(a)? Vamos à leitura! História do banco de dados Revisando: No tópico anterior vimos que o banco de dados pode ser considerado o bem mais valioso de uma empresa. Aprendemos 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 inicia a partir do armazenamento dos dados em fichas de papel e a organização em pastas, o que dava muito trabalho para localizar alguma informação, principalmente quando as pastas não estavam bem organizadas e catalogadas. 26 REFLITA: Você já presenciou alguma empresa com um caso assim? E como você 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 a seus clientes com a maior eficiência possível e, para isso, um banco de dados que ofereça melhores condições é essencial. 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). Com isso, foi o primeiro a receber o Prêmio Turing,em 1973. NOTA: O prêmio Turing é 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. 27 VOCÊ SABIA? Você sabia que o sistema de passagens aéreas era completamente manual? Exatamente! E um simples processo de reserva levava entre 90 minutos até 3 horas para ser concluído. 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. IMPORTANTE: 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 no uso dos serviços de banco de dados, e a empresa IBM, por meio de Edgar Frank Codd (que também ganhou o prêmio Turing, em 1981), projetou uma nova representação de dados, o Modelo de Dados Relacional. A partir de então, os usuários poderiam acessar os bancos de dados sem ser necessário conhecimento técnico, permitindo que o SGBD com essa estrutura de representação fosse amplamente utilizado e que diversas empresas ampliassem seus sistemas de armazenamento, além de possibilitar 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. IMPORTANTE: Ao final da década de 1980, 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. 28 DEFINIÇÃO: Mencionamos alguns modelos de dados. Você sabe o que é um modelo de dados? É uma forma de representação resultante de uma abstração, e a 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 Esse foi o primeiro a modelo a ser estruturado. Ele estrutura-se seguindo uma hierarquia de segmentos, isto é, utiliza árvores para a representatividade lógica dos dados, em que os níveis inferiores (também chamados de registros-filhos) dependem dos níveis acima (ou registros- pais), estando 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 tem cardinalidade 1:N, cuja organização ocorre partindo da raiz (o registro mais alto) para os registros-filhos da esquerda para a direita. NOTA: Cardinalidade 1:N significa que, dentro da representatividade dos dados, pode haver a ligação de 1 registro para vários (1:N). 29 EXPLICANDO MELHOR: Considere como exemplo um departamento de hospital: ele pode ter vários médicos, e um médico pode ter vários pacientes. Nesse sentido, ocorrerão algumas inconveniências com os dados: se um paciente pertencer a mais de um departamento, os dados (nesse modelo) deverão ser replicados, ocasionando redundância, inconsistência e provável perda de informações. Vejamos o esquema na Figura 5.. Figura 5 – Modelo hierárquico Fonte: Elaborado pela autora. 30 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. IMPORTANTE: O modelo em rede é conduzido a fim de minimizar os problemas do modelo antecessor, o hierárquico, então, agora os registros-filhos podem ligar-se a mais de um registro-pai. Sendo assim, tais ligações permitem que os dados sejam acessados sem ter que 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. 31 EXPLICANDO MELHOR: 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 Fonte: Elaborado pela autora. Modelo relacional O modelo relacional é amplamente utilizado por oferecer alto grau de independência dos dados e por proporcionar uma definição simples e com alto desempenho para armazenamento e recuperação de dados. Além disso, ele separa a representação conceitual dos dados do armazenamento físico. 32 EXPLICANDO MELHOR: 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). Figura 7 – Modelo em rede Fonte: Elaborado pela autora. 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 as linhas (uma instância do esquema), chamadas de registro (tupla). 33 Na Figura 8 podemos observar uma representação gráfica de uma tabela que contém 5 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. IMPORTANTE: Vale considerar que a tabela pode conter milhares de registros (linhas), e é na fase inicial, Projeto do Banco de Dados, em que os campos da tabela são preestabelecidos, e cada campo tem sua classificação de acordo com o tipo de dado que será armazenado, tais como: texto, decimal, data, inteiro etc. 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. NOTA: 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. 34 Modelo orientado a objetos Os modelos orientados a objetos são utilizados para o tratamento de objetos complexos (como textos e imagens) e dinâmicos (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 se trata das operações que podem ser aplicadas aos objetos? EXPLICANDO MELHOR: Vamos considerar como exemplo a mesma fábrica que pode ter váriosfuncioná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. 35 Figura 9 – Modelo orientado a objetos Fonte: Elaborado pela autora. E então, o que achou desse assunto? Mais à frente iremos te mostrar na prática! Não é legal? Por enquanto estamos nos esquecendo de falar sobre alguma coisa? Claro! O nosso querido PostgreSQL e sua história não poderiam ficar de fora. Vamos lá conhecer! Evolução do PostgreSQL DEFINIÇÃO: O PostgreSQL é um SGBD objeto-relacional, desenvolvido pelo PostgreSQL Global Development Group, com mais de 30 anos de desenvolvimento ativo. 36 O PostgreSQL é um projeto de código aberto, isto é, de forma aberta e pública que permite que desenvolvedores manipulem e modifiquem suas versões. Para isso, o grupo tem uma equipe de committers (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. NOTA: O PostgreSQL admite que as funções definidas pelos desenvolvedores também sejam escritas em outras linguagens (como PL/pgSQL, PL/Python, PL/Java, PL/ Perl) 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, 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 sobre as versões lançadas do PostgreSQL? Acesse: https://bit.ly/3lM8l8E. 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. http://https://bit.ly/3lM8l8 37 • 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: Artigo: “Uma reflexão sobre banco de dados orientados a objetos” (BOSCARIOLI et al., 2006), acessível pelo link https://deinfo.uepg.br/~conged/ artigo4.pdf (Acesso em 29 jul. 2020). 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 revisar tudo o que aprendemos: vimos nessa Unidade o marco histórico para a área de bancos de dados, falamos do modelo hierárquico e agora sabemos que são associações entre dois registros. Depois vimos que o modelo em rede é uma extensão do modelo hierárquico que ganha a possibilidade dos registros-filhos se conectarem a vários registros-pais, e com isso permite que os dados sejam acessados sem ter que 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, utilizado para o tratamento de objetos complexos e dinâmicos. Também conhecemos a evolução de PostgreSQL passando por onde tudo começou. 38 PostgreSQL e a linguagem SQL ANSI Olá! Se você já chegou até aqui foi porque já viu os conceitos e as definições de SGBD e conheceu a história e a 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 conhecer a linguagem SQL ANSI, mas não se preocupe, o aprendizado é simples e tranquilo de compreensão. Vamos lá? DEFINIÇÃO: O SQL (do inglês, Structured Query Language ou Linguagem de Consulta Estruturada) foi criado no início dos anos 70 no laboratório da IBM e foi nomeado 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 a toda a documentação. ACESSE: Neste link http://pgdocptbr.sourceforge.net/, 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, 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 http://http://pgdocptbr.sourceforge.net/ 39 Global Development Group para uma melhor compreensão da linguagem e como base introdutória para o PostgreSQL. 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: específica a tabela em que os registros serão selecionados. • WHERE: específica 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. 40 • 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. NOTA: Existem diversas funções SQL, que são: funções de valores simples, funções de grupos de valores, funções que devolvem valores de caracteres, funções que devolvem valores numéricos, funções para manipular datas e funções de conversão. Porém, separamos as mais usuais a fim de minimizar a quantidade do conteúdo apresentado, pois nosso foco é o PostgreSQL (mas vale a pena você conferir as demais). O SQL interage com o SGBD para executar várias tarefas e permite que todas as transações realizadas no banco de dados sejam intermediadas pelo SGBD utilizando essa linguagem. IMPORTANTE: A linguagem SQL não tem 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, de tabelas, de colunas etc. 41 De acordo com Elmasri e Navathe (2005), a linguagem SQL é abrangente por ter comando para definição de dados, de consultas e de atualizações. As empresas desenvolvedoras de 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 de desvio: while, IF, FOR. • Comandosde manipulação de telas e de relatórios. • Comandos de manipulação de arquivos. IMPORTANTE: Apesar de a ANSI (American National Standart Institute) ter publicado um padrão para a linguagem SQL, surgiram outros padrões, como: SQL2, SQL3 e SQL99. 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). 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 de sincronização com a prática. Dessa forma, ao longo do material, veremos as demais linguagens com seus respectivos exemplos. Combinado? 42 DML - Data Manipulation Language DEFINIÇÃO: DML - Linguagem de Manipulação de Dados (do inglês Data Manipulation Language) é 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 contêm 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. O usuário especifica quais dados são necessários e como obtê-los. • Não-procedural (declarativa): o usuário especifica apenas os dados de interesse. Também é conhecida na literatura como linguagem funcional ou aplicativa. IMPORTANTE: O padrão estabelecido pela ANSI (American National Standart Institute) 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: Consultas (INSERT, UPDATE, DELETE e SELECT) Sabemos que o PostgreSQL nos possibilita gerenciar o banco de dados. Contudo, para realizar um bom gerenciamento, é essencial 43 compreender as consultas da linguagem SQL, a fim de promover a manipulação dos dados. Sendo assim, vejamos: INSERT DEFINIÇÃO: O INSERT é declaração utilizada para inserir registros (também conhecidos como tuplas ou linhas) em uma tabela de Banco de Dados. A sintaxe da declaração INSERT dá-se da seguinte forma: 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. Exemplo: Para os casos em que o comando seja para adicionar os valores em todas as colunas da tabela existente no Banco de Dados, os nomes das colunas podem não ser especificados. Vejamos: IMPORTANTE: Para a inserção correta, é necessário seguir a mesma ordem dos valores e das colunas. INSERT INTO tabela (coluna1, coluna2, ..., colunaN) VALUES (valor1, valor2, ..., valorN); INSERT INTO tabela_pagamento (nome_produto, data_venda, valor) VALUES (‘calculadora’, ‘2020-08-05’, 180); INSERT INTO tabela_pagamento VALUES (‘calculadora’, ‘2020-08-05’, ‘180’); 44 NOTA: Também existem formas de inserção avançada, chamada MULTIROW INSERT. UPDATE DEFINIÇÃO: O UPDATE é a 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: Exemplo: 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: DELETE UPDATE tabela SET coluna1=valor1, coluna2=valor2, ..., colunaN=valorN WHERE condição; UPDATE tabela_pagamento SET nome_produto=’calculadora científica’, data_venda=’2019-08-05’, valor=’350’) WHERE ProdutoID=1; 45 DEFINIÇÃO: O DELETE é a 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: Exemplo: Vamos considerar a remoção de todas as linhas da tabela em que o nome do produto seja calculadora científica. Vejamos: 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: SELECT DEFINIÇÃO: O SELECT é a 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. DELETE FROM tabela WHERE condição; DELETE FROM tabela_pagamento WHERE nome_produto=’ calculadora científica’; DELETE FROM tabela_pagamento; 46 A sintaxe da declaração SELECT dá-se da seguinte forma: Exemplo: Vamos considerar como exemplo a seleção de TODOS os campos da tabela. Vejamos: Para o caso em que desejamos selecionar apenas campos específicos da tabela, temos: 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 é possível 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: SELECT coluna1, coluna2, ..., colunaN FROM tabela; SELECT * FROM tabela_pagamento; SELECT data_venda FROM tabela_pagamento; 47 NOTA: Perceba que o que está conectando as duas tabelas é a coluna do campo referência. Exemplo: Nesse caso, vejamos melhor o uso de subconsultas com o exemplo a seguir, em 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: NOTA: Todas as consultas podem 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). DELETE FROM tabela_pagamento WHERE referência IN (SELECT referência FROM tabela_debito); 48 Exemplo: Vejamos agora um exemplo de uso de junções de tabelas, realizando a junção dos campos qtd_saída e valor das tabelas em que a referência seja a mesma. Vejamos: 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. Em que: • INNER JOIN retorna registros que têm 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 DEFINIÇÃO: O DDL - Linguagem de Definição de Dados (do inglês Data Definition Language) é uma linguagem do SQL utilizada para manipular tabelas e elementos. 49 Nesse caso, temos os comandos: • CREATE: cria bancos e tabelas. • ALTER: altera as colunas de uma tabela no banco de dados, por exemplo, adiciona uma coluna em uma tabela específica. • DROP: deleta um registro em uma tabela, uma tabela ou um banco de dados. DCL - Data Control Language DEFINIÇÃO: O DCL - Linguagem de Controle de Dados (do inglêsData Control Language) é uma linguagem do SQL utilizada em ambiente multiusuário, ou seja, para controlar o acesso aos dados. Nesse caso, temos os comandos: • GRANT: utilizado para autorizar usuários. • REVOKE: utilizado para bloquear usuários. NOTA: Veremos os comandos com exemplos na Unidade 2, em Gerenciamento de usuários. DTL - Data Transaction Language DEFINIÇÃO: O DTL - Linguagem de Transação de Dados (do inglês Data Transaction Language) é uma linguagem do SQL utilizada para gerenciar as transações que ocorrem dentro do banco de dados. 50 Nesse caso, temos 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 colocá-los em prática. Ele está acessível pelo link www.w3schools.com/ sql/ (Acesso em: 03 ago. 2020). RESUMINDO: Olá! Gostou de saber mais sobre a linguagem SQL ANSI e suas declarações? Vamos relembrar 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 de a ANSI ter publicado um padrão para a linguagem SQL, outros padrões surgiram, como: SQL2, SQL3 e SQL99, e então 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. http://www.w3schools.com/sql/ http://www.w3schools.com/sql/ 51 Instalação do PostgreSQL Olá! 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? Nesse capítulo, vamos aprender a realizar a instalação nos ambientes Windows e Linux. 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: https://bit.ly/342vgXB. No site, como podemos ver na Figura 11, é 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 e Windows x86-32. Figura 11 – Versões de distribuição do PostgreSQL Fonte: enterprisedb.com http://https://bit.ly/342vgXB 52 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 e os 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). NOTA: 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. IMPORTANTE: Quanto aos requisitos de hardware, é necessário seguir um padrão mínimo para 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. IMPORTANTE: Quanto aos pré-requisitos de software, para que o sistema operacional permita a instalação, é necessário ter 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 53 e /temp para o sistema Mac OS X. O nome desse arquivo de log é install- postgresql.log e, junto a ele, 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: • Desinstalar o PostgreSQL e excluir o diretório de dados na pasta de instalação (a %TEMP% mencionada acima). • Criar um usuário no Windows com o nome postgres e adicioná-lo ao grupo de administradores. • Confirmar se a desinstalação deu certo: • Abrir o cmd do Windows (pressionar a tecla Windows e digitar cmd). Ao aparecer a imagem prompt de comando, clicar no botão direito e executar como administrador (ver Figura 12). • 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 13). Isso significa que a instalação foi concluída com sucesso. 54 Figura 12 – Imagem ao localizar o prompt de comando Fonte: Elaborado pela autora. Figura 13 – Imagem do comando para desinstalar o PostgreSQL Fonte: Elaborado pela autora. 55 ACESSE: Caso você tenha executado essa etapa e revisado o arquivo de log, mas ainda não tenha conseguido solucionar o problema, o grupo PostgreSQL sugere que você acesse os fóruns do EnterpriseDB pelo link www.enterprisedb.com/. 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, é porque já verificou se o sistema operacional está atualizado e não há o PostgreSQL instalado. Sendo assim, vamos às etapas de instalação: Passo a passo: 1. Após abrir o prompt de comando como administrador (mostramos como fazer isso na Figura 12), digitar o comando: net user /add postgres senha. Ver a Figura 14. Fazendo isso, você irá criar um usuário com o nome postgres e senha. NOTA: Substituir a palavra senha por sua senha ou uma senha padrão. Nesse exemplo, a senha foi teste. Figura 14 – Imagem do comando de instalação do PostgreSQL Fonte: Elaborado pela autora. http://www.enterprisedb.com/ 56 2. Adicionar o usuário e senha criados para o PostgreSQL ao grupo de administradores do Windows (ver Figura 15) com o comando net localgroup administradores postgres /add. Figura 15 – Comando para adicionar o usuário ao grupo de administradores do Windows Fonte: Elaborado pela autora. 3. Após o usuário ser criado com suas devidas permissões, abrir um prompt de comando para o usuário postgres (Figura 16) com o comando runas /user:postgres cmd.exe Figura 16 – Comando abrir um Prompt de Comando com o nome do usuário criado Fonte: Elaborado pela autora. 57 NOTA: Nesta etapa, será solicitada a senha que você criou para o usuário. Ao digitá-la, a tela continuará sem apresentar nenhum símbolo, mas não se preocupe! Conclua a digitação e aperte ENTER para a nova janela aparecer. 4. No novo terminal, você precisará entrar na pasta do instalador. Para isso, digitar cd e o endereçoda pasta em que se encontra o instalador (Figura 17). Figura 17 – Comando para entrar na pasta do instalador do PostgreSQL Fonte: Elaborado pela autora. NOTA: Perceba que o meu endereço foi C:\Users\cfsar\Camila\ postgres, mas o seu pode mudar. Verifique corretamente onde está o instalador do qual você realizou o download do site do PostgreSQL e copie o endereço da pasta. Caso não se lembre, vá para a Figura 11. 5. Agora estamos na etapa de execução do instalador. Digitar o nome do arquivo no prompt de comando conforme a Figura 18. Então, o guia gráfico de instalação do PostgreSQL será aberto (Figura 19). 58 Figura 18 – Comando para executar o instalador do PostgreSQL Fonte: Elaborado pela autora. NOTA: Verifique o nome do arquivo corretamente, pois irá mudar conforme a versão do download. Figura 19 – Imagem do Guia de instalação do PostgreSQL Fonte: Elaborado pela autora. 59 6. A partir de agora, você irá seguir os passos de instalação padrão do guia, clicando em Next>. Deixar todos os componentes selecionados, conforme Figura 20. Figura 20 – Seleção dos componentes de instalação do PostgreSQL Fonte: Elaborado pela autora. 7. Não há necessidade de modificar os caminhos dos arquivos indicados pelo Guia (ver Figura 21), sugerimos que deixe o padrão. 60 Figura 21 – Seleção do diretório do PostgreSQL Fonte: Elaborado pela autora. 8. Você também pode se deparar com a solicitação de usuário e senha (ver Figura 22), mas é a mesma que você criou. Figura 22 – Imagem do processo de inserção da senha na instalação do PostgreSQL Fonte: Elaborado pela autora. 61 9. O número da porta já é 5432 por padrão (Figura 23), mas caso não apareça, você pode digitar esse mesmo número. Figura 23 – Inserção do número da porta do PostgreSQL Fonte: Elaborado pela autora. 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. Para verificar se tudo foi instalado corretamente, você poderá abrir o Gerenciador de Tarefas (apertando Ctrl+alt+del) e acessar a aba Serviços. Lá você vai visualizar o serviço do PostgreSQL instalado, como mostrado na Figura 24. 62 Figura 24 – Tela de confirmação da instalação do PostgreSQL Fonte: Elaborado pela autora. Instalação no Linux Olá! Se você está aqui é 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 tem suporte até o final de 2024. Vamos à prática! Passo a passo: 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 25. 63 Figura 25 – Instalação do Vim PostgreSQL Fonte: Elaborado pela autora. 2. Depois, iremos baixar os repositórios (Figura 26) 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 26 – Tela da etapa de baixar os repositórios Fonte: Elaborado pela autora. 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 (Figura 27). 64 Figura 27 – Tela de instalação da versão 12 do PostgreSQL Fonte: Elaborado pela autora. 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 com o status de ativo (ver Figura 28). Figura 28 – Tela de confirmação de instalação Fonte: Elaborado pela autora. Instalação no Mac OS A instalação do PostgreSQL no Mac OS X difere um pouco das demais plataformas, pois o instalador é um App Bundle, que é um conjunto de arquivos e diretórios em um formato prescrito. 65 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: Artigo: “The design of POSTGRES” (STONEBRAKER, Michael; ROWE, Lawrence A., 1986), acessível pelo link https://dl.acm.org/doi/ abs/10.1145/16856.16888 (Acesso em 06 ago. 2020). RESUMINDO: Chegamos ao final da unidade. Gostou de ver todos o processos 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 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 diversos sistemas operacionais: Linux x86-64, Linux x86-32, Mac OS X, Windows x86-64 e Windows x86-32. Vimos também que o PostgreSQL requer uma configuração mínima de hardware para a instalação e a execução do PostgreSQL: 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. 66 REFERÊNCIAS Apêndice E. Release Notes. PostgreSQL, 2019. Disponível em: http:// pgdocptbr.sourceforge.net/pg80/release.html#RELEASE-8-0. Acesso em: 7 ago. 2020. BECK, R. O.; LUZ, F. D. Normalização de dados: um desafio para o projetista de banco de dados. (1 ed., Vol. 5). RE3C - Revista Eletrônica Científica de Ciência da Computação. 2010. Disponível em: http://revistas.unifenas.br/ index.php/RE3C/article/view/45. Acesso em: 20 jul. 2020. BOSCARIOLI, C.; BEZERRA, A. Uma reflexão sobre banco de dados orientados a objetos. Disponível em: https://deinfo.uepg.br/~conged/ artigo4.pdf. Acesso em: 29 jul. 2020. ELMASRI, R.; NAVATHE, S. Sistemas de Banco de Dados. Ed. Addison- Wesley: São Paulo, 2005. PostgreSQL Database Download. EDB. Disponível em: https://www. enterprisedb.com/downloads/postgres-postgresql-downloads. Acesso em: 7 ago. 2020. STONEBRAKER, M.; ROWE, L. The design of POSTGRES. Disponível em: https://dl.acm.org/doi/abs/10.1145/16856.16888. Acesso em: 6 ago. 2020. TANAKA, L. C.; CAMARGO, F. M.; GOTARDO, R. A. Sistema gerenciador de banco de dados: Sgbd exist xml. Revista Eletrônica de Sistemas de Informação e de Gestão Tecnológica, v. 2, n. 1, 2012. Disponível em: http:// periodicos.unifacef.com.br/index.php/resiget/article/view/288. Acesso em: 24 jul. 2020. TRADUÇÃO da Documentação para o português do Brasil. PostgreSQL. Disponível em: http://pgdocptbr.sourceforge.net/. Acesso em: 7 ago. 2020. RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de dados-3. AMGH Editora, 2008. 67 Administração do SGBD PostgreSQL Camila Freitas Sarmento _Hlk47624161 Conceitos e definições sobre SGBD 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 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 DML - Data Manipulation Language 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