+ All Categories
Home > Documents > Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003)...

Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003)...

Date post: 15-Jul-2020
Category:
Upload: others
View: 2 times
Download: 1 times
Share this document with a friend
82
Cálculo Relacional Banco de Dados: Teoria e Prática André Santanchè Instituto de Computação – UNICAMP Setembro 2011 Picture by Evan Leeson [http://www.flickr.com/photos/ecstaticist/]
Transcript
Page 1: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Cálculo Relacional

Banco de Dados: Teoria e Prática

André SantanchèInstituto de Computação – UNICAMP

Setembro 2011

Pic

ture

by

Eva

n L

eeso

n [

htt

p:/

/ww

w.f

lickr

.co

m/p

ho

tos/

ecst

atic

ist/

]

Page 2: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Bases do SQL

▪ Álgebra Relacional

▫ operacional

▪ Cálculo Relacional

▫ Declarativo

(Ramakrishnan, 2003)

Page 3: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Operacional x Declarativo

▪ Declarativo:▫ Quero um misto quente

▪ Operacional:▫ Quero duas fatias de pão de forma,

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

Page 4: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Caso Prático - Taxis

Page 5: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual – ExemploTáxis

Este é um subconjunto do Estudo de Caso proposto “Despacho e controle de Táxis via terminais móveis ligados on-line com um sistema multi-usuário” por prof. Geovane Cayres Magalhães

Cliente TaxiCorrida1 N N 1

CliIdNome

DataPedido PlacaMarcaModeloAnoFab

Page 6: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual – ExemploCliente

Para ilustrar o tema apresentado, foram acrescentadas duas entidades que são especialização de Cliente. A primeira representa um indivíduo que irá pagar a conta, a segunda representa um funcionário de uma empresa conveniada, para a qual a conta será enviada. Um cliente pode pertencer a ambas especializações.

Cliente

CPF

Cliente Particular

ISA

Cliente Empresa

CGC

Page 7: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual completoTáxis

Cliente TaxiCorrida1 N N 1

CliIdNome Placa

MarcaModeloAnoFab

CPF

Cliente Particular

ISA

Cliente Empresa

DataPedido

CGC

Page 8: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Cliente Particular (CP)

Cliente Empresa (CE)

CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02

CliId Nome CGC 1532 Asdrúbal 754.856.965/0001-54 1644 Jepeto 478.652.635/0001-75 1780 Quincas 554.663.996/0001-87 1982 Zandor 736.952.369/0001-23

Page 9: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Táxi (TX)

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Corrida (R1)

Page 10: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Cálculo Relacional

Forma Geral - Expressão

{ t | F(t) }

conjunto de tuplas t tal que F(t) é verdadeiro

(Guimarães, 2003)

Page 11: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Relação de Intervalo (Range)

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

{ t | t ∈ TX }

Page 12: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Projeção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Marca,Modelo(TX)

{ t.marca, t.modelo | t ∈ TX }

Page 13: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Projeção

Marca,Modelo(TX)

{ t.marca, t.modelo | t ∈ TX }

Marca Modelo Ford Fiesta Wolksvagen Gol Wolksvagen Santana Chevrolet Corsa

Page 14: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

?

Page 15: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

{ t | t ∈ TX and t.anofab>2000 }

Page 16: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

{ t | t ∈ TX and t.anofab>2000 }

Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002

Page 17: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

União

?

C1 C2

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1644 Jepeto 1755 Doriana 1780 Quincas 1982 Zandor

Page 18: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

União

{ t | t ∈ C1 or t ∈ C2 }

C1 C2

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1644 Jepeto 1755 Doriana 1780 Quincas 1982 Zandor

Page 19: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C2

Interseção

?CliId Nome

1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1780 Quincas

Page 20: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C2

Interseção

{ t | t ∈ C1 and t ∈ C2 }CliId Nome

1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1780 Quincas

Page 21: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 - C2

Diferença

?

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1755 Doriana

Page 22: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Diferença

{ t | t ∈ C1 and not t ∈ C2 }

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1755 Doriana

C1 - C2

Page 23: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Produto Cartesiano

?

C1 × R1

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Page 24: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Produto Cartesiano

{ t, s | t ∈ C1 and s ∈ R1 }

C1 × R1

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Page 25: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

?

Page 26: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid < s.cliid}

Page 27: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid < s.cliid}

(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003 1755 Doriana 1982 JDM8776 18/02/2003 1780 Quincas 1982 JDM8776 18/02/2003

Page 28: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 CliIdR1

Equi-Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid = s.cliid}

Page 29: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 CliIdR1

Equi-Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid = s.cliid}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 30: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Variáveis Livres

▪ Aparecem à esquerda do |

{ t | F(t) }

▪ Produzem os resultados da expressão

Page 31: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificadores

▪ Universal ( )

▫ qualquer que seja

▪ Existencial ()

▫ existe pelo menos um

▪ Variáveis ligadas

▫ associadas a quantificadores em um escopo

Page 32: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 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

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

Page 33: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 34: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 35: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Cliente Particular (CP)

CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02

Modelo original por prof. Geovane Cayres Magalhães

Page 36: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Táxi (TX)

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Corrida (R1)

Page 37: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Universal

{ c | c ∈ CP and t(t ∈ TX andr(r ∈ R1 and

c.cliid = r.cliid and r.placa = t.placa))}

Page 38: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Referências

▪ Codd, Edgar Frank (1970) A relational model of data for large shared data banks. Communications ACM 13(6), 377-387.

▪ Elmasri, Ramez; Navathe, Shamkant B. (2005) Sistemas de Bancos de Dados. Addison-Wesley, 4a edição em português.

▪ Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas de Banco de Dados. Pearson, 6a edição em português.

▪ Guimarães, Célio (2003) Fundamentos de Bancos de Dados: Modelagem, Projeto e Linguagem SQL. Editora UNICAMP, 1a edição.

Page 39: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Referências▪ Heuser, Carlos Alberto (2004) Projeto de Banco de

Dados. Editora Sagra Luzzato, 5a edição.

▪ Ramakrishnan, Raghu; Gehrke, Johannes (2003) Database Management Systems. McGraw-Hill, 3rd edition.

Page 40: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

André Santanchèhttp://www.ic.unicamp.br/~santanche

Page 41: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

License▪ These slides are shared under a Creative Commons License.

Under the following conditions: Attribution, Noncommercial and Share Alike.

▪ See further details about this Creative Commons license at:http://creativecommons.org/licenses/by-nc-sa/3.0/

Page 42: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Cálculo Relacional

Banco de Dados: Teoria e Prática

André SantanchèInstituto de Computação – UNICAMP

Setembro 2011

Pic

ture

by

Eva

n L

eeso

n [

htt

p:/

/ww

w.f

lick

r.co

m/p

ho

tos/

ecst

atic

ist/

]

Page 43: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Bases do SQL

▪ Álgebra Relacional

▫ operacional

▪ Cálculo Relacional

▫ Declarativo

(Ramakrishnan, 2003)

(Ramakrishnan, 3ed, 2003)

Duas Linguagens Que ry matemáticas formam as bases para linguagens “reais” (ex. SQL), e para sua implementação: Álge bra Re lacional: Mais operacional, muito útil

para a representação de planos de execução. Cálculo Re lacional: Permite que o usuário

descreva o que ele quer, ao invés de como deve ser computado o que ele quer. (Não operacional, declarativo).

Page 44: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Operacional x Declarativo

▪ Declarativo:▫ Quero um misto quente

▪ Operacional:▫ Quero duas fatias de pão de forma,

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

Page 45: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Caso Prático - Taxis

Page 46: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual – ExemploTáxis

Este é um subconjunto do Estudo de Caso proposto “Despacho e controle de Táxis via terminais móveis ligados on-line com um sistema multi-usuário” por prof. Geovane Cayres Magalhães

Cliente TaxiCorrida1 N N 1

CliIdNome

DataPedido PlacaMarcaModeloAnoFab

Page 47: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual – ExemploCliente

Para ilustrar o tema apresentado, foram acrescentadas duas entidades que são especialização de Cliente. A primeira representa um indivíduo que irá pagar a conta, a segunda representa um funcionário de uma empresa conveniada, para a qual a conta será enviada. Um cliente pode pertencer a ambas especializações.

Cliente

CPF

Cliente Particular

ISA

Cliente Empresa

CGC

Page 48: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Esquema Conceitual completoTáxis

Cliente TaxiCorrida1 N N 1

CliIdNome Placa

MarcaModeloAnoFab

CPF

Cliente Particular

ISA

Cliente Empresa

DataPedido

CGC

Page 49: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Cliente Particular (CP)

Cliente Empresa (CE)

CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02

CliId Nome CGC 1532 Asdrúbal 754.856.965/0001-54 1644 Jepeto 478.652.635/0001-75 1780 Quincas 554.663.996/0001-87 1982 Zandor 736.952.369/0001-23

Page 50: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Táxi (TX)

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Corrida (R1)

Page 51: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Cálculo Relacional

Forma Geral - Expressão

{ t | F(t) }

conjunto de tuplas t tal que F(t) é verdadeiro

(Guimarães, 2003)

Page 52: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Relação de Intervalo (Range)

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

{ t | t ∈ TX }

Page 53: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Projeção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Marca,Modelo(TX)

{ t.marca, t.modelo | t ∈ TX }

Page 54: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Projeção

Marca,Modelo(TX)

{ t.marca, t.modelo | t ∈ TX }

Marca Modelo Ford Fiesta Wolksvagen Gol Wolksvagen Santana Chevrolet Corsa

Page 55: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

?

Page 56: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

{ t | t ∈ TX and t.anofab>2000 }

Page 57: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

AnoFab>2000(TX)

Seleção

{ t | t ∈ TX and t.anofab>2000 }

Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002

Page 58: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

União

?

C1 C2

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1644 Jepeto 1755 Doriana 1780 Quincas 1982 Zandor

Page 59: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

União

{ t | t ∈ C1 or t ∈ C2 }

C1 C2

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1644 Jepeto 1755 Doriana 1780 Quincas 1982 Zandor

Page 60: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C2

Interseção

?CliId Nome

1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1780 Quincas

Page 61: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C2

Interseção

{ t | t ∈ C1 and t ∈ C2 }CliId Nome

1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1532 Asdrúbal 1780 Quincas

Page 62: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 - C2

Diferença

?

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1755 Doriana

Page 63: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Diferença

{ t | t ∈ C1 and not t ∈ C2 }

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor

CliId Nome 1755 Doriana

C1 - C2

Page 64: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Produto Cartesiano

?

C1 × R1

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Page 65: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Produto Cartesiano

{ t, s | t ∈ C1 and s ∈ R1 }

C1 × R1

CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Page 66: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

?

Page 67: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid < s.cliid}

Page 68: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 C1.CliId<R1.CliIdR1

Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid < s.cliid}

(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003 1755 Doriana 1982 JDM8776 18/02/2003 1780 Quincas 1982 JDM8776 18/02/2003

Page 69: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 CliIdR1

Equi-Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid = s.cliid}

Page 70: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

C1 CliIdR1

Equi-Junção

{ t, s | t ∈ C1 and s ∈ R1 and t.cliid = s.cliid}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 71: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Variáveis Livres

▪ Aparecem à esquerda do |

{ t | F(t) }

▪ Produzem os resultados da expressão

Page 72: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificadores

▪ Universal ( )

▫ qualquer que seja

▪ Existencial ()

▫ existe pelo menos um

▪ Variáveis ligadas

▫ associadas a quantificadores em um escopo

Page 73: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 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

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

Page 74: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 75: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Existencial

{ t | t ∈ C1 and s(s ∈ R1 and t.cliid = s.cliid)}

(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003

Page 76: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Cliente Particular (CP)

CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02

Modelo original por prof. Geovane Cayres Magalhães

Page 77: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Tabelas para exemplo - Táxis

Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999

Táxi (TX)

ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003

Corrida (R1)

Page 78: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Quantificador Universal

{ c | c ∈ CP and t(t ∈ TX andr(r ∈ R1 and

c.cliid = r.cliid and r.placa = t.placa))}

Page 79: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Referências

▪ Codd, Edgar Frank (1970) A relational model of data for large shared data banks. Communications ACM 13(6), 377-387.

▪ Elmasri, Ramez; Navathe, Shamkant B. (2005) Sistemas de Bancos de Dados. Addison-Wesley, 4a edição em português.

▪ Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas de Banco de Dados. Pearson, 6a edição em português.

▪ Guimarães, Célio (2003) Fundamentos de Bancos de Dados: Modelagem, Projeto e Linguagem SQL. Editora UNICAMP, 1a edição.

Elmasri, Ramez; Navathe, Shamkant B. (2007) Fundamentals of Database Systems. Addison-Wesley, 5th edition (companion slides).

Ramakrishnan, Raghu; Gehrke, Johannes (2003b) Database Management Systems. McGraw-Hill, 3rd edition (companion slides).

Page 80: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

Referências▪ Heuser, Carlos Alberto (2004) Projeto de Banco de

Dados. Editora Sagra Luzzato, 5a edição.

▪ Ramakrishnan, Raghu; Gehrke, Johannes (2003) Database Management Systems. McGraw-Hill, 3rd edition.

Page 81: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

André Santanchèhttp://www.ic.unicamp.br/~santanche

Page 82: Cálculo Relacional - Instituto de ComputaçãoCálculo Relacional Declarativo (Ramakrishnan, 2003) (Ramakrishnan, 3ed, 2003) Duas Linguagens Query matemáticas formam as bases para

License▪ These slides are shared under a Creative Commons License.

Under the following conditions: Attribution, Noncommercial and Share Alike.

▪ See further details about this Creative Commons license at:http://creativecommons.org/licenses/by-nc-sa/3.0/


Recommended