Á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.