Pular para o conteúdo

Introdução aos Conceitos de Álgebra Relacional e sua Importância na Tecnologia de Banco de Dados

Álgebra Relacional

Boa noite pessoal,

Neste artigo vou introduzir os conceitos de Álgebra Relacional.

Mas para isso vou contar mais um pouco de história.

Com o avanço tecnológico da década de 70 as empresas perceberam que guardar informações num armário de arquivo cheio de pastas, como citei no post anterior, era muito demorado e custoso, também perceberam que a tecnologia de banco de dados da época era pouco flexível, difícil de trabalhar e altamente técnica. Nasce aí a necessidade de um novo conceito.

Posso dizer grosso modo que antes da década de 70 o acesso aos dados de um banco era uma tarefa realmente complicada e que estaríamos muito atrasados se continuássemos com aquela tecnologia.

Foi nos laboratórios da IBM que Ted Cood desenvolveu e propôs o modelo de dados relacional, este modelo é base para tudo que temos atualmente.

De onde veio o modelo de dados relacional? Este modelo é baseado na Álgebra Relacional que é um modelo matemático baseado em conjuntos.

Alguns conceitos de Álgebra Relacional.

Projeção

“Geralmente indicada na literatura por p (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.” *
Ex.: p NmFunc (funcionário)

Resumindo: É a coluna que você deseja obter de uma tabela.

Seleção

“Indicada por s (a letra grega sigma), é uma operação que para um conjunto inicial fornecido como argumento, produz um subconjunto estruturalmente idêntico, 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, e é também uma operação unária, já que opera sobre um único conjunto de dados. “ *
Ex.: s Sexo = ‘M’ (funcionário)

Resumindo: É a condição, filtro, para você selecionar os dados. (where)

Produto Cartesiano

A notação geralmente adotada (na forma ‘conjunto1 x conjunto2’) para representar essa operação binária indica bem a sua natureza: o resultado do produto cartesiano de duas tabelas é uma terceira tabela contendo todas as combinações possíveis entre os elementos das tabelas originais. Essa tabela resultante possuirá um número de colunas que é igual à soma das quantidades de colunas das duas tabelas iniciais, e um número de linhas igual ao produto do número de suas linhas. Portanto, se fizermos o produto cartesiano de uma tabela A que possua 4 colunas e 10 linhas com uma tabela B onde existem 3 colunas e 7 linhas, a tabela resultante terá 4+3= 7 colunas e 10*7= 70 linhas. Assim, cada linha dessa tabela corresponderá à concatenação de uma linha da primeira tabela com uma linha da segunda.

Ex.: p NmFunc, DtAdm, VrSalário ( s funcionário.CdCargo = cargo.CdCargo Ÿ Sexo = ‘M’(funcionário x cargo))

Resumindo: É a soma dos registros de duas tabelas em uma terceira com os dados todos juntos. É pouco comum ter uma tabela com esse tipo de informação, normalmente é aplicada a projeção e a seleção para obter-se um resultado do produto cartesiano.

Diferença entre conjuntos

“É uma operação primitiva que requer como operando duas tabelas união-compatíveis, ou seja, estruturalmente idênticas. O resultado é uma tabela que possui todas as linhas que existem na primeira tabela e não existem na segunda. “*

União

“Esta operação primitiva também requer como operando tabelas união-compatíveis. Produz como resultado uma tabela que contém todas as linhas da primeira tabela seguidas de todas as linhas da segunda tabela. A tabela resultante possui a mesma quantidade de colunas que as tabelas originais, e tem um número de linhas que é no máximo igual à soma das linhas das tabelas fornecidas como operando, já que as linhas que são comuns a ambas as tabelas aparecem uma única vez no resultado. “*

Intersecção

“Esta é uma operação adicional que produz como resultado uma tabela que contém, sem repetições, todos os elementos que são comuns às duas tabelas fornecidas como operando. As tabelas devem ser união-compatíveis. “*

Junção

“É uma operação que produz uma combinação entre as linhas de uma tabela com as linhas correspondentes de outra tabela, sendo em princípio correspondente a uma seleção pelos atributos de relacionamento sobre um produto cartesiano dessas tabelas.”*

Renomeação

“Geralmente representada pelo símbolo r r (a letra grega rho minúscula), esta operação unária primitiva redefine o nome de uma tabela em um determinado contexto. É útil 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.”*

Divisão

“É uma operação adicional que produz como resultado a projeção de todos os elementos da primeira tabela que se relacionam com todos os elementos da segunda tabela.”*

Atribuição

“Permite que o conteúdo de uma tabela seja atribuído (colocado) em uma variável especial, oferecendo a possibilidade de um tratamento até certo ponto algorítmico para algumas seqüências de operações.” *

  • Essas citações são do professor Antonio Cesar de Barros Munari e eu retirei de sua apostila “Operações relacionais e Álgebra relacional”. Pois achei a definição muito clara e objetiva, sugiro que leiam a apostila, pois ela contém exemplos que não coloquei aqui e que são muito claros.
  • Link: http://www.pucrs.campus2.br/~jiani/bd/OpRelacional.pdf

Abraços e até a próxima.

antognolli

antognolli

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress