Upload
roberto-lima-de-santana
View
8
Download
0
Embed Size (px)
DESCRIPTION
tERORIA DE TIDO
Citation preview
Conteudo do cursoLinguagens de manipulacao de dados
���������������������������������������������������������������������������������������������������������������� Universidade Estadual de Campinas - UNICAMPInstituto de Computacao - IC
MC536 – Bancos de Dados: Teoria e PraticaAula #6 – Linguagens de Definicao e de Manipulacao de Dados
Profs. Anderson Rocha e Andre Santanche
Campinas, 20 de Agosto de 2012
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 1/56
Conteudo do cursoLinguagens de manipulacao de dados
Conteudo do curso
1. Introducao: arquitetura de banco de dados.
2. Modelos de dados: modelagem e abstracoes.
3. Modelos conceituais: modelo entidade-relacionamento (ER)basico e estendido.
4. Modelo relacional: definicoes e formalizacao.
5. Mapeamento do modelo ER para o modelo relacional.
6. Linguagens de definicao e de manipulacao de dados.I Algebra relacional;I 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 Pratica 2/56
Conteudo do cursoLinguagens de manipulacao de dados
Contexto geral
Figura: Contexto geral de um Banco de Dados.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 3/56
Conteudo do cursoLinguagens de manipulacao de dados
Esquema conceitual
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 4/56
Conteudo do cursoLinguagens de manipulacao de dados
Esquema relacional
(a) Cliente Particular (b) Cliente Empresa
(c) Taxi (d) Corrida
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 5/56
Conteudo do cursoLinguagens de manipulacao de dados
Operacoes sobre relacoes (1)
I De acordo com o modelo relacional, as operacoes sobre umBD relacional podem ser
I Operacoes de recuperacao (consulta);I Operacoes de atualizacao (INSERT, DELETE, MODIFY
tupla);
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 6/56
Conteudo do cursoLinguagens de manipulacao de dados
Operacoes sobre relacoes (2)
I Restricoes de integridade nao podem ser violadas pelasoperacoes de atualizacao.
I Atualizacoes podem ser propagadas automaticamente paramanter restricoes de integridade.
I Exemplo, no caso da remocao de tuplas que violem a restricaode integridade referencial.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 7/56
Conteudo do cursoLinguagens de manipulacao de dados
Linguagens de consulta relacionais
I Servem para o usuario requisitar informacoes ao SGBDI Linguagens
I Algebra Relacional;I Calculo Relacional de Tuplas;I Calculo Relacional de Domınios.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 8/56
Conteudo do cursoLinguagens de manipulacao de dados
Operacional × declarativa
I Declarativa: Quero um misto-quente.
I Operacional: Quero duas fatias de pao de forma, recheadascom uma fatia de queijo e uma fatia de presunto. Tudo istobem tostado.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 9/56
Algebra Relacional
Algebra Relacional
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 10/56
Algebra Relacional
Algebra relacional
I Linguagem proceduralI Seis operadores basicos
I Selecao (σ);I Projecao (π);I Uniao (∪);I Diferenca de conjuntos (–);I Produto cartesiano (×);I Renomeacao (ρ);
I Entradas: Relacao
I Saıdas: Relacao
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 11/56
Algebra Relacional
Projecao π (1)
I Projeta as tuplas de uma relacao sobre um determinadoconjunto de atributos.
I Elimina colunas.
I Duplicatas sao removidas.
I Notacao: π〈Atributos〉(〈Relacao〉)
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 12/56
Algebra Relacional
Projecao π (2)
Figura: P1 ← πMarca,Modelo(TAXI).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 13/56
Algebra Relacional
Projecao π (3)
Figura: P1 ← πMarca,Modelo(TAXI).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 14/56
Algebra Relacional
Projecao π (4)
Figura: Eliminando duplicadas de P1.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 15/56
Algebra Relacional
Projecao π (5)
Figura: P2 ← πCliId,Nome(CLIENTE PARTICULAR).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 16/56
Algebra Relacional
Propriedades da operacao de projecao
I O numero de tuplas na relacao resultado π〈Atributos〉(R) esempre menor ou igual ao numero de tuplas em R.
I Se lista inclui chave, o numero de tuplas e o mesmo.
I π〈Atributos1〉(π〈Atributos2〉(R)) = π〈Atributos1〉(R) caso〈Atributos2〉 ⊂ 〈Atributos1〉.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 17/56
Algebra Relacional
Operacao de selecao σ (1)
I Seleciona um subconjunto de tuplas de uma relacao quesatisfazem uma condicao de selecao (expressa no predicado).
I Notacao σ〈Condicao〉(〈Relacao〉).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 18/56
Algebra Relacional
Operacao de selecao σ (2)
I Condicao ou predicadoI Constituıdo por termos ligados por E, OU e NAO.I Termo: 〈Atributo〉 OP 〈Atributo〉I OP pode ser =, 6=, >, ≥, < ou ≤.
I Seletividade da condicao: fracao de tuplas selecionadas.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 19/56
Algebra Relacional
Operacao de selecao σ (3)
Figura: S1 ← σAnoFab>2000(TAXI).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 20/56
Algebra Relacional
Operacao de selecao σ (4)
Figura: Resultado de S1 ← σAnoFab>2000(TAXI).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 21/56
Algebra Relacional
Propriedades da operacao de selecao
I A operacao σ〈Atributo〉(R) produz uma relacao com mesmoesquema (atributos).
I E comutativa. σ〈Condicao1〉( σ〈Condicao2〉(R) = σ〈Condicao2〉(σ〈Condicao1〉(R).
I Cascatas de selecoes equivalem a uma selecao com conjuncaode condicoes. σ〈C1〉(σ〈C2〉( σ〈C3〉(R))) = σ〈C1 ∧ C2 ∧ C3〉(R).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 22/56
Algebra Relacional
Operacoes de conjuntos (1)
I Uniao – efetua a uniao de duas relacoes compatıveis (R ∪ S).
I Diferenca – efetua a diferenca entre duas relacoes compatıveis(R − S).
I Intersecao – efetua a intersecao de duas relacoes compatıveis(R ∩ S).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 23/56
Algebra Relacional
Operacoes de conjuntos (2)
I Duas relacoes R(A1,A2, . . . ,An) e S(B1,B2, . . . ,Bn) saocompatıveis se
I Elas tiverem o mesmo grau n;I dom(Ai ) = dom(Bi ) para 1 ≤ i ≤ n.
I A relacao resultante tem os nomes dos atributos da primeirarelacao.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 24/56
Algebra Relacional
Operacoes de conjuntos (3)
I R ∪ S : relacao que contem as tuplas que estao em R, em Sou em ambas.
I R ∩ S : relacao que contem as tuplas que estao em R e em S
I R − S : relacao que contem as tuplas que estao em R e quenao estao em S .
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 25/56
Algebra Relacional
Uniao ∪
(a) R (b) S (c) R ∪ S
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 26/56
Algebra Relacional
Intersecao ∩
(d) R (e) S (f) R ∩ S
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 27/56
Algebra Relacional
Diferenca ‘–’
(g) R (h) S (i) R − S
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 28/56
Algebra Relacional
Propriedades das operacoes com conjuntos
I Uniao e intersecao sao comutativas
R ∪ S = S ∪ R (1)
R ∩ S = S ∩ R (2)
I Associativas
R ∪ (S ∪ T ) = (R ∪ S) ∪ T (3)
R ∩ (S ∩ T ) = (R ∩ S) ∩ T (4)
I Diferenca nao e comutativa.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 29/56
Algebra Relacional
Produto cartesiano × (1)
I Permite combinar informacoes de duas relacoes.
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 30/56
Algebra Relacional
Produto cartesiano × (2)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R × S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 31/56
Algebra Relacional
Produto cartesiano × (3)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R × S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 32/56
Algebra Relacional
Produto cartesiano × (4)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R × S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1755 DAE6534 15/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 33/56
Algebra Relacional
Juncao ./ (1)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID<S.CliID S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1755 DAE6534 15/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 34/56
Algebra Relacional
Juncao ./ (2)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID<S.CliID S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1755 DAE6534 15/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 35/56
Algebra Relacional
Juncao ./ (3)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID<S.CliID S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 36/56
Algebra Relacional
Equi-Juncao ou Juncao natural ./ (1)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1755 DAE6534 15/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 37/56
Algebra Relacional
Equi-Juncao ou Juncao natural ./ (2)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID S .
(CliID) Nome (CliID) Placa DataPedido1532 Asdrubal 1755 DAE6534 15/02/2003
1532 Asdrubal 1982 JDM8776 18/02/2003
1755 Doriana 1755 DAE6534 15/02/2003
1755 Doriana 1982 JDM8776 18/02/2003
1780 Quincas 1755 DAE6534 15/02/2003
1780 Quincas 1982 JDM8776 18/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 38/56
Algebra Relacional
Equi-Juncao ou Juncao natural ./ (3)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID S .
(CliID) Nome (CliID) Placa DataPedido1755 Doriana 1755 DAE6534 15/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 39/56
Algebra Relacional
Equi-Juncao ou Juncao natural ./ (4)
(a) R.
CliID Nome1532 Asdrubal
1755 Doriana
1780 Quincas
(b) S .
CliID Placa DataPedido1755 DAE6534 15/02/2003
1982 JDM8776 18/02/2003
(c) R ./R.CliID S .
(CliID) Nome Placa DataPedido1755 Doriana DAE6534 15/02/2003
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 40/56
Algebra Relacional
Propriedades de juncao
I Se nenhuma combinacao de tuplas satisfaz a condicao dejuncao, o resultado da juncao e uma relacao vazia (com zerotuplas).
I R tem nR tuplas e S tem nS tuplas
I Operacao de juncao tera entre 0 e nR × nS tuplas.
I Seletividade de juncao
sj =nroTuplasEsperado
(nR × nS ). (5)
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 41/56
Algebra Relacional
Renomeacao ρ (1)
(a) TAXI.
(Placa) Marca Modelo AnoFabDAE6534 Ford Fiesta 1999
DKL9548 Wolksvagen Gol 2001
DKL7878 Ford Fiesta 2001
JDM8776 Wolksvagen Santana 2002
JJM3692 Chevrolet Corsa 1999
Tabela: ρ(R1, σMarca=′Ford′(TAXI )).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 42/56
Algebra Relacional
Renomeacao ρ (2)
(a) R1.
(Placa) Marca Modelo AnoFabDAE6534 Ford Fiesta 1999
DKL7878 Ford Fiesta 2001
Tabela: R1 = ρ(R1, σMarca=′Ford′(TAXI )).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 43/56
Algebra Relacional
Conjunto completo de operadores
I {π, σ,∪,−,×}.I Qualquer outro operador pode ser expresso pela combinacao
de operadores deste conjuntoI R ∩ S = (R ∪ S)− ((R − S) ∪ (S − R));I R ./Condicao S = σCondicao(R × S)
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 44/56
Algebra Relacional
Operador divisao ÷ (1)
I Encontre todos os clientes que tenham andado em todos ostaxis da marca Ford.
(a) CORRIDA.
(CliID) (Placa) (DataPedido)1532 DAE6534 15/02/20031532 DKL4586 17/02/20031644 DKL7878 10/01/20031644 JDM8776 18/02/20031780 JJM3692 08/01/20031982 DAE6534 15/01/20031982 DKL4598 26/01/20031982 DKL7878 01/02/2003
(b) TAXI(R1).
(Placa) Marca Modelo AnoFabDAE6534 Ford Fiesta 1999DKL7878 Ford Fiesta 2001
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 45/56
Algebra Relacional
Operador divisao ÷ (2)
(a) S1 = πCliID,Placa(CORRIDA).
(CliID) (Placa)1532 DAE6534
1532 DKL4586
1644 DKL7878
1644 JDM8776
1780 JJM3692
1982 DAE6534
1982 DKL4598
1982 DKL7878
(b) S2 ← πPlaca(R1).
(Placa)DAE6534
DKL7878
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 46/56
Algebra Relacional
Operador divisao ÷ (3)
(a) S1.
(CliID) (Placa)1532 DAE6534
1532 DKL4586
1644 DKL7878
1644 JDM8776
1780 JJM3692
1982 DAE6534
1982 DKL4598
1982 DKL7878
(b) S2.
(Placa)DAE6534
DKL7878
(c) S1 ÷ S2.
(CliID)1982
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 47/56
Calculo Relacional
Calculo Relacional
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 48/56
Calculo Relacional
Calculo relacional (1)
I Mesmo poder de expressao da algebra relacional.I Linguagem de consulta nao-procedural.
I Nao se define um conjunto de operacoes.
I Expressao do calculo relacional de tuplasI {t | F (t)}, conjunto de tuplas t tal que F (t) e verdadeiro;I F (t) e uma condicao logica.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 49/56
Calculo Relacional
Calculo relacional (2)
I De o nome dos funcionarios cujo salario e maior queR$50.000.
I t.NOME | FUNCIONARIO(t) ∧ t.SALARIO > 50000;I t.NOME | t ∈ FUNCIONARIO ∧ t.SALARIO > 50000.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 50/56
Calculo Relacional
Calculo relacional (3)
I Uniao: R ∪ S
{t | t ∈ R OR t ∈ S}. (6)
I Intersecao: R ∩ S
{t | t ∈ R ∧ t ∈ S}. (7)
I Diferenca: R − S
{t | t ∈ R ∧ ¬ t ∈ S}. (8)
I Produto Cartesiano: R × S
{t, s | t ∈ R ∧ s ∈ S}. (9)
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 51/56
Calculo Relacional
Calculo relacional (4)
I Projecao de R nas colunas 〈c , d〉 ← πc,d (R)
{t.c, t.d | t ∈ R}. (10)
I Selecao σF (R)
{t | t ∈ R ∧ F}. (11)
I Juncao: R ./F S onde F = a OP b
{t, s| t ∈ R ∧ s ∈ S and t.a OP s.b}. (12)
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 52/56
Calculo Relacional
Quantificadores existencial (∃) e universal (∀)
I Existe pelo menos uma tupla s pertencente a S tal que aformula F (s) e verdadeira
I ∃ s ∈ S(F (s));I ∃ s ∈ S(s.nome = ′Paulo′).
I Para toda tupla s pertencente a S a formula F (s) everdadeira
I ∀ s ∈ S (F (s));I ∀ s ∈ S (s.salario > 1000).
I EquivalenciasI (∀ x) (P(x)) ≡ ¬ (∃ x) (¬ (P(x)));I (∃ x) (P(x)) ≡ ¬ (∀ x) (¬ (P(x))).
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 53/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (1)
I Quais os nomes e parentescos de todos os dependentes?I πnomed,par (D);I {t.nomed , t.par | t ∈ D}.
I Quais funcionarios possuem dependentes filhas?I πnumfd (σpar=′filha′(D));I {t.numfd | t ∈ D ∧ t.par = ′filha′}.
I Quais funcionarios nao possuem dependentes?I πnumfd (F )− πnumfd (D);I {t.numfd | t ∈ F ∧ ¬∃ s ∈ D(t.numfd = s.numfd)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 54/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Exercıcios de fixacao (2)
I De os nomes dos funcionarios que possuem algumdependente.
I πnomef (F ./ D);I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd = s.numfd)}.
I De o nome de cada funcionario que possui uma dependentechamada Alice.
I πnomef (F ./ (σnomed=′Alice′(D)));I {t.nomef | t ∈ F ∧ ∃ s ∈ D(t.numfd =
s.numfd ∧ s.nomed = ′Alice′)}.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 55/56
Calculo Relacional
Duvidas?
Figura: O pensador - Auguste Rodin.
Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 56/56