Algebra relazionale

I sistemi di database relazionali dovrebbero essere dotati di un linguaggio di query che possa aiutare i propri utenti a interrogare le istanze del database. Esistono due tipi di linguaggi di query: algebra relazionale e calcolo relazionale.

Algebra relazionale

L'algebra relazionale è un linguaggio di query procedurale, che accetta istanze di relazioni come input e restituisce istanze di relazioni come output. Utilizza gli operatori per eseguire le query. Un operatore può essere l'uno o l'altrounary o binary. Accettano le relazioni come input e producono le relazioni come output. L'algebra relazionale viene eseguita in modo ricorsivo su una relazione e anche i risultati intermedi sono considerati relazioni.

Le operazioni fondamentali dell'algebra relazionale sono le seguenti:

  • Select
  • Project
  • Union
  • Set diverso
  • prodotto cartesiano
  • Rename

Discuteremo tutte queste operazioni nelle sezioni seguenti.

Seleziona operazione (σ)

Seleziona le tuple che soddisfano il predicato dato da una relazione.

Notation- σ p (r)

Dove σ sta per predicato di selezione e rsta per relazione. p è una formula logica preposizionale che può utilizzare connettori comeand, or, e not. Questi termini possono utilizzare operatori relazionali come - =, ≠, ≥, <,>, ≤.

For example -

σsubject = "database"(Books)

Output - Seleziona le tuple dai libri in cui l'oggetto è "database".

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

Output - Seleziona le tuple dai libri in cui l'oggetto è "database" e "prezzo" è 450.

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

Output - Seleziona le tuple dai libri in cui l'oggetto è "database" e il "prezzo" è 450 o dai libri pubblicati dopo il 2010.

Operazione del progetto (∏)

Proietta le colonne che soddisfano un dato predicato.

Notazione - ∏ A 1 , A 2 , A n (r)

Dove A 1 , A 2 , A n sono nomi di attributi di relazioner.

Le righe duplicate vengono eliminate automaticamente, poiché la relazione è un insieme.

For example -

subject, author (Books)

Seleziona e proietta le colonne denominate come soggetto e autore dalla relazione Libri.

Operazione dell'Unione (∪)

Esegue l'unione binaria tra due relazioni date ed è definito come -

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

Notation - r U s

Dove r e s sono relazioni di database o set di risultati di relazione (relazione temporanea).

Perché un'operazione sindacale sia valida, devono valere le seguenti condizioni:

  • r, e s deve avere lo stesso numero di attributi.
  • I domini degli attributi devono essere compatibili.
  • Le tuple duplicate vengono eliminate automaticamente.
author (Books) ∪ ∏ author (Articles)

Output - Proietta i nomi degli autori che hanno scritto un libro o un articolo o entrambi.

Imposta differenza (-)

Il risultato dell'operazione di set differenza sono le tuple, che sono presenti in una relazione ma non nella seconda relazione.

Notation - r - s

Trova tutte le tuple presenti in r ma non in s.

author (Books) − ∏ author (Articles)

Output - Fornisce il nome degli autori che hanno scritto libri ma non articoli.

Prodotto cartesiano (Χ)

Combina le informazioni di due diverse relazioni in una.

Notation - r Χ s

Dove r e s sono relazioni e il loro output sarà definito come -

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

σauthor = 'tutorialspoint'(Books Χ Articles)

Output - Restituisce una relazione, che mostra tutti i libri e gli articoli scritti da tutorialspoint.

Rinomina operazione (ρ)

Anche i risultati dell'algebra relazionale sono relazioni ma senza nome. L'operazione di ridenominazione ci permette di rinominare la relazione di output. l'operazione "rinomina" è indicata con una piccola lettera grecarho ρ .

Notation- ρ x (E)

Dove il risultato dell'espressione E viene salvato con il nome di x.

Ulteriori operazioni sono:

  • Imposta l'intersezione
  • Assignment
  • Unione naturale

Calcolo relazionale

A differenza dell'algebra relazionale, il calcolo relazionale è un linguaggio di query non procedurale, ovvero dice cosa fare ma non spiega mai come farlo.

Il calcolo relazionale esiste in due forme:

Tuple Relational Calculus (TRC)

Filtraggio di intervalli di variabili su tuple

Notation- {T | Condizione}

Restituisce tutte le tuple T che soddisfano una condizione.

For example -

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

Output - Restituisce tuple con "nome" dell'autore che ha scritto l'articolo su "database".

TRC può essere quantificato. Possiamo usare i quantificatori esistenziali (∃) e universali (∀).

For example -

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

Output - La query precedente produrrà lo stesso risultato della precedente.

Domain Relational Calculus (DRC)

In DRC, la variabile di filtraggio usa il dominio degli attributi invece di interi valori di tupla (come fatto in TRC, menzionato sopra).

Notation -

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

Dove a1, a2 sono attributi e P sta per formule costruite da attributi interni.

For example -

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

Output - Restituisce Articolo, Pagina e Oggetto dalla relazione TutorialsPoint, dove l'oggetto è il database.

Proprio come TRC, DRC può anche essere scritto utilizzando quantificatori esistenziali e universali. DRC coinvolge anche operatori relazionali.

La potenza di espressione di Tuple Relation Calculus e Domain Relation Calculus è equivalente all'algebra relazionale.