BD03+ +Algebra+Relacional (1)
-
Upload
pedro-henrique -
Category
Documents
-
view
30 -
download
0
Transcript of BD03+ +Algebra+Relacional (1)
Álgebra Relacional
• Conceitos Envolvidos
– Relação: representada por uma tabela de duas dimensões
(linhas e colunas);
– Tupla: corresponde a uma linha da relação;
– Atributo: corresponde às colunas da relação;
– Chave primária: conjunto de atributos que identificam
univocamente cada tupla da relação;
– Chave estrangeira: atributo de uma relação que é chave
primária de outra relação.
Álgebra Relacional
• A Álgebra Relacional é um conjunto de operações
sobre modelos relacionais de dados. Podem ser
agrupadas em duas categorias:
– Operadores Tradicionais:
• União
• Intersecção
• Diferença
• Produto Cartesiano
– Operadores Relacionais:
• Seleção
• Projeção
• Junção
• Divisão
Álgebra Relacional
• Representação Gráfica
– Operadores Tradicionais
União Intersecção Diferença
Álgebra Relacional
• Representação Gráfica
– Operadores Tradicionais
Produto Cartesiano
A B C
X Y
A A B B C C
X Y X Y X Y
Álgebra Relacional
• Representação Gráfica
– Operadores Relacionais
Seleção Projeção
Álgebra Relacional
• Representação Gráfica
– Operadores Relacionais
Junção Divisão
a1 a2 a3
b1 b1 b2
b1 b2 b3
c1 c2 c3
a1 a2 a3
b1 b1 b2
c1 c1 c2
a a a b c
x y z x y
x z
a
Álgebra Relacional
• Simbologia
União R S
Intersecção R S
Diferença R – S
Produto Cartesiano R x S
Seleção F(R)
Projeção i1, i2, ..., im(R)
Junção R ⋈ S
Divisão R / S
Álgebra Relacional
• Exemplo
#F Denominação Condição Cidade
F1 Pedro 20 Joinville
F2 João 10 Florianópolis
F3 Marcos 30 Florianópolis
F4 Carlos 20 Joinville
F5 Ademir 30 Laguna
Fornecedor
#F #P Quantidade
F1 P1 300
F1 P2 200
F1 P3 400
F1 P4 200
F1 P5 100
F2 P1 300
F2 P2 400
F3 P2 200
F4 P2 200
F4 P4 300
F4 P5 400
Pedido
#P Descrição Valor
P1 Parafuso 20
P2 Arroela 10
P3 Porca 30
P4 Chave 20
P5 Fechadura 30
Produto
Álgebra Relacional
• União (R S)
– A união de duas relações A e B é o conjunto de
todas as tuplas pertencentes a relação A ou
pertencentes a relação B.
– Exemplo:
• A = conjunto de tuplas de fornecedores de “Joinville”
• B = conjunto de tuplas de fornecedores que fornecem
“P1”
• C = A união B
#F Nome Condição Cidade
F1 Pedro 20 Joinville
F2 João 10 Florianópolis
F4 Carlos 20 Joinville
Álgebra Relacional
• Intersecção (R S)
– A intersecção de duas relações A e B é o conjunto
de todas as tuplas pertencentes a relação A e
pertencentes a relação B.
– Exemplo:
• A = conjunto de tuplas de fornecedores de “Joinville”
• B = conjunto de tuplas de fornecedores que fornecem
“P1”
• C = A intersecção B
#F Nome Condição Cidade
F1 Pedro 20 Joinville
Álgebra Relacional
• Diferença (R – S)
– A diferença de duas relações A e B é o conjunto de
todas as tuplas pertencentes a relação A e não
pertencentes a relação B.
– Exemplo:
• A = conjunto de tuplas de fornecedores de “Joinville”
• B = conjunto de tuplas de fornecedores que fornecem
“P1”
• C = A diferença B
#F Nome Condição Cidade
F4 Carlos 20 Joinville
Álgebra Relacional
• Produto Cartesiano (R x S)
– O produto cartesiano de duas relações
A e B é o conjunto de todas as tuplas t
originadas da concatenação das tuplas
a pertencentes a A e das tuplas b
pertencentes a B.
– Exemplo:
• A = conjunto de todos os códigos de
fornecedores de “Joinville”
• B = conjunto de todos os códigos de
produtos de cor “azul”
• C = A produto B
#F #P
F1 P3
F1 P5
F4 P3
F4 P5
Álgebra Relacional
• Seleção F (R)
– É a operação usada para construir um subconjunto
horizontal de uma relação, cujas tuplas satisfaçam
uma determinada condição.
– Exemplo:
• C = SELEÇÃO(fornecedor, (cidade = “Joinville”))
Cidade=Joinville (Fornecedor)
#F Nome Condição Cidade
F1 Pedro 20 Joinville
F4 Carlos 20 Joinville
Álgebra Relacional
• Projeção i1, i2, ..., im(R)
– É a operação usada para construir um subconjunto
vertical de uma relação, cujas tuplas satisfaçam uma
determinada condição.
– Exemplo: • C = PROJEÇÃO(fornecedor, (#F, denominação, cidade))
#F,denominação, cidade (Fornecedor)
#F Denominação Cidade
F1 Pedro Joinville
F2 João Florianópolis
F3 Marcos Florianópolis
F4 Carlos Joinville
Álgebra Relacional
• Junção R ⋈ S
– De duas relações R1 e R2, que possuem um atributo
em comum D, é o subconjunto do produto cartesiano
das duas relações, cujos valores dos elementos dos
atributo comum sejam iguais nas duas relações.
– Na relação resultante elimina-se a repetição da
coluna D.
– Exemplo:
• C = JUNÇÃO(fornecedor, pedido(#F))
i j
• Junção R ⋈ S
Fornecedor ⋈ Pedido
Álgebra Relacional
i j
#F #F
#F Denominação Condição Cidade #P Quantidade
F1 Pedro 20 Joinville P1 300
F1 Pedro 21 Joinville P2 200
F1 Pedro 22 Joinville P3 400
F1 Pedro 23 Joinville P4 200
F1 Pedro 24 Joinville P5 100
F2 João 10 Florianópolis P1 300
F2 João 10 Florianópolis P2 400
F3 Marcos 30 Florianópolis P2 200
F4 Carlos 20 Joinville P2 200
F4 Carlos 20 Joinville P4 300
F4 Carlos 20 Joinville P5 400
• Divisão ( R / S)
– Seja A uma relação binária com atributos x e y e B uma relação
unária com atributo z, com y e z definidos sobre o mesmo
domínio. Definimos a operação divisão, como sendo o conjunto
dos elementos x com os pares (x,y) pertencentes a A para todos
os valores y pertencentes a B.
– Exemplo:
• C = DIVISÃO(A, B ((#P))
Álgebra Relacional
B C
F1 P1 P1 F1
F1 P2 F2
F1 P3
F1 P4 P1 F1
F1 P5 P4
F1 P6
F2 P1 P1 F1
F2 P2 P2
F3 P2 P3
F4 P2 P4
P5
A B C
F1 P1 P1 F1
F1 P2 F2
F1 P3
F1 P4 P1 F1
F1 P5 P4
F1 P6
F2 P1 P1 F1
F2 P2 P2
F3 P2 P3
F4 P2 P4
P5
A
• Linguagem de Interrogação
– Álgebra Relacional pode ser usada como linguagem
de interrogação à BD
– Quais os nomes dos professores do curso de SI?
nome [curso = ‘104’ ( Professor )]
Álgebra Relacional
Professor
#prof Nome Curso
10 João 104
20 Pedro 102
30 Paulo 104
40 Marcos 101
• Linguagem de Interrogação
– Quais os nomes e datas de nascimento dos
alunos do curso ‘SI’ nascidos antes de 1983?
Nome, dt_nasc [curso = ‘104’ dt_nasc < 1983-01-01 ( Aluno ) ]
Álgebra Relacional
Aluno
#alu Nome Curso Dt_nas
10 João 104 01/02/81
20 Pedro 102 05/10/83
30 Paulo 104 07/06/86
40 Marcos 101 07/02/89
• Exercício 1
– Dados as relações abaixo, especificar as operações
da álgebra relacional para obter os seguinte:
1. Denominação dos fornecedores que fornecem o produto P2.
2. Denominação dos fornecedores que fornecem pelo menos
um produto cuja a cor é VERMELHA.
3. Denominação dos produtos de cor AZUL que tiveram
pedidos com quantidade superior a 200.
4. Denominação dos fornecedores que fornecem todos os
produtos em carteira.
Álgebra Relacional
FORNECEDOR (#CD-FOR, DN-FORNEC, DN-CID)
PRODUTO (#CD-PROD, DN-PRODUTO, DN-COR)
PEDIDO(#CD-FOR, #CD-PROD, QT-PEDIDA)
• Exercício 2
– Dados as relações abaixo, especificar as operações
da álgebra relacional para obter os seguinte:
1. Denominação dos fornecedores que NÃO forneceram P1
2. Denominação dos fornecedores que são de São Luís ou
fornecem o produto P3.
3. Denominação dos fornecedores que são de São Luís e
fornecem o produto P3.
4. Denominação dos produtos de cor AZUL e que foram
fornecidos por fornecedores de CURITIBA
Álgebra Relacional
FORNECEDOR (#CD-FOR, DN-FORNEC, DN-CID)
PRODUTO (#CD-PROD, DN-PRODUTO, DN-COR)
PEDIDO(#CD-FOR, #CD-PROD, QT-PEDIDA)
• Exercício 3
– Dados as relações abaixo, especificar as operações da álgebra
relacional para obter o seguinte:
1. Quais alunos (NOME) tiveram nota superior a 7 nas disciplinas
MATEMÁTICA E FÍSICA?
2. Quais alunos (NOME) cursaram todas as disciplinas com carga
horária maior que 60 horas, com nota superior a 6?
3. Quais disciplinas (DENOMINAÇÃO) todos os alunos que já a
cursaram obtiveram notas superior a 5?
4. Quais alunos (NOME) naturais de JOINVILLE obtiveram nota
superior a 8 em disciplinas com carga horária superior a 45 horas?
Álgebra Relacional
ALUNO (#CD-ALUNO, NM-ALUNO, EN-ALUNO, #NATUR)
NATURALIDADE (#NATUR, DN-NATURALIDADE)
DISCIPLINA(#CD-DIS, DN-DISCIPLINA, CH-DISCIPLINA)
HISTORICO(#CD-ALUNO, #CD-DIS, VL-NOTA)
• Exercício 4
– Dados as relações abaixo, especificar as operações
da álgebra relacional para obter o seguinte:
1. Quais imóveis (códigos) estão localizados na COHAMA?
2. Quais imóveis (endereço) não estão localizados no
RENASCENÇA?
3. Quais proprietários (nomes) são donos de imóveis
localizados no ANIL e no APICUM?
4. Quais bairros (nomes) possuem imóveis cujo proprietário
mora no VINHAIS?
Álgebra Relacional
IMOVEL (#CD-IMOVEL, END-IMOVEL, #CD-BAIRRO, #CD-PRO)
BAIRRO (#CD-BAI, NM-BAI)
PROPRIETARIO(#CD-PRO, NM-PRO, TEL-PRO, #CD-BAI)