INDICE
1.01 - Database Relazionali
1.02 -
1.03 -
1.04 -
1.05 -
Dal sito HTML.it Guida linguaggio SQL

Chi ha necessità di utilizzare database sul proprio server non può prescindere dalla conoscenza di SQL (acronimo che sta per Structured Query Language) il linguaggio per la creazione di database relazionali

Ritorna all'indice
1.01 - Database Relazionali

La struttura fondamentale del modello relazionale e’ appunto la relazione, cioe’ una tabella bidimensionale costituita da righe (tuple) e colonne (attributi). Le relazioni rappresentano le entità che si ritiene essere interessanti nel database. Ogni istanza dell’entità trovera posto in una riga (tupla) della relazione, mentre gli attributi della relazione rappresenteranno le proprietà dell’entità.

Una relazione è la definizione della struttura della tabella, cioè il suo nome e l'elenco delle colonne (attributi) che la compongono. Ogni colonna (attributo) di una relazione è caratterizzato da un nome e da un dominio. Il dominio indica quali valori possono essere assunti da una colonna della relazione (ad es. per il campo SESSO saranno F, M) Una chiave esterna (foreign key) è una combinazione di attributi di una relazione che sono chiave primaria per un’altra relazione. Caratteristica fondamentale dei valori presenti in una chiave esterna è che, a meno che non siano null, devono corrispondere a valori esistenti nella chiave primaria della relazione a cui si riferiscono. Questa proprieta’ va sotto il nome di integrità referenziale (referential integrity) Tutte le manipolazioni possibili sulle relazioni sono ottenibili grazie alla combinazione di cinque soli operatori: REStrICT, PROJECT, TIMES, UNION e MINUS (operatori dell'algebra relazionale) Per comodita’ sono stati anche definiti tre operatori addizionali che comunque possono essere ottenuti applicando i soli cinque operatori fondamentali: JOIN, INTERSECT e DIVIDE Gli operatori relazionali ricevono come argomento una relazione o un insieme di relazioni e restituiscono una singola relazione come risultato. Vediamo brevemente questi otto operatori: REStrICT: restituisce una relazione contenente un sottoinsieme delle tuple della relazione a cui viene applicato. Gli attributi rimangono gli stessi. PROJECT: restituisce una relazione con un sottoinsieme degli attributi della relazione a cui viene applicato. Le tuple della relazione risultato vengono composte dalle tuple della relazione originale in modo che continuino ad essere un insieme in senso matematico. TIME: viene applicato a due relazioni ed effettua il prodotto cartesiano delle tuple. Ogni tupla della prima relazione viene concatenata con ogni tupla della seconda. JOIN: vengono concatenate le tuple di due relazioni in base al valore di un insieme dei loro attibuti. UNION: applicando questo operatore a due relazioni compatibili, se ne ottiene una contenente le tuple di entrambe le relazioni. Due relazioni sono compatibili se hanno lo stesso numero di attributi e gli attributi corrispondenti nelle due relazioni hanno lo stesso dominio. MINUS: applicato a due relazioni compatibili, ne restituisce una terza contenente le tuple che si trovano solo nella prima relazione. INTERSECT: applicato a due relazioni compatibili, restituisce una relazione contenente le tuple che esistono in entrambe le relazioni. DIVIDE: applicato a due relazioni che abbiano degli attributi comuni, ne restituisce una terza contenente tutte le tuple della prima relazione che possono essere fatte corrispondere a tutti i valori della seconda relazione.