Вы находитесь на странице: 1из 24

Banco de Dados

lgebra Relacional
Paulo Rocha Neto paulorocha@ceuma.br

lgebra Relacional
Conceitos Envolvidos
Relao: representada por uma tabela de duas dimenses (linhas e colunas); Tupla: corresponde a uma linha da relao;

Atributo: corresponde s colunas da relao;


Chave primria: conjunto de atributos que identificam univocamente cada tupla da relao;

Chave estrangeira: atributo de uma relao que chave primria de outra relao.

lgebra Relacional
A lgebra Relacional um conjunto de operaes sobre modelos relacionais de dados. Podem ser agrupadas em duas categorias:
Operadores Tradicionais:
Unio
Interseco Diferena Produto Cartesiano

Operadores Relacionais:
Seleo Projeo Juno Diviso

lgebra Relacional
Representao Grfica
Operadores Tradicionais

Unio

Interseco

Diferena

lgebra Relacional
Representao Grfica
Operadores Tradicionais

Produto Cartesiano

A B C

X Y

A A B B C C

X Y X Y X Y

lgebra Relacional
Representao Grfica
Operadores Relacionais

Seleo

Projeo

lgebra Relacional
Representao Grfica
Operadores Relacionais

Juno

Diviso

a1 b1 a2 b1 a3 b2

b1 c1 b2 c2 b3 c3

a1 b1 c1 a2 b1 c1 a3 b2 c2

a a a b c

x y z x y

x z

lgebra Relacional Simbologia Unio Interseco Diferena Produto Cartesiano RS RS RS RxS

Seleo
Projeo

F(R)
i1, i2, ..., im(R)

Juno
Diviso

RS
R/S

lgebra Relacional Exemplo


Fornecedor
#F F1 F2 F3 F4 F5 Denominao Condio Cidade Pedro 20 Joinville Joo 10 Florianpolis Marcos 30 Florianpolis Carlos 20 Joinville Ademir 30 Laguna

Pedido
#F F1 F1 F1 F1 F1 F2 F2 F3 F4 F4 F4 #P Quantidade P1 300 P2 200 P3 400 P4 200 P5 100 P1 300 P2 400 P2 200 P2 200 P4 300 P5 400

Produto
#P P1 P2 P3 P4 P5 Descrio Parafuso Arroela Porca Chave Fechadura Valor 20 10 30 20 30

lgebra Relacional Unio (R S)


A unio de duas relaes A e B o conjunto de todas as tuplas pertencentes a relao A ou pertencentes a relao B. Exemplo:
A = conjunto de tuplas de fornecedores de Joinville
B = conjunto de tuplas de fornecedores que fornecem P1 C = A unio B

#F F1 F2 F4

Nome Condio Cidade Pedro 20 Joinville Joo 10 Florianpolis Carlos 20 Joinville

lgebra Relacional Interseco (R S)


A interseco de duas relaes A e B o conjunto de todas as tuplas pertencentes a relao A e pertencentes a relao B. Exemplo:
A = conjunto de tuplas de fornecedores de Joinville
B = conjunto de tuplas de fornecedores que fornecem P1 C = A interseco B

#F Nome Condio Cidade F1 Pedro 20 Joinville

lgebra Relacional Diferena (R S)


A diferena de duas relaes A e B o conjunto de todas as tuplas pertencentes a relao A e no pertencentes a relao B. Exemplo:
A = conjunto de tuplas de fornecedores de Joinville
B = conjunto de tuplas de fornecedores que fornecem P1 C = A diferena B

#F Nome Condio Cidade F4 Carlos 20 Joinville

lgebra Relacional Produto Cartesiano (R x S)


O produto cartesiano de duas relaes A e B o conjunto de todas as tuplas t originadas da concatenao das tuplas a pertencentes a A e das tuplas b pertencentes a B. Exemplo:
A = conjunto de todos os cdigos de fornecedores de Joinville B = conjunto de todos os cdigos de produtos de cor azul C = A produto B

#F F1 F1 F4 F4

#P P3 P5 P3 P5

lgebra Relacional Seleo

F (R)

a operao usada para construir um subconjunto horizontal de uma relao, cujas tuplas satisfaam uma determinada condio. Exemplo:
C = SELEO(fornecedor, (cidade = Joinville))

Cidade=Joinville (Fornecedor)
#F Nome Condio Cidade F1 Pedro 20 Joinville F4 Carlos 20 Joinville

lgebra Relacional Projeo

i1, i2, ..., im(R)

a operao usada para construir um subconjunto vertical de uma relao, cujas tuplas satisfaam uma determinada condio. Exemplo:
C = PROJEO(fornecedor, (#F, denominao, cidade))

#F,denominao, cidade

(Fornecedor)
Cidade Joinville Florianpolis Florianpolis Joinville

#F F1 F2 F3 F4

Denominao Pedro Joo Marcos Carlos

lgebra Relacional Juno RS


ij

De duas relaes R1 e R2, que possuem um atributo em comum D, o subconjunto do produto cartesiano das duas relaes, cujos valores dos elementos dos atributo comum sejam iguais nas duas relaes. Na relao resultante elimina-se a repetio da coluna D. Exemplo:
C = JUNO(fornecedor, pedido(#F))

lgebra Relacional Juno RS


#F #F ij

Fornecedor Pedido
#F F1 F1 F1 F1 F1 F2 F2 F3 F4 F4 F4 Denominao Condio Cidade Pedro 20 Joinville Pedro 21 Joinville Pedro 22 Joinville Pedro 23 Joinville Pedro 24 Joinville Joo 10 Florianpolis Joo 10 Florianpolis Marcos 30 Florianpolis Carlos 20 Joinville Carlos 20 Joinville Carlos 20 Joinville #P Quantidade P1 300 P2 200 P3 400 P4 200 P5 100 P1 300 P2 400 P2 200 P2 200 P4 300 P5 400

lgebra Relacional
Diviso ( R / S)
Seja A uma relao binria com atributos x e y e B uma relao unria com atributo z, com y e z definidos sobre o mesmo domnio. Definimos a operao diviso, como sendo o conjunto dos elementos x com os pares (x,y) pertencentes a A para todos os valores y pertencentes a B. A B C Exemplo:
C = DIVISO(A, B ((#P))
F1 F1 F1 F1 F1 F1 F2 F2 F3 F4 P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P1 F1 F2 F1

P1 P4 P1 P2 P3 P4 P5

F1

lgebra Relacional Linguagem de Interrogao


lgebra Relacional pode ser usada como linguagem de interrogao BD Quais os nomes dos professores do curso de SI?

nome [curso = 104 ( Professor )]


Professor

#prof 10 20 30 40

Nome Joo Pedro Paulo Marcos

Curso 104 102 104 101

lgebra Relacional

Linguagem de Interrogao
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 ) ]


Aluno
#alu 10 20 30 40 Nome Joo Pedro Paulo Marcos Curso 104 102 104 101 Dt_nas 01/02/81 05/10/83 07/06/86 07/02/89

lgebra Relacional Exerccio 1


Dados as relaes abaixo, especificar as operaes da lgebra relacional para obter os seguinte:
1. Denominao dos fornecedores que fornecem o produto P2. 2. Denominao dos fornecedores que fornecem pelo menos um produto cuja a cor VERMELHA. 3. Denominao dos produtos de cor AZUL que tiveram pedidos com quantidade superior a 200. 4. Denominao dos fornecedores que fornecem todos os produtos em carteira.
FORNECEDOR (#CD-FOR, DN-FORNEC, DN-CID) PRODUTO (#CD-PROD, DN-PRODUTO, DN-COR) PEDIDO(#CD-FOR, #CD-PROD, QT-PEDIDA)

lgebra Relacional Exerccio 2


Dados as relaes abaixo, especificar as operaes da lgebra relacional para obter os seguinte:
1. Denominao dos fornecedores que NO forneceram P1 2. Denominao dos fornecedores que so de So Lus ou fornecem o produto P3. 3. Denominao dos fornecedores que so de So Lus e fornecem o produto P3. 4. Denominao dos produtos de cor AZUL e que foram fornecidos por fornecedores de CURITIBA
FORNECEDOR (#CD-FOR, DN-FORNEC, DN-CID) PRODUTO (#CD-PROD, DN-PRODUTO, DN-COR) PEDIDO(#CD-FOR, #CD-PROD, QT-PEDIDA)

lgebra Relacional
Exerccio 3
Dados as relaes abaixo, especificar as operaes da lgebra relacional para obter o seguinte:
1. Quais alunos (NOME) tiveram nota superior a 7 nas disciplinas MATEMTICA E FSICA?
2. Quais alunos (NOME) cursaram todas as disciplinas com carga horria maior que 60 horas, com nota superior a 6? 3. Quais disciplinas (DENOMINAO) 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 horria superior a 45 horas? 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)

lgebra Relacional Exerccio 4


Dados as relaes abaixo, especificar as operaes da lgebra relacional para obter o seguinte:
1. Quais imveis (cdigos) esto localizados na COHAMA? 2. Quais imveis (endereo) no esto localizados no RENASCENA? 3. Quais proprietrios (nomes) so donos de imveis localizados no ANIL e no APICUM? 4. Quais bairros (nomes) possuem imveis cujo proprietrio mora no VINHAIS?
IMOVEL (#CD-IMOVEL, END-IMOVEL, #CD-BAIRRO, #CD-PRO) BAIRRO (#CD-BAI, NM-BAI) PROPRIETARIO(#CD-PRO, NM-PRO, TEL-PRO, #CD-BAI)

Вам также может понравиться