Álgebra relacionalsantanch/teaching/db/2013-1/...linguagens de query para manipulação e...
TRANSCRIPT
![Page 1: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/1.jpg)
Álgebra 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: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/2.jpg)
Linguagens de Query
▪ Para manipulação e recuperação de dados
▪ Linguagens de Query (LQ) em BD:
▫ Fundamentação formal
▫ Subsidiam otimização
▪ LQ <> linguagens de programação
▫ não se espera que sejam “Turing completas”.
▫ não pensadas para cálculos complexos.
▫ suportam acessos simples e eficientes a extensos conjuntos de dados
(Ramakrishnan, 2003)
![Page 3: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/3.jpg)
Linguagens de Query
▪ Para manipulação e recuperação de dados
▪ Linguagens de Query (LQ) em BD:
▫ Fundamentação formal
▫ Subsidiam otimização
▪ LQ <> linguagens de programação
▫ não se espera que sejam “Turing completas”.
▫ não pensadas para cálculos complexos.
▫ suportam acessos simples e eficientes a extensos conjuntos de dados
(Ramakrishnan, 2003)
Uma linguagem é dita “Turing completa” se puder ser demonstrado que ela é computacionalmente equivalente à máquina de Turing.
Uma linguagem é dita “Turing completa” se puder ser demonstrado que ela é computacionalmente equivalente à máquina de Turing.
![Page 4: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/4.jpg)
Bases do SQL
▪ Álgebra Relacional
▫ operacional
▪ Cálculo Relacional
▫ Declarativo
(Ramakrishnan, 2003)
![Page 5: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/5.jpg)
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 6: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/6.jpg)
Caso Prático - Taxis
![Page 7: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/7.jpg)
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 8: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/8.jpg)
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 9: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/9.jpg)
Esquema Conceitual completoTáxis
Cliente TaxiCorrida1 N N 1
CliIdNome Placa
MarcaModeloAnoFab
CPF
Cliente Particular
ISA
Cliente Empresa
DataPedido
CGC
![Page 10: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/10.jpg)
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 11: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/11.jpg)
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 12: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/12.jpg)
Álgebra Relacional
Operações Básicas
▪ Operações unárias
▫ Projeção () e Seleção ()
▪ Operações de conjuntos
▫ União (), Intersecção () e Diferença ()
▫ Produto cartesiano ( )
▪ Operações binárias
▫ Junção ( ) e Divisão (/)
▪ Outras operações
▫ Renomeamento ()
![Page 13: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/13.jpg)
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)
![Page 14: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/14.jpg)
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)
![Page 15: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/15.jpg)
Projeção
Marca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 16: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/16.jpg)
ProjeçãoMarca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 17: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/17.jpg)
ProjeçãoMarca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Wolksvagen Santana Chevrolet Corsa
![Page 18: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/18.jpg)
Projeção – Cliente Particular
CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02
CliId,Nome(CP)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
C1*
(*) Adotaremos o nome C1 para o resultado da projeção (o modo como isto é feito será estudado mais adiante em renomeamento).
![Page 19: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/19.jpg)
Projeção Tabela Cliente ParticularCliId,Nome(CE)
C2
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
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 20: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/20.jpg)
SELECTProjeção
SELECT Marca, Modelo FROM Taxi
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 21: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/21.jpg)
SELECTProjeçã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
SELECT Marca, Modelo FROM Taxi
![Page 22: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/22.jpg)
SELECTProjeção
SELECT Marca, Modelo FROM Taxi
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 23: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/23.jpg)
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
AnoFab>2000(TX)
![Page 24: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/24.jpg)
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
AnoFab>2000(TX)
![Page 25: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/25.jpg)
Seleção
AnoFab>2000(TX)
Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002
![Page 26: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/26.jpg)
SELECTSeleçã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
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 27: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/27.jpg)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999
SELECTSeleção
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 28: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/28.jpg)
Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002
SELECTSeleção
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 29: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/29.jpg)
União
C1 C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 30: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/30.jpg)
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 1755 Doriana 1780 Quincas
![Page 31: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/31.jpg)
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 32: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/32.jpg)
Interseção
C1 C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 33: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/33.jpg)
Interseçã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
![Page 34: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/34.jpg)
Interseçã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 1780 Quincas
![Page 35: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/35.jpg)
Diferença de conjuntos
C1 - C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 36: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/36.jpg)
Diferença de conjuntos
C1 - C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
CliId Nome
![Page 37: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/37.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r i an a
1 7 8 0 Q u i n c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u i n c as
1 9 8 2 Z an d o r
![Page 38: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/38.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r i an a
1 7 8 0 Q u i n c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u i n c as
1 9 8 2 Z an d o r
![Page 39: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/39.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r ian a
1 7 8 0 Q u in c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u in c as
1 9 8 2 Z an d o r
![Page 40: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/40.jpg)
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 41: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/41.jpg)
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
(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003
![Page 42: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/42.jpg)
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
(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
![Page 43: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/43.jpg)
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
(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
![Page 44: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/44.jpg)
Produto Cartesiano
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 45: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/45.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 46: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/46.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(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
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 47: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/47.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(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
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 48: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/48.jpg)
Junção
(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
C1 C1.CliId<R1.CliIdR1
![Page 49: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/49.jpg)
Junção
(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
C1 C1.CliId<R1.CliIdR1
![Page 50: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/50.jpg)
Junção
C1 C1.CliId<R1.CliIdR1
(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 51: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/51.jpg)
Equi-Junção
(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
C1 CliIdR1
![Page 52: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/52.jpg)
Equi-Junção
(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
C1 CliIdR1
![Page 53: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/53.jpg)
Equi-Junção
C1 CliIdR1
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
![Page 54: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/54.jpg)
Junção Natural
C1 * R1
equivalente a
C1 CliIdR1
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
![Page 55: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/55.jpg)
Equi-Junção
(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
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 56: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/56.jpg)
Equi-Junção
(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
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 57: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/57.jpg)
Equi-Junção
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 58: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/58.jpg)
Álgebra Relacional
Operações Básicas
▪ Operações básicas
▫ Projeção (), Seleção (), Produto cartesiano ( ), Diferença () e União ()
▪ Operações adicionais (não essenciais)
▫ Intersecção (), Junção ( ), Divisão (/) e Renomeamento ()
▪ Álgebra é fechada
▫ Operações sobre relações retornam relações
(Ramakrishnan, 2003)
![Page 59: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/59.jpg)
Renomeamento
(FR,Marca=‘Ford’TX)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999
TX
![Page 60: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/60.jpg)
Renomeamento
(FR,Marca=‘Ford’TX)
FRPlaca Marca Modelo AnoFab
DAE6534 Ford Fiesta 1999 DKL7878 Ford Fiesta 2001
![Page 61: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/61.jpg)
Tabela adicionalCorrida (R2)
ClId Placa DataPedido 1532 DAE6534 15/02/2003 1532 DKL4586 17/02/2003 1644 DKL7878 10/01/2003 1644 JDM8776 18/02/2003 1780 JJM3692 08/01/2003 1982 DAE6534 15/01/2003 1982 DKL4598 26/01/2003 1982 DKL7878 01/02/2003
Táxi (FR)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL7878 Ford Fiesta 2001
![Page 62: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/62.jpg)
DivisãoEncontre clientes que tenham andado com todos os
táxis da Marca Ford.
![Page 63: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/63.jpg)
Divisão(SR2,ClId,Placa(R2))
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878 (SFR,Placa(FR))
Placa DAE6534 DKL7878
![Page 64: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/64.jpg)
DivisãoSR2 / SFR
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878
Placa DAE6534 DKL7878
![Page 65: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/65.jpg)
DivisãoSR2 / SFR
C lI d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId
?
![Page 66: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/66.jpg)
DivisãoSR2 / SFR
C lI d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId ?
![Page 67: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/67.jpg)
DivisãoSR2 / SFR
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878
Placa DAE6534 DKL7878
ClId
??
![Page 68: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/68.jpg)
DivisãoSR2 / SFR
C lI d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId 1982
![Page 69: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/69.jpg)
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 70: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/70.jpg)
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 71: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/71.jpg)
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 72: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/72.jpg)
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 73: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/73.jpg)
André Santanchèhttp://www.ic.unicamp.br/~santanche
![Page 74: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/74.jpg)
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 75: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/75.jpg)
Álgebra 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 76: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/76.jpg)
Linguagens de Query
▪ Para manipulação e recuperação de dados
▪ Linguagens de Query (LQ) em BD:
▫ Fundamentação formal
▫ Subsidiam otimização
▪ LQ <> linguagens de programação
▫ não se espera que sejam “Turing completas”.
▫ não pensadas para cálculos complexos.
▫ suportam acessos simples e eficientes a extensos conjuntos de dados
(Ramakrishnan, 2003)
(Ramakrishnan, 3ed, 2003)
Linguage ns Que ry Re lacionais Linguage ns Que ry (Que ry Language s – QLs):
Possibilitam a manipulação e recuperação de dados do banco de dados.
O modelo relacional suporta QLs simples e poderosas: Poderosa fundamentação formal baseada na lógica. Torna possível maior otimização.
Linguagens Que ry ! = linguagens de programação! Não se espera que QLs sejam “Turing completas”. QLs não foram pensadas para uso em cálculos complexos. QLs suportam acessos simples e eficientes a extensos
conjuntos de dados.
![Page 77: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/77.jpg)
Linguagens de Query
▪ Para manipulação e recuperação de dados
▪ Linguagens de Query (LQ) em BD:
▫ Fundamentação formal
▫ Subsidiam otimização
▪ LQ <> linguagens de programação
▫ não se espera que sejam “Turing completas”.
▫ não pensadas para cálculos complexos.
▫ suportam acessos simples e eficientes a extensos conjuntos de dados
(Ramakrishnan, 2003)
Uma linguagem é dita “Turing completa” se puder ser demonstrado que ela é computacionalmente equivalente à máquina de Turing.
Uma linguagem é dita “Turing completa” se puder ser demonstrado que ela é computacionalmente equivalente à máquina de Turing.
(Ramakrishnan, 3ed, 2003)
Linguage ns Que ry Re lacionais Linguage ns Que ry (Que ry Language s – QLs):
Possibilitam a manipulação e recuperação de dados do banco de dados.
O modelo relacional suporta QLs simples e poderosas: Poderosa fundamentação formal baseada na lógica. Torna possível maior otimização.
Linguagens Que ry ! = linguagens de programação! Não se espera que QLs sejam “Turing completas”. QLs não foram pensadas para uso em cálculos complexos. QLs suportam acessos simples e eficientes a extensos
conjuntos de dados.
![Page 78: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/78.jpg)
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 79: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/79.jpg)
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 80: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/80.jpg)
Caso Prático - Taxis
![Page 81: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/81.jpg)
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 82: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/82.jpg)
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 83: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/83.jpg)
Esquema Conceitual completoTáxis
Cliente TaxiCorrida1 N N 1
CliIdNome Placa
MarcaModeloAnoFab
CPF
Cliente Particular
ISA
Cliente Empresa
DataPedido
CGC
![Page 84: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/84.jpg)
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 85: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/85.jpg)
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 86: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/86.jpg)
Álgebra Relacional
Operações Básicas
▪ Operações unárias
▫ Projeção () e Seleção ()
▪ Operações de conjuntos
▫ União (), Intersecção () e Diferença ()
▫ Produto cartesiano ( )
▪ Operações binárias
▫ Junção ( ) e Divisão (/)
▪ Outras operações
▫ Renomeamento ()
(Ramakrishnan, 3ed, 2003)
(Elmasri, 6 ed, 2011)
Álgebra Relacional Operações Básicas:
Seleção ( ) Seleciona um subconjunto de linhas da relação. Projeção ( ) Elimina colunas não desejadas da relação. Produto cartesiano ( ) Nos permite combinar duas relações. Diferença de conjuntos ( — ) Tuplas na rel. 1, mas que não estão na rel.
2. União ( ) Tuplas na rel. 1 e na rel. 2.
Operações Adicionais: Interseção, junção, divisão, renomeamento: Não essenciais, mas
(muito!) úteis. Uma vez que cada operação retorna uma relação, operações
pode ser compostas! (A Álgebra é “fechada”).
Chapter 6 Outline
Unary Relational Operations: SELECT and PROJECT
Relational Algebra Operations from Set Theory
Binary Relational Operations: JOIN and DIVISION
Additional Relational Operations
![Page 87: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/87.jpg)
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)
![Page 88: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/88.jpg)
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)
![Page 89: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/89.jpg)
Projeção
Marca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 90: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/90.jpg)
ProjeçãoMarca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 91: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/91.jpg)
ProjeçãoMarca,Modelo(TX)
Marca Modelo Ford Fiesta Wolksvagen Gol Wolksvagen Santana Chevrolet Corsa
![Page 92: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/92.jpg)
Projeção – Cliente Particular
CliId Nome CPF 1532 Asdrúbal 448.754.253-65 1755 Doriana 567.387.387-44 1780 Quincas 546.373.762-02
CliId,Nome(CP)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
C1*
(*) Adotaremos o nome C1 para o resultado da projeção (o modo como isto é feito será estudado mais adiante em renomeamento).
![Page 93: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/93.jpg)
Projeção Tabela Cliente ParticularCliId,Nome(CE)
C2
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
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 94: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/94.jpg)
SELECTProjeção
SELECT Marca, Modelo FROM Taxi
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 95: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/95.jpg)
SELECTProjeçã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
SELECT Marca, Modelo FROM Taxi
![Page 96: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/96.jpg)
SELECTProjeção
SELECT Marca, Modelo FROM Taxi
Marca Modelo Ford Fiesta Wolksvagen Gol Ford Fiesta Wolksvagen Santana Chevrolet Corsa
![Page 97: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/97.jpg)
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
AnoFab>2000(TX)
![Page 98: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/98.jpg)
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
AnoFab>2000(TX)
![Page 99: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/99.jpg)
Seleção
AnoFab>2000(TX)
Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002
![Page 100: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/100.jpg)
SELECTSeleçã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
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 101: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/101.jpg)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999
SELECTSeleção
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 102: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/102.jpg)
Placa Marca Modelo AnoFab DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002
SELECTSeleção
SELECT * FROM Taxi WHERE AnoFab > 2000
![Page 103: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/103.jpg)
União
C1 C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 104: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/104.jpg)
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 1755 Doriana 1780 Quincas
![Page 105: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/105.jpg)
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 106: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/106.jpg)
Interseção
C1 C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 107: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/107.jpg)
Interseçã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
![Page 108: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/108.jpg)
Interseçã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 1780 Quincas
![Page 109: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/109.jpg)
Diferença de conjuntos
C1 - C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
![Page 110: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/110.jpg)
Diferença de conjuntos
C1 - C2
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
CliId Nome 1532 Asdrúbal 1644 Jepeto 1780 Quincas 1982 Zandor
CliId Nome
![Page 111: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/111.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r i an a
1 7 8 0 Q u i n c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u i n c as
1 9 8 2 Z an d o r
![Page 112: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/112.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r i an a
1 7 8 0 Q u i n c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u i n c as
1 9 8 2 Z an d o r
![Page 113: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/113.jpg)
CliId Nome 1755 Doriana
Diferença de conjuntos
C1 - C2
C li I d N om e
1 5 3 2 A sd r ú b al
1 7 5 5 D o r ian a
1 7 8 0 Q u in c as
C li I d N om e
1 5 3 2 A sd r ú b al
1 6 4 4 Jep et o
1 7 8 0 Q u in c as
1 9 8 2 Z an d o r
![Page 114: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/114.jpg)
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 115: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/115.jpg)
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
(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003
![Page 116: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/116.jpg)
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
(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
![Page 117: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/117.jpg)
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
(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
![Page 118: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/118.jpg)
Produto Cartesiano
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 119: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/119.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(CliId) Nome (ClId) Placa DataPedido 1532 Asdrúbal 1755 DAE6534 15/02/2003 1532 Asdrúbal 1982 JDM8776 18/02/2003
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 120: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/120.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(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
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 121: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/121.jpg)
CliId Nome 1532 Asdrúbal 1755 Doriana 1780 Quincas
ClId Placa DataPedido 1755 DAE6534 15/02/2003 1982 JDM8776 18/02/2003
(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
Produto CartesianoSELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, Corrida
![Page 122: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/122.jpg)
Junção
(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
C1 C1.CliId<R1.CliIdR1
![Page 123: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/123.jpg)
Junção
(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
C1 C1.CliId<R1.CliIdR1
![Page 124: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/124.jpg)
Junção
C1 C1.CliId<R1.CliIdR1
(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 125: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/125.jpg)
Equi-Junção
(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
C1 CliIdR1
![Page 126: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/126.jpg)
Equi-Junção
(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
C1 CliIdR1
![Page 127: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/127.jpg)
Equi-Junção
C1 CliIdR1
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
![Page 128: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/128.jpg)
Junção Natural
C1 * R1
equivalente a
C1 CliIdR1
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
![Page 129: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/129.jpg)
Equi-Junção
(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
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 130: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/130.jpg)
Equi-Junção
(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
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 131: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/131.jpg)
Equi-Junção
(CliId) Nome (ClId) Placa DataPedido 1755 Doriana 1755 DAE6534 15/02/2003
SELECT Cliente.CliId, Cliente.Nome, Corrida.CliId, Corrida.Placa, Corrida.DataPedidoFROM Cliente, CorridaWHERE Cliente.CliId = Corrida.CliId
![Page 132: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/132.jpg)
Álgebra Relacional
Operações Básicas
▪ Operações básicas
▫ Projeção (), Seleção (), Produto cartesiano ( ), Diferença () e União ()
▪ Operações adicionais (não essenciais)
▫ Intersecção (), Junção ( ), Divisão (/) e Renomeamento ()
▪ Álgebra é fechada
▫ Operações sobre relações retornam relações
(Ramakrishnan, 2003)
(Ramakrishnan, 3ed, 2003)
(Elmasri, 6 ed, 2011)
Álgebra Relacional Operações Básicas:
Seleção ( ) Seleciona um subconjunto de linhas da relação. Projeção ( ) Elimina colunas não desejadas da relação. Produto cartesiano ( ) Nos permite combinar duas relações. Diferença de conjuntos ( — ) Tuplas na rel. 1, mas que não estão na rel.
2. União ( ) Tuplas na rel. 1 e na rel. 2.
Operações Adicionais: Interseção, junção, divisão, renomeamento: Não essenciais, mas
(muito!) úteis. Uma vez que cada operação retorna uma relação, operações
pode ser compostas! (A Álgebra é “fechada”).
Chapter 6 Outline
Unary Relational Operations: SELECT and PROJECT
Relational Algebra Operations from Set Theory
Binary Relational Operations: JOIN and DIVISION
Additional Relational Operations
![Page 133: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/133.jpg)
Renomeamento
(FR,Marca=‘Ford’TX)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL4598 Wolksvagen Gol 2001 DKL7878 Ford Fiesta 2001 JDM8776 Wolksvagen Santana 2002 JJM3692 Chevrolet Corsa 1999
TX
![Page 134: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/134.jpg)
Renomeamento
(FR,Marca=‘Ford’TX)
FRPlaca Marca Modelo AnoFab
DAE6534 Ford Fiesta 1999 DKL7878 Ford Fiesta 2001
![Page 135: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/135.jpg)
Tabela adicionalCorrida (R2)
ClId Placa DataPedido 1532 DAE6534 15/02/2003 1532 DKL4586 17/02/2003 1644 DKL7878 10/01/2003 1644 JDM8776 18/02/2003 1780 JJM3692 08/01/2003 1982 DAE6534 15/01/2003 1982 DKL4598 26/01/2003 1982 DKL7878 01/02/2003
Táxi (FR)
Placa Marca Modelo AnoFab DAE6534 Ford Fiesta 1999 DKL7878 Ford Fiesta 2001
![Page 136: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/136.jpg)
DivisãoEncontre clientes que tenham andado com todos os
táxis da Marca Ford.
![Page 137: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/137.jpg)
Divisão(SR2,ClId,Placa(R2))
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878 (SFR,Placa(FR))
Placa DAE6534 DKL7878
![Page 138: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/138.jpg)
DivisãoSR2 / SFR
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878
Placa DAE6534 DKL7878
![Page 139: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/139.jpg)
DivisãoSR2 / SFR
C l I d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId
?
![Page 140: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/140.jpg)
DivisãoSR2 / SFR
C l I d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId ?
![Page 141: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/141.jpg)
DivisãoSR2 / SFR
ClId Placa 1532 DAE6534 1532 DKL4586 1644 DKL7878 1644 JDM8776 1780 JJM3692 1982 DAE6534 1982 DKL4598 1982 DKL7878
Placa DAE6534 DKL7878
ClId
??
![Page 142: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/142.jpg)
DivisãoSR2 / SFR
C l I d P la ca
1 5 3 2 D A E 6 5 3 4
1 5 3 2 D K L 4 5 8 6
1 6 4 4 D K L 7 8 7 8
1 6 4 4 JD M 8 7 7 6
1 7 8 0 JJM 3 6 9 2
1 9 8 2 D A E 6 5 3 4
1 9 8 2 D K L 4 5 9 8
1 9 8 2 D K L 7 8 7 8
Placa DAE6534 DKL7878
ClId 1982
![Page 143: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/143.jpg)
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 144: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/144.jpg)
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 145: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/145.jpg)
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 146: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/146.jpg)
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 147: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/147.jpg)
André Santanchèhttp://www.ic.unicamp.br/~santanche
![Page 148: Álgebra Relacionalsantanch/teaching/db/2013-1/...Linguagens de Query Para manipulação e recuperação de dados Linguagens de Query (LQ) em BD: Fundamentação formal Subsidiam otimização](https://reader033.vdocuments.mx/reader033/viewer/2022041608/5e35aea0b322c3668a2d4475/html5/thumbnails/148.jpg)
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/