Álgebra Relacional

Espera-se que os sistemas de banco de dados relacional sejam equipados com uma linguagem de consulta que possa ajudar seus usuários a consultar as instâncias do banco de dados. Existem dois tipos de linguagens de consulta - álgebra relacional e cálculo relacional.

Álgebra Relacional

A álgebra relacional é uma linguagem de consulta procedural, que recebe instâncias de relações como entrada e produz instâncias de relações como saída. Ele usa operadores para realizar consultas. Um operador pode serunary ou binary. Eles aceitam relações como sua entrada e relações de produção como sua saída. A álgebra relacional é realizada recursivamente em uma relação e os resultados intermediários também são considerados relações.

As operações fundamentais da álgebra relacional são as seguintes -

  • Select
  • Project
  • Union
  • Definir diferente
  • produto cartesiano
  • Rename

Discutiremos todas essas operações nas seções a seguir.

Selecione a operação (σ)

Ele seleciona tuplas que satisfazem o predicado dado de uma relação.

Notation- σ p (r)

Onde σ significa predicado de seleção e rrepresenta relação. p é a fórmula lógica preposicional que pode usar conectores comoand, or, e not. Esses termos podem usar operadores relacionais como - =, ≠, ≥, <,>, ≤.

For example -

σsubject = "database"(Books)

Output - Seleciona tuplas de livros onde o assunto é 'banco de dados'.

σsubject = "database" and price = "450"(Books)

Output - Seleciona tuplas de livros onde o assunto é 'banco de dados' e o 'preço' é 450.

σsubject = "database" and price = "450" or year > "2010"(Books)

Output - Seleciona tuplas de livros em que o assunto é 'banco de dados' e o 'preço' é 450 ou os livros publicados após 2010.

Operação do Projeto (∏)

Ele projeta coluna (s) que satisfazem um determinado predicado.

Notação - ∏ A 1 , A 2 , A n (r)

Onde A 1 , A 2 , A n são nomes de atributos da relaçãor.

As linhas duplicadas são eliminadas automaticamente, pois a relação é um conjunto.

For example -

subject, author (Books)

Seleciona e projeta colunas nomeadas como assunto e autor da relação Livros.

Operação Sindical (∪)

Ele realiza a união binária entre duas relações dadas e é definido como -

r ∪ s = { t | t ∈ r or t ∈ s}

Notation - r U s

Onde r e s são relações de banco de dados ou conjunto de resultados de relação (relação temporária).

Para que uma operação sindical seja válida, as seguintes condições devem ser mantidas -

  • r, e s deve ter o mesmo número de atributos.
  • Os domínios de atributo devem ser compatíveis.
  • As tuplas duplicadas são eliminadas automaticamente.
author (Books) ∪ ∏ author (Articles)

Output - Projeta os nomes dos autores que escreveram um livro, um artigo ou ambos.

Definir diferença (-)

O resultado da operação de diferença de conjuntos são tuplas, que estão presentes em uma relação, mas não estão na segunda relação.

Notation - r - s

Encontra todas as tuplas que estão presentes em r mas não em s.

author (Books) − ∏ author (Articles)

Output - Fornece o nome de autores que escreveram livros, mas não artigos.

Produto cartesiano (Χ)

Combina informações de duas relações diferentes em uma.

Notation - r Χ s

Onde r e s são relações e sua saída será definida como -

r Χ s = {qt | q ∈ r e t ∈ s}

σauthor = 'tutorialspoint'(Books Χ Articles)

Output - Rende uma relação, que mostra todos os livros e artigos escritos por ponto de tutorial.

Operação de renomeação (ρ)

Os resultados da álgebra relacional também são relações, mas sem nenhum nome. A operação de renomeação nos permite renomear a relação de saída. operação 'renomear' é indicada por uma pequena letra gregarho ρ .

Notation- ρ x (E)

Onde o resultado da expressão E é salvo com o nome de x.

Operações adicionais são -

  • Definir interseção
  • Assignment
  • Junção natural

Cálculo Relacional

Em contraste com a álgebra relacional, o cálculo relacional é uma linguagem de consulta não procedimental, ou seja, diz o que fazer, mas nunca explica como fazer.

O cálculo relacional existe em duas formas -

Cálculo Relacional Tupla (TRC)

Filtrando intervalos de variáveis ​​sobre tuplas

Notation- {T | Doença}

Retorna todas as tuplas T que satisfaçam uma condição.

For example -

{ T.name |  Author(T) AND T.article = 'database' }

Output - Retorna tuplas com 'nome' do Autor que escreveu artigo sobre 'banco de dados'.

O TRC pode ser quantificado. Podemos usar Quantificadores Existenciais (∃) e Universais (∀).

For example -

{ R| ∃T   ∈ Authors(T.article='database' AND R.name=T.name)}

Output - A consulta acima produzirá o mesmo resultado da anterior.

Cálculo Relacional de Domínio (DRC)

No DRC, a variável de filtragem usa o domínio de atributos em vez de valores de tupla inteiros (como feito no TRC, mencionado acima).

Notation -

{a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n )}

Onde a1, a2 são atributos e P significa fórmulas construídas por atributos internos.

For example -

{< article, page, subject > | 
      
        ∈ TutorialsPoint ∧ subject = 'database'} 
      

Output - Rende Artigo, Página e Assunto da relação TutorialsPoint, onde o assunto é o banco de dados.

Assim como o TRC, o DRC também pode ser escrito usando quantificadores existenciais e universais. A RDC também envolve operadores relacionais.

O poder de expressão de cálculo de relação de tupla e cálculo de relação de domínio é equivalente à álgebra relacional.