u álgebra relacional rs, não se assuste com o nome, você vai perceber através deste artigo que a linguagem SQL incorpora alguns de seus conceitos e que a álgebra relacional serve como fundamento formal para se trabalhar com o modelo relacional, permitindo implementar e otimizar consultas.
Bom, mas como de costume vamos primeiro esclarecer alguns conceitos antes de entrarmos no assunto.
Banco de dados
É uma estrutura organizada para obviamente o armazenamento de dados, que na maioria das vezes não fazem sentido quando isolados (dados brutos), mas após processados ou agrupados nos trazem alguma informação. Por exemplo, se eu simplesmente lhe dissesse 1930, você iria me perguntar 1930 o que? E eu lhe responderia 1930 foi a primeira edição da Copa do Mundo de Futebol, ou seja, outros dados (metadados) foram necessários para o que foi dito fizesse sentido. Um banco de dados nos permite extrair informações de determinado domínio, isto é, informações que tenham alguma relação entre si.
Modelo relacional
O modelo relacional representa os dados como uma coleção de relações (também chamadas de tabelas ou entidades) que possuem tuplas (também chamadas de linhas ou registros) e atributos (ou colunas). Cada tabela tem um nome único e um conjunto de atributos onde os valores armazenados são do mesmo tipo.
Banco de dados relacional
Como o próprio nome já diz, trata-se de um banco de dados que segue o modelo relacional. A linguagem adotada como padrão para este tipo de banco de dados é a Structured Query Language ou SQL, criada pela IBM Research.
Sistema de Gerenciamento de Banco de Dados Relacional (SGBDR)
Em virtude da enorme quantidade de dados e informações, seria difícil e muito demorado para um ser humano gerenciar de forma ágil o que está contido no banco de dados, por isso precisamos de um conjunto de recursos que juntos sejam capazes de permitir a interação com o banco de dados da melhor maneira possível, seja manipulando estes dados (incluir, alterar ou consultar) ou mantendo sua integridade e segurança, é aí que entram os SGBDRs, tais como SQL-Server, MySQL, DB2, entre outros.
Álgebra Relacional
A álgebra relacional é uma maneira teórica de se manipular um banco de dados relacional e assim como na álgebra existem algumas operações para isso. Quando aplicamos uma operação da álgebra relacional sobre uma relação temos sempre como resultado uma nova relação e o encadeamento dessas operações resulta numa consulta à base de dados.
As operações se encaixam em dois grupos, operações de conjunto provenientes da teoria dos conjuntos da matemática e operações relacionais, específicas de banco de dados.[table id=1 /][table id=2 /]
Vamos começar utilizando duas tabelas simples sobre produtos de informática
União
Sintaxe: (Relação A) U (Relação B)
(ProdutosA) U (ProdutosB)
Intersecção
Sintaxe: (Relação A) ∩ (Relação B)
(ProdutosA) ∩ (ProdutosB)
Diferença ou Subtração
Sintaxe: (Relação A) – (Relação B)
(ProdutosA) - (ProdutosB)
Produto ou Produto Cartesiano
Sintaxe: (Relação A) x (Relação B)
(Produtos) x (Fornecedores)
Seleção
Sintaxe: σ (predicado) (Relação)
σ (Preco > 800) (Produtos)
Projeção
Sintaxe: π atributos (Relação)
π Codigo, Preco (Produtos)
Renomear
Sintaxe: ρ novo_nome_relação (atr1, atr2, …, atrN) (Relação)
Relação resultante: todos os produtos que possuem o mesmo preço de um Tablet
π Produtos2.Cod_Produto, Produtos2.Nome, Produtos2.Preco (
σ Produtos.Preco = Produtos2.Preco (
π Nome, Preco (σ Nome = 'Tablet' (Produtos)) x ρ Produtos2 (Produtos)
)
)
Repare que a consulta é realizada utilizando somente a tabela Produtos e para que não haja ambiguidade em relação aos nomes das colunas, renomeamos para Produtos2, como se estivéssemos trabalhando com uma cópia da tabela original.
Divisão
Esta operação se resume em duas regras:
- Os atributos da relação resultante são aqueles que PERTENCEM a Relação 1 e NÃO PERTENCEM a Relação 2
- As linhas da relação resultante são aquelas cujos valores das colunas estão presentes NAS DUAS RELAÇÕES
Sintaxe: (Relação 1) ÷ (Relação 2)
Relação resultante: produtos que foram vendidos para todos os clientes no mesmo dia
(Vendas) ÷ (Clientes)
Junção
Sintaxe: (Relação 1) |x| <condição> (Relação 2)
Relação resultante: todos os produtos e seus respectivos fabricantes
π Cod_Produto, Nome_Produto, Cod_Fabricante, Nome_Fabricante ((Produtos) |x| (Fabricantes))
Foram mencionados os operadores mais comuns, porém ainda existem outros como Atribuição, Agregação, Semi-junção, para saber mais não deixe de consultar outras fontes e se gostou do artigo não deixe de compartilhar, até a próxima!
