Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU...

63
GBC043 – Sistemas de Banco de Dados Álgebra e Cálculo Relacional Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

Transcript of Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU...

Page 1: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

GBC043 – Sistemas de Banco de DadosÁlgebra e Cálculo Relacional

Ilmério Reis da Silva

[email protected]

www.facom.ufu.br/~ilmerio/sbdUFU/FACOM

Page 2: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:2

Álgebra e Cálculo Relacional e o Modelo R

• São as linguagens formais do Modelo R• Álgebra Relacional (AR): conjunto básico de operações do Modelo R• Expressão da Álgebra Relacional: uma sequência de operações da

AR• Usada na implementação de consultas por processadores de

consultas dos SGBD Relacionais• Cálculo Relacional (CR): uma linguagem declarativa formal

Page 3: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:3

Álgebra e Cálculo Relacional - Notação

• R: uma relação• F: uma fórmula do cálculo de predicados de primeira ordem, i.e.:

Alfabeto de símbolos: variáveis, constantes, funções, símbolos de predicados, parêntesis, conectivos lógicos (∧, ∨, ¬, →, ↔) e quantificadores (∃, ∀)

Termo: é uma constante ou variável. Sendo f uma função n-ária e t1, t2, ..., tn termos, então f(t1, t2, ..., tn) também é um termo

Fórmula atômica: P(t1, t2, ..., tn ) onde P é um símbolo de predicado n-ário

Fórmula bem formada(fbf): se wi e wj são fbfs então também são fbfs: (wi ); ¬(wi ); (wi ) ∧ (wj ); (wi ) ∨ (wj ); (wi ) → (wj ); (wi ) ↔ (wj ); Obs: As variáveis em fbf podem ser livres ou vinculadas a

um dos dois quantificadores ∃, ∀

Page 4: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:4

Álgebra Relacional (AR)

Page 5: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:5

Álgebra Relacional - Fundamentos

• Operações derivadas da teoria de conjuntos são definidas sobre relações

• Operadores fundamentais: UNÁRIOS: seleção, projeção BINÁRIOS: união, diferença, produto cartesiano

• Operadores adicionais: intersecção, junção θ , junção natural, semijunção, quociente

• Outros operadores: junção externa, união externa, fecho transitivo;

Page 6: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:6

Álgebra Relacional - Seleção

Def. a Seleção σF(R) retorna o subconjunto de tuplas de R que satisfazem a fórmula F. Pode ser vista como uma partição horizontal de R.

• F é chamado predicado da seleção• F contêm termos do tipo (A θ c) ligados por

conectores onde A é um atributo de R θ é um dos seguintes operadores: <, >, =, ≠, ≤, ≥ c uma constante conectores podem ser ∧, ∨, ¬

Page 7: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:7

AR – Seleção - Exemplo 1

σtitle=‘Mech.Eng.’(emp)

ENO ENAME TITLE

E3 A. Lee Mech. Eng.

E7 R. Davis Mech. Eng.

Page 8: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:8

AR – Seleção - Exemplo 2

σdno=4 ∧ sakart > 25000(employee)

Page 9: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:9

Álgebra Relacional - Projeção

Def. a Projeção π A,B (R) retorna o subconjunto de colunas, no caso {A, B} de R. Pode ser vista como uma partição vertical de R..

Exemplo Projeção: π pno, budget(proj)

Page 10: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:10

AR – Projeção - Considerações

• O resultado é um conjunto de tuplas distintas logo,

π lname, pname, salary(employee)

É diferente do resultado de

SELECT lname, pname, salary FROM employee

Page 11: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:11

AR – Sequência de operações

• Como recuperar o nome e salario dos funcionários do departamento 5?

– Alternativa 1: expressão da AR

π lname, pname, salary(σdno=5(employee)) – Alternativa 2: sequência explícita de

operações

EDEP5←σdno=5(employee)

RESUL←π lname, pname, salary(EDEP5)

Page 12: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:12

AR – Renomeando atributos/relação

R(unome,pnome,salario) ← π lname, pname, salary(EDEP5)Operação renomear, denotada por ρ: Renomeando a relação: ρS(R) Renomeando os atributos: ρunome,pnome, salario(R) Renomeando a relação e seus atributos: ρS(unome,pnome, salario)(R)

Page 13: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:13

Álgebra Relacional - União

Def. a União R ∪ S retorna o conjunto das tuplas que estão em R ou que estão em S, considerando os esquemas de R e S compatíveis

Page 14: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:14

Álgebra Relacional – União - Exemplo

Recuperar o ssn dos empregados lotados no departamento 5 ou que supervisionam diretamente um empregado do departamento 5

EDEP5 ← σdno=5(employee)

R1 ← πssn(EDEP5)

R2 ← πsupersn(EDEP5)

R ← R1 ∪ R2

Page 15: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:15

AR – Operações binárias com conjuntos

Considerações sobre a União, Intersecção e Diferença ou subtração.

Def. Compatibilidade de tipo:

Duas relações R(A1, A2,... An) e S(B1, B2,... Bm) são compatíveis se tiverem o mesmo grau, i.e. m=n, e para todo 1 ≤ i ≤ n dom(Ai)=dom(Bi).

Page 16: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:16

Álgebra Relacional - Diferença

Def. a Diferença R - S retorna o conjunto das tuplas que estão em R mas não estão em S

Page 17: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:17

Álgebra Relacional - Intersecção

Def. A Intersecção R∩ S retorna o conjunto das tuplas que estão em R e em S

Page 18: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:18

Álgebra Relacional - Produto Cartesiano

Def. o Produto Cartesiano R x S retorna o conjunto de tuplas formadas pela concatenação de cada tupla de R com todas as tuplas de S.

Sendo (r, s) os graus das relações (R, S), respectivamente,

(R x S) será uma relação de grau r+s

Page 19: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:19

Álgebra Relacional - Produto Cartesiano - Exemplo

Page 20: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:20

AR – Conjunto completo de operações

O conjunto de operações {σ, π, ∪, ρ, -, x} é um

conjunto completo, ou seja, qualquer operação da AR pode ser expresas como uma sequência dessas operações, por exemplo:

Page 21: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:21

Álgebra Relacional - Junção Def. a Junção θ é denotada por R⋈F S e

pode ser definida como σF(R x S), onde F é do tipo (R.A θ S.B) sendo A e B atributos de R e S respectivamente. Também chamada junção interna (inner join)

Se F é do tipo (R.A=S.B) a junção θ é chamada equijunção.

Se F é do tipo (R.A=S.A) e dom(R.A)=dom(S.A), então a equijunção é chamada junção natural. Em junção natural haverá uma projeção no resultado final, aparecendo apenas uma das duas colunas de F.

A junção natural pode ser denotada por R⋈A S

Page 22: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:22

Álgebra Relacional - Junção - Exemplo

Page 23: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:23

Álgebra Relacional – Junção Externa Def. a Junção Externa (outer join) entre R e S mantem na

relação resultante tuplas que não têm correspondência na junção, sendo:

- Junção externa à esquerda, R _⋈ S, mantêm tuplas de R sem correspondência em S com NULLS nos atributos de S

- Junção externa à direita, R ⋈_ S, mantêm tuplas de S sem correspondência em R com NULLS nos atributos de R

- Junção externa completa, R _⋈_S, mantêm tuplas de R e S sem correspondência com S e R, respectivamente, com NULLS nos atributos de S e R, respectivamente.

Page 24: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:24

Álgebra Relacional – Semi Junção

Def. a Semi junção R⋉F S é definida por π R (R ⋈F S) e retorna o subconjunto das tuplas de R que participam de R⋈F S

• É utilizada para reduzir acesso a disco em BD centralizado e como estratégia para reduzir comunicação em BD Distribuídos

Page 25: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:25

Álgebra Relacional – Divisão Def . a Divisão R÷ S, sendo (r, s) os graus das

relações (R, S), respectivamente, com r > s > 0, retorna o conjunto das (r-s)-tuplas t tais que para toda s-tupla u de S a r-tupla tu, formada pela concatenação de t e u, está em R.

Sendo A o conjunto de atributos de R que não estão em S, então:

R÷ S = πA (R) - πA ((πA(R) x S) – R)

Page 26: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:26

Álgebra Relacional – Divisão - Exemplo

Na Divisão (ASG’ ÷ PROJ’) o resultado é o conjunto detuplas <ENO> tais que para toda <PNO, PNAME, BUDGET> de PROJ’ existe a tupla <ENO,PNO,PNAME,BUDGET> em ASG’.

ASG’ ASG’ ÷ PROJ’PROJ’

OBS: A palavra-chave é “toda”.

Somente E3 trabalha no dois projetos de PROJ’, i.e. P3 e P4

ENO

E3

Page 27: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:27

Álgebra Relacional – Divisão passo a passo - 1Divisão ASG’ ÷ PROJ’=

πENO ASG’ - πENO [[(πENO ASG’) x PROJ’] – ASG’]

ENO

E1

E2

E3

E4

E5

E6

E7

E8

Page 28: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:28

Álgebra Relacional – Divisão passo a passo - 2Divisão ASG’ ÷ PROJ’=

πENO ASG’ - πENO [[(πENO ASG’) x PROJ’] – ASG’]

Page 29: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:29

Álgebra Relacional – Divisão passo a passo - 3Divisão ASG’ ÷ PROJ’=

πENO ASG’ - πENO [[(πENO ASG’) x PROJ’] – ASG’]

Page 30: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:30

Álgebra Relacional – Divisão passo a passo - 4Divisão ASG’ ÷ PROJ’=

πENO ASG’ - πENO [[(πENO ASG’) x PROJ’] – ASG’]

ENO

E1

E2

E4

E5

E6

E7

E8

ENO

E1

E2

E3

E4

E5

E6

E7

E8

ENO

E3

- =

Page 31: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:31

Álgebra Relacional - Expressões

Seja o BD

Page 32: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:32

Álgebra Relacional – Expressões – Exemplo 1

Qual o nome dos funcionários que trabalham no projeto “CAD/CAM” ?

πENAME(((σPNAME=‘CAD/CAM’PROJ) ⋈PNO ASG) ⋈ENO EMP)

Uma solução com relações intermediários menores é:

πENAME(EMP⋉ENO (πENO(ASG ⋉PNO (σPNAME=‘CAD/CAM’PROJ)))

Page 33: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:33

Álgebra Relacional – Expressões – Exemplo 2

Atualizar o salário dos programadores (TITLE=‘Programmer’) para 25000.

(PAY – (σTITLE=‘Programmer’PAY)) ∪ (<Programmer, 25000>)

Page 34: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:34

Álgebra Relacional–Árvore de Consulta

Def. uma árvore de consulta é uma estrutura de dados em árvore que representa uma expressão da álgebra relacional.

Seja a expressão:

Page 35: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:35

AR–Árvore de Consulta- Exemplo

Page 36: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:36

AR–Outras operações–Projeção Generalizada

Projeção generalizada: uso de expressões aritméticas

Page 37: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:37

AR–Outras op.– Agregação e Agrupamento

Funções de agregação e agrupamento

Page 38: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:38

AR–Outras op.– Fecho transitivo

Como recuperar o ssn dos empregados da hierarquia de um supervisor

Necessita um mecanismo de Loop ou Recursão que não está especificado na AR

Veremos...

Page 39: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:39

Álgebra Relacional – Exercícios

Ver [EN] capítulo 6

Page 40: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:40

Cálculo Relacional - CR

Page 41: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:41

Fundamentos do Cálculo Relacional

• Linguagem declarativa• Cálculo Relacional de Tupla é

semelhante ao SQL• Cálculo Relacional de Domínio

semelhante ao QBE (Query By Example)

Page 42: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:42

Cálculo Relacional de Tupla - CRT

Def. no Cálculo Relacional de Tupla uma variável t é interpretada como uma tupla qualquer e a consulta é:

{t|F(t)} ou {t.A1, t.A2, ..., t An |F(t1, t2, …, tn,, tn+1, tn+2, ..., tn+m)}

onde: F é uma fórmula com átomos do tipo:

– R(t) ou R.t– (ti.A θ tj.B) : A e B atributos das relações onde ti e tj

variam respectivamente eθ Є {<, >, =, ≠, ≤, ≥ }– (c θ tj.B) ou (ti.A θ c)

Cada átomo é avaliado como true ou false, R.t é true se t é tupla de R e false cc

A fórmula F é composta por átomos conectados pelos operadores booleanos AND, OR e NOT seguindo as seguintes regras:

Page 43: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:43

Cálculo Relacional de Tupla - CRT

Regra 1) todo átomo é uma fórmulaRegra 2) se F1 e F2 são fórmulas então também são:

( F1 AND F2 ), (F1 OR F2 ), NOT(F1) e NOT(F2 )

Além disso as variáveis podem ser livres ou ligadas por meio dos quantificadores ∃, ∀ .

Regra 3) se F é uma fórmula então tambem é (∃ t) (F), que é verdadeira se para alguma tupla atribuida a t F for verdadeira cc é falsa

Regra 4) se F é uma fórmula então tambem é (∀ t) (F) que é verdadeira se para toda tupla atribuída a t F for verdadeira cc é falsa

Page 44: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:44

CRT e SQL – Exemplo 1

{t | emp(t) AND t.title= ‘Mech.Eng.’}

O SQL é uma linguagem declarativa baseada no cálculo relacional de tupla. Veja a semelhança

SELECT * FROM emp t WHERE t.title = ‘Mech.Eng.’

Page 45: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:45

CRT e SQL – Exemplo 2

Q0: Recuperar (data de nascimento, endereço) do funcionário cujo nome é João Batista

{t.birthdate, t.address | emp(t) AND t.name = 'João Batista'}

SELECT t.birthdate, t.address FROM emp t WHERE t.name = 'João Batista'

Page 46: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:46

CRT – Exemplo 3

Q1: Listar o nome e o endereço dos funcionários que trabalham para o departamento 'Pesquisa'

{t.pname, t.lname, t.address | employee(t) AND (∃ d)(department(d))

AND d.dname = 'Pesquisa' AND d.dnumber=t.dno}

Obs.: as variáveis livres na consulta devem aparecer antes da barra vertical |

Page 47: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:47

CRT e SQL – Exemplo 3

Q1: Listar o nome e o endereço dos funcionários que trabalham parao departamento 'Pesquisa'

{t.pname, t.lname, t.address | employee(t) AND (∃ d)(department(d))

AND d.dname = 'Pesquisa'

AND d.dnumber=t.dno}

SELECT t.pname, t.lname, t.address

FROM employee t, department d

WHERE d.dname = 'Pesquisa'

AND d.dnumber=t.dno

Page 48: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:48

CRT – Outros exemplos - Q2

Q2: Listar o número do projeto, o número do departamento que o controla, o sobrenome, data de nascimento e o endereço do funcionário que controla o departamento para projetos localizados em “Mauá”

Page 49: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:49

CRT – Outros exemplos – Q0'

Q0': Listar os nomes dos funcionários que trabalham em algum projeto controlado pelo departamento 5

Page 50: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:50

CRT – Outros exemplos Q4

Q4: Listar o número dos projetos que envolvem um funcionário cujo nome é 'Silva', seja como trabalhador ou como gerente de um departamento que controla o projeto.

Page 51: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:51

CRT – Transfomação de quantificadores

Page 52: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:52

CRT – Implicação

Page 53: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:53

CRT – Usando o quantificador universal

Q3: Listar os nomes dos funcionários que trabalham em todos os projetos controlados pelo departamento 5

{f.lname, f.fname | employee(f) AND ((∀ p)(NOT (project(p)) OR NOT (p.dnum=5)

OR ((∃ t)(works_on(t) AND t.essn=f.ssn

AND p.pnumber=t.pno))))}Ou (vide [RG, pg 102]

{f.lname, f.fname | employee(f) AND ((∀ p)((project(p)) AND (p.dnum=5) AND ((∃ t)(works_on(t) AND t.essn=f.ssn

AND p.pnumber=t.pno))))}

Page 54: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:54

CRT – Substituindo pelo quantificador existencial

Q3: Listar os nomes dos funcionários que trabalham em todos os projetos controlados pelo departamento 5

{f.lname, f.fname | employee(f) AND (NOT (∃ p) (project(p) AND (p.dnum=5)

AND (NOT (∃ t)(works_on(t) AND t.essn=f.ssn

AND p.pnumber=t.pno))))}

Page 55: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:55

CRT – Expressões segura e insegura

Def. Uma expressão segura no cálculo relacional é aquela que gera como resultado um número finito de tuplas, caso contrário é chamada expressão insegura

Exemplo de expressão insegura: {t | NOT (employee(t))}

Obs.: Definimos domínio da expressão como o conjunto de constantes ou tuplas de relações mencionadas na expressão. Logo, o resultado da expressão acima inclui tuplas que não estão no domínio da expressão, tornando-a insegura.

Page 56: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:56

Cálculo Relacional de DomínioCálculo Relacional de Domínio: uma variável x é

interpretada como um valor em um domínioConsulta:{x1, x2, ..., xn | F(x1, x2, ..., xn+1, xn+2, ..., xn+m)}• F é uma fbf, análoga ao CRT, onde x1, x2, ..., xn são

variáveis livres• Exemplo: {ENO, ENAME | EMP(ENO,ENAME,

“Mech.Eng.”)}

• O QBE(query by example) é uma linguagem declarativa baseado no Cálculo Relacional de Domínio. Semelhantemente as interfaces gráficas do ‘MS Access’ e do ‘Borland Paradox’

Page 57: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:57

CRD – Exemplo Q0

Q0: Listar a data de nascimento e o endereço do funcionario cujo nome é 'João B Silva'

{u, v | (∃ q)(∃ r)(∃ s)(∃ t)(∃ w)(∃ x)(∃ y)(∃ z)

( employee(q,r,s,t,u,v,w,x,y,z) AND q='João' AND AND r='B' AND s='Silva')}

Obs.: cada variável percorre o domínio de um atributo

Page 58: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:58

CRD – Exemplo Q0A – Notação QBE

Q0: Listar a data de nascimento e o endereço do funcionario cujo nome é 'João B Silva'

No QBE as condições são inseridas diretamente no esquema da relação. Além disso, considere nos exemplos subsequentes que as variáveis que não aparecem antes da | e que não são usadas em condições estão automaticamente quantifiadas com ∃

{u, v | employee('João', 'B', 'Silva', t,u,v,w,x,y,z)}

Page 59: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:59

CRD – Exemplo Q1

Q1: Listar o nome e o endereço de todos os funcionários que trabalham para o departamento 'Pesquisa'

{q, s, v | (∃ z)(∃ l)(∃ m)

( employee(q,r,s,t,u,v,w,x,y,z) AND deparment(l,m,n,o) AND l='Pesquisa' AND m=z)}

Page 60: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:60

CRD – Exemplo Q2

Q1: Listar o número do projeto, o número do departamento que o controla, o último nome, data de nascimento e endereço do gerente do departamento que controla projetos localizados em 'Mauá'

{i, k, s, u, v | (∃ j)(∃ l)(∃ m)(∃ n)(∃ t) (project(h,i,j,k)

AND employee(q,r,s,t,u,v,w,x,y,z) AND deparment(l,m,n,o) AND k=l AND j='Mauá' AND n=t)}

Page 61: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:61

CRD – Exemplo Q7

Q1: Listar o nome dos gerentes que têm pelo menos um dependente

{s, q | (∃ t)(∃ n)(∃ h) employee(q,r,s,t,u,v,w,x,y,z) AND deparment(l,m,n,o) AND dependent(h,i,j,k) AND t=n AND t=h)}

Page 62: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:62

Cálculo Relacional – Exercícios

Ver [EN] capítulo 6

Page 63: Sistemas de Banco de Dados - facom.ufu.brilmerio/sbd20132/sbd8algebraEcalculo.pdf · FACOM/UFU Página:2 Álgebra e Cálculo Relacional e o Modelo R • São as linguagens formais

FACOM/UFU Página:63

FIM – Álgebra e Cálculo Relacional

FIM