69
Conte´ udo do curso Linguagens de manipula¸c˜ ao de dados Universidade Estadual de Campinas - UNICAMP Instituto de Computa¸c˜ ao - IC MC536 – Bancos de Dados: Teoria e Pr´ atica Aula #6 – Linguagens de Defini¸ ao e de Manipula¸c˜ ao de Dados Profs. Anderson Rocha e Andr´ e Santanch` e Campinas, 20 de Agosto de 2012 Anderson Rocha MC536 – Bancos de Dados: Teoria e Pr´ atica 1/56

Teoria de Tudo

Embed Size (px)

DESCRIPTION

tERORIA DE TIDO

Citation preview

Page 1: Teoria de Tudo

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

Page 2: Teoria de Tudo

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

Page 3: Teoria de Tudo

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

Page 4: Teoria de Tudo

Conteudo do cursoLinguagens de manipulacao de dados

Esquema conceitual

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 4/56

Page 5: Teoria de Tudo

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

Page 6: Teoria de Tudo

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

Page 7: Teoria de Tudo

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

Page 8: Teoria de Tudo

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

Page 9: Teoria de Tudo

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

Page 10: Teoria de Tudo

Algebra Relacional

Algebra Relacional

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 10/56

Page 11: Teoria de Tudo

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

Page 12: Teoria de Tudo

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

Page 13: Teoria de Tudo

Algebra Relacional

Projecao π (2)

Figura: P1 ← πMarca,Modelo(TAXI).

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 13/56

Page 14: Teoria de Tudo

Algebra Relacional

Projecao π (3)

Figura: P1 ← πMarca,Modelo(TAXI).

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 14/56

Page 15: Teoria de Tudo

Algebra Relacional

Projecao π (4)

Figura: Eliminando duplicadas de P1.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 15/56

Page 16: Teoria de Tudo

Algebra Relacional

Projecao π (5)

Figura: P2 ← πCliId,Nome(CLIENTE PARTICULAR).

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 16/56

Page 17: Teoria de Tudo

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

Page 18: Teoria de Tudo

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

Page 19: Teoria de Tudo

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

Page 20: Teoria de Tudo

Algebra Relacional

Operacao de selecao σ (3)

Figura: S1 ← σAnoFab>2000(TAXI).

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 20/56

Page 21: Teoria de Tudo

Algebra Relacional

Operacao de selecao σ (4)

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

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 21/56

Page 22: Teoria de Tudo

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

Page 23: Teoria de Tudo

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

Page 24: Teoria de Tudo

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

Page 25: Teoria de Tudo

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

Page 26: Teoria de Tudo

Algebra Relacional

Uniao ∪

(a) R (b) S (c) R ∪ S

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 26/56

Page 27: Teoria de Tudo

Algebra Relacional

Intersecao ∩

(d) R (e) S (f) R ∩ S

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 27/56

Page 28: Teoria de Tudo

Algebra Relacional

Diferenca ‘–’

(g) R (h) S (i) R − S

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 28/56

Page 29: Teoria de Tudo

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

Page 30: Teoria de Tudo

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

Page 31: Teoria de Tudo

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

Page 32: Teoria de Tudo

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

Page 33: Teoria de Tudo

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

Page 34: Teoria de Tudo

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

Page 35: Teoria de Tudo

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

Page 36: Teoria de Tudo

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

Page 37: Teoria de Tudo

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

Page 38: Teoria de Tudo

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

Page 39: Teoria de Tudo

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

Page 40: Teoria de Tudo

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

Page 41: Teoria de Tudo

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

Page 42: Teoria de Tudo

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

Page 43: Teoria de Tudo

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

Page 44: Teoria de Tudo

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

Page 45: Teoria de Tudo

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

Page 46: Teoria de Tudo

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

Page 47: Teoria de Tudo

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

Page 48: Teoria de Tudo

Calculo Relacional

Calculo Relacional

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 48/56

Page 49: Teoria de Tudo

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

Page 50: Teoria de Tudo

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

Page 51: Teoria de Tudo

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

Page 52: Teoria de Tudo

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

Page 53: Teoria de Tudo

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

Page 54: Teoria de Tudo

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

Page 55: Teoria de Tudo

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

Page 56: Teoria de Tudo

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

Page 57: Teoria de Tudo

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

Page 58: Teoria de Tudo

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

Page 59: Teoria de Tudo

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

Page 60: Teoria de Tudo

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

Page 61: Teoria de Tudo

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

Page 62: Teoria de Tudo

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

Page 63: Teoria de Tudo

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

Page 64: Teoria de Tudo

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

Page 65: Teoria de Tudo

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

Page 66: Teoria de Tudo

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

Page 67: Teoria de Tudo

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

Page 68: Teoria de Tudo

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

Page 69: Teoria de Tudo

Calculo Relacional

Duvidas?

Figura: O pensador - Auguste Rodin.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 56/56