Hoje vou falar sobre Álgebra Relacional , focando no conceito juntamente com a sua história no meio da ciências da computação, álgebra relacional é uma derivação descendente da lógica de primeira ordem (LPO) e da álgebra de conjuntos em relação das operações sobre a relação finítimo, que auxilia o trabalho ao identificar os componentes de uma tupla por nome (chamado o atributo) ao invés de uma coluna de chaves numéricas, o qual é chamado a relação na terminologia de banco de dados.
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.
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.
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.
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 tupla é simplesmente um membro de um produto cartesiano. Na perspectiva da tupla ter um nome de componente, tuplas são funções do conjunto finito de atributos U (da relação) a um domínio de valores (assumidos distintos dos de U). As álgebras relacionais obtidas das duas perspectivas são equivalentes.
Também a álgebra relacional é equivalente em poder expressivo a cálculo relacional (e por conseguinte lógica de predicado ou primeira ordem); esse resultado é conhecido como o 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 restringiu os operando da álgebra relacional 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 completeza relacional 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 conjuntos.
As operações em questão são:
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 tupla é simplesmente um membro de um produto cartesiano. Na perspectiva da tupla ter um nome de componente, tuplas são funções do conjunto finito de atributos U (da relação) a um domínio de valores (assumidos distintos dos de U). As álgebras relacionais obtidas das duas perspectivas são equivalentes.
Também a álgebra relacional é equivalente em poder expressivo a cálculo relacional (e por conseguinte lógica de predicado ou primeira ordem); esse resultado é conhecido como o 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 restringiu os operando da álgebra relacional 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 completeza relacional 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 conjuntos.
As operações em questão são:
- 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 Álgebra Relacional com alguns exemplos de algumas operações para ficar de mais fácil entendimento.