aula 05 base de dados - Álgebra relacional e cálculo relacional

37
Base de Dados Álgebra relacional e Cálculo Relacional

Upload: rbn-veiga

Post on 04-Dec-2014

51 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

 Base de Dados Álgebra relacional e Cálculo Relacional 

Page 2: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Introdução 

  Linguagem de Definição de Dados (LDD):   comandos para definição do esquema lógico e :sico do BD 

  Linguagem de Manipulação de Dados (LMD):   comandos para especificação de consultas ao BD   comandos para manipulação dos dados no BD: 

  inserção   actualização   remoção 

  Classificação das linguagens:   procedimentais:consultas especificam a ordem de execução das 

operações necessárias para obter a resposta   declara0vas:consultas especificam a resposta, sem indicar que 

operações devem ser realizadas para obtê‐la 

Page 3: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Introdução 

  Cálculo Relacional   linguagem declaraIva   paradigma para as linguagens relacionais 

  Álgebra Relacional   procedimental   mesmo poder de expressão que o Cálculo Relacional   variantes da Álgebra Relacional são usadas internamente pelos 

SGBDs relacionais durante a oImização de consultas   SQL ‐ Structured Query Language 

  originária do Cálculo Relacional   “semi‐declaraIva”   interface padrão dos SGBDs relacionais 

Page 4: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

ÁlgebraRelacional 

  Conjunto de operadores que permitem manipular relações: 

  Operações sobre conjuntos:  

  Remover linhas (selecção) 

  remover colunas (projecção) 

  Operações que combinam informação conIda em varias relações: produtos cartesianos e joins. 

  Mudar o nome a relações e atributos 

Page 5: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

ÁlgebraRelacional 

  Álgebra Relacional:   operações mapeiam uma ou mais relações em uma nova relação   algumas operações impõem restrições nas relações de entrada 

  Operações:   Básicas: 

  oriundas da teoria de conjuntos: Produto Cartesiano, União e Diferença   específicas para relações: Seleção, Projeção e Renomeção 

  Adicionais   oriundas da teoria de conjuntos: Interseção   específicas para relações: Divisão e Junção 

  Notas:   as operações básicas são suficientes para exprimir as mesmas consultas 

que o Cálculo Relacional   as operações adicionais ajudam a formular certas consultas que seriam 

muito complexas de exprimir usando apenas as operações básicas 

Page 6: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

As operações relacionais 

  São definidas nove operações para se trabalhar com álgebra relacional:   Union –União;   IntersecIon– Intersecção;   Difference– Diferença, Subtração;   Product – Produto, Produto Cartesiano. 

  Estas quatro operações são provenientes da teoria de conjuntos, da matemáIca. 

Page 7: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

As operações relacionais 

  Select– Selecção;   Project– Projecção;   Join– Junção;   Divide – Divisão.  

  Aplicam‐se especificamente ao modelo de dados relacional. 

Page 8: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

As operações relacionais 

  Assignment– Designação, Atribuição.  

  É uma operação padrão das linguagens computacionais.  

Page 9: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

As operações relacionais 

  Básicas    Selecção (σ) ‐ seleciona um subconjunto de linhas de uma 

relação    Projecção (π) – apaga colunas desnecessárias de uma relação    Produto cartesiano (X) – permite combinar duas relações    União (U) ‐ tuplas na relação 1 e na relação 2   Diferença (‐) – tuplas na relação 1 mas não na relação 2    Renomeação (ρ) – renomeia tabela    Atribuição (←) – Atribui valores as variáveis 

   Derivadas    Junção, interseção, divisão    muito úteis! 

Page 10: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

As operações relacionais 

  Operações específicas para relações: 

Page 11: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Selecção 

  Notação: σp    “p” é chamado predicado/condição de selecção 

   Entrada: Tabela (R)     Operadores  de  comparação  (=,  <,  <=,  >,  >=)  e  Operadores 

lógicos: Λ (and), V(or) e ¬ (not) 

  Propósito: filtragem de linhas de acordo com um critério 

    Saída: mesmas  colunas  de  R,  porém  somente  as  linhas  de  R que saIsfazem ao critério p 

Page 12: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo de Selecção 

  Estudantes com CR > 8,0 

 σCR> 8,0 (estudante) 

Page 13: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Selecção 

  Um predicado de seleção pode incluir, em geral, qualquer coluna de R, constantes, comparações (=, ∙, etc., ) e conecIvos booleanos (∧, ∨, and ~) 

   Exemplo: Estudantes com CR > 8,0 e menores de 18 ou maiores que 21anos 

  σcr> 8,0 ∧ (idade < 18 ∨idade > 21) (estudante) 

Page 14: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Projecção 

  Notação: πL    “L” lista de atributos de R 

   Entrada: Tabela (R) 

   Propósito: seleciona colunas em R 

   Saída: mesmas linhas de R, porém somente as colunas de R que saIsfazem ao critério L 

Page 15: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo de Projecção 

  SID e nome dos estudantes 

   πSID,Nome (estudante) 

Page 16: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo de Projecção 

  SID e nome dos estudantes 

 πidade (estudante) 

  Duplicidade deve ser eliminada 

Page 17: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Selecção e projecção juntos 

Page 18: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Juntar relaçes 

Page 19: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Produto Cartesiano 

  Notação: R X S 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: gera combinações de linhas das duas tabelas 

   Saída: Para cada linha r em R e cada linha sem S, gerar a tupla rs 

Page 20: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo Produto Cartesiano 

Page 21: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Nota sobre Produto Cartesiano 

  A ordem das colunas não é importante    Assim a operação é comutaIva 

   R X S = S X R 

Page 22: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

União 

  Notação: R U S    R e S devem ter o mesmo esquema 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: gera linhas de acordo com um critério 

   Saída: Contém todas as linhas de R e de S   O esquema é o mesmo das tabelas de entrada    Duplicidade é eliminada 

Page 23: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Renomeação 

  Notação: ρS (R) ou ρS(A1,A2, ...) (R)    Renomeia R para S ou  renomeia R para S  com atributos  renomeados 

A1, A2, ...    Entrada: Tabela (R)    Propósito: redefinir nome tabelas / ou colunas num contexto    Saída: Tabela renomeada com mesmas linhas de R   Usada para    ÚIl para auto‐relacionamentos, onde precisamos fazer a  junção de 

uma  tabela  com  ela  mesma,  e  nesse  caso  cada  versão  da  tabela precisa receber um nome diferente da outra. 

   Cria colunas idênIcas numa junção natural 

Page 24: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo Renomenação 

Page 25: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Junção 

  Notação: R          S    “p” é a condição/predicado da junção 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: gera linhas de acordo com um critério 

   Saída: Para cada linha r em R e cada linha sem S, 

  gerar a tupla rs se, e somente se,atenderem a condição p 

   Abreviação para σp ( R X S) 

Page 26: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo Junção ou “Theta‐Join” 

Page 27: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Operador Derivado Junção Natural 

  Notação: R        S 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: relaciona linhas das tabelas    Reforça a igualdade de seus atributos    Elimina 1 cópia dos atributos comuns 

  Saída: Para cada linha r em R e cada linha sem S, gerar a tupla rs se, e somente se,atenderem a condição p 

Page 28: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo Junção Natural ou “Equi‐Join” 

Page 29: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Diferença 

  Notação: R ‐ S    R e S devem ter o mesmo esquema 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: gera linhas de acordo com um critério 

   Saída: Contém todas as linhas de R e que não são encontradas em S    O esquema é o mesmo das tabelas de entrada 

Page 30: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Operador Derivado ‐ Interseção 

  Notação: R ∩ S    R e S devem ter o mesmo esquema 

   Entrada: Tabela (R) e Tabela (S) 

   Propósito: gera linhas de acordo com um critério 

   Saída: Contém todas as linhas de R que são encontradas em S também   O esquema é o mesmo das tabelas de entrada    R – (R – S) ou S – (S – R) ou R S 

Page 31: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Divisão 

  Notação: R     S 

   Entrada: Tabela (R) e Tabela (S)    Seja grau a medida de atributos de mesmo nome 

   R tem grau (“m”+”n”)    S tem grau “n” 

  Propósito: gera linhas de acordo com um critério 

   Saída: atributos de S cujos valores associam‐se com todos os valores de R    Grau “m” 

Page 32: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Exemplo Divisão 

Page 33: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Atribuição 

  Armazena o resultado de uma expressão algébrica em uma variável de relação    permite o processamento de uma consulta 

complexa em etapas 

   Notação    nomeVariável← expressãoÁlgebra

  Exemplo    r1 ← σnome=‘bob’ (estudante) 

Page 34: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Funções Agregadas 

  Para  aquelas  consultas  que  não  podem  ser resolvidas  simplesmente  através  da  álgebra relacional,  introduz‐se  um  conjunto  de  funções agregadas 

    Funções  comumente  aplicadas  a  conjuntos  de dados  são:  Média,  Máximo,  Mínimo,  Soma, Contador 

Page 35: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Propriedades dos operadores: 

Page 36: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Representação de expressões por árvores: 

Page 37: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional

Resumo