Vous êtes sur la page 1sur 22

MATEMTICA DISCRETA

LGEBRA RELACIONAL

Prof. Luciano Braga de Lacerda 1 Prof. Henry Costa Lubanco

lgebra Relacional
A lgebra relacional um conjunto de operaes bsicas usadas para manipular relaes em um BD relacional. As operaes so geralmente divididas em dois grupos: operaes de conjuntos ou especficas.

Operaes de conjuntos: unio, insero, diferena e produto cartesiano. Operaes especficas: seleo, projeo e juno.
Banco de Dados I Prof. Henry Costa Lubanco

Diagrama do Esquema de BD Relacional

Banco de Dados I Prof. Henry Costa Lubanco

BD Relacional de uma EMPRESA

Banco de Dados I Prof. Henry Costa Lubanco

Seleo ( - sigma) 1/2

Seleciona um subconjunto de tuplas de uma relao, que satisfazem uma condio de seleo (expressa no predicado). Em outras palavras, esta operao seleciona um subconjunto das linhas de uma tabela.
Notao: <condio de seleo> (<nome da relao>)

A expresso especificada em <condio composta por clusulas na forma

de

seleo>

<nome do atributo> <op de comparao> <valor do atributo> A expresso <op de comparao> corresponde a um dos operadores:

=, <, , >, , , and, ou, nao

A operao de seleo comutativa, ou seja:

<COND1> ( <COND2> (R)) = <COND2> ( <COND1> (R))


Banco de Dados I Prof. Henry Costa Lubanco

Seleo ( - sigma) 2/2

Repesentao Grfica

Exemplos:

(EMPREGADO) salario>3000 (EMPREGADO)


DNO=4 (DNO=4 E SALARIO>25000) OU (DNO=5 E SALARIO>30000)

(a)

(EMPREGADO)

Banco de Dados I Prof. Henry Costa Lubanco

Projeo ( - pi) 1/2

Projeta as tuplas de uma relao sobre um determinado conjunto de atributos, ou seja, elimina colunas que no correspondem s especificadas. Exemplos:

Notao: <atributos> (<nome da relao>)

a) NOME, IDADE (ESTUDANTE) mostra somente os atributos contendo os nomes e as idades de todos os estudantes. b) CODCURSO (ESTUDANTE) mostra somente os cdigos dos cursos de todos os estudantes.

Banco de Dados I Prof. Henry Costa Lubanco

Projeo ( - pi) 2/2

Representao Grfica

Exemplos:

UNOME,PNOME,SALARIO(EMPREGADO).

SEXO, SALARIO

(EMPREGADO)

Banco de Dados I Prof. Henry Costa Lubanco

Combinao e seqncia de operaes

Combinando duas operaes:

Exemplo: UNOME,POME,SALARIO( NOD=5(EMPREGADO))

Seqncia de operaes: Vrias operaes podem ser combinadas para formar uma expresso da lgebra relacional, que uma consulta. Alternativamente, pode-se especificar relaes temporrias para cada passo da consulta. Por exemplo: ESTUD_C CODCURSO=C (ESTUDANTE) RESULT NOME, IDADE (ESTUD_C)
Banco de Dados I Prof. Henry Costa Lubanco

Operadores de Conjuntos

10

UNIO efetua a unio de duas relaes compatveis (R U S) DIFERENA efetua a diferena entre duas relaes compatveis (R S) INTERSEO efetua a interseo de duas relaes compatveis (R S)

Exemplos:
a)
b) c) d) e)

Duas relaes compatveis. ALUNO U INSTRUTOR ALUNO INSTRUTOR ALUNO INSTRUTOR INSTRUTOR ALUNO
Banco de Dados I Prof. Henry Costa Lubanco

11

Ilustrao do exemplo dado no slide anterior

Banco de Dados I Prof. Henry Costa Lubanco

Produto Cartesiano (X)

12

Combina as tuplas de duas relaes (R x S), relacionando cada linha de uma relao, com cada linha da outra, levando todos os atributos. Ou seja, o resultado ter todas as colunas das relaes envolvidas, com as suas linhas combinadas umas com as outras.

Banco de Dados I Prof. Henry Costa Lubanco

Exemplo de Produto Cartesiano

13

Cod_ Nome_Cidade Cidade

Capital

Cidade Estado. .UF UF

Nome_Estado

Regiao

1234
1234 2345 2345 1235 1235

Porto Alegre
Porto Alegre So Paulo So Paulo Caxias do Sul Caxias do Sul

S
S S S N N

RS
RS SP SP RS RS

RS
SP RS SP RS SP

Rio Grande do Sul


So Paulo Rio Grande do Sul So Paulo Rio Grande do Sul So Paulo

Sul
Sudeste Sul Sudeste Sul Sudeste

Banco de Dados I Prof. Henry Costa Lubanco

Exemplo usando BD Empresa

14

Exemplo:

EMP_FEM SEXO=F (EMPREGADO) NOMESEMP PNOME, UNOME, SSN (EMP_FEM)

DEPENDENTES_EMP NOMESEMP X DEPENDENTE DEPENDENTES_REAIS SSN=ESSN (DEPENDENTES_EMP) RESULTADO PNOME, UNOME, NOME_DEPENDENTE (DEPENDENTES_REAIS)

Banco de Dados I Prof. Henry Costa Lubanco

Ilustrao do exemplo dado no slide anterior

15

Banco de Dados I Prof. Henry Costa Lubanco

Juno( Join)

16

Juno: combina as tuplas de duas relaes que satisfazem uma determinada condio de juno (R <COND> S). Nesta operao como se fossem realizadas de uma s vez a seleo e o produto cartesiano.
Exemplo:

DEPT_GER DEPARTAMENTO RESULTADO


DNOME, UNOME, PNOME

GERSSN=SSN(EMPREGADO)

(DEPT_GER)

Banco de Dados I Prof. Henry Costa Lubanco

Exemplo de Juno

17

CIDADE
Cod_ Cidade 1234 2345 1235

Cidade.UF = Estado.UF

ESTADO
Estado. UF RS SP RS Nome_ Estado Rio Grande do Sul So Paulo Rio Grande do Sul Regiao

Nome_Cidade

Capital

Cidade. UF RS SP RS

Porto Alegre So Paulo Caxias do Sul

S S N

Sul Sudeste Sul

Banco de Dados I Prof. Henry Costa Lubanco

Exerccios
R
A 1 6 9 B 2 7 7 C 3 8 8

18

S
B 2 2 7 C 3 3 8 D 4 5 10

A<D

A < D AND R.B S.B

Banco de Dados I Prof. Henry Costa Lubanco

Juno Natural
Uma juno natural um Equijoin onde uma das colunas idnticas eliminada. O operador de juno natural combina as linhas de duas tabelas que tem atributos comuns(mesmo nome), resultando numa tabela que contm apenas as linhas onde os atributos comum apresentam o mesmo valor. Exemplo: (a) DEPT_PROJ PROJETO DEPARTAMENTO (b) DEPT_LOCS DEPARTAMENTO DEPT_LOCALIZACOES.

19

Banco de Dados I Prof. Henry Costa Lubanco

Exemplo
CIDADE
Cod_ Cidade 1234 2345 1235

20

ESTADO
Nome_Cidade Porto Alegre So Paulo Caxias do Sul Capital S S N UF RS SP RS Nome_ Estado Rio Grande do Sul So Paulo Rio Grande do Sul Regiao Sul Sudeste Sul

Banco de Dados I Prof. Henry Costa Lubanco

Exerccios
1. 2.

21

3.

4. 5.

Baseado no esquema Empresa apresentado nos slides anteriores, construa as consultas solicitadas abaixo: Recupere o nome e o endereo de todos os empregados que trabalham para o departamento de Pesquisa. Para cada projeto localizado em Stafford, lise o nmero do projeto, o departamento controlador e o sobrenome, o endereo e a data de nascimento do gerente do departamento. Liste os nmeros dos projetos que envolvam um empregado cujo sobrenome seja Smith, como sendo u trabalhador ou como sendo um gerente do departamento que controla o projeto. Recupere os nomes dos empregados que no tenham dependentes. Liste os gerente que tenham pelo menos um dependente.

Banco de Dados I Prof. Henry Costa Lubanco

Trabalho
a)

22

b) c) d) e)

f)

Especifique as seguintes consultas no esquema de banco de dados EMPRESA e mostre o resultado de cada consulta aplicada. Recupere os nomes de todos os empregados no departamento 5 que trabalham mais do que 10 horas por semana no projeto ProdutoX. Liste os nomes de todos os empregados que possuem um dependente cujo nome seja igual ao deles. Encontre os nomes de todos os empregados que estejam diretamente supervisionados por Franklin Wong. Recupere os nomes de todos os empregados que no trabalham em nenhum projeto. Encontre os nomes e endereos de todos os empregados que trabalham em pelo menos um projeto localizado em Houston, cujo departamento, todavia, no tenha localizao em Houston. Liste os sobrenomes de todos os gerente de departamento que no possuem dependentes.
Banco de Dados I Prof. Henry Costa Lubanco