Escolar Documentos
Profissional Documentos
Cultura Documentos
Algebra Relacional
Banco de Dados
INTRODUÇÃO
Introdução
• Tópicos:
• Linguagens Formais: Álgebra e
Cálculo Relacional
• Linguagem Comercial: SQL
• Operadores (Teoria dos Conjuntos)
• Operações Especí cas
• Representação de expressões por árvore
fi
Modelagem Relacional/Manipulação
• União
• Retorna a união das tuplas de duas relações R1 e R2
• Eliminação automática de duplicatas
• Notação:
• relação1 U relação2 R1 R2 R1 U R2
• Exemplo:
Álgebra Relacional
• Diferença
• Retorna as tuplas presentes em R1 e ausentes em R2
• Notação:
• relação1 - relação2
• Exemplo: R1 R2 R1 - R2
Álgebra Relacional
• Intersecção
• Retorna as tuplas comuns em R1 e R2
• Notação:
• relação1
U
relação2
•
U
Exemplo: R1 R2 R1 R2
Álgebra Relacional
• Exemplos:
• Banco de Dados / Operações
DiscGR 1) Quais disciplinas estão sendo
oferecidas na GR ou PG?
DiscGR U DiscPG
DiscPG
Álgebra Relacional
• Exemplos:
• Banco de Dados / Operações
DiscGR – DiscPG
DiscPG
Álgebra Relacional
• Exemplos:
• Banco de Dados /
Operações 3) Quais disciplinas estão sendo
DiscGR oferecidas na GR e na PG?
DiscGR DiscPG
U
DiscPG
Álgebra Relacional
• Produto Cartesiano
• Retorna todas as combinações de tuplas de duas relações R1 e R2
• Grau do Resultado
• Grau (R1) + Grau (R2)
• Cardinalidade do Resultado
• Cardinalidade (R1) * Cardinalidade (R2)
• Notação:
• relação1 X relação2
Álgebra Relacional
• Produto Cartesiano
• Exemplo:
R1 R2 R1 X R2
Álgebra Relacional
• Exemplo:
• Banco de Dados / Produto Cartesiano
DiscGR
DiscGR X Prof
Prof
Álgebra Relacional
• Operações Especí cas (1):
• Operação:
• Seleção
• Notação:
P(r)
• Descrição:
• Selecione as tuplas de “r” que satisfazem o predicado de seleção “P”
fi
Álgebra Relacional
• Notação:
A1, ..., An(r)
• Descrição:
• Projeção das tuplas de “r” na lista de atributos A1, ..., An
fi
Álgebra Relacional
• Operações Especí cas (3):
• Operação:
• Renomeação
• Descrição:
• Nomeia o resultado da expressão “e” como S[B1, ..., Bk]
fi
Álgebra Relacional
• Operações Especí cas (4):
• Operação:
• Junção
• Notação: r |X| P S
• Descrição:
• Concatenação das tuplas de “r” e “s” que satisfazem o predicado de junção “P”
fi
Álgebra Relacional
• Operações Especí cas (5):
• Operação:
• Equijunção
• Notação: r |X| S
• Descrição:
• Concatenação das tuplas de “r” e “s” que coincidem nos atributos em comum,
eliminando os atributos em duplicata
fi
Álgebra Relacional
• Operações Especí cas (6):
• Operação:
• Divisão
• Notação: r÷S
• Descrição:
• R – S(r) – (( R – S(r) X S) – R – S,S (r))
fi
Álgebra Relacional
• Seleção
• Retorna tuplas que satisfazem um determinado predicado
• Resultado:
• Subconjunto horizontal de uma relação
• Notação:
predicado (relação)
• Exemplo:
R resultado
z >= 2 (R)
Seleção
• Exemplo:
• Banco de Dados
1) Quais disciplinas de GR
DiscGR ocupam a sala L520?
End = L520 (DiscGR)
Álgebra Relacional
• Projeção
• Retorna um ou mais atributos de interesse
• Eliminação automática de duplicatas
• Resultado:
• Subconjunto vertical de uma relação
• Notação:
lista_nomes_atributos (relação)
• Exemplo:
R resultado
x, y (R)
Projeção
• Exemplo:
• Banco de Dados
Seleção:
SELECT *
FROM tb_disciplina
WHERE endereco = “L510”;
• Exemplo (1):
R RX R1(R)
Álgebra Relacional
• Renomeação
• Altera o nome de uma relação e / ou dos seus atributos
• Notação:
(nome_atributo1, ..., nome_atributoN) e/ou nome_relação (relação)
• Exemplo (2):
R (a, b, c) (R)
Projeção
• Exemplo:
• Banco de Dados
3) Renomeie e2, resultado de (2), para
DiscGR
DS[Disciplina, Sala]
• Junção
• Junção na qual é uma igualdade prede nida entre todos os atributos
presentes em duas relações R1 e R2 (atributos de junção)
• Estes atributos só aparecem uma vez no resultado
• Notação:
relação1 |X| relação2
atributos de junção
• Derivação:
R1 |X| R2 = A1 , ..., An , B1 , ..., Bm , C1 , ..., Cx (R1 X R2)
= R1.C1 = R2.C1 ^ ... ^ R1.Cx = R2.Cx
fi
Álgebra Relacional
• Junção
• Exemplos:
R1 R2 R1 |X| R2
R1 R2 R1 |X| R2
Junção
• Exemplo:
• Banco de Dados
Prof
Consulta Simples
• Consultas Simples versus Álgebra Relacional:
Disc
Junção:
SELECT *
FROM Disc, Prof
WHERE Disc.Matricula = Prof.Matricula;
Disc |X| Disc.Matricula = Prof. Matricula Prof
|X| Disc.Matricula = Prof. Matricula
Prof
=
Álgebra Relacional
• Divisão
• Sejam R e S esquemas de relações e “r” e “s” relações com os esquemas R
eS
• t ϵ r ÷ s se e somente se
1. t ϵ R-S(r)
• Exemplos:
• Qual a matrícula dos professores que lecionam a maioria das disciplinas da GR?
R3 projete R2 em Nome;
|X| Disc.Matr = Prof.Matr
Disc Prof
Álgebra Relacional
• Expressão:
{ r / P(r) }
• onde
• r é uma variável varrendo tuplas
• P(r) é uma fórmula cuja única variável livre é r
Cálculo Relacional
• Exemplos:
• Qual a matrícula dos professores que lecionam disciplinas na L520?
• Qual o nome dos professores com mais de 45 anos que lecionam disciplinas na
GR?
{ n / ( r ϵ Prof ) ( S ϵ Disc )
E E
( n = r[Nome] Λ r[Idade] > 45 Λ s[Nivel] = GR ) Λ r[Matr] = s[Matr] ) }
EXERCÍCIOS
Exercício
• Questão 1:
• Considere o esquema relacional abaixo:
_______________
Empregado (Cod_Emp,
___________ Nome, Salario, Cod_Gerente)
R2 Empregado.nome, Gerente.nome(R1)
Exercício
• Questão 1:
• Considere o esquema relacional abaixo:
_______________
Empregado (Cod_Emp,
___________ Nome, Salario, Cod_Gerente)