A maior rede de estudos do Brasil

Grátis
26 pág.
Banco de Dados - Álgebra Relacional (Módulo VIII)

Pré-visualização | Página 1 de 1

Álgebra Relacional
Álgebra Relacional
� Coleção de operações usadas para manipular
relações inteiras, resultando em uma nova relação.
� Alguns conceitos envolvidos:
� Relação;
2
� Relação;
� Grau da Relação;
� Tupla;
� Atributo;
� Chave primária;
� Chave estrangeira.
Álgebra Relacional
Chave Estrangeira
3
Operadores
• Podemos ter duas categorias:
– Operadores de Conjuntos Tradicionais:
• União
• Interseção
• Diferença
4
• Diferença
• Produto Cartesiano
– Operadores Relacionais Especiais:
• Seleção
• Projeção
• Junção
• Divisão
Operadores Tradicionais
� UNIÃO:
� Constitui uma tabela formada por todas as linhas das outras
2 tabelas envolvidas.
� As duas tabelas devem possuir o mesmo número de
colunas e cada par de colunas correspondentes possui ocolunas e cada par de colunas correspondentes possui o
mesmo domínio.
Código Nome
333 José
444 Maria
555 João
5
Empregado
Matricula Nome
333 José
999 Gal
121 Gil
Aluno
U
Operadores Tradicionais
� UNIÃO:
Empregado AlunoU
Matricula NomeMatricula Nome
333 José
444 Maria
555 João
6
Matricula Nome
333 José
999 Gal
121 Gil
Matricula Nome
333 José
444 Maria
555 João
999 Gal
121 Gil
=
Operadores Tradicionais
� INTERSEÇÃO:
� Constitui uma tabela formada por todas as linhas comuns
às outras 2 tabelas envolvidas na operação.
Matricula Nome
333 José
444 Maria
555 João
7
Empregado
Matricula Nome
333 José
999 Gal
121 Gil
Aluno
U
Operadores Tradicionais
� INTERSEÇÃO:
Empregado Aluno
U
Matricula Nome
333 José
444 Maria
555 João
8
Matricula Nome
333 José
999 Gal
121 Gil
=
Matricula Nome
333 José
Operadores Tradicionais
� DIFERENÇA:
� Constitui uma tabela formada por todas as linhas que estejam na
primeira, mas não na segunda tabela envolvida na operação.
9
Mat Nome
111 João
222 Gil
333 Gal
Mat Nome
111 João
888 Ana
999 Pedro
Empregado Aluno
- =
Mat Nome
222 Gil
333 Gal
Mat Nome
111 João
888 Ana
999 Pedro
Aluno
Mat Nome
111 João
222 Gil
333 Gal
Empregado
-
=
Mat Nome
888 Ana
999 Pedro
Operadores Tradicionais
• PRODUTO CARTESIANO:
– Constitui uma tabela a partir de duas tabelas envolvidas
na operação, concatenando todas as linhas de cada uma
destas tabelas.
10
Cod_Emp Nome
E1 José
E2 Maria
E3 João
Empregado
Cod_Dept Nome
D1 Produção
D2 Projetos
Departamento
Cod_Emp Nome_Emp Cod_Dept Nome_Dept
E1 José D1 Produção
E2 Maria D1 Produção
E3 João D1 Produção
E1 José D2 Projetos
E2 Maria D2 Projetos
E3 João D2 Projetos
Empregado X Departamento
Exercícios
1-Crie duas tabelas e aplique o operador de
união nestas tabelas.
2-Crie duas tabelas e aplique o operador de
interseção nestas tabelas.
11
interseção nestas tabelas.
3-Crie duas tabelas e aplique o operador de
produto nestas tabelas.
Operadores Relacionais
� SELECT(σ):
� Destaca apenas as linhas solicitadas de uma determinada
tabela.
12
Matricula Nome Turma
M1 Caio BD
M2 Bia BD
M3 Lara Lógica
Alunos
σ (Alunos)Turma=‘BD’
Operadores Relacionais
� SELECT:
Mat Nome
111 Sara
Aluno
13
σ (Aluno)Nome =‘José’
222 Lara
333 José
444 Bia
555 Bel
=
Mat Nome
333 José
Operadores Relacionais
• PROJECT (pipipipi):
– Recupera determinadas colunas de uma tabela e
desconsidera outras.
– Elimina linhas duplicatas.– Elimina linhas duplicatas.
14
pi (PRODUTO)
nome, fabricante
Operadores Relacionais
� Project:
Aluno
Mat Nome
111 Gil M
Sexo
Nome Sexo
15
pi (Aluno)Nome, Sexo
=
111 Gil M
222 Sara F
333 José M
444 Gil F
555 José M
Gil M
Sara F
José M
Gil F
Nome Sexo
Operadores Relacionais
� JOIN (INNER JOIN):
� Símbolo |X|
� EQUIJOIN
16
� NATURAL JOIN:
� Símbolo *
Operadores Relacionais
� JOIN (INNER JOIN) |x|
EMPREGADO|X| CONSULTA.EMPREGADO.MAT_EMP=ALOCAÇÃO.MAT_EMP
MAT_EMP NOME_EMP COD_PRJ MAT_EMP FUNÇÃO
M1 MARIA P1 M1 DBA
17
MAT_EMP NOME_EMP
M1 MARIA
M2 JOSÉ
M3 BIA
COD_PRJ MAT_EMP FUNÇÃO
P1 M1 DBA
P2 M2 ANALISTA
M1 MARIA P1 M1 DBA
M2 JOSÉ P2 M2 ANALISTA
EMPREGADO ALOCAÇÃO
Operadores Relacionais
� EQUIJOIN
MAT_EMP NOME_EMP COD_PRJ MAT_EMP FUNÇÃO
M1 MARIA P1 M1 DBA
M2 JOSÉ P1 M1 DBA
M3 BIA P1 M1 DBA
EMPREGADO_ALOCAÇÃO
18
MAT_EMP NOME_EMP
M1 MARIA
M2 JOSÉ
M3 BIA
COD_PRJ MAT_EMP FUNÇÃO
P1 M1 DBA
P2 M2 ANALISTA
M3 BIA P1 M1 DBA
M1 MARIA P2 M2 ANALISTA
M2 JOSÉ P2 M2 ANALISTA
M3 BIA P2 M2 ANALISTA
EMPREGADO ALOCAÇÃO
Operadores Relacionais
� NATURAL JOIN *
MAT_EMP NOME_EMP COD_PRJ MAT_EMP FUNÇÃO
M1 MARIA P1 M1 DBA
19
MAT_EMP NOME_EMP
M1 MARIA
M2 JOSÉ
M3 BIA
COD_PRJ MAT_EMP FUNÇÃO
P1 M1 DBA
P2 M2 ANALISTA
M1 MARIA P1 M1 DBA
M2 JOSÉ P2 M2 ANALISTA
ALOCAÇÃOEMPREGADO
Operadores Relacionais
� OUTER JOIN:
� Pode ser de 3 tipos:
�LEFT OUTER JOIN�LEFT OUTER JOIN
�RIGHT OUTER JOIN
� FULL OUTER JOIN
20
LEFT OUTER JOIN
A B
Cod_Filme Titulo_Filme Cod_Gênero
F1 The Free Surf G1
F2 The Sun G2
F3 Altas Ondas
F4 O Mar
Cod_Gênero Descrição_Gênero
G1 Ação
G2 Drama
G3 Aventura
G4 Romance
C 
21
F4 O Mar G4 Romance
Cod_Filme Titulo_Filme Cod_Gênero Descrição_Gênero
F1 The Free Surf G1 Ação
F2 The Sun G2 Drama
F3 Altas Ondas
F4 O Mar
RIGHT OUTER JOIN
A B
Cod_Filme Titulo_Filme Cod_Gênero
F1 The Free Surf G1
F2 The Sun G2
F3 Altas Ondas
F4 O Mar
Cod_Gênero Descrição_Gênero
G1 Ação
G2 Drama
G3 Aventura
G4 Romance
22
A B
Cod_Filme Titulo_Filme Cod_Gênero Descrição_Gênero
F1 The Free Surf G1 Ação
F2 The Sun G2 Drama
G3 Aventura
G4 Romance
FULL OUTER JOIN
A B
Cod_Filme Titulo_Filme Cod_Gênero
F1 The Free Surf G1
F2 The Sun G2
F3 Altas Ondas
F4 O Mar
Cod_Gênero Descrição_Gênero
G1 Ação
G2 Drama
G3 Aventura
G4 Romance
23
A B
Cod_Filme Titulo_Filme Cod_Gênero Descrição_Gênero
F1 The Free Surf G1 Ação
F2 The Sun G2 Drama
F3 Altas Ondas
F4 O Mar
G3 Aventura
G4 Romance
G4 Romance
Operadores Relacionais
� DIVISÃO:
- Envolve duas tabelas: uma binária e outra unária;
- Resulta em outra tabela consistindo em todos os
valores de um atributo da relação binária com
24
valores de um atributo da relação binária com
equivalência (no outro atributo) a todos os valores da
relação unária.ACod_Emp Cod_Dept
E1 D1
E2 D3
E3 D2
E1 D2
E2 D1
E3 D1
Cod_Dept
D2
Cod_Emp
E1
E3
B A ÷÷÷÷ B
Exercícios
1-Crie a tabela Empregado(cod,nome,função) e
selecione apenas os empregados cuja função
seja igual a Analista de Sistemas.
2-Considere as tabelas abaixo e resolva:
25
2-Considere as tabelas abaixo e resolva:
a)
b) A B
A B
c)A B
Referências Bibliográficas
EMASRI, Ramez; NAVATHE, Shamkant B. Sistema de Banco de Dados. Pearson 
Education do Brasil. São Paulo. 2005.
SILBERSCHARTZ, Abraham; KORTH, Henry; SUDARSHAN, S. Sistemas de Banco de 
Dados. 
3º edição, São Paulo: Makron Books 1.
26
3º edição, São Paulo: Makron Books 1.