š§® Fundamentos de Ćlgebra Relacional ā
Módulo Teórico-Formal: A Linguagem MatemÔtica por trÔs das Consultas SQL
Fundamentação: Edgar F. Codd (1970) e a Teoria dos Conjuntos
Público: 1º Ano do Curso Técnico em Desenvolvimento de Software
1. šÆ Objetivos de Aprendizagem ā
Ao final deste capĆtulo, vocĆŖ serĆ” capaz de:
- š Compreender a relação entre operaƧƵes matemĆ”ticas sobre conjuntos e as consultas em tabelas de bancos de dados.
- š Dominar os operadores unĆ”rios fundamentais: Seleção (
) e Projeção ( ). - š Compor expressƵes relacionais combinando Junção (
), Produto Cartesiano ( ) e operadores de conjuntos ( ). - š Traduzir uma expressĆ£o formal de Ć”lgebra relacional diretamente para um comando
SELECTem SQL.
2. š” O que Ć© Ćlgebra Relacional? ā
A Ćlgebra Relacional Ć© uma linguagem de consulta procedural formal. Ela define um conjunto de operaƧƵes matemĆ”ticas aplicadas sobre relaƧƵes (tabelas) que produzem sempre uma nova relação como resultado (propriedade de fechamento).
3. š Operadores UnĆ”rios (Operam sobre 1 Tabela) ā
A) Seleção ( ) ā Filtragem Horizontal de Linhas ā
Filtra as tuplas (linhas) que satisfazem uma condição lógica booleana:
Exemplo PrĆ”tico: ā
Selecionar todos os alunos da turma '1º Ano InformÔtica':
| Relação de Entrada: ALUNOS | ||
|---|---|---|
| matricula | nome | turma |
| 2026-001 | Lucas Ferreira | 1º Ano InformÔtica |
| 2026-002 | Beatriz Ramos | 1º Ano InformÔtica |
| 2026-015 | Matheus Santos | 1º Ano Mecânica |
| Relação de SaĆda (Resultado da Seleção) | ||
|---|---|---|
| matricula | nome | turma |
| 2026-001 | Lucas Ferreira | 1º Ano InformÔtica |
| 2026-002 | Beatriz Ramos | 1º Ano InformÔtica |
B) Projeção ( ) ā Filtragem Vertical de Colunas ā
Extrai apenas os atributos (colunas) desejados, eliminando colunas desnecessƔrias e linhas duplicadas:
Exemplo PrĆ”tico: ā
Listar apenas a matrĆcula e o nome dos alunos:
| Relação de SaĆda | |
|---|---|
| matricula | nome |
| 2026-001 | Lucas Ferreira |
| 2026-002 | Beatriz Ramos |
| 2026-015 | Matheus Santos |
C) Composição de OperaƧƵes UnĆ”rias ā
Podemos aninhar operadores para buscar colunas especĆficas com filtros:
"Traga apenas o nome dos livros publicados após o ano 2000."
4. š Operadores BinĆ”rios (Operam sobre 2 Tabelas) ā
A) Junção Natural e Theta-Join ( ) ā
Combina tuplas de duas relações com base em uma condição de igualdade entre chaves (PK e FK):
Exemplo PrĆ”tico na Biblioteca: ā
Combinar os emprƩstimos com os dados dos respectivos alunos:
B) Produto Cartesiano ( ) ā
Combina todas as linhas de
C) OperaƧƵes ClĆ”ssicas da Teoria dos Conjuntos ā
As relaƧƵes devem ser uniĆ£o-compatĆveis (mesmo nĆŗmero e tipos de atributos):
- União (
): ā Retorna todas as tuplas que estĆ£o em ou em (sem duplicatas). - Interseção (
): ā Retorna as tuplas que pertencem simultaneamente a e a . - DiferenƧa (
): ā Retorna as tuplas que estĆ£o em , mas nĆ£o estĆ£o em .
5. š Matriz de EquivalĆŖncia: Ćlgebra Relacional vs. SQL ā
A tabela abaixo demonstra a correspondência direta entre as equações teóricas e a sintaxe prÔtica em SQL:
| Operação Relacional | Notação MatemÔtica | Comando SQL Equivalente |
|---|---|---|
| Projeção | SELECT A, B FROM R; | |
| Seleção | SELECT * FROM R WHERE condicao; | |
| Seleção + Projeção | SELECT A FROM R WHERE C; | |
| Produto Cartesiano | SELECT * FROM R CROSS JOIN S; | |
| Junção (Theta Join) | SELECT * FROM R INNER JOIN S ON R.k = S.k; | |
| União | SELECT * FROM R UNION SELECT * FROM S; | |
| Interseção | SELECT * FROM R INTERSECT SELECT * FROM S; | |
| DiferenƧa | SELECT * FROM R EXCEPT SELECT * FROM S; |
6. š Desafio PrĆ”tico Resolvido ā
Problema: Escreva a expressĆ£o em Ćlgebra Relacional e o comando SQL para responder:
"Quais sĆ£o os tĆtulos dos livros emprestados para o aluno com matrĆcula '2026-INFO-001'?"
ExpressĆ£o MatemĆ”tica: ā
Tradução Direta para SQL: ā
SELECT l.titulo
FROM alunos a
JOIN emprestimos e ON a.id_aluno = e.id_aluno
JOIN itens_emprestimo ie ON e.id_emprestimo = ie.id_emprestimo
JOIN livros l ON ie.id_livro = l.id_livro
WHERE a.matricula = '2026-INFO-001';