PAGILA – Base de dados educativa para PostgreSQL

PAGILA – Base de dados educativa para PostgreSQL

Quando comecei aprender sobre banco de dados, senti falta de bases de dados prontas para fins de teste com o PostgreSQL. Eu queria aplicar conceitos aprendidos sobre SELECT, INSERT, UPDATE e DELETE em uma base pronta para aprofundar meu aprendizagem mas não tinha uma base funcional. Depois de muita procura encontrei a base de dados PAGILA, uma massa de dados voltada para testes e desenvolvimento.

Neste post, você irá aprender a usar esta base de dados Pagila para que possa aplicar seus próprios testes e alavancar seu aprendizado.

Pagila é uma base de dados de exemplo para PostgreSQL pronta para uso e é baseada na base Sakila feita para mySQL

Este post se baseia na versão 10.3 do PostgreSQL, mas os comandos apresentados servirão em qualquer versão superior à 9.1.

Ative a base de dados Pagila

Com usuário root, execute os comandos a seguir:

root@localhost:~ wget https://anonscm.debian.org/cgit/pkg-postgresql/postgresql-common.git/plain/pgdg/apt.postgresql.org.sh
root@localhost:~ bash apt.postgresql.org.sh
This script will enable the PostgreSQL APT repository on apt.postgresql.org on
your system. The distribution codename used will be stretch-pgdg.</code>

Press Enter to continue, or Ctrl-C to abort.
#Pressione enter

root@localhost:~ apt install postgresql -y
root@localhost:~ systemctl enable postgresql

Agora baixe o utilitário unzip, logue no usuário postgres e crie a base de dados:

root@localhost:~$ apt install unzip
root@localhost:~$ su - postgres
postgres@localhost:~$ wget http://pgfoundry.org/frs/download.php/1719/pagila-0.10.1.zip
postgres@localhost:~$ unzip pagila-0.10.1.zip
postgres@localhost:~$ psql -c 'CREATE DATABASE PAGILA;'
postgres@localhost:~$ psql -d pagila -f pagila-0.10.1/pagila-schema.sql
postgres@localhost:~$ psql -d pagila -f psql -d pagila -f pagila-0.10.1/pagila-data.sql
#Observação: Os arquivos pagila-data.sql e pagila-insert-data.sql fazem a mesma coisa, porém de formas diferentes. O primeiro insere dados através do comando COPY, e o seguinte, através de simples INSERTs.

A partir deste ponto, temos uma base de dados completamente funcional.

Alguns comandos básicos

A base de dados Pagila consiste na modelagem de um schema para uma locadora de filmes, à estilo Blockbuster. Nele temos as tabelas atores (actors), filmes(films), tabelas de relacionamento entre os mesmos, além de um inventário geral que conecta filmes, lojas e aluguéis.

Para listar as tabelas, logue no banco de dados pagila e execute o comando \dt.

postgres@localhost:~$ psql -d pagila
pagila=# \dt

Para selecionar o ator que mais fez filmes, podemos executar a seguinte query:

pagila=#
#Copie e cole a seguinte query:
SELECT first_name, last_name, count(*) films
FROM actor AS a
JOIN film_actor AS fa USING (actor_id)
GROUP BY actor_id, first_name, last_name
ORDER BY films DESC
LIMIT 1;
#O resultado será:
first_name | last_name | films
------------+-----------+-------
GINA       | DEGENERES |    42

No post a seguir, vamos aprender como usar o pgAdmin4, uma ferramenta web para consultas no PostgreSQL através do Docker, conectando-se ao bando de dados Pagila.

Anterior Migração e Atualização do Moodle para o maior Sistema de Cooperativas de Crédito Rural Solidário do Brasil.
Próxima 4Linux inova mais uma vez e lança curso de Continuos Monitoring DEVOPS.

About author

Arlindo Neto
Arlindo Neto 7 posts

Arlindo Neto é administrador de banco de dados apaixonado por PostgreSQL. Cursa Ciência da Computação. Atua com foco em banco de dados open-source, possuindo 3 anos de experiência profissional em análise e engenharia de dados. Acumula experiência em projetos envolvendo PostgreSQL, MariaDB, MySQL e MongoDB. No momento vem atuando com Python, com ênfase em aplicações para Big Data. Possui expertise como professor, desenvolvendo e aplicando cursos sobre Linux e tecnologias Open Source, detém certificação EnterpriseDB PostgreSQL 9.6

View all posts by this author →

Você pode gostar também

Infraestrutura

Como funciona a descoberta de baixo nível (LLD) no Zabbix?

Descoberta de baixo nível, ou Low-level discovery (LLD), é um processo que automatiza o registro e monitoramento de recursos pelo Zabbix, ele pode fazer a identificação de métricas em sistemas

Infraestrutura

Acessos remoto centralizado com Apache Guacamole

Neste post falo sobre uma ferramenta bastante interessante do projeto Apache chamado Guacamole que irá resolver problemas de acessos remotos a servidores em sua empresa. É uma mão na roda.

Infraestrutura

JSON e BSON no MongoDB: para iniciantes

Dando continuidade na série de MongoDB, nesse post farei uma Introdução ao formato “Javascript Object Notation” (JSON), ao BSON e aos primeiros passos com o MongoDB. Compartilhe este post: Twitter