Anda di halaman 1dari 69

Conte

udo do curso
Linguagens de manipulac
ao de dados

  


  
  
  

Universidade Estadual de Campinas - UNICAMP


Instituto de Computacao - IC

MC536 Bancos de Dados: Teoria e Pratica


Aula #6 Linguagens de Definicao e de Manipulacao de Dados

Profs. Anderson Rocha e Andre Santanch`e


Campinas, 20 de Agosto de 2012

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

1/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Conteudo do curso
1. Introducao: arquitetura de banco de dados.
2. Modelos de dados: modelagem e abstrac
oes.
3. Modelos conceituais: modelo entidade-relacionamento (ER)
basico e estendido.
4. Modelo relacional: definic
oes e formalizacao.
5. Mapeamento do modelo ER para o modelo relacional.
6. Linguagens de definicao e de manipulacao de dados.
I
I

Algebra
relacional;
Calculo relacional.

7. Dependencias funcionais e normalizacao.


8. Processamento de consultas.
9. Controle de concorrencia.
10. Mecanismos de protecao e recuperacao.
Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

2/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Contexto geral

Figura: Contexto geral de um Banco de Dados.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

3/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Esquema conceitual

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

4/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Esquema relacional

(a) Cliente Particular

(b) Cliente Empresa

(c) Taxi

(d) Corrida

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

5/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Operacoes sobre relacoes (1)

De acordo com o modelo relacional, as operacoes sobre um


BD relacional podem ser
I
I

Operac
oes de recuperacao (consulta);
Operac
oes de atualizacao (INSERT, DELETE, MODIFY
tupla);

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

6/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Operacoes sobre relacoes (2)

Restricoes de integridade nao podem ser violadas pelas


operacoes de atualizacao.

Atualizacoes podem ser propagadas automaticamente para


manter restricoes de integridade.

Exemplo, no caso da remocao de tuplas que violem a restricao


de integridade referencial.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

7/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Linguagens de consulta relacionais

I
I

Servem para o usuario requisitar informac


oes ao SGBD
Linguagens
I
I
I

Algebra
Relacional;
Calculo Relacional de Tuplas;
Calculo Relacional de Domnios.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

8/56

Conte
udo do curso
Linguagens de manipulac
ao de dados

Operacional declarativa

Declarativa: Quero um misto-quente.

Operacional: Quero duas fatias de pao de forma, recheadas


com uma fatia de queijo e uma fatia de presunto. Tudo isto
bem tostado.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

9/56


Algebra
Relacional

Algebra
Relacional

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

10/56


Algebra
Relacional

Algebra
relacional

I
I

Linguagem procedural
Seis operadores basicos
I
I
I
I
I
I

Selecao ();
Projecao ();
Uniao ();
Diferenca de conjuntos ();
Produto cartesiano ();
Renomeacao ();

Entradas: Relacao

Sadas: Relacao

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

11/56


Algebra
Relacional

Projecao (1)

Projeta as tuplas de uma relacao sobre um determinado


conjunto de atributos.

Elimina colunas.

Duplicatas sao removidas.

Notacao: hAtributosi (hRelacaoi)

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

12/56


Algebra
Relacional

Projecao (2)

Figura: P1 Marca,Modelo (TAXI).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

13/56


Algebra
Relacional

Projecao (3)

Figura: P1 Marca,Modelo (TAXI).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

14/56


Algebra
Relacional

Projecao (4)

Figura: Eliminando duplicadas de P1 .

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

15/56


Algebra
Relacional

Projecao (5)

Figura: P2 CliId,Nome (CLIENTE PARTICULAR).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

16/56


Algebra
Relacional

Propriedades da operacao de projecao

O n
umero de tuplas na relacao resultado hAtributosi (R) e
sempre menor ou igual ao n
umero de tuplas em R.

Se lista inclui chave, o n


umero de tuplas e o mesmo.

hAtributos1 i (hAtributos2 i (R)) = hAtributos1 i (R) caso


hAtributos2 i hAtributos1 i.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

17/56


Algebra
Relacional

Operacao de selecao (1)

Seleciona um subconjunto de tuplas de uma relacao que


satisfazem uma condicao de selecao (expressa no predicado).

Notacao hCondicaoi (hRelacaoi).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

18/56


Algebra
Relacional

Operacao de selecao (2)

Condicao ou predicado
I
I
I

Constitudo por termos ligados por E, OU e NAO.


Termo: hAtributoi OP hAtributoi
OP pode ser =, 6=, >, , < ou .

Seletividade da condicao: fracao de tuplas selecionadas.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

19/56


Algebra
Relacional

Operacao de selecao (3)

Figura: S1 AnoFab>2000 (TAXI).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

20/56


Algebra
Relacional

Operacao de selecao (4)

Figura: Resultado de S1 AnoFab>2000 (TAXI).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

21/56


Algebra
Relacional

Propriedades da operacao de selecao

A operacao hAtributoi (R) produz uma relacao com mesmo


esquema (atributos).
comutativa. hCondicao i ( hCondicao i (R) = hCondicao i (
E
1
2
2
hCondicao1 i (R).
Cascatas de selec
oes equivalem a uma selecao com conjuncao
de condicoes. hC1 i (hC2 i ( hC3 i (R))) = hC1 C2 C3 i (R).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

22/56


Algebra
Relacional

Operacoes de conjuntos (1)

Uniao efetua a uniao de duas relac


oes compatveis (R S).

Diferenca efetua a diferenca entre duas relacoes compatveis


(R S).

Intersecao efetua a intersecao de duas relacoes compatveis


(R S).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

23/56


Algebra
Relacional

Operacoes de conjuntos (2)

Duas relacoes R(A1 , A2 , . . . , An ) e S(B1 , B2 , . . . , Bn ) sao


compatveis se
I
I

Elas tiverem o mesmo grau n;


dom(Ai ) = dom(Bi ) para 1 i n.

A relacao resultante tem os nomes dos atributos da primeira


relacao.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

24/56


Algebra
Relacional

Operacoes de conjuntos (3)

R S: relacao que contem as tuplas que estao em R, em S


ou em ambas.

R S: relacao que contem as tuplas que estao em R e em S

R S: relacao que contem as tuplas que estao em R e que


nao estao em S.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

25/56


Algebra
Relacional

Uniao

(a) R

(b) S

Anderson Rocha

(c) R S

MC536 Bancos de Dados: Teoria e Pr


atica

26/56


Algebra
Relacional

Intersecao

(d) R

(e) S

Anderson Rocha

(f) R S

MC536 Bancos de Dados: Teoria e Pr


atica

27/56


Algebra
Relacional

Diferenca

(g) R

(h) S

Anderson Rocha

(i) R S

MC536 Bancos de Dados: Teoria e Pr


atica

28/56


Algebra
Relacional

Propriedades das operacoes com conjuntos

Uniao e intersecao sao comutativas


R S

= S R

(1)

R S

= S R

(2)

Associativas
R (S T ) = (R S) T

(3)

R (S T ) = (R S) T

(4)

Diferenca nao e comutativa.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

29/56


Algebra
Relacional

Produto cartesiano (1)

Permite combinar informac


oes de duas relac
oes.
(b) S.

(a) R.
CliID
1532
1755
1780

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

30/56


Algebra
Relacional

Produto cartesiano (2)

(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R S.
(CliID)
1532
1532

Nome
Asdr
ubal
Asdr
ubal

(CliID)
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

31/56


Algebra
Relacional

Produto cartesiano (3)

(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R S.
(CliID)
1532
1532
1755
1755

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana

(CliID)
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

32/56


Algebra
Relacional

Produto cartesiano (4)


(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R S.
(CliID)
1532
1532
1755
1755
1780
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana
Quincas
Quincas

(CliID)
1755
1982
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

33/56


Algebra
Relacional

Juncao ./ (1)
(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID<S.CliID S.
(CliID)
1532
1532
1755
1755
1780
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana
Quincas
Quincas

(CliID)
1755
1982
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

34/56


Algebra
Relacional

Juncao ./ (2)
(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID<S.CliID S.
(CliID)
1532
1532
1755
1755
1780
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana
Quincas
Quincas

(CliID)
1755
1982
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

35/56


Algebra
Relacional

Juncao ./ (3)

(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID<S.CliID S.
(CliID)
1532
1532
1755
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Quincas

(CliID)
1755
1982
1982
1982

Anderson Rocha

Placa
DAE6534
JDM8776
JDM8776
JDM8776

DataPedido
15/02/2003
18/02/2003
18/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

36/56


Algebra
Relacional

Equi-Juncao ou Juncao natural ./ (1)


(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID S.
(CliID)
1532
1532
1755
1755
1780
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana
Quincas
Quincas

(CliID)
1755
1982
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

37/56


Algebra
Relacional

Equi-Juncao ou Juncao natural ./ (2)


(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID S.
(CliID)
1532
1532
1755
1755
1780
1780

Nome
Asdr
ubal
Asdr
ubal
Doriana
Doriana
Quincas
Quincas

(CliID)
1755
1982
1755
1982
1755
1982

Anderson Rocha

Placa
DAE6534
JDM8776
DAE6534
JDM8776
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003
15/02/2003
18/02/2003
15/02/2003
18/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

38/56


Algebra
Relacional

Equi-Juncao ou Juncao natural ./ (3)

(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID S.
(CliID)
1755

Nome
Doriana

(CliID)
1755

Anderson Rocha

Placa
DAE6534

DataPedido
15/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

39/56


Algebra
Relacional

Equi-Juncao ou Juncao natural ./ (4)

(a) R.
CliID
1532
1755
1780

(b) S.

Nome
Asdr
ubal
Doriana
Quincas

CliID
1755
1982

Placa
DAE6534
JDM8776

DataPedido
15/02/2003
18/02/2003

(c) R ./R.CliID S.
(CliID)
1755

Nome
Doriana

Anderson Rocha

Placa
DAE6534

DataPedido
15/02/2003

MC536 Bancos de Dados: Teoria e Pr


atica

40/56


Algebra
Relacional

Propriedades de juncao

Se nenhuma combinacao de tuplas satisfaz a condicao de


juncao, o resultado da juncao e uma relacao vazia (com zero
tuplas).

R tem nR tuplas e S tem nS tuplas

Operacao de juncao tera entre 0 e nR nS tuplas.

Seletividade de juncao
sj

nroTuplasEsperado
.
(nR nS )

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

(5)

41/56


Algebra
Relacional

Renomeacao (1)

(a) TAXI.
(Placa)
DAE6534
DKL9548
DKL7878
JDM8776
JJM3692

Marca
Ford
Wolksvagen
Ford
Wolksvagen
Chevrolet

Modelo
Fiesta
Gol
Fiesta
Santana
Corsa

AnoFab
1999
2001
2001
2002
1999

Tabela: (R1 , Marca=0 Ford 0 (TAXI )).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

42/56


Algebra
Relacional

Renomeacao (2)

(a) R1 .
(Placa)
DAE6534
DKL7878

Marca
Ford
Ford

Modelo
Fiesta
Fiesta

AnoFab
1999
2001

Tabela: R1 = (R1 , Marca=0 Ford 0 (TAXI )).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

43/56


Algebra
Relacional

Conjunto completo de operadores

I
I

{, , , , }.
Qualquer outro operador pode ser expresso pela combinacao
de operadores deste conjunto
I
I

R S = (R S) ((R S) (S R));
R ./Condicao S = Condicao (R S)

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

44/56


Algebra
Relacional

Operador divisao (1)

Encontre todos os clientes que tenham andado em todos os


taxis da marca Ford.
(a) CORRIDA.
(CliID)
1532
1532
1644
1644
1780
1982
1982
1982

(Placa)
DAE6534
DKL4586
DKL7878
JDM8776
JJM3692
DAE6534
DKL4598
DKL7878

(DataPedido)
15/02/2003
17/02/2003
10/01/2003
18/02/2003
08/01/2003
15/01/2003
26/01/2003
01/02/2003

Anderson Rocha

(b) TAXI(R1 ).
(Placa)
DAE6534
DKL7878

Marca
Ford
Ford

Modelo
Fiesta
Fiesta

AnoFab
1999
2001

MC536 Bancos de Dados: Teoria e Pr


atica

45/56


Algebra
Relacional

Operador divisao (2)


(a) S1 = CliID,Placa (CORRIDA).

(CliID)
1532
1532
1644
1644
1780
1982
1982
1982

(Placa)
DAE6534
DKL4586
DKL7878
JDM8776
JJM3692
DAE6534
DKL4598
DKL7878

Anderson Rocha

(b) S2 Placa (R1 ).

(Placa)
DAE6534
DKL7878

MC536 Bancos de Dados: Teoria e Pr


atica

46/56


Algebra
Relacional

Operador divisao (3)


(b) S2 .

(a) S1 .

(CliID)
1532
1532
1644
1644
1780
1982
1982
1982

(Placa)
DAE6534
DKL4586
DKL7878
JDM8776
JJM3692
DAE6534
DKL4598
DKL7878

(Placa)
DAE6534
DKL7878

Anderson Rocha

(c) S1 S2 .

(CliID)
1982

MC536 Bancos de Dados: Teoria e Pr


atica

47/56

C
alculo Relacional

Calculo Relacional

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

48/56

C
alculo Relacional

Calculo relacional (1)

I
I

Mesmo poder de expressao da algebra relacional.


Linguagem de consulta nao-procedural.
I

Nao se define um conjunto de operac


oes.

Expressao do calculo relacional de tuplas


I
I

{t | F (t)}, conjunto de tuplas t tal que F (t) e verdadeiro;


F (t) e uma condicao l
ogica.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

49/56

C
alculo Relacional

Calculo relacional (2)

De o nome dos funcionarios cujo salario e maior que


R$50.000.
I
I

t.NOME | FUNCIONARIO(t) t.SALARIO > 50000;


t.NOME | t FUNCIONARIO t.SALARIO > 50000.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

50/56

C
alculo Relacional

Calculo relacional (3)


I

Uniao: R S
{t | t R OR t S}.

Intersecao: R S
{t | t R t S}.

(7)

Diferenca: R S
{t | t R t S}.

(6)

(8)

Produto Cartesiano: R S
{t, s | t R s S}.
Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

(9)
51/56

C
alculo Relacional

Calculo relacional (4)

Projecao de R nas colunas hc, di c,d (R)


{t.c, t.d | t R}.

(10)

{t | t R F }.

(11)

Selecao F (R)

Juncao: R ./F S onde F = a OP b


{t, s| t R s S and t.a OP s.b}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

(12)

52/56

C
alculo Relacional

Quantificadores existencial () e universal ()


I

Existe pelo menos uma tupla s pertencente a S tal que a


formula F (s) e verdadeira
I
I

Para toda tupla s pertencente a S a f


ormula F (s) e
verdadeira
I
I

s S(F (s));
s S(s.nome = 0 Paulo 0 ).

s S (F (s));
s S (s.salario > 1000).

Equivalencias
I
I

( x) (P(x)) ( x) ( (P(x)));
( x) (P(x)) ( x) ( (P(x))).

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

53/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (1)

Quais os nomes e parentescos de todos os dependentes?


I
I

Quais funcionarios possuem dependentes filhas?


I
I

nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.

Quais funcionarios nao possuem dependentes?


I
I

numfd (F ) numfd (D);


{t.numfd | t F s D(t.numfd = s.numfd)}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

54/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Exerccios de fixacao (2)

De os nomes dos funcionarios que possuem algum


dependente.
I
I

nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.

De o nome de cada funcionario que possui uma dependente


chamada Alice.
I
I

nomef (F ./ (nomed=0 Alice 0 (D)));


{t.nomef | t F s D(t.numfd =
s.numfd s.nomed = 0 Alice 0 )}.

Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

55/56

C
alculo Relacional

Duvidas?

Figura: O pensador - Auguste Rodin.


Anderson Rocha

MC536 Bancos de Dados: Teoria e Pr


atica

56/56

Anda mungkin juga menyukai