Dopo aver compreso che cosa sia una Relazione matematica, si può comprendere meglio quali siano le possibili operazioni che si possono operare tra di esse. Siccome le relazioni non sono altro che dei particolari insiemi, tra le operazioni relazionali, ricadono anche le classiche operazioni insiemistiche di «unione», «intersezione», «differenza», che non verranno trattate.
Per descrivere le altre operazioni relazionali, si utilizzeranno le tabelle ottenute dal test della soluzione dell'esempio I proprietari dei veicoli
Di solito tali operazioni non vengono usate per costruire un database, ma soprattutto per estrarre informazioni da esso
Questa operazione si applica ad una sola Relazione alla volta e produce come risultato una nuova Relazione, si dice quindi che l'operazione selezione è di tipo unario. La relazione risultante ha sempre lo stesso grado della relazione di partenza, ma solitamente cardinalità inferiore. In pratica si può ottenere una nuova tabella che contenga solo alcune delle righe contenute nella tabella di partenza. Questa operazione si indica anche con il simbolo della lettera greca minuscola «sigma», seguito tra parentesi dal nome della relazione, e avente come pedice la condizione di selezione che deve essere verificata
Esempio 4.5. Esempio di selezione
Questa operazione si applica ad una sola relazione e produce come risultato una nuova relazione, quindi questa operazione è di tipo unario. La relazione risultante ha la stessa cardinalità della relazione di partenza, ma solitamente grado inferiore. In pratica si può ottenere una nuova tabella che contenga solo alcune delle colonne contenute nella tabella di partenza. Questa operazione si indica anche con il simbolo della lettera greca minuscola «pi», seguita, tra parentesi, dal nome della relazione, e avente come pedice la condizione di proiezione che deve essere verificata.
Nell'ultimo esempio si può notare che nella tabella sono presenti due righe identiche: si tratta di un'eventualità che non si sarebbe dovuta presentare nel caso in cui la tabella fosse stata la rappresentazione di una Relazione matematica.
Questa anomalia consente all'operatore del DBMS di decidere cosa fare: se volere, come in questo esempio, contare quante siano le omonimie, o di aggiungere altri vincoli che rendano la tabella risultante conforme alle Relazioni matematiche.
Questa operazione si applica a due relazione e produce come risultato una sola nuova relazione, quindi è un'operazione binaria. La relazione risultante ha solitamente grado superiore a quello delle singole relazioni di partenza, ma nulla si può affermare sulla sua cardinalità.
Per poter eseguire questa operazione si deve verificare una particolare condizione tra le due tabelle di partenza: devono avere almeno una colonna contenente lo stesso tipo di dati; tale condizione si verifica sicuramente quando tra le due relazioni c'è un «vincolo d'integrità referenziale». In pratica da una congiunziome si può ottenere una nuova tabella che possiede le colonne di entrambe le tabelle di partenza, e le righe che hanno un valore in comune ad entrambe le tabelle.
Questa operazione si indica anche con il simbolo della lettera «⋈». Il simbolo deve essere preceduto e seguito dai nomi delle due relazioni coinvolte e deve avere come pedice la condizione di congiunzione che deve essere verificata.
Esempio 4.7. Esempio di congiunzione
visto che la tabella 'cittadini' e la tabella 'proprieta' hanno una colonna in comune (il codice fiscale del cittadino), per visualizzare quali targhe sono abbinate ad ogni cittadino, si può scrivere:
proprieta ⋈cf-cittadino=cf cittadini
Per costruire la tabella finale si deve analizzare una riga alla volta la tabella «proprieta» e verificare se il valore di «cf-cittadino» è presente come valore in «cf» di «cittadini». In caso affermativo, bisogna riportare tutti gli altri campi della riga di «cittadini».
Tabella 4.5. proprieta X cittadini
targa-auto | cf | cognome | nome |
---|---|---|---|
AZ12345 | RSSMRA | Rossi | Mario |
AZ12345 | VRDGPP | Verdi | Giuseppe |
OIL9876 | GLLGNN | Gialli | Gianna |
EE33333 | GLLGNN | Gialli | Gianna |
Nell'ultimo esempio si può notare che nell'ultima tabella ottenuta il campo «cf» non possiede piu' il vincolo di «chiave primaria». Infatti le tabelle «cittadini» e «proprieta X cittadini» sono due tabelle distinte, e nessuno ha scritto da nessuna parte che la seconda relazione debba possedere gli stessi vincoli intrarelazionali della prima.