aula 05 base de dados - Álgebra relacional e cálculo relacional
TRANSCRIPT
![Page 1: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/1.jpg)
Base de Dados Álgebra relacional e Cálculo Relacional
![Page 2: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/4.jpg)
Á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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/5.jpg)
Á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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/10.jpg)
As operações relacionais
Operações específicas para relações:
![Page 11: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/17.jpg)
Selecção e projecção juntos
![Page 18: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/18.jpg)
Juntar relaçes
![Page 19: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/20.jpg)
Exemplo Produto Cartesiano
![Page 21: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/24.jpg)
Exemplo Renomenação
![Page 25: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/26.jpg)
Exemplo Junção ou “Theta‐Join”
![Page 27: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/28.jpg)
Exemplo Junção Natural ou “Equi‐Join”
![Page 29: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/32.jpg)
Exemplo Divisão
![Page 33: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/35.jpg)
Propriedades dos operadores:
![Page 36: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/36.jpg)
Representação de expressões por árvores:
![Page 37: Aula 05 Base de Dados - Álgebra relacional e Cálculo Relacional](https://reader036.vdocuments.pub/reader036/viewer/2022081720/54801ad1b479592c578b45d4/html5/thumbnails/37.jpg)
Resumo