Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por...

108
Bases de Dados –Uma Recorda¸ ao da Algebra Relacional– Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciˆ encias Matem´ aticas e de Computa¸c˜ ao Universidade de S˜ ao Paulo - S˜ ao Carlos [email protected] 7 de mar¸co de 2013 ao Carlos, SP - Brasil Estaapresenta¸c˜ ao faz uma recorda¸c˜ ao da ´ algebra relacional, revisitando seus principais operadores e aqueles que estendem a ´ algebra tal como ela ´ e usada nos SGBDR modernos. Grupo de Bases de Dados e Imagens () Recorda¸ ao da ´ Algebra Relacional GBdI-ICMC-USP 1 / 114

Transcript of Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por...

Page 1: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Bases de Dados–Uma Recordacao da Algebra Relacional–

Caetano Traina Jr.

Grupo de Bases de Dados e ImagensInstituto de Ciencias Matematicas e de Computacao

Universidade de Sao Paulo - Sao [email protected]

7 de marco de 2013Sao Carlos, SP - Brasil

Esta apresentacao faz uma recordacao da algebra relacional, revisitando seus principais

operadores e aqueles que estendem a algebra tal como ela e usada nos SGBDR modernos.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 1 / 114

Page 2: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outline

1 Conceitos fundamentais

2 Operadores sobre Conjuntos

3 Operadores Relacionais Unarios

4 Operadores Relacionais Binarios

5 Outros operadores da Algebra Relacional

6 Operadores da Algebra Relacional Representados em SQL

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 2 / 114

Page 3: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Conceitos

Introducao

A algebra relacional e composta por um conjunto de operadores,utilizados para manipular Relacoes como um todo.

Todo Operador Relacional e definido sobre uma ou mais relacoes, eseu resultado sempre e uma relacao, a qual pode ser utilizada poroperadores subsequentes.

Do ponto de vista algebrico, uma relacao e um elemento imutavel,atomico. Assim, nao existem operadores de inclusao ou modificacaode tuplas, ou de definicao de relacoes.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 4 / 114

Page 4: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Conceitos

Introducao

Os operadores Relacionais sao definidos tendo por objetivo atender:

As restricoes de uma Algebra: de maneira a garantir propriedadesdesejaveis e permitir a preservacao (ou o controle) dessas propriedadesnas relacoes resultantes — Propriedades.As necessidades de Implementacao: de maneira a que cadaoperador corresponda a um algoritmo que possa ser executado numcomputador, realizando a operacao sobre uma base de dados nelearmazenado — Custo.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 5 / 114

Page 5: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Conceitos

Operadores Relacionais

Os operadores relacionais podem ser divididos em 3 grupos:

Operadores sobre Conjuntos

Uniao⋃

Interseccao⋂

Diferenca −Uniao exclusiva

⋃|

Complemento ¬Complemento Ativo ¬∗Produto Cartesiano ×

Operadores Relacionais Unarios

Selecao σProjecao π

Operadores Relacionais Binarios

Juncao natural ∗equijoin

=|><|

juncao-θθ|><|

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 6 / 114

Page 6: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Renomeacao/Atribuicao de Nome

Renomeacao/Atribuicao de Nome a Relacoes e a Atributos

Alem dos Operadores Relacionais, utiliza-se ainda o operador “Renomear”simbolizado por ρ, que atende a duas necessidades:

Atribuicao de Nome a Relacoes – ρ(Rold\Rnew )

Substituicao de Nomes de Atributos – ρ{aold\anew}(Rold\Rnew )

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 7 / 114

Page 7: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Renomeacao/Atribuicao de Nome

Renomeacao/Atribuicao de Nome a Relacoes e a AtributosExemplo

Por exemplo, dado que:Funcionario={Nome, Idade, Depto}

Professor={Nome, Idade, Depto}

Atribuicao de Nome a Relacoes:

ρ ((Funcionario⋃

Professor)\Pessoa)

(A relacao de entrada e a que tem o nome trocado)

ρ {Pessoa}

⋃Le Func Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 8 / 114

Page 8: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Renomeacao/Atribuicao de Nome

Renomeacao/Atribuicao de Nome a Relacoes e a AtributosExemplo

Por exemplo, dado que:Funcionario={Nome, Idade, Depto}

Professor={Nome, Idade, Depto}

Substituicao de Nomes de Atributos

ρ{Nome,Idade,Depto\Vinculo} ((Aluno⋃

Professor)\Pessoa)

ρ{Pessoa,

Depto\Vinculo}

⋃Le Func Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 9 / 114

Page 9: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Renomeacao/Atribuicao de Nome

Renomeacao/Atribuicao de Nome a Relacoes e a AtributosExemplo

Por exemplo, dado que:Funcionario={Nome, Idade, Depto}

Professor={Nome, Idade, Depto}

Substituicao de Nomes de Atributos

ρ{Vinculo\Local,Idade\TempoDeServico}(Pessoa)

(Renomear so atributos)

ρ {Vinculo\Local,Idade\TempServ}

Le Pessoa

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 10 / 114

Page 10: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Conceitos fundamentais Renomeacao/Atribuicao de Nome

Renomeacao/Atribuicao de Nome a Relacoes e a AtributosPropriedades do operador Renomear — ρ

Propriedades do operador Renomear:

O operador de Renomear atributos e idempotenteρ{a\b}(ρ{a\b}R)⇔ ρ{a\b}R

O operador de Renomear atributos e comutativoρ{a\b}(ρ{c\d}R)⇔ ρ{c\d}(ρ{a\b}R)R(desde que a, b, c e d nao tenham nomes de atributos em comum)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 11 / 114

Page 11: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Conceitos

Operadores sobre Conjuntos

O grupo dos Operadores sobre Conjuntos da Algebra Relacionalcorresponde aqueles bem conhecidos da Teoria dos Conjuntos.

Para que duas relacoes possam ser operadas por um operador sobreconjunto, e necessario que ambas sejam “Compatıveis em Domınio”.

Dentro da Algebra Relacional, elas sao definidas considerando-se quecada relacao e um conjunto de tuplas.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 13 / 114

Page 12: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Operadores Unarios sobre Conjuntos

Operadores sobre ConjuntosOperadores Unarios

Complemento de uma relacao – ¬R

Na Algebra Relacional, uma Relacao e definida como “um subconjuntodo produto cartesiano dos domınios dos atributos”.Portanto, o universo de uma relacao e o proprio produto cartesiano dos

domınios dos atributos. Portanto ¬R=Universo (R)-R .

O operador Complemento nao e usado em aplicacoes reais, mas enecessaria para a definicao da algebra.

Complemento ativo de uma relacao – ¬∗Ro operador Complemento Ativo foi criado por ser mais util na pratica.Ele e definido sobre o Domınio Ativo de um Atributo da Relacao:

O Domınio Ativo Dom∗(A)[R] de um Atributo A numa Relacao R e o

conjunto de todos os valores que o atributo assume na relacao.Portanto o Universo Ativo sao as tuplas formadas por todas ascombinacoes possıveis de valores que cada atributo assume na relacao,e o complemento ativo sao essas tuplas que nao estao em R.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 14 / 114

Page 13: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Operadores Binarios sobre conjuntos

Operadores sobre ConjuntosOperadores binarios

Os operadores relacionais sao os usuais da teoria dos conjuntos:

Uniao: – R1

⋃R2

O resultado contem todas as tuplas de R1 e todas as tuplas de R2,porem tuplas que estao em ambas as relacoes aparecem apenas umavez.

Interseccao – R1

⋂R2

O resultado contem apenas as tuplas que estao em R1 e tambem emR2.

Diferenca – R1 − R2

O resultado contem as tuplas que estao em R1 mas nao estao em R2.

Alguns autores tambem consideram este outro operador:

Uniao Exclusiva – R1

⋃|R2

O resultado contem todas as tuplas que estao nas relacoes R1 ou R2,mas nao as tuplas que estao em ambas R1 e R2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 15 / 114

Page 14: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Operadores Binarios sobre conjuntos

Operadores sobre ConjuntosPropriedades dos Operadores sobre Conjuntos

Propriedades dos operadores⋃

,⋂

e − :

Os operadores de Uniao, Interseccao e Uniao exclusiva sao comutativos:R1

⋃R2 ⇔ R2

⋃R1

R1

⋂R2 ⇔ R2

⋂R1

R1

⋃|R2 ⇔ R2

⋃|R1

Note-se que R1 − R2 6= R2 − R1

Os operadores de Uniao, Interseccao e Uniao exclusiva sao associativos:(R1

⋃R2)

⋃R3 ⇔ R1

⋃(R2

⋃R3)

(R1

⋂R2)

⋂R3 ⇔ R1

⋂(R2

⋂R3)

(R1

⋃|R2)

⋃|R3 ⇔ R1

⋃|(R2

⋃|R3)

Note-se que (R1 − R2)− R3 6= R1 − (R2 − R3)

Os operadores de Uniao e Interseccao sao idempotentes:R1

⋃R1 ⇔ R1

R1

⋂R1 ⇔ R1

Mas R1 − R1 = ∅ e R1

⋃|R1 = ∅

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 16 / 114

Page 15: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Operadores Binarios sobre conjuntos

Operadores sobre ConjuntosProduto Cartesiano

Produto Cartesiano – R1 × R2

O operador da algebra relacional “Produto Cartesiano”, tal como osdemais operador sobre conjuntos, tambem nao leva em conta aestrutura das relacoes.

Mas o Produto Cartesiano difere dos demais, no sentido de que, aocontrario daqueles, este nao impoe que as relacoes devem serCompatıveis de Domınio.

O operador Produto Cartesiano das Relacoes R1 e R2 tem comoresultado outra relacao em que:

Os atributos sao a concatenacao dos atributos da relacao R1 e darelacao R2,as tuplas sao todas as combinacoes possıveis de valores de R1 comvalores de R2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 17 / 114

Page 16: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores sobre Conjuntos Propriedades

Operadores sobre ConjuntosPropriedades do operador Produto Cartesiano — ×

Propriedades do operador Produto Cartesiano:

Do ponto de vista da Algebra Relacional, o operador de ProdutoCartesiano e comutativo. Isto e, assumindo que R1 = {A} eR2 = {B} entao R1 × R2 = {A} ∪ {B} e portanto vale a propriedadecomutativa:R1 × R2 ⇔ R2 × R1

(Note-se que pela Teoria dos conjuntos, o resultado de um Produto Cartesiano e

um par ordenado, e portanto ele nao e comutativo.)

O operador de Produto Cartesiano e associativo:(R1 × R2)× R3 ⇔ R1 × (R2 × R3)

O operador de Produto Cartesiano nao e idempotente:R1 × R1 6= R1

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 18 / 114

Page 17: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Conceitos

Operadores Relacionais Unarias

Os operadores relacionais levam em conta a estrutura interna dasrelacoes, reconhecendo os atributos que as compoem.Portanto, tratam as relacoes como um subconjunto de produtoscartesianos de domınios de atributos:

R = {< Atr1,Atr2,Atr3, ...,Atrn >, . . .}Existem basicamente 2 operadores relacionais unarios:

Selecao – σ(<condicao>)R

Projecao – π{<lista de atributos>}R

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 20 / 114

Page 18: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Selecao

Operadores Relacionais UnariosOperador de Selecao

Operador de Selecao – σ(c)R

Aplicada sobre uma relacao R, o operadorde selecao obtem osubconjunto das tuplas que satisfazem a condicao c.A condicao c sempre e uma operacao de comparacao θ de um atributoai da relacao R com:

Uma constante: c := R.aiθcte;Ou com outro atributo da propria relacao, sempre comparando osvalores de dois atributos da mesma tupla: c := R.aiθR.aj .

O operador de comparacao θ e qualquer operador valido no domınio doatributo R.ai .

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 21 / 114

Page 19: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Selecao

Operadores Relacionais UnariosOperador de Selecao

Intuitivamente, a operacao de Selecao pode ser vista como a escolhade algumas “linhas” da tabela que armazena a relacao.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 22 / 114

Page 20: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Selecao

Operadores Relacionais UnariosPropriedades do operador de selecao — σ

Propriedades do operador de selecao:

O operador de Selecao e comutativoσ(<condicao1>)

(σ(<condicao2>)R

)⇔ σ(<condicao2>)

(σ(<condicao1>)R

)Dessa forma, uma sequencia de operadores de selecao pode serexecutada em qualquer ordem.

ela tambem pode ser transformada numa unica selecao com umacondicao conjuntiva (termos cujo valor e VERDADEIRO ou FALSO,ligados pelo operador ∧ (E, AND) ):σ(<condicao1>)

(σ(<condicao2>)

(. . .(σ(<condicaon>)R

)))⇔

σ(<condicao1>∧<condicao2>∧...∧<condicaon>)R

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 23 / 114

Page 21: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Selecao

Operadores Relacionais UnariosPropriedades do operador de selecao — σ

Outras propriedades:

σ(<condicao1>∧<condicao2>)R ⇔ σ(<condicao1>)R ∩ σ(<condicao2>)R

σ(<condicao1>∨<condicao2>)R ⇔ σ(<condicao1>)R ∪ σ(<condicao2>)R

Idempotencia:σ(<condicao1>)

(σ(<condicao1>)R

)⇔ σ(<condicao1>)R

σ(¬<condicao1>)R ⇔ R − σ(<condicao1>)R

σ(¬∗<condicao1>)R ⇔ R − σ(<condicao1>)R

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 24 / 114

Page 22: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Projecao

Operadores Relacionais UnariosOperador de Projecao

Operador de Projecao – π{<lista de atributos>}R

o operador de projecao aplicada sobre uma relacao R tem comoresultado outra relacao que tem apenas os atributos indicados na<lista de atributos>.A <lista de atributos> e um subconjunto dos atributos da propriarelacao.

Intuitivamente, a operacao de Projecao pode ser vista como a escolhade algumas “Colunas” da tabela.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 25 / 114

Page 23: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Projecao

Operadores Relacionais UnariosOperador de Projecao

Se a <lista de atributos> contiver uma chave da relacao, entao oresultado nao tera tuplas repetidas;

Se a <lista de atributos> nao contiver uma chave, entao poderahaver mais de uma tupla que tenha o mesmo valor para todos osatributos da lista;

portanto um operador de Projecao, alem de descartar algumas“colunas” da tabela, pode descartar tambem algumas tuplas repetidas.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 26 / 114

Page 24: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Projecao

Operadores Relacionais UnariosPropriedades do operador de projecao — π

Propriedades do operador de projecao:

Operador de Projecao nao e comutativo.

Se o subconjunto de atributos B contem o subconjunto A, entao valea igualdade: π{A}

(π{B}R

)⇔ π{A}R

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 27 / 114

Page 25: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Unarios Projecao

Operadores Relacionais UnariosDistributividade entre Operadores Unarios — π e σ

Distributividade entre Operadores de Selecao e Projecao — π e σ:

Dado dois conjuntos de atributos A e B tal que A ⊆ B entao:σ(A)

(π{B}R

)⇔ π{B}

(σ(A)R

)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 28 / 114

Page 26: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Conceitos

Operadores Relacionais Binarios

Pela Teoria da Algebra Relacional, se estiverem definidas apenas osseguintes operadores, todos os demais podem ser definidos a partirdestes:

Uniao⋃

Diferenca −Produto Cartesiano ×Selecao σProjecao πRenomear relacoes e atributos ρ

Esse e o conjunto das “operadores independentes”

Por exemplo, o Operador de Interseccao e dito ser dependente,porque pode ser definido usando apenas a diferenca:R1⋂

R2 ⇔ R1 − (R1 − R2)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 30 / 114

Page 27: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Conceitos

Operadores Relacionais Binarios

Portanto, todos os operador relacionais binarios da algebra relacional saopassıveis de serem definidos atraves de produto cartesiano e outrosoperadores do conjunto independente. Assim, estritamente falando, todossao desnecessarios.

Como podem ser desenvolvidos algoritmos mais eficientes para determinadosoperadores dependentes do que seria possıvel apenas combinando osoperadores independentes, consideram-se como fazendo parte da algebrarelacional diversos outros operadores, dos quais os mais importantes saoaqueles chamados genericamente de Operadores Relacionais Binarios.

Isso inclui:

a Juncao natural — R1 ∗ R2

a equijuncao —a1=a2

R1 |><| R2

e a juncao-θ —a1θa2

R1 |><| R2

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 31 / 114

Page 28: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncao

Operadores Relacionais BinariosJuncao-θ

Operador de Juncao-θ —c

R1 |><| R2

A condicao de Juncao c segue a forma:c :=< R1.a1θ1R2.a1 > ∧ < R1.a2θ2R2.a2 > ∧ . . .∧ < R1.akθkR2.ak >,onde:

R1.ai e R2.ai tem o mesmo domınio, eθi e uma operacao de comparacao valida nesse domınio.

A relacao resultado tem todos os atributos de ambas as relacoes.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 32 / 114

Page 29: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncao

Operadores Relacionais BinariosEquijuncao

Operador de Equijuncao —R1.a1=R2.a1

R1 |><| R2 ouR1.a1,R2.a1

R1 |><| R2

O Operador de Equijuncao e um caso particular da juncao-teta,quando θ e “=”.

O motivo dos dois serem tratados de maneira distinta e porque acomparacao por igualdade em geral pode ser executada de maneiramuito mais eficiente (por exemplo: Merge Join), e

porque se os atributos comparados de uma das relacoes forem chavedessa relacao, pode-se saber de antemao que a cardinalidade darelacao-resultado nao sera maior do que a dessa relacao.

Isso facilita muito o gerenciamento de memoria dos algoritmos queimplementam esse operador.

Como na juncao-θ, a relacao resultado da equijuncao tem todos osatributos de ambas as relacoes.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 33 / 114

Page 30: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncao

Operadores Relacionais BinariosJuncao Natural

Operador de Juncao Natural — R1 ∗ R2 , R1 |><| R2 ouR1.a1,R2.a1

R1 ∗ R2

O operador de Juncao Natural e um caso particular da juncao-teta,quando θ e“=” e os domınios dos atributos comparados tambem saoiguais.

No operador de Juncao Natural R1 ∗ R2, os atributos darelacao-resultado sao:

os atributos que aparecem so na relacao R1,concatenados aos atributos de R1 que aparecem na condicao de juncaoc,concatenados aos atributos que estao so em R2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 34 / 114

Page 31: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncao

Operadores Relacionais BinariosEquijuncao Versus Juncao Natural

A Juncao Natural somente pode ser usada quando os atributos a seremcomparados tem o mesmo domınio.

Por exemplo, dadas as relacoes definidas como:CREATE TABLE Prof ( CREATE TABLE Aluno (

Nome CHAR(20), Nome CHAR(20),

Idade INT Idade CHAR(3)

); );

A seguinte consulta gera uma Equijuncao:SELECT Prof.Nome, Aluno.Nome

FROM Prof, Aluno

WHERE Prof.Idade=Prof.Idade;

Se houverem tuplas assim:Prof={<’Pedro’, 20>, ...} Aluno={<’Mario’, ’20’>, ...}

entao no resultado havera a tupla

ProfIdade=Idade

on Aluno={<’Pedro’, 20, ’Mario’, ’20’>, ...}

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 35 / 114

Page 32: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncao

Operadores Relacionais BinariosEquijuncao Versus Juncao Natural

Se as relacoes forem definidas como:CREATE TABLE Prof ( CREATE TABLE Aluno (

Nome CHAR(20), Nome CHAR(20),

Idade INT Idade INT

); );

A seguinte consulta gera uma Juncao NaturalSELECT Prof.Nome, Aluno.Nome

FROM Prof, Aluno

WHERE Prof.Idade=Prof.Idade;

Se houverem tuplas assim:Prof={<’Pedro’, 20>, ...} Aluno={<’Mario’, 20>, ...}

entao no resultado havera a tupla

ProfIdade∗ Aluno={<’Pedro’, 20, ’Mario’>, ...}

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 36 / 114

Page 33: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncoes Externas

Operadores Relacionais BinariosJuncoes Internas

As juncoes teta, equijuncao e juncao natural sempre emparelhampares de valores existentes em ambas as relacoes. Por isso saochamadas Juncoes Internas.

Existem situacoes em que e interessante listar tambem as tuplas deuma relacao que nao tem valores correspondentes na outra relacao.

Para isso, existe a chamada juncao externa. Ela e semelhante aJuncao Natural, porem os valores de uma relacao que nao podem seremparelhados com os valores na outra relacao sao repassados para oresultado com valor nulo nos atributos oriundos da outra relacao.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 37 / 114

Page 34: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncoes Externas

Operadores Relacionais BinariosJuncoes Externas

O sımbolo da Juncao externa e:R1.A=R2.BR1 d|><|d R2

Essa e a chamada Juncao Externa Completa (full outer join).

Se for necessario que aparecam as tuplas sem correspondencia deapenas uma das relacoes, podem ser usadas:

Juncao Externa a Esquerda (left outer join),R1.A=R2.BR1 d|><| R2 ou

Juncao Externa a Direita (right outer join),R1.A=R2.BR1 |><|d R2 .

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 38 / 114

Page 35: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Juncoes Externas

Operadores Relacionais BinariosJuncoes-θ Externas

As juncoes internas ja estudadas comparam os atributos com ooperador de igualdade, portanto podem corresponder tanto a JuncoesNaturais quanto a Equi-Juncoes.

E possıvel realizar tambem Juncoes-θ externas (incluindo as 3variantes: completa, a esquerda e a direita):

Inicialmente, realiza-se a juncao-θ normal;Para cada tupla da(s) relacoes adequadas que nao tenha contribuıdocom uma tupla para o resultado, acrescenta-se essa tupla no resultado,colocando nulo nos atributos que seriam provenientes da outra relacao.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 39 / 114

Page 36: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosPropriedades dos Operadores Relacionais Binarios — ×

Propriedades do operador Produto Cartesiano:

Do ponto de vista da Algebra Relacional, o operador de ProdutoCartesiano e comutativo, isto e assumindo que R1 = {A} e R2 = {B}entao R1×R2 = {A}∪ {B} e portanto vale a propriedade comutativa:R1 × R2 = R2 × R1

O operador de Produto Cartesiano e associativo:(R1 × R2)× R3 = R1 × (R2 × R3)

O operador de Produto Cartesiano nao e idempotente:R1 × R1 6= R1

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 40 / 114

Page 37: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosPropriedades do operador de Juncao — |><|

Propriedades do operador de Juncao:

Os tres operadores de Juncao sao comutativos:c

R1 |><| R2⇔c

R2 |><| R1

O operador de Juncao e associativo:Se os atributos envolvidos nas comparacoes c1 estao apenas nasrelacoes R1 e R2, e os atributos envolvidos nas comparacoes c2 estaoapenas nas relacoes R2 e R3, entao(

c1

R1 |><| R2

)c2

|><| R3⇔c1

R1 |><|

(c2

R2 |><| R3

)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 41 / 114

Page 38: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosDistributividade entre Operadores Unarios e Binarios — π, σ e ρ

Distributividade entre Operadores Unarios ( π , σ e ρ ) e Operadores

Binarios (⋃ ⋂

− × e |><| :)

Seja f (A) um operador unario f ∈ {σ, π e ρ}Seja © um operador binario © ∈ {

⋃,⋂

, −, × ou |><| }Entao, as propriedades da distributividade que seguem a formaf (R1© R2)⇔ f (R1)© f (R2) podem ser usadas para “antecipar” ou“atrasar” uma selecao ou projecao em relacao ao operador binario,desde que os operadores unarias incorporem ascondicoes/atributos necessarios ao operador binario.

Veja que para ser possıvel utilizar⋃

,⋂

e − e necessario que asrelacoes envolvidas sejam compatıveis em domınio.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 42 / 114

Page 39: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosDistributividade entre Operadores Unarios e Binarios — π e σ

As seguintes regras sao validas:

σ(A) (R1⋃

R2)⇔(σ(A)R1

)⋃ (σ(A)R2

)σ(A) (R1

⋂R2)⇔

(σ(A)R1

)⋂ (σ(A)R2

)σ(A) (R1 − R2)⇔

(σ(A)R1

)−(σ(A)R2

)σ(A) (R1 × R2)⇔

(σ(A)R1

)×(σ(A)R2

)σ(A) (R1 |><| R2)⇔

(σ(A)R1

)|><|(σ(A)R2

)

π(A) (R1⋃

R2)⇔(π(A)R1

)⋃ (π(A)R2

)||π(A) (R1 × R2)⇔

(π(A)R1

)×(π(A)R2

)π(A) (R1 |><| R2)⇔

(π(A)R1

)|><|(π(A)R2

)Note que a Projecao nao distribui sobre a interseccao nem sobre adiferenca.

Note-se que as operacoes tradicionais sobre escalares (+, −, ∗, / epotenciacao), bem como as operacoes booleanas, especialmente sobrepredicados, continuam validas e podem ser usadas na transformacaode expressoes na algebra relacional.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 43 / 114

Page 40: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosDistributividade entre Operadores Unarios e Binarios — ρ

O operador de renomear atributos e distributivo sobre todos osoperadores binarios

ρ{a\b} (R1⋃

R2)⇔(ρ{a\b}R1

)⋃ (ρ{a\b}R2

)ρ{a\b} (R1

⋂R2)⇔

(ρ{a\b}R1

)⋂ (ρ{a\b}R2

)ρ{a\b} (R1 − R2)⇔

(ρ{a\b}R1

)−(ρ{a\b}R2

)ρ{a\b} (R1 × R2)⇔

(ρ{a\b}R1

)×(ρ{a\b}R2

)ρ{a\b} (R1 |><| R2)⇔

(ρ{a\b}R1

)|><|

(ρ{a\b}R2

)Note que as propriedades valem desde que nao exista conflito entre osnomes, tal como dois atributos com o mesmo nome.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 44 / 114

Page 41: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Propriedades

Propriedades dos Operadores Relacionais BinariosOperadores n-adicos

Operadores binarios podem tambem ser tambem chamados diadicos,ou 2-adicos.

Operadores diadicos com as propriedades de comutatividade eassociatividade podem ser generalizados como operadores n-adicos,ou seja, o operador pode ser aplicado em qualquer ordem sobre umconjunto de qualquer cardinalidade de operadores.

Por exemplo, a uniao e n-adica, portanto:dadas n relacoes Ri , i = 1 . . . n, entao:R1 ∪ R2 ∪ . . . ∪ Rn ⇔

⋃ni=1 Ri .

Os operadores σ ,⋃ ⋂

× e ∗ : sao n-adicos.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 45 / 114

Page 42: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais Binarios Divisao

Operadores Relacionais BinariosDivisao

Operador de Divisao — R1 ÷ R2

Outro Operador Relacional Binario, sem uma ligacao intuitiva diretacom o produto cartesiano (embora sua definicao conceitual o utilize),e a chamada Divisao:T ← R1 ÷ R2

A relacao R2 deve ter como atributos um subconjunto dos atributosda relacao R1, ou seja:R3(A)← R1(A ∪ B)÷ R2(B)

A operacao de divisao pode ser intuitivamente percebida como umadivisao inteira, em que se buscam os registros R3(A) cujos valoresR1(B) ocorrem juntamente com todos os valores R2(B).

Isto e: para cada valor R3(A) existe uma sub-relacao R2(B) completaem R1(A ∪ B).

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 46 / 114

Page 43: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais BinariosOs Operadores Relacionais Binarios como operadores

dependentes

Os Operadores Relacionais Binarios como operadoresdependentes

Lembre-se que os operadores {Uniao⋃

, Diferenca −, Selecao σ,Projecao π, Produto Cartesiano × e Renomear ρ} sao os unicosoperadores realmente necessarios, o conjunto independente deoperadores, ja que todos os demais podem ser escritos a partir destes.

No entanto, os demais operadores, alem de serem praticos paraexpressar consultas, podem ter algoritmos que executam de maneiramuito mais eficiente do que pela execucao combinada dos operadoresindependentes, e sao muito usados em SGBDs reais.

Entre os operadores dependentes estao: Interseccao⋂

, Uniaoexclusiva

⋃|, Complemento ¬, Complemento Ativo ¬∗ e todas os

Operadores Relacionais Binarios, incluindo as varias formas de juncoes

internas (natural ∗, equijoin=|><| , e juncao-θ

θ|><| ) e externas ( d|><|d , d|><|

e |><|d ), bem como a Divisao ÷.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 47 / 114

Page 44: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais BinariosOs Operadores Relacionais Binarios como operadores

dependentes

Os Operadores Relacionais Binarios como operadoresdependentes

Ja foi visto anteriormente que o operador de interseccao pode serdefinido em termos dos operadores de Uniao e Diferenca.

Interseccao: R1⋂

R2 ⇔ R1 − (R1 − R2)

Da mesma maneira, todos os operadores dependentes podem serdefinidos a partir dos operadores independentes:

Uniao exclusiva R1⋃|R2 ⇔ (R1

⋃R2)−

(R1 − (R1 − R2)

)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 48 / 114

Page 45: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais BinariosOs Operadores Relacionais Binarios como operadores

dependentes

Os Operadores Relacionais Binarios como operadoresdependentes

Todas as juncoes internas podem ser definidas a partir dos operadoresindependentes:

Juncao Natural — seja A = {a1, a2, . . . ai} o conjunto de todos osatributos que aparecem em R1 e em R2, seja B o conjunto de todosos atributos que aparecem em R1 ou em R2 mas nao em ambos e sejaϕ = (R1.a1 = R2.a1) ∧ (R1.a2 = R2.a2) . . . ∧ (R1.ai = R2.ai )

Entao:A

R1 ∗ R2⇔ π{A}(σϕ(R1 × R2)

)Equi-Juncao —

R1.A=R2.AR1 |><| R2⇔ σ(R1.A=R2.B)(R1 × R2)

Juncao-θ —R1.AθR2.BR1 |><| R2⇔ σ(R1.AθR2.B)(R1 × R2)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 49 / 114

Page 46: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais BinariosOs Operadores Relacionais Binarios como operadores

dependentes

Os Operadores Relacionais Binarios como operadoresdependentes

As juncoes externas tambem podem ser definidas a partir dos operadoresindependentes:

Seja:A = {r1, r2, . . . ri} o conjunto de todos os atributos da relacao R1,B = {s1, s2, . . . sj} o conjunto de todos os atributos da relacao R2,⊥1 uma relacao de uma tupla com |R1| atributos com valor nulo ⊥ e⊥2 uma relacao de uma tupla com |R2| atributos com valor nulo ⊥.

Juncao externa a EsquerdaR1 d|><| R2 ⇔ (R1 |><| R2)

⋃((R1 − πA(R1 |><| R2))×⊥2)

Juncao externa a DireitaR1 |><|d R2 ⇔ (R1 |><| R2)

⋃(⊥1 × (R2 − πB(R1 |><| R2)))

Juncao externa CompletaR1 d|><|d R2 ⇔ (R1 |><| R2)

⋃((R1 − πA(R1 |><| R2))×⊥2)

⋃(⊥1 × (R2 − πB(R1 |><| R2)))

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 50 / 114

Page 47: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores Relacionais BinariosOs Operadores Relacionais Binarios como operadores

dependentes

As Operacoes Relacionais Binarias como operacoesdependente

Nao existe um comando para indicar o operador Divisao em SQL. Assim, ele deveser expresso pela sua definicao:

Seja:A o conjunto dos atributos da relacao R1 que nao estao em R2 eB o conjunto de todos os atributos da relacao R2.Entao R1 deve ter todos os atributos A ∪ B e:

Divisao R1 ÷ R2 ⇔ (πAR1)− πA((

(πAR1)× R2

)− R1

)SELECT DISTINCT A FROM R1

EXCEPT

SELECT A FROM(

SELECT A, B FROM ((SELECT A FROM R1) AS T1,

(SELECT B FROM R2) AS T2)

EXCEPT

SELECT * FROM R1 AS T3);

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 51 / 114

Page 48: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional

Outros operadores da Algebra RelacionalMotivacao

Os SGBDs atuais poderiam se basear apenas nos operadores daalgebra relacional ja estudados.

No entanto, muitas das consultas submetidas pelas aplicacoes atuaissao representadas melhor se forem definidos outros operadores quepermitam usar algoritmos mais eficientes do que e possıvel apenaspela combinacao daqueles operadores.

Assim, e comum o uso de alguns outros operadores, ditos de extensaoao conjunto de operadores basicos

R os quais, diga-se de passagem, nao aumentam o poder expressivo daalgebra relacional, apenas facilitam a representacao de expressoes e abusca por alternativas mais eficientes de execucao.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 53 / 114

Page 49: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional

Outros operadores da Algebra RelacionalMotivacao

Os operadores que estendem o conjunto basico mais comuns sao:

Semijuncao |><

Semidiferenca B

Operadores de Agregacao

Agrupamento γ

Extensao ψ

Projecao estendida Π

Eliminacao de Duplicatas τ

Ordenacao ω

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 54 / 114

Page 50: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de semijuncao — |><

O operador de semijuncao |>< (semijoin) e util especialmente paraauxiliar a execucao de juncoes em que sao necessarios atributosapenas da relacao esquerda;

Isso e muito util para otimizar consultas, principalmente emambientes de processamento distribuıdo de consultas;

A notacao e: –R1.a1=R2.a2

R1 |>< R2

e e definido comoR1.a1=R2.a2

R1 |>< R2 = π{R1}

(R1.a1=R2.a2

R1 |><| R2

)O resultado do operador de semijuncao corresponde a obter todas astuplas da relacao R1 que tem sua contrapartida na relacao R2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 55 / 114

Page 51: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de semijuncao — |><

Por exemplo, dadas as Relacoes de Alunos e das Disciplinas em queeles se matricularam, onde as relacoes tem o seguinte esquema:

Aluno = {Nome, Idade, Curso}

Matricula = {NomeA, Disciplina, Nota}

considere a consulta:Listar todas disciplinas em que os alunos de computacao sematricularam.

A resposta corresponde a seguinte expressao:

MatriculaNomeA=Nome

|><

(σ(curso=computacao)Aluno

)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 56 / 114

Page 52: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de semijuncao — |><

Listar todas disciplinas em que os alunos de computacao se matricularam:

MatriculaNomeA=Nome

|><

(σ(curso=computacao)Aluno

)Aluno = {Nome, Idade, Curso} =

{<Zeca, 25, computac~ao>,

<Zico, 18, eletronica>,

<Juca, 21, odontologia>,

<Tuca, 18, computac~ao>}

Matricula = {NomeA, Disciplina, Nota}=

{<Zeca, SCC111, 8.0>,

<Zeca, SCC112, 9.0>,

<Zico, SCC112, 8.5>,

<Juca, SCC113, 8.0>,

<Tuca, SCC114, 7.0>}

Resultado:

Result=

{NomeA, Disciplina, Nota}=

{<Zeca, SCC111, 8.0>,

<Zeca, SCC112, 9.0>,

<Tuca, SCC114, 7.0>}

Note-se que a relacao Aluno e usada para saber quais sao os alunos de computacao, e neste caso

causa a execucao de uma selecao interna, mas nenhum de seus atributos vai para o resultado.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 57 / 114

Page 53: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de semijuncao — |><

Propriedades do operador de semijuncao — |><

Propriedades do operador de semijuncao:

A semijuncao pode ser substituıda por operadores de juncao:

cR1 |><| R2 ⇔

c

(R1 |>< R2)c|><| R2

⇔ R1c|><| (R2

c|>< R1)

⇔c

(R1 |>< R2)c|><|

c

(R2 |>< R1)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 58 / 114

Page 54: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de Semidiferenca — B

O operador de Semidiferenca B (semidifference) e tambem conhecidocomo Antijoin ou anti-semijoin (o que seria mais correto). Ele e utiltambem para auxiliar a execucao de juncoes em que sao necessariosatributos apenas da relacao esquerda;

A notacao e:R1.a1=R2.a2

R1BR2 , mas quando e chamado anti-semijoinusa-se tambem |>< .

Ele e definido comoR1.a1=R2.a2

R1BR2 = R1 −(

R1.a1=R2.a2

R1 |>< R2

)=

R1.a1 6=R2.a2

R1 |>< R2

O resultado do operador de semidiferenca corresponde a obter todasas tuplas da relacao R1 que nao tem uma contrapartida na relacao R2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 59 / 114

Page 55: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de Semidiferenca — B

Por exemplo, dadas as Relacoes de Alunos e das Disciplinas em queeles se matricularam, onde as relacoes tem o seguinte esquema:

Aluno = {Nome, Idade, Curso}

Matricula = {NomeA, Disciplina, Nota}

considere a consulta:Listar todas disciplinas em que nenhum aluno de computacao sematriculou.

A resposta corresponde a seguinte expressao:

MatriculaNomeA=Nome

B(σ(curso=computacao)Aluno

)

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 60 / 114

Page 56: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de Semidiferenca — B

Listar todas disciplinas em que nenhum aluno de computacao sematriculou:

MatriculaNomeA=Nome

B(σ(curso=computacao)Aluno

)Aluno = {Nome, Idade, Curso} =

{<Zeca, 25, computac~ao>,

<Zico, 18, eletronica>,

<Juca, 21, odontologia>,

<Tuca, 18, computac~ao>}

Matricula = {NomeA, Disciplina, Nota}=

{<Zeca, SCC111, 8.0>,

<Zeca, SCC112, 9.0>,

<Zico, SCC112, 8.5>,

<Juca, SCC113, 8.0>,

<Tuca, SCC114, 7.0>}

Resultado:

Result=

{NomeA, Disciplina, Nota}=

{<Zico, SCC112, 8.5>,

<Juca, SCC113, 8.0>}

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 61 / 114

Page 57: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Semijuncao e Semidiferenca

Operador de Semidiferenca — B

Note-se que se R1 e R2 forem compatıveis em domınio, entao vale apropriedade:R1BR2 ⇔ R1 − R2

Portanto, o operador diferenca (−) e um caso especial dasemidiferenca.

Esse e um resultado interessante, pois define um operador queestende a diferenca com outro mais generico, que nao restringe aestrutura das relacoes envolvidas.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 62 / 114

Page 58: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Estendendo a Projecao

Operador de Extensao — ψ

O operador de Extensao ψ permite acrescentar um atributo a umarelacao.

A notacao e: ψ{exp\nomenovo}R

O resultado do operador de extensao sobre a relacao R e uma outrarelacao que tem todos os atributos de R mais um atributo de nome“nomenovo” e todas as tuplas de R, sendo que o valor do atributonomenovo e dado pela execucao da expressao “exp” sobre a respectivatupla.

A expressao exp pode envolver constantes e atributos de R.

Por exemplo, suponha que a relacao de Alunos={Nome, Idade} tema idade do aluno indicada em meses.Entao ψ{Idade/12\Anos}Alunosgera a relacao {Nome, Idade,Anos} onde o valor do atributo Anos eIdade/12.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 63 / 114

Page 59: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Estendendo a Projecao

Operador de Extensao — ψ

Note que se quisessemos acrescentar mais de um atributo, serianecessario usar o operador ψ varias vezes:ψ{exp1\nome1}

(ψ{exp1\nome1} . . . (R)

). . .

Como e muito comum que o operador de extensao seja usado juntocom um operador de projecao, para simplificar a expressao dessassituacoes, e comum usar a notacao do operador de extensao na listade atributos da projecao:π{Z}

(ψ{exp1\nome1}(ψ{exp2\nome2}R)

)⇔ Π{Z ,ψ{exp1\nome1},ψ{exp2\nome2}}

R

Veja que, como o operador de projecao nao esta so projetando, mastambem acrescentando atributos, ele e considerado um operador deprojecao estendido, e usa-se o sımbolo Π ao inves de π.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 64 / 114

Page 60: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Estendendo a Projecao

Operador de Extensao — ψ

Como e comum ocorrer a mesma necessidade tambem para renomearvarios atributos, a mesma notacao pode ser usada com o operador derenomear atributos ρ:π{Z}

(ρ{atr1\nome1}(ψ{exp2\nome2}R)

)⇔ Π{Z ,ρ{atr1\nome1},ψ{exp2\nome2}}

R

Note-se que o operador de extensao ψ nao e uma extensao dooperador de renomear atributo ρ, pois ψ cria e da nome a umatributo, enquanto ρ apenas troca o nome de um atributo que jaexiste.

O operador de projecao Π faz mais do que projetar os atributosescolhidos, pois e ele que passa a “montar” a relacao resultante.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 65 / 114

Page 61: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operadores de Agregacao

Os Operadores de Agregacao nao sao, a princıpio, operadoresrelacionais, mas escalares.

Um operador de agregacao no modelo relacional e aplicado sobre umatributo de uma relacao, e retorna um unico valor (a princıpio umescalar) como funcao dos valores que esse atributo assume na relacao.

Ele e um operador unario.

A funcao e normalmente uma operacao estatıstica sobre os valores.

A notacao de um operador de agregacao e: fagreg (atr)R

Os operadores de agregacao fagreg normalmente considerados saoCOUNT, SUM, AVG, MIN e MAX.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 66 / 114

Page 62: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operadores de Agregacao

Mas lembre-se, a aplicacao de um operador de Agregacao sobre umatabela retorna um escalar.

Por exemplo, dada a relacao

Aluno = {Nome, Idade, PerıodoCurso} =

{<Zeca, 25, 2>,

<Zico, 18, 4>,

<Juca, 21, 4>,

<Tuca, 18, 8>}

entao a expressaoSUM(Idade)Aluno retorna o valor 82.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 67 / 114

Page 63: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operadores de Agregacao

Os operadores de Agregacao se tornam operadores relacionais quandose assume que a colecao de todas as aplicacoes desse operadores sobreuma relacao R retorna uma outra relacao gR que contem uma unicatupla, com um atributo para cada operador de Agregacao empregado.

O operador Π estendido pode fazer essa transformacao.

Por exemplo, dada a relacao

Aluno = {Nome, Idade, PerıodoCurso} =

{<Zeca, 25, 2>,

<Zico, 18, 4>,

<Juca, 21, 4>,

<Tuca, 18, 8>}

Entao Π{SUM(Idade)}Aluno retorna a relacao {<82>}.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 68 / 114

Page 64: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operadores de Agregacao

Caso sejam colocadas varias funcoes de agregacao, dada a mesmarelacao

Aluno = {Nome, Idade, PeriodoCurso} =

{<Zeca, 25, 2>,

<Zico, 18, 4>,

<Juca, 21, 4>,

<Tuca, 18, 8>}

EntaoΠ{COUNT(Nome),AVG(Idade),MIN(PeriodoCurso),MAX(PeriodoCurso)}Aluno =

{< 4, 20.25, 2, 8 >}

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 69 / 114

Page 65: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operadores de Agregacao

Considerando que A e um conjunto nao nulo de atributos, os Operadoresde Agregacao calculam:

COUNT(*) - conta o numero de tuplas (nao necessariamente distintas)da relacao. – Esse e o unico operador que nao requer argumento;

COUNT(A) - conta o numero de valores (nao necessariamentedistintos) desse atributo – Nao conta tuplas em que o valor doatributo e nulo;

COUNT(DISTINCT A) - conta o numero de valores distintos desseatributo – Nao conta tuplas em que o valor do atributo e nulo.Pode-se escrever COUNT(ALL A), mas esse e o default;

SUM(A) - soma os valores desse atributo;

AVG(A) - Calcula a media dos valores desse atributo nas tuplas cujovalor e nao nulo;

MIN(A) e MAX(A) - Obtem o menor (maior) valor do atributo queocorre em qualquer das tuplas.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 70 / 114

Page 66: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operador de Agrupamento — γ

Com frequencia e necessario obter o resultado de funcoes deagregacao nao apenas da tabela inteira, mas de grupos de tuplas darelacao, de maneira que queremos um valor de agregacao para cadagrupo.Por exemplo, suponha que queremos saber a media de idade dosalunos de cada perıodo: havera uma media para os alunos do primeiroperıodo, do segundo, etc.O operador que faz o agrupamento das tuplas de uma relacao e oOperador de Agrupamento γ, cuja notacao e: γ{AtrAgrup,AtrAgreg}R

onde:Atragrup e uma lista composta de qualquer numero de atributos de R– Estes sao os atributos usados para agrupar a relacao, e sao chamadosAtributos de Agrupamento;Atragreg e uma lista composta de qualquer numero de Operadores deAgregacao, cada um aplicado a um atributo de R, possivelmente comum nome designado – Os resultados sao chamados Atributos deAgregacao;

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 71 / 114

Page 67: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operador de Agrupamento — γ

Por exemplo, dada a relacao

Aluno = {Nome, Idade, PerıodoCurso} =

{<Zeca, 25, 2>,

<Zico, 18, 4>,

<Juca, 21, 4>,

<Tuca, 18, 8>}

Entaoγ{PeriodoCurso\Periodo,COUNT(Nome)\Quantos,AVG(Idade)\IdadeMedia}Aluno =

= {Perıodo, Quantos, IdadeMedia} =

{< 2, 1, 25>,

< 4, 2, 19.5>,

< 8, 1, 18>}

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 72 / 114

Page 68: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operador de Agrupamento — γ

E Importante notar que:

Podem haver tantos Atributos de Agrupamento quanto necessarios:O operador retorna como um grupo todas as tuplas que tem o mesmovalor para a concatenacao dos valores de todos os Atributos deAgrupamento;Podem haver tantos Atributos de Agregacao quanto necessarios.Cada um e aplicado sobre apenas um atributo, mas podem sercolocadas varias funcoes de agregacao repetindo um atributo, e variosatributos podem ocorrer em varias funcoes.O operador de agrupamento pode ser visto como uma generalizacao dooperador de projecao, quando nao existem atributos de agregacao, istoe: γ{a1,a2,...an}R ⇔ Π{a1,a2,...an}R.O resultado do operador γ e uma tabela completamente diferente daoriginal:Apenas os atributos de agrupamento e de agregacao sao colocadosnessa tabela, portanto os demais atributos da tabela original (alem dosatributos de agregacao) nao existem na tabela resultado.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 73 / 114

Page 69: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Agregacao e Agrupamento

Operador de Agrupamento — γ

O resultado do operador γ e uma tabela completamente diferente daoriginal:

Por exemplo, considere que, dadas as tabelasAluno = {Nome, Idade, Curso} eMatricula = {NomeA, Disciplina, Nota}

Queremos obter a media de idade nos alunos de cada disciplinacursada pelos alunos de computacao, desde que tenha, pelo menos 3alunos de computacao matriculados.

A resposta corresponde a seguinte expressao:

π{Disciplina,IdadeMedia}

(σ(NMat≥3)

(Ldados agrupados

γ{Disciplina,COUNT(Nome)\NMat,AVG(Idade)\IdadeMedia} Lconverte(σ(curso=computacao)(

NomeA=nomeAluno |><| Matricula)

) ))Ldados originais

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 74 / 114

Page 70: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Trabalhando com Multi-conjuntos e Listas

A Algebra Relacional e definida para trabalhar com relacoes, isto e,subconjuntos do produto cartesiano dos domınios dos atributosenvolvidos.

Portanto, ela e definida para que as relacoes sejam conjuntos detuplas.

No entanto, muitas aplicacoes requerem que a estrutura de dadossubjacente nao seja “conjunto”, mas outras estruturas.

Os SGBDs, embora ditos “Relacionais”, sempre operam com outrasestruturas. Inclusive, a terminologia adotada nem e “Relacao”, mas“Tabela”!

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 75 / 114

Page 71: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Trabalhando com Multi-conjuntos e Listas

Duas estruturas sao usadas com frequencia:

R Multi-conjuntos (multisets): pode haver mais de uma tuplarepetida;

R Listas ordenadas: garante-se que as tuplas (repetidas ou nao) estaoem uma determinada ordem.

Para tratar desses dois tipos de dados, mais dois operadores saodefinidos(os quais, obviamente, nem podem ser ditos serem “Operadores daAlgebra Relacional”!):

R Operador de Eliminacao de Duplicatas τ

R Operador de Ordenacao ω

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 76 / 114

Page 72: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Operador de Eliminacao de Duplicatas — τ

Tratar de tuplas duplicadas e facil: basta nao verificar se o resultadode alguns dos operadores repete resultados (por exemplo, apos aaplicacao de um operador de projecao).

Isso pode agilizar o processamento em diversas situacoes, mas aprincipal motivacao para trabalhar com multisets e que as aplicacoescom frequencia precisam disso.

O operador de Eliminacao de Duplicatas τ transforma uma “tabela”R, possivelmente com duplicatas, em uma relacao.

A notacao e: τ(R)

Note-se que todos os demais operadores podem ser “estendidos” comfacilidade para trabalhar com multisets, mas e importante lembrar quenem todas as propriedades mostradas para cada operador continuamvalidas se as “relacoes” admitirem duplicatas.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 77 / 114

Page 73: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Operador de Eliminacao de Duplicatas — τ

Estritamente falando, o operador de Eliminacao de Duplicatas τ edesnecessario, pois o operador de agrupamento obtem o mesmoresultado.

Isto e: seja A = {a1, a2, . . . an} o conjunto de todos os atributos deR. Entao τ(R)⇔ γ{A}R.

Ou seja, cada tupla de uma relacao pode ser um grupo de tuplasduplicadas em um multiset.

No entanto, a execucao de γ{A}R e mais custosa do que a execucaode um operador τ(R) especıfico para a eliminacao de duplicatas.

Assim, como a necessidade de eliminar duplicatas e frequente, o τ eparte do arsenal de operadores normalmente considerado.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 78 / 114

Page 74: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Os operadores de conjunto operando com multiconjuntos

Para trabalhar com multisets, e necessario verificar que ocomportamento dos operadores pode mudar um pouco.

Quanto aos operadores de conjunto basicos (⋃

,⋂

e −):⋃A uniao de dois multisets nao elimina repeticoes. Assim, a uniao dedois conjuntos (sem repeticao) resulta em dois elementos na uniao paratodos os elementos que estao nos dois conjuntos. Se um dos operandostiver n repeticoes de uma mesma tupla e o outro operando tiver mrepeticoes, aparecerao m + n tuplas no resultado.⋂Se um dos operandos da interseccao tiver n repeticoes de uma mesmatupla e o outro operando tiver m repeticoes, aparecerao Min(m, n)tuplas no resultado.

− Se o operando R1 da diferenca tiver n repeticoes de uma mesma tuplae o operando R2 tiver m repeticoes da mesma tupla, apareceraoMax(0, n −m) tuplas no resultado de R1 − R2.

Veja que se R1 e R2 forem conjuntos, R1 − R2 e R1⋂

R2 seraoconjuntos, mas R1

⋃R2 sera multiset.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 79 / 114

Page 75: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Outros operadores trabalhando com Multiconjuntos

π A projecao de multisets mantem as mesmas propriedades. Veja queprojecoes podem gerar duplicatas com frequencia.

σ A selecao aplicada a um conjunto resulta em um conjunto.A selecao aplicada a um multiconjunto pode resultar em ummulticonjunto.

× O produto cartesiano de multiconjuntos resulta em um multiconjunto:Se o operando R1 tiver n repeticoes de uma tupla r1 e o operando R2

tiver m repeticoes de uma tupla r2, o resultado tera n ∗m repeticoesda tupla que concatena r1 e r2.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 80 / 114

Page 76: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Operador de Ordenacao — ω

Outra estrutura frequentemente necessaria e a lista ordenada.

O operador de Ordenacao ω atende a essa necessidade.

A notacao e: ω{lista}R

O resultado do operador de ordenacao e uma lista de tuplasordenadas pelo valor dos atributos indicados em lista, os quais devemser atributos da relacao R.

Se lista = {a, b, c}, entao o resultado e uma lista de todas as tuplasde R ordenadas pelos valores do atributo a. Dentre as tuplas que temo mesmo valor do atributo a, ordena-se pelo valor do atributo b, eassim por diante. Se houver mais de uma tupla com os mesmosvalores de a, b e c, elas sao ordenadas arbitrariamente.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 81 / 114

Page 77: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Trabalhando com Multi-conjuntos e Listas

Operador de Ordenacao — ω

Ao contrario da estrutura de dados multiset, listas ordenadas tempouco suporte nos SGBDs atuais.

Ou seja, se uma ou mais listas ordenadas forem operadas pelosdemais operadores, nao se oferece garantia que o resultado sigaqualquer ordem.

Por isso, usualmente o operador ω e sempre usado como o penultimooperador de uma expressao de consulta, sendo seguido apenas pelooperador de projecao final, para o qual se garante que preservar aordem das tuplas.

O desenvolvimento de SGBDs adaptados para trabalhar com listasordenadas e uma importante frente de pesquisa atual, sob adenominacao de “ranked queries”.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 82 / 114

Page 78: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Outros operadores da Algebra Relacional Resumo

Outros operadores da Algebra RelacionalResumo

Os operadores que estendem o conjunto basico mais comuns sao:

Juncoes externas –R1.a1θR2.a2

R1 d|><|d R2 ,R1.a1θR2.a2

R1 d|><| R2 eR1.a1θR2.a2

R1 |><|d R2

Divisao – R1 ÷ R2

Semijuncao –R1.a1=R2.a2

R1 |>< R2

Semidiferenca –R1.a1=R2.a2

R1BR2

Operadores de Agregacao – fagreg (atr-list)R

Agrupamento – γ{Lista}R

Extensao – ψ{exp\nomenovo}R

Projecao estendida – Π{Lista}R

Eliminacao de Duplicatas – τ(R)

Ordenacao – ω{lista}RGrupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 83 / 114

Page 79: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL

Outros operadores da Algebra RelacionalMotivacao

A traducao dos comandos da Linguagem SQL e feita para uma arvorede comandos onde os operadores sao aqueles da Algebra Relacional.

A seguir, serao dados exemplos de como cada operador da AlgebraRelacional sao representados em construcoes em SQL.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 85 / 114

Page 80: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL

Operadores da Algebra Relacional Representados em SQL

Renomear relacoes e atributos – ρ{Lista}R

Uniao – R1⋃

R2

Interseccao – R1⋂

R2

Diferenca – R1 − R2

Uniao exclusiva – R1⋃|R2

Complemento – ¬R

Complemento Ativo – ¬∗R

Produto Cartesiano – R1 × R2

Selecao – σ(cond)R

Projecao – π{Lista}R

Juncao natural – R1 ∗ R2

Equijoin – R1

R1.a1=R2.a2

|><| R2

Juncao-θ – R1

R1.a1θR2.a2

|><| R2

Juncoes externas –

R1.a1θR2.a2

R1 d|><|d R2 ,

R1.a1θR2.a2

R1 d|><| R2 e

R1.a1θR2.a2

R1 |><|d R2

Divisao – R1 ÷ R2

Semijuncao –

R1.a1=R2.a2

R1 |>< R2

Semidiferenca –R1.a1=R2.a2

R1BR2

Extensao – ψ{exp\nomenovo}R

Operadores de Agregacao – fagreg (atr-list)R

Agrupamento – γ{Lista}R

Projecao estendida – Π{Lista}R

Eliminacao de Duplicatas – τ(R)

Ordenacao – ω{lista}R

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 86 / 114

Page 81: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL

Operadores da Algebra Relacional Representados em SQL

A leitura das Relacoes e executada por um operador de leitura

Le R1

Este nao e um operador algebrico, corresponde apenas a leitura deuma tabela, portanto representa um operando Relvar.

SELECT *

FROM Alunos; Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 87 / 114

Page 82: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Unarios

Operador Projecao π

Operador de Projecao – π{<lista de atributos>}R

SELECT Nome, Idade

FROM Alunos;

π {Nome, Idade}

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 88 / 114

Page 83: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Unarios

Operador Selecao σ

Operador de Selecao – σ(<condicao>)R

SELECT *

FROM Alunos

WHERE Idade=20;

σ (Idade=20)

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 89 / 114

Page 84: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Unarios

Operador Selecao σ

Operador de Selecao – σ(<condicao>)R

SELECT *

FROM Alunos;

WHERE Idade=20

AND Nome=’Ze’;

σ (Nome=’Ze’)

σ (Idade=20 )

Le Alunos

σ(Idade=20 ∧Nome=’Ze’)

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 90 / 114

Page 85: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Unarios

Operador Selecao σ

Operador de Selecao – σ(<condicao>)R

SELECT Nome, Idade

FROM Alunos

WHERE Idade=20

AND Nome=’Ze’;

π {Nome, Idade}

σ(Idade=20 ∧Nome=’Ze’)

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 91 / 114

Page 86: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Binarios

Operador Equijuncao |><|

Operador de Equijuncao —AtrR=AtrS

R |><| S

SELECT *

FROM Alunos, Matric

WHERE Alunos.Nome =

Matric.Nome;

|><|

Le Alunos Le Matric

Nome=Nome

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 92 / 114

Page 87: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Binarios

Operador Equijuncao |><|

Operador de Equijuncao —AtrR=AtrS

R |><| S

SELECT *

FROM Alunos

JOIN Matric

ON Nome=Nome;

|><|

Le Alunos Le Matric

Nome=Nome

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 93 / 114

Page 88: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Binarios

Operador Juncao Natural ∗

Operador de Juncao Natural — R1

Atrast R2

SELECT *

FROM Alunos

JOIN Matric

USING Nome;

Le Alunos Le Matric

Nome=Nome

Veja que indicar NATURAL JOIN e opcional nessa construcao, uma vezque a subclausula USING ja indica essa juncao.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 94 / 114

Page 89: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Binarios

Operador Juncao-θ |><|

Operador de Juncao-θ —AtrRθAtrS

R |><| S

SELECT *

FROM Alunos

JOIN Matric

ON Idade>Idade;

|><|

Le Alunos Le Matric

Idade>Idade

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 95 / 114

Page 90: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Relacionais Binarios

Operador Juncao-θ |><|

Operador de Juncao-θ —AtrRθAtrS

R |><| S

SELECT *

FROM Alunos, Matric

WHERE Alunos.Idade >

Matric.Idade;

|><|

Le Alunos Le Matric

Idade>Idade

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 96 / 114

Page 91: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Uniao⋃

Operador Uniao: — R1⋃

R2

SELECT Nome, Idade

FROM Alunos

UNION ALL

SELECT Nome, Idade

FROM Prof;

⋃π {Nome, Idade} π {Nome, Idade}

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 97 / 114

Page 92: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Uniao⋃

Operador Uniao: — R1⋃

R2

SELECT *

FROM Alunos;

WHERE Idade=20

OR Cidade=’Itu’;

⋃σ (Idade=20) σ (Cidade=’Itu’)

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 98 / 114

Page 93: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Interseccao⋂

Operador Interseccao: — R1⋂

R2

SELECT Nome, Idade

FROM Alunos

INTERSECT ALL

SELECT Nome, Idade

FROM Prof;

⋂π {Nome, Idade} π {Nome, Idade}

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 99 / 114

Page 94: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Diferenca −

Operador Diferenca: — R1 − R2

SELECT Nome, Idade

FROM Alunos

EXCEPT ALL

SELECT Nome, Idade

FROM Prof;

π {Nome, Idade} π {Nome, Idade}

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 100 / 114

Page 95: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Produto Cartesiano ×

Produto Cartesiano: — R1 × R2

SELECT *

FROM Alunos

CROSS JOIN Prof;

×

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 101 / 114

Page 96: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores sobre Conjuntos

Operador Produto Cartesiano ×

Produto Cartesiano: — R1 × R2

SELECT *

FROM Alunos, Prof;

×

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 102 / 114

Page 97: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Juncoes Externas

Operador Juncao Externa Completa d|><|d

Operador Juncao Externa Completa —AtrR=AtrSR1 d|><|d R2

SELECT Aluno.Nome,

Discip.Nome

FROM Alunos

OUTER JOIN Discip

ON Monitora=Sigla;

π{Aluno.Nome,Discip.Nome}

d|><|d

Le Alunos Le Matric

Monitora=Sigla

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 103 / 114

Page 98: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Semijuncao e Semidiferenca

Operador Semijuncao |><

Operador Semijuncao —AtrR=AtrSR1 |>< R2

SELECT Nome, Idade,

FROM Alunos

WHERE NUSP IN (

SELECT Monitor

FROM Discip

WHERE Monitor <> NULL

);

π {Nome, Idade}

|><

Le Alunos σ(Monitor<> NULL)

Le Discip

NUSP=Monitor

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 104 / 114

Page 99: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Semijuncao e Semidiferenca

Operador Semidiferenca B

Operador Semidiferenca —AtrR=AtrSR1BR2

SELECT Nome, Idade,

FROM Alunos

WHERE NUSP NOT IN (

SELECT NUSP

FROM Matric);

B

Le Alunos Le Matric

NUSP=NUSP

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 105 / 114

Page 100: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operador Extensao ψ

Operador Extensao – ψ{exp\nomenovo}R

SELECT Nome,

(P1+P2)/2 AS MP,

(T1+T2+T3)/3 AS MT

FROM Matric

WHERE Discip=’Compt’;

π {Nome, MP, MT}

ψ {(P1+P2)/2\MP}

ψ {(T1+T2+T3)/3\MT}

σ (Discip=’Compt’)

Le Matric

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 106 / 114

Page 101: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Projecao estendida Π

Projecao estendida – Π{Lista}R

SELECT Nome,

(P1+P2)/2 AS MP,

(T1+T2+T3)/3 AS MT

FROM Matric

WHERE Discip=’Compt’;

Π

{Nome,(P1+P2)/2\MP,(T1+T2+T3)/3\MT}

σ (Discip=’Compt’)

Le Matric

O mesmo e feito para o operador de renomear atributos.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 107 / 114

Page 102: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Renomear Atributos ρ

Operador Renomear Atributos – ρ{Lista}R

SELECT Nome,

NUSP AS Codigo,

FROM Matric

π {Nome,Codigo}

ρ {NUSP\Codigo}

Le Matric

Π{Nome,NUSP\Codigo}

Le Matric

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 108 / 114

Page 103: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operadores de Agregacao fagreg

Operadores de Agregacao – fagreg (atr-list)R

SELECT Count(Nome),

AVG(Nota)

FROM Matric

WHERE Discip=’Compt’;

Π{Count(Nome),AVG(Nota)}

σ (Discip=’Compt’)

Le Matric

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 109 / 114

Page 104: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operador de Agrupamento γ

Operador de Agrupamento – γ{Lista}R

SELECT Discip,

Count(NUSP)

AVG(Nota)

FROM Matric

GROUP BY Discip;

γ{Discip,Count(Nome),

AVG(Nota)}

Le Matric

Note que a lista de atributos do operador de agrupamento inclui doisconjuntos:

Os atributos do agrupamento;Os atributos resultantes de funcoes de agregacao.

Ambos os conjuntos podem ser nulos.

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 110 / 114

Page 105: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operador de Eliminacao de Duplicatas τ

Operador de Eliminacao de Duplicatas – τ(R)

SELECT DISTINCT Nome, Idade

FROM Alunos;

π {Nome, Idade}

τ

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 111 / 114

Page 106: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operador de Eliminacao de Duplicatas τ

Operador de Eliminacao de Duplicatas – τ(R)

SELECT Nome, Idade

FROM Alunos

UNION - - sem ALL

SELECT Nome, Idade

FROM Prof;

τ

⋃π {Nome, Idade} π {Nome, Idade}

Le Alunos Le Prof

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 112 / 114

Page 107: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Operadores da Algebra Relacional Representados em SQL Operadores Extras

Operador de Ordenacao ω

Operador de Ordenacao – ω{lista}R

SELECT DISTINCT Nome, Idade

FROM Alunos

ORDER BY Nome, Idade;

π {Nome, Idade}

ω {Nome, Idade}

Le Alunos

Grupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 113 / 114

Page 108: Bases de Dados Uma Recordação da Algebra Relacional€¦ · A algebra relacional e composta por um conjunto de operadores, utilizados para manipular Rela˘c~oes como um todo. Todo

Bases de Dados–Uma Recordacao da Algebra Relacional–

Caetano Traina Jr.

Grupo de Bases de Dados e ImagensInstituto de Ciencias Matematicas e de Computacao

Universidade de Sao Paulo - Sao [email protected]

7 de marco de 2013Sao Carlos, SP - Brasil

FIMGrupo de Bases de Dados e Imagens () Recordacao da Algebra Relacional GBdI-ICMC-USP 114 / 114