O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Base de Dados - Álgebra Relacional

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 49 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Base de Dados - Álgebra Relacional (20)

Mais de Mariana Hiyori (20)

Anúncio

Mais recentes (20)

Base de Dados - Álgebra Relacional

  1. 1. Base de Dados Álgebra Relacional 2018/2019
  2. 2. Sumário • Álgebra Relacional • Operações Adicionais de Álgebra Relacional • Extensão às Operações da Álgebra Relacional • Exercícios
  3. 3. Linguagens de Consulta • Linguagem com que um utilizador pede informação a um BD • Categorias de linguagens • Procedimental • Não-procedimental (ou declarativa) • Linguagens formais: • Álgebra relacional • Cálculo relacional de tuplos • Cálculo relacional de domínios • Linguagens formais são a base teórica das linguagens de consulta
  4. 4. Álgebra Relacional • Linguagem procedimental • Seis operadores básicos: • Seleção: 𝜎 • Projeção: 𝜋 • União: ∪ • Diferença entre conjuntos: − • Produto cartesiano: × • Renomeação: 𝜌 • Os operadores aceitam uma ou duas relações como entradas e produzem uma nova relação como resultado
  5. 5. Operação de Seleção • Utilizada para selecionar um conjunto de tuplos de uma relação • Notação: 𝜎𝑝 𝑟 • P é designado predicado de seleção • Definido como: 𝜎p(r) = {t|t ∈ r and p(t)} • Onde p é uma fórmula de cálculo proposicional composta por termos ligados por ⋀ (e), ⋁ (ou) e (não) • Cada termo é uma expressão que pode conter: • Atributos da relação • Constantes • Operadores relacionais ≠, =, >, ≥, <, ≤ • Exemplo: 𝜎𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒="Campolide" (𝑐𝑜𝑛𝑡𝑎)
  6. 6. Operação de Seleção - Exemplo • Relação r • 𝜎𝐴=𝐵∧𝐷>5 𝑟 =? A B C D a a 1 7 a b 5 7 b b 12 3 b b 23 10
  7. 7. Operação de Seleção - Exemplo • Relação r • 𝜎𝐴=𝐵∧𝐷>5 𝑟 =? A B C D a a 1 7 a b 5 7 b b 12 3 b b 23 10 A B C D a a 1 7 b b 23 10
  8. 8. Operação de Projeção • Notação: 𝜋𝐴1,𝐴2,…,𝐴𝑘 (𝑟) • Onde A1, A2 são nomes de atributos e r é o nome da relação • O resultado é definido como a relação de k colunas obtidas suprimindo as colunas que não estão listadas • Linhas duplicadas são removidas do resultado (uma vez que as relações são conjuntos) • Exemplo: 𝜋𝑛𝑢𝑚𝑒𝑟𝑜_𝑐𝑜𝑛𝑡𝑎,𝑠𝑎𝑙𝑑𝑜(𝑐𝑜𝑛𝑡𝑎)
  9. 9. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2
  10. 10. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C a 1 a 1 b 1 b 2
  11. 11. Operação de Projeção - Exemplo • Relação r • 𝜋𝐴,𝐶 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C a 1 a 1 b 1 b 2 A C a 1 b 1 b 2 =
  12. 12. Operação de União • Notação: 𝑟 ∪ 𝑠 • Definido como: 𝑟 ∪ 𝑠 = {t|t ∈ r or t ∈ s} • Para que 𝑟 ∪ 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam titulares de uma conta ou de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑡𝑖𝑡𝑢𝑙𝑎𝑟) ∪ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  13. 13. Operação de União - Exemplo • Relações r e s • 𝑟 ∪ 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  14. 14. Operação de União - Exemplo • Relações r e s • 𝑟 ∪ 𝑠 =? A B a 1 a 2 b 1 A B a 1 a 2 b 1 b 3 A B a 2 b 3 r = s =
  15. 15. Operação de Diferença • Notação: 𝑟 − 𝑠 • Definido como: 𝑟 − 𝑠 = {t|t ∈ r and t ∉ s} • Para que 𝑟 − 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam titulares de uma conta mas não de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 − 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  16. 16. Operação de Diferença - Exemplo • Relações r e s • 𝑟 − 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  17. 17. Operação de Diferença - Exemplo • Relações r e s • 𝑟 − 𝑠 =? A B a 1 a 2 b 1 A B a 1 b 1 A B a 2 b 3 r = s =
  18. 18. Operação de Produto Cartesiano • Notação: 𝑟 × 𝑠 • Definido como: 𝑟 × 𝑠 = {tq|t ∈ r and q ∈ s} • Para que 𝑟 × 𝑠 seja válido: 1. r e s devem ser disjuntos • Se os artibutos s(R) e s(S) não forem disjuntos então é necessária a aplicação de renomeação
  19. 19. Operação de Produto Cartesiano - Exemplo • Relações r e s • 𝑟 × 𝑠 =? A B a 1 b 2 C D E a 10 x b 10 x b 20 y c 10 y r = s =
  20. 20. Operação de Produto Cartesiano - Exemplo • Relações r e s • 𝑟 × 𝑠 =? A B a 1 b 2 A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y C D E a 10 x b 10 x b 20 y c 10 y r = s =
  21. 21. Operação de Renomeação • Permite nomear, e fazer referência a, resultados de expressões de álgebra relacional • Permite fazer referência a uma relação utilizando vários nomes • Exemplo: ρ𝑋 𝐸 retorna a expressão E com o nome X • Se uma expressão de álgebra relacional tem aridade n, então ρ𝑋(𝐴1,𝐴2,…,𝐴𝑛) 𝐸 • Retorna o valor da expressão E sob o nome X, e com os atributos renomeados para A1, A2, …, An • ρ𝑡𝑖𝑡 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑖𝑒𝑛𝑡𝑒_𝑛𝑜𝑚𝑒, 𝑐𝑜𝑛𝑡𝑎_𝑛𝑢𝑚𝑒𝑟𝑜) • ρ𝑡𝑖𝑡(𝑐𝑙𝑛,𝑐𝑜𝑛) 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ⟶ 𝑡𝑖𝑡(𝑐𝑙𝑛 𝑐𝑜𝑛)
  22. 22. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠)
  23. 23. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠
  24. 24. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo: 𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠 2)𝜎𝐴=𝐶
  25. 25. Composição de Operações • Pode-se construir expressões compostas por múltiplas operações • Exemplo:𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x a 1 b 10 x a 1 b 20 y a 1 c 10 y b 2 a 10 x b 2 b 10 x b 2 b 20 y b 2 c 10 y 1) 𝑟 × 𝑠 2)𝜎𝐴=𝐶 3)𝜎𝐴=𝐶(𝑟 × 𝑠) A B C D E a 1 a 10 x b 2 b 10 x b 2 b 20 y
  26. 26. Operações Adicionais • São operações que não aumentam o poder expressivo da álgebra relacional mas que simplificam consultas habituais • Intersecção de conjuntos: ∩ • Junção natural: ⋈ • Divisão: ÷ • Atribuição: ⟵
  27. 27. Operação de Intersecção de Conjuntos • Notação: 𝑟 ∩ 𝑠 • Definido como: 𝑟 ∩ 𝑠 = {t|t ∈ r and t ∈ s} • Nota: 𝑟 ∩ 𝑠 = 𝑟 − (𝑟 − 𝑠) • Para que 𝑟 ∩ 𝑠 seja válido: 1. r e s devem ter mesma aridade (igual número de atributos); 2. Os atributos têm de ser compatíveis (valores de tipos compatíveis); • Exemplo: obter lista de todos os clientes que sejam simultaneamente titulares de uma conta e de um empréstimo 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑡𝑖𝑡𝑢𝑙𝑎𝑟 ∩ 𝜎𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒(𝑑𝑒𝑣𝑒𝑑𝑜𝑟)
  28. 28. Operação de Intersecção - Exemplo • Relações r e s • 𝑟 ∩ 𝑠 =? A B a 1 a 2 b 1 A B a 2 b 3 r = s =
  29. 29. Operação de Intersecção - Exemplo • Relações r e s • 𝑟 ∩ 𝑠 =? A B a 1 a 2 b 1 A B a 2 A B a 2 b 3 r = s =
  30. 30. Operação de Junção Natural • Notação: 𝑟 ⋈ 𝑠 • Sejam r e s relações nos esquemas R e S respetivamente. Então 𝑟 ⋈ 𝑠 é uma relação no esquema 𝑅 ∪ 𝑆 obtida: • Considerando cada par de tuplos tr de r e ts de s • Se tr e ts têm o mesmo valor em cada um dos atributos em 𝑅 ∪ 𝑆, adicionar o tuplo t ao resultado tal que: • t tem o mesmo valor que tr em r; • t tem o mesmo valor que ts em s. • Exemplo: • 𝑅 = 𝐴, 𝐵, 𝐶, 𝐷 , 𝑆 = 𝐸, 𝐵, 𝐷 • Esquema resultante = (𝐴, 𝐵, 𝐶, 𝐷, 𝐸) • 𝑟 ⋈ 𝑠 = 𝜋𝑟.𝐴,𝑟.𝐵,𝑟.𝐶,𝑟.𝐷,𝑠.𝐸(𝜎𝑟.𝐵=𝑠.𝐵∧𝑟.𝐷=𝑠.𝐷(𝑟 × 𝑠))
  31. 31. Operação de Junção Natural - Exemplo • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D a 1 a x b 2 c x c 4 b y a 1 c x d 2 b y B D E 1 x a 3 x b 1 x c 2 y d 3 y e r = s =
  32. 32. Operação de Junção Natural - Exemplo • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D a 1 a x b 2 c x c 4 b y a 1 c x d 2 b y A B C D E a 1 a x a a 1 a x c a 1 c x a a 1 c x c d 2 b y d B D E 1 x a 3 x b 1 x c 2 y d 3 y e r = s =
  33. 33. Operação de Divisão • Notação: 𝑟 ÷ 𝑠 • Sejam r e s relações nos esquemas R e S respetivamente onde: • 𝑅 = (𝐴1, … , 𝐴𝑚, 𝐵1, … , 𝐵𝑛) • 𝑆 = (𝐵1, … , 𝐵𝑛) Então, 𝑟 ÷ 𝑠 é uma relação no esquema 𝑅 − 𝑆, tal que: 𝑟 ÷ 𝑠 = 𝑡 𝑡 ∈ 𝜋𝑅−𝑆 𝑡 ∧ ∀𝑢∈𝑠 𝑡𝑢 ∈ 𝑟 Onde 𝑡𝑢 representa a concatenação dos tuplos 𝑡 e 𝑢 resultando num único tuplo
  34. 34. Operação de Divisão - Exemplo • Relações r e s • 𝑟 ÷ 𝑠 =? A B a 1 a 2 a 3 b 1 c 1 d 1 d 3 d 4 e 6 e 1 b 2 B 1 2 r = s =
  35. 35. Operação de Divisão - Exemplo • Relações r e s • 𝑟 ÷ 𝑠 =? A B a 1 a 2 a 3 b 1 c 1 d 1 d 3 d 4 e 6 e 1 b 2 A a b B 1 2 r = s =
  36. 36. Operação de Divisão – Exemplo2 • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D E a x a x 1 a x c x 1 a x c y 1 b x c x 1 b x c y 3 c x c x 1 c x c y 1 c x b y 1 D E x 1 y 1 r = s =
  37. 37. Operação de Divisão – Exemplo2 • Relações r e s • 𝑟 ⋈ 𝑠 =? A B C D E a x a x 1 a x c x 1 a x c y 1 b x c x 1 b x c y 3 c x c x 1 c x c y 1 c x b y 1 A B C a x c c x c D E x 1 y 1 r = s =
  38. 38. Operação de Atribuição • A operação de atribuição (⟵) oferece uma forma conveniente de expressar queries complexas. • Escreve-se uma query como um programa sequencial composto por • Um conjunto de atribuições • Seguidos uma expressão cujo valor é o resultado da query • A atribuição é sempre feita para uma variável de relação temporária • Exemplo: podemos escrever 𝑟 ÷ 𝑠 como: • 𝑡𝑒𝑚𝑝1 ⟵ 𝜋𝑅−𝑆 𝑟 • 𝑡𝑒𝑚𝑝2 ⟵ 𝜋𝑅−𝑆 𝑡𝑒𝑚𝑝1 × 𝑆 − 𝜋𝑅−𝑆,𝑆 𝑟 • 𝑟𝑒𝑠𝑢𝑙𝑡 = 𝑡𝑒𝑚𝑝1 − 𝑡𝑒𝑚𝑝2 • O resultado à direita de ⟵ é atribuído à variável de relação à esquerda de ⟵
  39. 39. Operações Estendidas • Definimos operações adicionais que acrescentam poder expressivo à algebra relacional e permitem definir operações como: • Projeção generalizada • Funções de agregação
  40. 40. Projeção Generalizada • Estende a operação de projeção permitindo a utilização de expressões aritméticas na lista de projeções 𝜋𝐹1,𝐹2,…,𝐹𝑛 𝐸 • 𝐸é qualquer expreção de álgebra relacional • Cada 𝐹1, 𝐹2, … , 𝐹𝑛são expressões aritméticas envolvendo constantes e atributos do esquema 𝐸 • Exemplo: Dada a relação Credito_info(nome_cliente, limite, saldo_credito) Descubra quanto pode ainda gastar cada pessoa. 𝜋𝑛𝑜𝑚𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒,𝑙𝑖𝑚𝑖𝑡𝑒−𝑠𝑎𝑙𝑑𝑜_𝑐𝑟𝑒𝑑𝑖𝑡𝑜(𝑐𝑟𝑒𝑑𝑖𝑡𝑜_𝑖𝑛𝑓𝑜)
  41. 41. Projeção Generalizada - Exemplo • Relação r • 𝜋𝐴,𝐶∗10 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2
  42. 42. Projeção Generalizada - Exemplo • Relação r • 𝜋𝐴,𝐶∗10 𝑟 =? A B C a 10 1 a 20 1 b 30 1 b 40 2 A C*10 a 10 b 10 b 20
  43. 43. Funções de Agregação • Funções de agregação aplicam-se a uma coleção de valores e devolvem um único valor como resultado: • avg: média dos valores • min: mínimo dos valores • max: máximo dos valores • sum: soma dos valores • count: número de valores
  44. 44. Operação de Agregação • Operação de agregação em álgebra relacional 𝐺1,𝐺2,…,𝐺𝑛 𝒢𝐹1 𝐴1 ,𝐹2 𝐴2 ,…,𝐹𝑛 𝐴𝑛 𝐸 • 𝐸 é qualquer expressão de álgebra relacional • 𝐺1, 𝐺2, … , 𝐺𝑛 é uma lista de atributos nas quais se quer agrupar (pode ser vazio) • Cada 𝐹𝑖 representa uma função de agregação • Cada 𝐴𝑖 representa um nome de atributo
  45. 45. Operação de Agregação - Exemplo • Relação r • 𝒢𝑠𝑢𝑚 𝐶 𝑟 =? A B C a a 7 a b 7 b b 3 b b 10
  46. 46. Operação de Agregação - Exemplo • Relação r • 𝒢𝑠𝑢𝑚 𝐶 𝑟 =? A B C a a 7 a b 7 b b 3 b b 10 sum(C) 27
  47. 47. Operação de Agregação – Exemplo2 • Relação conta agrupado por agencia_nome • 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎 agencia_nome conta_numero saldo Lumiar A-102 400 Lumiar A-201 900 Amoreiras A-217 750 Amoreiras A-215 750 Campolide A-222 700
  48. 48. Operação de Agregação – Exemplo2 • Relação conta agrupado por agencia_nome • 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚(𝑠𝑎𝑙𝑑𝑜) 𝑐𝑜𝑛𝑡𝑎 agencia_nome conta_numero saldo Lumiar A-102 400 Lumiar A-201 900 Amoreiras A-217 750 Amoreiras A-215 750 Campolide A-222 700 agencia_nome sum(saldo) Lumiar 1300 Amoreiras 1500 Campolide 700
  49. 49. Operação de Agregação (cont.) • O resultado da agregação não tem nome • Pode-se utilizar a operação de renomeação para atribuir um nome • Por conveniência, é permitida a renomeação como parte da operação de agregação 𝑎𝑔𝑒𝑛𝑐𝑖𝑎_𝑛𝑜𝑚𝑒𝒢𝑠𝑢𝑚 𝑠𝑎𝑙𝑑𝑜 𝑎𝑠 𝑠𝑜𝑚𝑎_𝑠𝑎𝑙𝑑𝑜 𝑐𝑜𝑛𝑡𝑎 agencia_nome soma_saldo Lumiar 1300 Amoreiras 1500 Campolide 700

×