bd03+ +algebra+relacional (1)

24
Banco de Dados Álgebra Relacional Paulo Rocha Neto [email protected]

Upload: pedro-henrique

Post on 08-Nov-2014

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BD03+ +Algebra+Relacional (1)

Banco de

Dados Álgebra Relacional

Paulo Rocha Neto [email protected]

Page 2: 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.

Page 3: BD03+ +Algebra+Relacional (1)

Á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

Page 4: BD03+ +Algebra+Relacional (1)

Álgebra Relacional

• Representação Gráfica

– Operadores Tradicionais

União Intersecção Diferença

Page 5: BD03+ +Algebra+Relacional (1)

Á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

Page 6: BD03+ +Algebra+Relacional (1)

Álgebra Relacional

• Representação Gráfica

– Operadores Relacionais

Seleção Projeção

Page 7: BD03+ +Algebra+Relacional (1)

Á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

Page 8: BD03+ +Algebra+Relacional (1)

Á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

Page 9: BD03+ +Algebra+Relacional (1)

Á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

Page 10: BD03+ +Algebra+Relacional (1)

Á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

Page 11: BD03+ +Algebra+Relacional (1)

Á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

Page 12: BD03+ +Algebra+Relacional (1)

Á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

Page 13: BD03+ +Algebra+Relacional (1)

Á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

Page 14: BD03+ +Algebra+Relacional (1)

Á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

Page 15: BD03+ +Algebra+Relacional (1)

Á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

Page 16: BD03+ +Algebra+Relacional (1)

Á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

Page 17: BD03+ +Algebra+Relacional (1)

• 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

Page 18: BD03+ +Algebra+Relacional (1)

• 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

Page 19: BD03+ +Algebra+Relacional (1)

• 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

Page 20: BD03+ +Algebra+Relacional (1)

• 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

Page 21: BD03+ +Algebra+Relacional (1)

• 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)

Page 22: BD03+ +Algebra+Relacional (1)

• 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)

Page 23: BD03+ +Algebra+Relacional (1)

• 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)

Page 24: BD03+ +Algebra+Relacional (1)

• 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)