Te desejo boas-vindas ao curso de Modelagem de banco de dados relacional: Álgebra Relacional! Meu nome é Ana Duarte, instrutora da Escola de Dados e e vou te acompanhar nesta trajetória!
Audiodescrição: Ana se descreve como uma mulher de pele clara, olhos castanhos e cabelos curtos e também castanhos. Veste uma camiseta rosa, usa um piercing no septo e está sentada sob uma cadeira preta. Ao fundo, uma parede lisa dividida por duas cores: metade verde e metade roxo.
Você já desejou compreender a lógica da visualização de informações em um banco de dados? Ou já quis criar essa mentalidade analítica por trás da lógica relacional em que um dado é armazenado?
Se esse é o seu objetivo, convido você a conhecer a álgebra relacional, uma linguagem formal que proporciona a compreensão de visualizar tanto informações em uma linha quanto em coluna específica, por meio das operações de seleção e de projeção.
Além disso, vamos explorar as informações que se encontram em tabelas diferentes através da operação de produto cartesiano e de junção, que incluem a junção natural e a junção à esquerda. Neste processo, vamos aplicar conhecimentos matemáticos para executar, juntamente com a álgebra relacional, as informações de união, interseção e diferença de conjuntos.
Tudo isso será visto com uma ferramenta bastante simplificada e com um projeto prático, juntamente com o Clube do Livro, a empresa case que utilizaremos para nortear o conteúdo. Ao longo do curso, serão fornecidas diversas atividades para você expandir seu conhecimento e raciocínio.
Para conseguir acompanhar este curso, é importante que você tenha conhecimentos prévios em conceitos de modelagem. Vamos lá?
O principal objetivo desse curso é permitir que você consulte dados usando as operações da álgebra relacional, focado nas necessidades do Clube do Livro.
O Clube do Livro, que será a empresa case deste curso, é um e-commerce que vende livros e artigos de livraria. Vamos entender o que essa empresa precisa, quais são seus dados e como visualizá-los.
Faremos isso utilizando a álgebra relacional, uma linguagem formal que usa símbolos para representar operações específicas. Ao utilizar essa linguagem, que é mais uma forma de criar uma relação com dados, aprenderemos sobre essas operações para visualizar os dados e responder a algumas perguntas. Essas perguntas incluem, por exemplo, quais os nomes das pessoas vendedoras e quais os livros mais vendidos.
Aqui, estamos usando o Clube do Livro como um exemplo de empresa para termos objetivos específicos alinhados a essas operações. Contudo, é interessante que você observe o seu processo de raciocínio e de aprendizado. À medida que avançarmos no curso, a complexidade vai aumentar, pois vamos aprender sobre operações isoladas, mas também sobre como combiná-las, o que trará mais robustez para a álgebra relacional.
A álgebra relacional é um conhecimento prévio do SQL, portanto, é com ela que criamos um raciocínio lógico para tornar a linguagem SQL mais fácil de ser lida e compreendida. É por isso que, durante a modelagem e a construção de um banco de dados relacional, aprendemos essa linguagem para criar o raciocínio e entender aspectos de otimização de consultas.
Além disso, é importante que você avalie esses conhecimentos e expanda o cenário para além de uma livraria. Para ajudá-lo nisso, criamos várias atividades ao longo do curso, nas quais você é convidado a refletir e enfrentar os desafios propostos.
Agora, vamos começar a conhecer os dados que precisamos!
Agora que já entendemos o Clube do Livro, a empresa case que iremos acompanhar ao longo deste curso, vamos compreender quais são as tabelas que constituem a base de dados dessa empresa.
Possuímos 6 tabelas, também chamadas de relações ou entidades, que contêm informações específicas.
BASE DE DADOS:
Livros (id_livro, nome_livro, autor, preco, qtd_estoque)
Vendedores (id_vendedor, nome, anos_exp)
Clientes (id_cliente, nome, cidade, email)
Vendas (id_pedido, id_vendedor_vendas, id_livro, qtd_vendida
LivroMaisVendidos (id_livro, ano, mais vendidos)
LivrosRecomendados (id_livro, fonte_recomendacao, nota_media)
A primeira tabela é a tabela de livros, que armazena o código do livro e informações sobre ele. Em seguida, temos a tabela de pessoa vendedora, que fornece informações sobre essas pessoas.
Depois, temos a tabela de clientes, que garante informações dos clientes, incluindo cidade, e-mail e o código desse cliente, e o histórico de vendas, armazenado na tabela de vendas.
Por fim, temos duas tabelas especiais: a primeira é de livros mais vendidos, onde em um ano específico, podemos ver quais foram os livros mais vendidos no passado, e a de livros recomendados, que é um histórico de livros sugeridos por fontes externas, como uma revista famosa ou um site.
Agora, vamos conhecer qual será o ambiente de desenvolvimento para praticar as operações de Álgebra Relacional.
Para praticar essas operações, vamos pesquisar "relax algebra relacional" no navegador. Vale ressaltar que Relax corresponde ao nome do ambiente.
Em seguida, acessamos o primeiro link, que corresponde a um link do GitHub: https://dbis-uibk.github.io/relax/landing. Nele, temos a ferramenta Relax, um ambiente web que precisa apenas de um navegador de internet para acessar. Este ambiente não pode ser uma barreira para seus conhecimentos, mas sim um facilitador para praticarmos cada operação à medida que os conhecemos.
Ao acessarmos, nos é fornecido uma introdução sobre a ferramenta, além de um guia de ajuda e as implementações feitas nesta ferramenta. Vamos clicar em "Get Started" para começar.
A janela para a qual seremos redirecionados é o visual com o qual mais teremos contato ao longo do curso. Note que no topo temos um menu com algumas opções. A segunda opção deste menu, da esquerda para direita, é "Linguagem", onde podemos selecionar "pt" para o português, mas sinta-se à vontade para escolher a linguagem que preferir.
A última opção deste menu superior corresponde ao light mode (modo claro) ou o dark dode (Modo Escuro). Ao clicá-la, alternamos entre esses dois modos, e o símbolo também alterna entre um sol e uma meia-lua em alusão a cada um desses modos. O dark mode é uma implementação recente e pode apresentar algum erro, por isso é interessante optarmos pelo light mode.
Na lateral esquerda da tela, conseguimos visualizar a base de dados inserida. Por padrão, ele traz uma base de dados chamada UIBK
, que tem três relações. Ou seja, três tabelas diferentes com seus respectivos atributos. Logo mais, vamos inserir a base de dados do Clube do Livro, por enquanto vamos apenas explorar a ferramenta.
No centro, temos uma janela com três abas. A primeira aba é a de Álgebra Relacional, onde iremos criar e escrever os comandos. Nela, temos os símbolos desta linguagem conheceremos mais adiante
Depois, temos a aba de SQL, onde podemos usar os comandos de SQL para consultar as bases de dados. Ela não será explorada neste curso.
A terceira e última aba é o Editor de Grupo, que também será utilizado. Este é o local onde editamos a base de dados, as tabelas, as relações e os atributos.
Vamos começar a explorar as bases de dados. Para isso, vamos clicar em "Select DB", na lateral esquerda, e uma nova janela será aberta.
No âmbito desta relação, é crucial que você entenda que este ambiente é projetado especificamente para treinar operações de álgebra relacional, por isso, temos alguns datasets pré-definidos disponíveis para prática.
Para fins de treinamento, utilizaremos um dataset específico, o do clube do livro. Então, vamos clicar na opção "Criar Novo Dataset", que vai nos redirecionar para a aba do Editor de Grupo e nos mostrar uma série de comandos:
-- this is an example
group: nameOfTheNewGroup
A = {
a:string, b: number
example, 42
}
Na primeira linha, temos um comentário simbolizado por dois hifens. Sempre que tivermos dois hifens, estamos lidando com um comentário.
Vamos apagar esta linha.
group: nameOfTheNewGroup
A = {
a:string, b: number
example, 42
}
Em seguida, temos o comando group
que neste ambiente denota o nome da base de dados. O nome da nossa base de dados é Clube do Livro
, então vamos colocá-lo.
group: Clube do Livro
A = {
a:string, b: number
example, 42
}
Além disso, temos uma tabela de exemplo chamada A
. Podemos editá-la clicando no ícone de tabela que aparece à esquerda do nome da tabela.
Ao clicar nesse ícone, abrimos uma nova aba onde poderemos editar a relação da tabela. A princípio, nos será mostrado um modelo de tabela semelhante a este:
Nome da Relação
Nome | a | b | |
---|---|---|---|
Tipo | string | number | |
1 | example | 42 | |
2 |
No topo, acima da tabela, temos um campo para inserir o nome da nossa relação, que será "Vendedores".
Esta tabela possui três atributos, ou seja, três colunas. O primeiro campo é o ID do vendedor, então colocaremos id_vendedor
; o segundo campo é o nome da pessoa vendedora, portanto nome
; já o terceiro campo é o número de anos de experiência, que colocaremos como anos_exp
.
Nome | id_vendedor | nome | anos_exp |
---|---|---|---|
Tipo | string | number | |
1 | example | 42 | |
2 |
Na segunda linha, precisamos especificar o tipo desse atributo. Para o ID do vendedor, que é um código, podemos definir como string (texto) ou number (número). Optaremos pela segunda opção.
Na segunda coluna, que é o nome, definiremos como string. Finalmente, para anos de experiência, definiremos o tipo number, já que é a quantidade de anos de experiência de cada pessoa vendedora.
Nome | id_vendedor | nome | anos_exp |
---|---|---|---|
Tipo | number | string | number |
1 | example | 42 | |
2 |
Podemos, agora, inserir os dados. Faremos isso manualmente para a primeira pessoa vendedora, cujos dados são: 1, Lucas Silva e 5, respectivamente para cada coluna.
Nome | id_vendedor | nome | anos_exp |
---|---|---|---|
Tipo | number | string | number |
1 | 1 | Lucas Silva | 5 |
2 |
Outra possibilidade para inserção de dados é fazer o upload de dados em CSV, que é o tipo de arquivo que o Relax lê.
Vamos finalizar a edição clicando em "OK". A área de comandos, na aba Editor de Grupo, ficará assim:
group: Clube do Livro
Vendedores = {
id_vendedor, nome, anos_exp
1, 'Lucas Silva', 5
}
Perceba, portanto, que os nossos dados são lidos de maneira diferente. A tabela é representada como um CSV.
Se necessário, é sempre possível editar clicando no ícone de tabela que nos leva ao editor de relação, onde editamos a tabela de vendedores. Outra opção é criar os códigos neste editor. Inclusive, vamos copiar e colar os outros vendedores neste mesmo formato de comando. O código ficará assim:
group: Clube do Livro
Vendedores = {
id_vendedor, nome, anos_exp
1, 'Lucas Silva', 5
2, 'Camila Santos', 3
3, 'Gabriel Almeida', 7
4, 'Larissa Souza', 2
5, 'Rafael Lima', 0
6, 'Júlia Rocha', 0
}
Note que quando temos uma string (cadeia de caracteres), ela fica entre aspas. Já para um número não é necessário o uso de aspas.
Temos outras tabelas, como as de vendedores e livros, conforme vimos anteriormente na listagem da base de dados. Vamos copiar e colar os dados.
Não se preocupe em compreender toda essa quantidade de informações agora, porque é justamente a álgebra relacional e suas operações que vão nos permitir visualizar esses dados.
O código ficará assim:
group: Clube do Livro
Vendedores = {
id_vendedor, nome, anos_exp
1, 'Lucas Silva', 5
2, 'Camila Santos', 3
3, 'Gabriel Almeida', 7
4, 'Larissa Souza', 2
5, 'Rafael Lima', 0
6, 'Júlia Rocha', 0
}
Livros = {
id_livro, nome_livro, autor, preco, qtd_estoque
1, 'Percy Jackson e o Ladrao de Raios', 'Rick Riordan', 41.2, 11
2, 'Sangue de Lobo', 'Rosana Rios', 50.9, 2
3, 'Resident Evil Caliban Cove', 'S.D Perry', 18, 5
4, 'O Simbolo Perdido', 'Dan Brown', 60, 9
5, 'Sombras e Ossos', 'Leigh Bardugo', 28.9, 7
6, 'Pegasus e o Fogo do Olimpo', 'Kate O Hearn', 24.9, 8
7, 'Gossip Girl Nao me Esqueca', 'Cecily Von', 26.9, 4
8, 'Cidade das Almas Perdidas', 'Cassandra Clare', 34.45, 12
9, 'A Chama de Ember', 'Colleen Houck', 39.46, 1
10, 'A Maldicao do Tigre', 'Colleen Houck', 60, 6
11, 'O Senhor dos Anéis', 'J.R.R. Tolkien', 29.99, 10
12, 'Harry Potter', 'J.K. Rowling', 24.99, 15
13, 'Cem Anos de Solidão', 'Gabriel García Márquez', 19.99, 8
14, 'Dom Quixote', 'Miguel de Cervantes', 22.99, 12
15, 'A Revolução dos Bichos', 'George Orwell', 17.99, 20
16, 'Orgulho e Preconceito', 'Jane Austen', 18.99, 5
17, 'Crime e Castigo', 'Fyodor Dostoevsky', 21.99, 7
18, '1984', 'George Orwell', 20.99, 9
19, 'Ulisses', 'James Joyce', 25.99, 3
20, 'O Grande Gatsby', 'F. Scott Fitzgerald', 16.99, 11
}
Clientes = {
id_cliente, nome, cidade, email
1, 'João Silva', 'São Paulo', 'joao.silva@example.com'
2, 'Maria Santos', 'Rio de Janeiro', 'maria.santos@example.com'
3, 'Pedro Almeida', 'Belo Horizonte', 'pedro.almeida@example.com'
4, 'Ana Souza', 'Salvador', 'ana.souza@example.com'
5, 'Carlos Lima', 'Brasília', 'carlos.lima@example.com'
6, 'Fernanda Rocha', 'Recife', 'fernanda.rocha@example.com'
7, 'André Oliveira', 'Fortaleza', 'andre.oliveira@example.com'
8, 'Juliana Costa', 'Manaus', 'juliana.costa@example.com'
9, 'Luiz Fernandes', 'Curitiba', 'luiz.fernandes@example.com'
10, 'Laura Santos', 'Porto Alegre', 'laura.santos@example.com'
11, 'Paulo Rodrigues', 'Belém', 'paulo.rodrigues@example.com'
12, 'Carolina Menezes', 'Rio de Janeiro', 'carolina.menezes@example.com'
13, 'André Santos', 'Goiânia', 'andre.santos@example.com'
14, 'Isabella Oliveira', 'Vitória', 'isabella.oliveira@example.com'
15, 'Marcelo Costa', 'São Luís', 'marcelo.costa@example.com'
16, 'Beatriz Andrade', 'Natal', 'beatriz.andrade@example.com'
17, 'Rafael Fernandes', 'Campinas', 'rafael.fernandes@example.com'
18, 'Laura Mendes', 'Rio de Janeiro', 'laura.mendes@example.com'
19, 'Alexandre Lima', 'Cuiabá', 'alexandre.lima@example.com'
20, 'Vanessa Santos', 'Aracaju', 'vanessa.santos@example.com'
}
Vendas = {
id_pedido, id_vendedor_vendas, id_livro, qtd_vendida
1, 3, 7, 2
2, 1, 2, 5
3, 2, 4, 3
4, 4, 8, 1
5, 3, 6, 2
6, 1, 6, 4
7, 2, 3, 1
8, 4, 10, 3
9, 3, 9, 2
10, 1, 10, 1
11, 2, 12, 2
12, 4, 15, 3
13, 3, 18, 1
14, 1, 13, 4
15, 3, 17, 2
16, 2, 20, 1
17, 1, 11, 3
18, 4, 14, 2
19, 3, 19, 1
20, 2, 16, 5
21, 1, 3, 2
22, 4, 7, 3
23, 3, 10, 1
24, 1, 9, 4
25, 3, 6, 2
}
LivroMaisVendidos = {
id_livro, ano, mais_vendidos
3, 2020, 120
7, 2021, 95
9, 2019, 80
12, 2022, 150
14, 2018, 110
16, 2021, 135
18, 2020, 100
19, 2021, 90
20, 2019, 75
6, 2022, 130
}
LivrosRecomendados = {
id_livro, fonte_recomendacao, nota_media
3, 'Book Reviews', 4.2
7, 'Literary Gazette', 3.8
9, 'Readers Digest', 4.5
12, 'BestBooks Magazine', 4.1
14, 'Bookworm Reviews', 4.4
16, 'ReadItAll Blog', 4
18, 'Literary Gazette', 4.6
19, 'Book Reviews', 3.9
20, 'Readers Digest', 4.3
1, 'BestBooks Magazine', 4.5
}
Feito isso, vamos clicar em "Visualizar" para ter acesso a uma pré-visualização das tabelas que foram carregadas.
Visualização apenas dos 5 primeiros registros de cada tabela.
Vendedores
id_vendedor | nome | anos_exp |
---|---|---|
1 | Lucas Silva | 5 |
2 | Camila Santos | 3 |
3 | Gabriel Almeida | 7 |
4 | Larissa Souza | 2 |
5 | Rafael Lima | 0 |
Livros
id_livro | nome_livro | autor | preco | qtd_estoque |
---|---|---|---|---|
1 | Percy Jackson e o Ladrao de Raios | Rick Riordan | 41.2 | 11 |
2 | Sangue de Lobo | Rosana Rios | 50.9 | 2 |
3 | Resident Evil Caliban Cove | S.D Perry | 18 | 5 |
4 | O Simbolo Perdido | Dan Brown | 60 | 9 |
5 | Sombras e Ossos | Leigh Bardugo | 28.9 | 7 |
Clientes
id_cliente | nome | cidade | |
---|---|---|---|
1 | João Silva | São Paulo | joao.silva@example.com |
2 | Maria Santos | Rio de Janeiro | maria.santos@example.com |
3 | Pedro Almeida | Belo Horizonte | pedro.almeida@example.com |
4 | Ana Souza | Salvador | ana.souza@example.com |
5 | Carlos Lima | Brasília | carlos.lima@example.com |
Vendas
id_pedido | id_vendedor_vendas | id_livro | qtd_vendida |
---|---|---|---|
1 | 3 | 7 | 2 |
2 | 1 | 2 | 5 |
3 | 2 | 4 | 3 |
4 | 4 | 8 | 1 |
5 | 3 | 6 | 2 |
Livros Mais Vendidos
id_livro | ano | mais_vendidos | Vendas.qtd_vendida |
---|---|---|---|
3 | 2020 | 120 | 2 |
7 | 2021 | 95 | 5 |
9 | 2019 | 80 | 3 |
12 | 2022 | 150 | 1 |
14 | 2018 | 110 | 2 |
Livros Recomendados
id_livro | fonte_recomendacao | nota_media |
---|---|---|
3 | 'Book Reviews' | 4.2 |
7 | 'Literary Gazette' | 3.8 |
9 | 'Readers Digest' | 4.5 |
12 | 'BestBooks Magazine' | 4.1 |
14 | 'Bookworm Reviews' | 4.4 |
Precisamos usar todas essas relações para começar a praticar a álgebra relacional. Então vamos clicar na opção "Use Group no Editor" para usar esse grupo no editor.
Para verificar que estamos usando esta base de dados, basta observar o esquema que aparecerá na lateral esquerda.
Feito isso, vamos alterar para a aba Álgebra Relacional para começar a executar os comandos e operações dessa linguagem!
O curso Modelagem de banco de dados relacional: álgebra relacional possui 93 minutos de vídeos, em um total de 47 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.