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