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
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
Á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
Á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
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.
As operações relacionais
Select– Selecção; Project– Projecção; Join– Junção; Divide – Divisão.
Aplicam‐se especificamente ao modelo de dados relacional.
As operações relacionais
Assignment– Designação, Atribuição.
É uma operação padrão das linguagens computacionais.
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!
As operações relacionais
Operações específicas para relações:
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
Exemplo de Selecção
Estudantes com CR > 8,0
σCR> 8,0 (estudante)
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)
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
Exemplo de Projecção
SID e nome dos estudantes
πSID,Nome (estudante)
Exemplo de Projecção
SID e nome dos estudantes
πidade (estudante)
Duplicidade deve ser eliminada
Selecção e projecção juntos
Juntar relaçes
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
Exemplo Produto Cartesiano
Nota sobre Produto Cartesiano
A ordem das colunas não é importante Assim a operação é comutaIva
R X S = S X R
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
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
Exemplo Renomenação
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)
Exemplo Junção ou “Theta‐Join”
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
Exemplo Junção Natural ou “Equi‐Join”
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
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
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”
Exemplo Divisão
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)
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
Propriedades dos operadores:
Representação de expressões por árvores:
Resumo