udo do curso
Linguagens de manipulac
ao de dados
Anderson Rocha
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.
2/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Contexto geral
Anderson Rocha
3/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Esquema conceitual
Anderson Rocha
4/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Esquema relacional
(c) Taxi
(d) Corrida
Anderson Rocha
5/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Operac
oes de recuperacao (consulta);
Operac
oes de atualizacao (INSERT, DELETE, MODIFY
tupla);
Anderson Rocha
6/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Anderson Rocha
7/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
I
I
Algebra
Relacional;
Calculo Relacional de Tuplas;
Calculo Relacional de Domnios.
Anderson Rocha
8/56
Conte
udo do curso
Linguagens de manipulac
ao de dados
Operacional declarativa
Anderson Rocha
9/56
Algebra
Relacional
Algebra
Relacional
Anderson Rocha
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
11/56
Algebra
Relacional
Projecao (1)
Elimina colunas.
Anderson Rocha
12/56
Algebra
Relacional
Projecao (2)
Anderson Rocha
13/56
Algebra
Relacional
Projecao (3)
Anderson Rocha
14/56
Algebra
Relacional
Projecao (4)
Anderson Rocha
15/56
Algebra
Relacional
Projecao (5)
Anderson Rocha
16/56
Algebra
Relacional
O n
umero de tuplas na relacao resultado hAtributosi (R) e
sempre menor ou igual ao n
umero de tuplas em R.
Anderson Rocha
17/56
Algebra
Relacional
Anderson Rocha
18/56
Algebra
Relacional
Condicao ou predicado
I
I
I
Anderson Rocha
19/56
Algebra
Relacional
Anderson Rocha
20/56
Algebra
Relacional
Anderson Rocha
21/56
Algebra
Relacional
Anderson Rocha
22/56
Algebra
Relacional
Anderson Rocha
23/56
Algebra
Relacional
Anderson Rocha
24/56
Algebra
Relacional
Anderson Rocha
25/56
Algebra
Relacional
Uniao
(a) R
(b) S
Anderson Rocha
(c) R S
26/56
Algebra
Relacional
Intersecao
(d) R
(e) S
Anderson Rocha
(f) R S
27/56
Algebra
Relacional
Diferenca
(g) R
(h) S
Anderson Rocha
(i) R S
28/56
Algebra
Relacional
= S R
(1)
R S
= S R
(2)
Associativas
R (S T ) = (R S) T
(3)
R (S T ) = (R S) T
(4)
Anderson Rocha
29/56
Algebra
Relacional
(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
30/56
Algebra
Relacional
(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
31/56
Algebra
Relacional
(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
32/56
Algebra
Relacional
(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
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
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
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
36/56
Algebra
Relacional
(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
37/56
Algebra
Relacional
(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
38/56
Algebra
Relacional
(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
39/56
Algebra
Relacional
(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
40/56
Algebra
Relacional
Propriedades de juncao
Seletividade de juncao
sj
nroTuplasEsperado
.
(nR nS )
Anderson Rocha
(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
Anderson Rocha
42/56
Algebra
Relacional
Renomeacao (2)
(a) R1 .
(Placa)
DAE6534
DKL7878
Marca
Ford
Ford
Modelo
Fiesta
Fiesta
AnoFab
1999
2001
Anderson Rocha
43/56
Algebra
Relacional
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
44/56
Algebra
Relacional
(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
45/56
Algebra
Relacional
(CliID)
1532
1532
1644
1644
1780
1982
1982
1982
(Placa)
DAE6534
DKL4586
DKL7878
JDM8776
JJM3692
DAE6534
DKL4598
DKL7878
Anderson Rocha
(Placa)
DAE6534
DKL7878
46/56
Algebra
Relacional
(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
47/56
C
alculo Relacional
Calculo Relacional
Anderson Rocha
48/56
C
alculo Relacional
I
I
Anderson Rocha
49/56
C
alculo Relacional
Anderson Rocha
50/56
C
alculo Relacional
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
(9)
51/56
C
alculo Relacional
(10)
{t | t R F }.
(11)
Selecao F (R)
Anderson Rocha
(12)
52/56
C
alculo Relacional
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
53/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomed,par (D);
{t.nomed, t.par | t D}.
numfd (par =0 filha0 (D));
{t.numfd | t D t.par = 0 filha0 }.
Anderson Rocha
54/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
nomef (F ./ D);
{t.nomef | t F s D(t.numfd = s.numfd)}.
Anderson Rocha
55/56
C
alculo Relacional
Duvidas?
56/56