Sei sulla pagina 1di 16

lgebra, Clculo Relacional

e SQL (Select) Parte3


BAN1 Banco de Dados 1
Prof. Cllio Ferreira

LGEBRA RELACIONAL
Classificao dos operadores:
Fundamentais:
Unrios: seleo, projeo;
Binrios: produto cartesiano, unio e diferena.
Derivados:
Binrios: interseco, juno e diviso.
Especiais
Renomeao (unrio) e atribuio
Operador de alterao (unrio)

RENOMEAO
Altera o nome de uma relao e/ou dos seus atributo.
Notao:

RENOMEAO - MAPEAMENTO PARA SQL


Exemplo:
selecionar cdigo e nome dos pacientes como Codigo e
Nome

SELECT cdPaciente AS Codigo,


nmPaciente AS Nome
FROM paciente

UNIO, DIFERENA E INTERSECO


Levando em considerao que as relaes podem ser tratadas
como conjuntos, podemos ento aplicar um conjunto de operaes
matemticas sobre as mesmas. Estas operaes so:
unio () , interseco () e diferena (). Este conjunto de
operaes no unitrio, ou seja, podem ser aplicadas sobre mais
de uma tabela, porm, existe a necessidade das tabelas possurem
tuplas exatamente do mesmo tipo.
Operam somente sobre duas relaes R1 e R2 ditas compatveis:
grau(R1) = grau(R2) (nmero de colunas)
para i de 1 at grau(R1):
domnio(atributo ai de R1) = domnio(atributo ai de R2)
Grau do resultado:
grau(R1) (ou grau(R2)).

UNIO
Retorna a unio das tuplas de duas relaes R1 e R2;
Eliminao automtica de duplicatas;
Notao:
relao 1 relao 2
O resultado desta operao representada por R1 R2 uma relao T que inclui
todas as tuplas que se encontram em R1 e todas as tuplas que se encontram em
R2;

DIFERENA
Retorna as tuplas presentes em R1 e ausentes em R2;
Notao:
relao 1 - relao 2
O resultado desta operao representada por R1 R2 uma relao T que inclui
todas as tuplas que esto em R1 mas no esto em R2.

INTERSECO
Retorna as tuplas comuns a R1 e R2;
Notao:

relao 1 relao 2
O resultado desta operao representada por R1 R2 uma relao T que inclui
as tuplas que se encontram em R1 e em R2 ao mesmo tempo.

UNIO DE TABELAS
OBS: No existe um mapeamento direto das operaes de
Unio, Diferena e Interseco para SQL!
Implementando a unio da lgebra relacional:
CUIDADO: Exige tabelas compatveis:

Exemplo:
Buscar o cdigo e nome dos pacientes e mdicos.
SELECT cdPaciente, nmPaciente
FROM paciente
UNION
SELECT cdMedico, nmMedico
FROM medico

JUNO (JOIN)
A operao juno atua de forma similar operao produto
cartesiano, porm, a tabela resultante conter apenas as
combinaes das tuplas que se relacionam de acordo com uma
determinada condio de juno.
Retorna a combinao de tuplas de duas relaes R1 e R2 que
satisfazem um predicado;
Notao:

JUNO (JOIN)

MAPEAMENTO PARA SQL

EXEMPLO

EXERCCIO AVALIATIVO
Dadas as tabelas abaixo :

EXERCCIO AVALIATIVO
1 - Descreva graficamente as relaes resultantes das consultas
abaixo (continuao do exerccio Aula 7) :

n) nome, telefone (ind_concluso=S (<Ex-Alunos>)) nome, telefone


( ind_concluso= S (<Alunos>))
o) nome, telefone ( ind_concluso= S (<Ex- Alunos>)) nome,
telefone ( curso = 1A (<Alunos>))
p) nome,telefone (ind_concluso= N (<Alunos>)) nome, telefone (
ind_concluso= S (<ex-Alunos>))
q) nome,telefone (ind_concluso= S (<Alunos>)) - ind_concluso= S
(<ex-Alunos>)
r) alunos.nome,alunos.telefone, curso.descricao ( curso.codigo =
alunos.curso (ind_concluso= S (<Alunos X Curso >)
s) ex alunos.nome,ex alunos.endereco, curso.descricao ( curso.codigo =
ex alunos.curso (ind_concluso= S (<ex Alunos X Cursos >)

EXERCCIO AVALIATIVO
2 - Escreva as expresses em lgebra relacional referentes as
situaes abaixo :
a) Selecione os nomes, endereos e telefones dos alunos atuais que pertencem
b)
c)
d)
e)
f)
g)
h)
i)

a curso 2A.
Selecione os nomes, telefones e indicador de concluso de curso de alunos
atuais.
Selecione os nomes, telefones e indicador de concluso de curso de alunos
atuais que desistiram do curso.
Selecione os nomes, telefones dos ex alunos que desistiram do curso.
Selecione os nomes, telefones dos ex alunos que terminaram o curso.
Busque as informaes descrio curso, ano e perodo de alunos atuais.
Busque as informaes descrio curso, ano e perodo de ex alunos que
desistiram do curso.
Busque as informaes de nome, telefone e endereo dos ex alunos que no
estejam cursando outro curso atualmente.
Busque as informaes referentes ao nome e indicador de concluso de curso
de alunos que j terminaram outros cursos.

Potrebbero piacerti anche