Está en la página 1de 24

lgebra Relacional

Conceitos Bsicos
A Operao Select
A Operao Project
Seqencialidade das Operaes
Operaes Matemticas
Produto Cartesiano
Operao Juno
Apndice: Exemplo de Banco de Dados

1. Conceitos Bsicos
lgebra Relacional uma coleo de operaes utilizadas para manipular as relaes.
Estas operaes so utilizadas para selecionar tuplas (linhas) de relaes individuais e
para combinar tuplas relacionadas de relaes diferentes para especificar uma consulta
em um determinado banco de dados.
O resultado de cada operao uma nova operao, a qual tambm pode ser
manipulada pela lgebra relacional. Todos os exemplos envolvendo lgebra relacional
implicam na utilizao de um banco de dados.

2. A Operao Select
A operao select utilizada para selecionar um subconjunto de tuplas de uma relao
(tabela), sendo que estas tuplas devem satisfazer uma condio de seleo.
A forma geral de uma operao select :

<condio de seleo> ( <nome da relao> )


A letra grega utilizada para representar a operao de seleo; <condio de seleo>
uma expresso booleana aplicada sobre os atributos da relao e <nome da relao> o
nome da relao sobre a qual ser aplicada a operao select.

2. A Operao Select
Exemplos:
consulta1 =

(EMPREGADO)
salrio < 2.500,00

Tabela consulta1
Nome
RG

CIC

Depto.

Ricardo 30303030 33333333 2


Renato 50505050 55555555 3

RG
Salrio
Supervisor
10101010 2.300,00
20202020 1.300,00

consulta2 = (relao = Filho) and (sexo = Feminino)

(DEPENDENTES)

Tabela consulta2
RG
Nome
Dt.
Relao
Responsvel Dependente Nascimento
30303030
Adreia
01/05/90
Filho

Sexo
Feminino

2. A Operao Select
As operaes relacionais que podem ser aplicadas na operao select so:
, , , , =,
alm dos operadores booleanos:
and, or, not.
A operao select unria, ou seja, s pode ser aplicada a uma nica relao. No
possvel aplicar a operao sobre tuplas de relaes distintas.

3. A Operao Project
A operao project seleciona um conjunto determinado de colunas de uma relao. A forma
geral de uma operao project :

<lista de atributos> (<nome da relao>)


A letra grega representa a operao project, <lista de atributos> representa a lista de
atributos que o usurio deseja selecionar e <nome da relao> representa a relao sobre
a qual a operao project ser aplicada.

3. A Operao Project
Exemplos:
consulta3 = Nome,

(DEPENDENTES)
Dt. Nascimento

Tabela consulta3
Nome
Dt. Nascimento
Dependente
Jorge
27/12/86
Luiz
18/11/79
Fernanda
14/02/69
Angelo
10/02/95
Adreia
01/05/90

4. Seqencialidade das Operaes


As operaes project e select podem ser utilizadas de forma combinada, permitindo que
apenas determinadas colunas de determinadas tuplas possam ser selecionadas.
A forma geral de uma operao sequencializada :

<lista de atributos> (<condio de seleo> (<nome da relao>))


Veja o seguinte exemplo:
consulta4 = nome, depto., salario (salario < 2.500,00
Tabela consulta4
Nome
Depto. Salrio
Ricardo 2
2.300,00
Renato
3
1.300,00

(EMPREGADO)

4. Seqencialidade das Operaes


A consulta4 pode ser reescrita da seguinte forma:
consulta5 = salario < 2.500,00

(EMPREGADO)

Tabela consulta5
Nome
RG

CIC

Ricardo
Renato

33333333
55555555

30303030
50505050

consulta6 = nome, depto., salario

Depto
.
2
3

RG
Supervisor
10101010
20202020

(CONSULTA5)

Tabela consulta6
Nome
Depto.
Ricardo
2
Renato
3

Salrio
2.300,00
1.300,00

Salrio
2.300,00
1.300,00

5. Operaes Matemticas
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 unrio, ou seja, podem ser aplicadas sobre mais de uma
tabela, porm, existe a necessidade das tabelas possuirem tuplas exatamente do mesmo
tipo.
Estas operaes podem ser definidas da seguinte forma:
unio - o resultado desta operao representada por R S uma relao T que inclui
todas as tuplas que se encontram em R e todas as tuplas que se encontram em S;
interseco - o resultado desta operao representada por R S uma relao T que
inclui as tuplas que se encontram em R e em S ao mesmo tempo;
diferena - o resultado desta operao representada por R S uma relao T que inclui
todas as tuplas que esto em R mas no esto em S.

5. Operaes Matemticas
Leve em considerao a seguinte consulta:
Selecione todos os empregados que trabalham no departamento nmero 2 ou que
supervisionam empregados que trabalham no departamento nmero 2.
Vamos primeiro selecionar todos os funcionrios que trabalham no departamento
nmero 2.
consulta7 = depto = 2

(EMPREGADOS)

Tabela consulta7
Nome
RG
Fernando 20202020
Ricardo
30303030
Jorge
40404040

CIC
22222222
33333333
44444444

Depto.
2
2
2

RG Supervisor
10101010
10101010
20202020

Salrio
2.500,00
2.300,00
4.200,00

5. Operaes Matemticas
Vamos agora selecionar os supervisores dos empregados que trabalham no departamento
nmero 2.
consulta8 = rg_supervisor

(CONSULTA7)

Tabela consulta8
RG Supervisor
10101010
20202020
Vamos projetar apenas o rg dos empregados selecionados:
consulta9 = rg

(CONSULTA7)

Tabela consulta9
RG
20202020
30303030
40404040

5. Operaes Matemticas
E por fim, vamos unir as duas tabelas, obtendo o resultado final.
consulta10 = CONSULTA8 CONSULTA9
Tabela consulta10
RG
20202020
30303030
40404040
10101010

5. Operaes Matemticas
Leve em considerao a prxima consulta:
Selecione todos os empregados que desenvolvem algum projeto e que trabalham no
departamento nmero 2.
Vamos primeiro selecionar todos os empregados que trabalham em um projeto.
consulta11 = rg_empregado

(EMPREGADO/PROJETO)

Tabela consulta11
RG_Empregado
20202020
30303030
40404040
50505050

5. Operaes Matemticas
Vamos agora selecionar todos os empregados que trabalham no departamento 2.
consulta12 = rg (depto = 2

(EMPREGADOS)

Tabela consulta12
RG
20202020
30303030
40404040
Obtemos ento todos os empregados que trabalham no departamento 2 e que desenvolvem
algum projeto.
consulta13 = CONSULTA11

CONSULTA12

Tabela consulta13
RG
20202020
30303030
40404040

5. Operaes Matemticas
Leve em considerao a seguinte consulta:
Selecione todos os usurios que no desenvolvem projetos.
consulta14 = rg_empregado

(EMPREGADO/PROJETO)

Tabela consulta14
RG Empregado
20202020
30303030
40404040
50505050

consulta15 = rg

(EMPREGADOS)

Tabela consulta15
RG
10101010
20202020
30303030
40404040
50505050

5. Operaes Matemticas
consulta16 = CONSULTA15 CONSULTA14
Tabela consulta16
RG
10101010

6. Produto Cartesiano
O produto cartesiano uma operao binria que combina todas as tuplas de duas
tabelas.
Diferente da operao unio, o produto cartesiano no exige que as tuplas das tabelas
possuam exatamente o mesmo tipo.
O produto cartesiano permite ento a consulta entre tabelas relacionadas utilizando uma
condio de seleo apropriada. O resultado de um produto cartesiano uma nova tabela
formada pela combinao das tuplas das tabelas sobre as quais aplicou-se a operao.
O formato geral do produto cartesiano entre duas tabelas R e S :

RS

6. Produto Cartesiano
Leve em considerao a seguinte consulta:
Encontre todos os funcionrios que desenvolvem projetos em Campinas.
consulta16 = (EMPREGADO PROJETO)
RG Empregado
10101010
10101010
10101010
20202020
20202020
20202020
30303030
30303030
30303030
40404040
40404040
40404040
50505050
50505050
50505050

Empregado.* Nmero
Projeto
....
5
....
10
....
20
....
5
....
10
....
20
....
5
....
10
....
20
....
5
....
10
....
20
....
5
....
10
....
20

Nome

Localizao

Financeiro 1
Motor 3
Prdio Central
Financeiro 1
Motor 3
Prdio Central
Financeiro 1
Motor 3
Prdio Central
Financeiro 1
Motor 3
Prdio Central
Financeiro 1
Motor 3
Prdio Central

So Paulo
Rio Claro
Campinas
So Paulo
Rio Claro
Campinas
So Paulo
Rio Claro
Campinas
So Paulo
Rio Claro
Campinas
So Paulo
Rio Claro
Campinas

6. Produto Cartesiano
Vamos agora selecionar as tuplas cuja localizao seja Campinas.
consulta17 =

rg_empregado, nmero projeto( (localizao = Campinas)(CONSULTA16))


Tabela consulta17
RG Empregado Nmero Projeto
10101010
20
20202020
20
30303030
20
40404040
20
50505050
20

A operao produto cartesiano no muito utilizada por no oferecer um resultado


otimizado.

7. Operao Juno
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.
A forma geral da operao juno entre duas tabelas R e S a seguinte:

<condio de juno>

7. Operao Juno
Leve em considerao a consulta a seguir:
Encontre todos os funcionrios que desenvolvem projetos em Campinas.
consulta18 = EMPREGADOS/PROJETOS
Tabela consulta18
RG
Nmero
Empregado Projeto
20202020
5
20202020
10
30303030
5
40404040
20
50505050
20

nmero_projeto = nmero

PROJETOS

Nome

Nmero

Localizao

Financeiro 1
Motor 3
Financeiro 1
Prdio Central
Prdio Central

5
10
5
20
20

So Paulo
Rio Claro
So Paulo
Campinas
Campinas

consulta19 = localizao = Campinas (CONSULTA18)


Tabela consulta18
RG
Nmero Nome
Nmero
Empregado Projeto
40404040 20
Prdio Central 20
50505050 20
Prdio Central 20

Localizao
Campinas
Campinas

8. Apndice: Exemplo de Banco de Dados

Tabela EMPREGADO
Nome
RG
Joo Luiz
10101010
Fernando
20202020
Ricardo
30303030
Jorge
40404040
Renato
50505050

CIC
11111111
22222222
33333333
44444444
55555555

Tabela DEPARTAMENTO
Nome

Nmero

Contabilidade
Engenharia Civil
Engenharia Mecnica

1
2
3

Depto.
1
2
2
2
3

RG Supervisor
NULO
10101010
10101010
20202020
20202020

Salrio
3.000,00
2.500,00
2.300,00
4.200,00
1.300,00

RG Gerente

Tabela PROJETO
Nome

Nmero

Localizao

10101010
30303030
20202020

Financeiro 1
Motor 3
Prdio Central

5
10
20

So Paulo
Rio Claro
Campinas

Tabela DEPENDENTES
RG Responsvel

Nome Dependente

Dt. Nascimento

Relao

Sexo

10101010

Jorge

27/12/86

Filho

Masculino

10101010

Luiz

18/11/79

Filho

Masculino

20202020

Fernanda

14/02/69

Conjuge

Feminino

20202020

Angelo

10/02/95

Filho

Masculino

30303030

Adreia

01/05/90

Filho

Feminino

8. Apndice: Exemplo de Banco de Dados

Tabela DEPARTAMENTO_PROJETO

Tabela EMPREGADO_PROJETO

Nmero Depto.

Nmero Projeto

RG Empregado

Nmero Projeto

Horas

20202020

10

10

20202020

10

25

20

30303030

35

40404040

20

50

50505050

20

35

También podría gustarte