Algebra relazionale

Le interrogazioni al database possono essere formalmente rappresentate dall'algebra relazionale.

Ogni relazione R(A1: T1, ..., An: Tn) è considerata un insieme di ennuple , dove il grado è definito come il numero di attributi e la cardinalità il numero di ennuple.

Operatori principali

  • Ridenominazione, e.g. per rinominare l'attributo a :

    che avrà cardinalità e grado uguali ad .

    Diventa utile nelle operazioni tra relazioni con attributi con lo stesso nome.

  • Unione e differenza, sulle ennuple di due relazioni ed dello stesso tipo:

    con cardinalità , e con cardinalità .

  • Proiezione, e.g. per isolare gli attributi e :

    di cardinalità al più perchè le ennuple non sono distinte se gli attributi scelti non sono superchiave.

  • Restrizione, per filtrare le ennuple con una condizione :

    Per esempio, per trovare le ennuple degli studenti maggiorenni.

  • Prodotto, per il prodotto cartesiano tra le ennuple di ed aventi attributi distinti:

    Per esempio, date le relazioni Studenti ed Esami:

    MatricolaNome
    11371Mario
    12678Paolo
    CodiceStudente*Voto
    108221137128
    109131267830

    si possono trovare: ovvero gli studenti che hanno ottenuto Voto uguale a .

Operatori derivati

Dagli operatori principali è possibile ricavare degli operatori derivati, tra cui:

  • Join, per combinare le ennuple con attributi distinti ma aventi gli stessi valori su e :

  • Natural join, come la join ma attraverso attributi di ed aventi lo stesso nome:

    che, se espresso con il prodotto, richiede la ridenominazione degli attributi in comune.

    Per esempio, dati

    Informazioni(CodInfo: string, Anno: int)
    	PK(CodInfo)
    Libri(ISBN: string, CodInfo*: string)
    	PK(ISBN)
    	CodInfo FK(Informazioni)
    

    si possono associare le due relazioni con , oppure:

  • Outer join, come la join ma tenendo le ennuple non combinabili impostando i nuovi attributi a NULL:

  • Intersezione, sulle ennuple delle relazioni ed dello stesso tipo:

  • Divisione, per raggruppare tutte le ennuple di associate a tutti gli attributi di :

    dove contiene gli attributi e , mentre contiene solamente gli attributi .

    Per esempio, siano e , allora restituisce gli studenti che hanno fatto al minimo tutti gli esami .

    Inoltre, le ennuple associate esattamente (né più né meno) a tutte quelle in si possono ottenere con: dove il secondo termine contiene le ennuple in associate al più a quelle in .

Operatori speciali

  • Proiezione generalizzata, per dare un nome a delle espressioni:

    Per esempio, saranno ennuple di tipo (Codice, Totale).

  • Raggruppamento, per raggruppare più ennuple attraverso delle funzioni di aggregazione:

    dove sono espressioni che aggregano più ennuple che hanno gli stessi :

    • : somma i valori sull'attributo
    • : fa la media di tutti i valori di
    • : conta le ennuple
    • e : trovano il minimo e il massimo dei valori su
    • , suffisso alle precedenti funzioni per rimuovere i duplicati

    Per esempio, dato si trovano il numero di esami, il minimo, il massimo e la media dei voti di ogni Candidato.

Operatori sui multiinsiemi

Se nelle relazioni sono presenti più ennuple uguali, vanno sfruttati gli operatori per i multiinsiemi:

  • Proiezione senza rimuovere duplicati:

  • Eliminazione duplicati, per rimuovere le ennuple con gli stessi valori:

  • Ordinamento, per ordinare lessicograficamente le ennuple con priorità da fino ad :

  • Unione, intersezione e differenza, e.g. con un ennupla che appare volte in e volte in :

    su cui appare volte.

    su cui appare volte.

    su cui appare volte.

Trasformazioni

Agli operatori possono essere applicate delle regole di equivalenza per manipolare le espressioni: