Álgebra Relacional - História
Autor: Elder Stroparo | Publicado: 2014-11-25T08:51:00-08:00





Hoje vou falar sobre&nbsp;Álgebra Relacional&nbsp;, focando no conceito juntamente com a sua história no meio da ciências da computação,&nbsp;álgebra relacional&nbsp;é uma derivação descendente da lógica de primeira ordem (LPO) e da álgebra de conjuntos&nbsp;em relação das&nbsp;operações&nbsp;sobre a&nbsp;relação finítimo, que auxilia o trabalho ao identificar os componentes de uma&nbsp;tupla&nbsp;por nome (chamado o atributo) ao invés de uma coluna de chaves numéricas, o qual é chamado a&nbsp;relação&nbsp;na terminologia de banco de dados.

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


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

Na álgebra relacional, são admitidas ambas perspectivas de dar um nome ou não, dependendo se as tuplas são dotadas de nome de componente ou não. Na perspectiva sem nome, a&nbsp;tupla&nbsp;é simplesmente um membro de um&nbsp;produto cartesiano. Na perspectiva da tupla ter um nome de componente, tuplas são funções do conjunto finito de atributos&nbsp;U&nbsp;(da relação) a um domínio de valores (assumidos distintos dos de&nbsp;U).&nbsp;As álgebras relacionais obtidas das duas perspectivas são equivalentes.

Também a&nbsp;álgebra relacional&nbsp;é equivalente em poder expressivo a&nbsp;cálculo relacional&nbsp;(e por conseguinte&nbsp;lógica de predicado ou primeira ordem); esse resultado é conhecido como o&nbsp;teorema de Codd. Na prática, deve ser prestada atenção em desambiguar as duas linguagens porque a negação quando aplicada a uma formula em cálculo, faz a construção da formula que pode ser verdadeira ou um conjunto infinito de tuplas, enquanto o operador diferença na álgebra relacional devolve sempre um resultado finito.

Para ultrapassar estas dificuldades, Codd&nbsp;restringiu os&nbsp;operando&nbsp;da álgebra relacional&nbsp;somente para relação finita e propôs suporte restrito para a negação (NOT) e a disjunção (OR). Restrições análogas são encontradas em muitas outras linguagens de programação lógicas. Codd definiu o termo&nbsp;completeza relacional&nbsp;para se referir a uma linguagem que está completa em respeito a cálculo de lógica da primeira ordem à parte com as restrições que ele propunha. Na prática as restrições têm um efeito adverso na aplicabilidade da sua álgebra relacional para usos 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&nbsp;conjuntos.

As operações em questão são:&nbsp;





Restrição
Seleção
Projeção
Produto
União
Intercessão
Diferença
Junção
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.








Bom é isto ai, em breve postarei mais sobre&nbsp;Álgebra Relacional com alguns exemplos de algumas operações para ficar de mais fácil entendimento.