Álgebra Relacional

A principal aplicação da álgebra relacional é sustentar a fundamentação teórica de banco de dados relacional, particularmente linguagem de consulta para tais bancos de dados, entre os maiores o SQL.

 

 

Introdução

A álgebra relacional recebia pouca atenção fora do campo da matemática pura até à publicação em 1970 do modelo relacional de dados de E.F. Codd. Codd propôs tal álgebra como a base das linguagens de consulta de banco de dados.

Definimos assim a álgebra relacional como uma linguagem de consulta formal i.e. uma coleção de operações de alto nível sobre relações ou conjuntos. As operações em questão são: restrição (seleção), projeção, produto, união, intercessão, diferença, junção e dividir. De facto, dos oito, só 5 são primitivos, nomeadamente restrição, projeção, produto, união, e diferença. Os outros três podem ser definidos destes cinco. Todas essas operações produzem uma nova relação como seu resultado.

Operadores primitivos

Como em qualquer álgebra, alguns operadores são primitivos e os outros são derivados em termos dos primitivos.

Os cinco operadores primitivos de Codd na álgebra são o de seleção, a projeção, produto cartesiano (também chamado de produto cruz ou junção cruz), a união, e a diferença .

Projeção

A projeção é uma operação unária escrita como onde é um conjunto de nome de atributos. O resultado de tal projeção é definida como o conjunto que é obtido quando todas as tuplas em R são restritas ao conjunto .

Isto especifica o subconjunto de colunas (atributos de cada tupla) a ser seleccionado. Para obter os nomes e número de telefones da lista de endereços, a projeção poderia ser escrita . O resultado de tal projeção seria uma relação com apenas os Nomecontacto e Ntelefonecontacto para cada entrada única no livroendereços.

Geralmente indicada na literatura por (a letra grega pi) produz um conjunto onde há um elemento para cada elemento do conjunto de entrada, sendo que a estrutura dos membros do conjunto resultante é definida nos argumentos da operação. Pode ser entendida como uma operação que filtra as colunas de uma tabela. Por operar sobre apenas um conjunto de entrada, a projeção é classificada como uma Operação unária.

Sintaxe

pi LISTA_ATRIBUTOS (RELAÇÃO)

Exemplo

pi  NmFunc (FUNCIONÁRIO)

Essa expressão produz um conjunto contendo um elemento para cada funcionário, e cada elemento contém apenas a informação referente a NmFunc da relação funcionário original.

Agora estamos interessados em identificar todos os funcionários de sexo masculino existentes no banco de dados. É uma situação que não podemos resolver com projeções apenas, uma vez que deveremos descartar elementos do conjunto inicial. Para casos desse tipo existe uma operação relacional chamada Seleção.

Seleção (σ)

Uma seleção generalizada é uma operação unária escrita como onde é uma fórmula proposicional que consiste de átomos como é permitido na seleção normal e operadores os lógicos (and), (or) e (negação). Esta seleção seleciona todas as tuplas em R para cada valor de .

Para obter uma listagem de todos os amigos ou associados no livro de endereços, a selecão podia ser escrita como . O resultado seria uma relação que tinha todos atributos de todos os registo únicos onde eamigo é verdadeiro ou onde econtactocomercial é verdadeiro.

O operador de Seleção, indicado por σ (a letra grega sigma minúscula), é um dos operadores fundamentais da Álgebra relacional. É um operador que tem como resultado um subconjunto estruturalmente idêntico a de um conjunto inicial fornecido como argumento, mas apenas com os elementos do conjunto original que atendem a uma determinada condição (também chamada de predicado). A seleção pode ser entendida como uma operação que filtra as linhas de uma tabela. É uma operação unária, já que opera sobre um único conjunto de dados de entrada.

Sintaxe

Notação do operador:

σ (predicado) (Relação)

Onde, predicado é o conjunto de expressões lógicas que devem ser satisfeitas para uma linha que faça parte do subconjunto resultante. E relação é o conjunto de entrada (inicial).

As expressões lógicas podem ser formadas por operadores lógicos e relacionais:

Os operadores lógicos são:
• ^ (and)
• v (or)
• ¬ (not)
Os operadores relacionais são:
= (Igual a)
< (Menor que)
<= (Menor ou igual a)
> (Maior que)
>= (Maior ou igual a)
<> (Diferente de)

Exemplos Reais

σ Nome <> "João"  (Funcionario)

Buscando todas as linhas da Tabela funcionario onde o Nome do funcionário seja diferente de "João".

σ Departamento = "Desenvolvimento" ^ Salario < 1290,00 (Funcionario)

Buscando todas as linhas da Tabela Funcionario onde o Departamento do funcionário seja igual a "Desenvolvimento" e que tenha salário inferior a "1290,00".

Renomear (p)

Renomear é uma operação unária escrita como onde o resultado é idêntico ao R excepto que o campo b em todas as tuplas é renomeado para um atributo a. Isto é simplesmente usado para mudar o nome do atributo de uma relação ou a relação em si.

Para renomear o atributo 'eamigo' para 'econtactocomercial' na relação, pode ser utilizado.

Sintaxe

ρ(c1, c2, ..., cn) R

Onde c são os novos nomes das colunas e R é a relação.

O exemplo acima, em SQL, ficaria assim:

SELECT x as a, y as b, z as c FROM R

Álgebra Relacional

By walternascimento

Álgebra Relacional

  • 287