Il modello relazionale
Il modello relazionale è stato proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981. Oggi è il modello logico più diffuso ed è adottato dalla larga maggioranza dei DBMS disponibili a livello commerciale.
Caratteristiche del modello relazionale
Il modello è basato su una semplice struttura dati – la relazione ed è caratterizzato da precise basi matematiche (teoria degli insiemi e logica dei predicati del primo ordine).
Vantaggi
- Semplice rappresentazione dei dati
- Linguaggi dichiarativi
- Facilità con cui possono essere espresse interrogazioni anche complesse
Prima di introdurre le relazioni
Dominio
Un dominio è un insieme (anche infinito) di valori. Esempi: l'insieme dei numeri interi, l'insieme delle stringhe di caratteri, l'insieme {0,1}.
Nel seguito: insieme di tutti i domini
D int: numeri interi
real: numeri reali
string: stringhe
date: date
Prodotto cartesiano
Siano D1, D2, ..., Dk insiemi anche non distinti, il prodotto cartesiano D1 × D2 × ... × Dk è definito come:
{(v1, v2, ..., vk) | v1 ∈ D1, ..., vk ∈ Dk}
Ogni elemento del prodotto cartesiano è detto tupla.
Relazione
Siano D1, D2, ..., Dk domini. Una relazione su D1, D2, ..., Dk è un sottoinsieme finito del prodotto cartesiano D1 × D2 × ... × Dk.
Ogni tupla di una relazione definita su k domini ha k componenti, una per ogni dominio su cui è definita la relazione cui la tupla appartiene. La cardinalità di una relazione è il numero di tuple appartenenti alla relazione.
Esempio
- D1 = {0,1,2}
- D2 = {d,v}
Prodotto cartesiano D1 × D2 = {(0,d), (0,v), (1,d), (1,v), (2,d), (2,v)}
Una relazione di cardinalità 3 r1 ⊆ D1 × D2 è r1 = {(0,d), (0,v), (1,d)}
Una relazione di cardinalità 2 r2 ⊆ D1 × D2 è r2 = {(0,d), (2,d)}
Relazione - proprietà
Una relazione è un insieme di tuple, quindi:
- Le componenti sono ordinate al loro interno: (d1, d2, ..., dk) ∈ D1 × D2 × ... × Dk
- Non è definito alcun ordinamento fra le tuple di una relazione
-
Gestione dati e archivi - il modello relazionale
-
Gestione dati e archivi - le basi di dati - introduzione al corso
-
Gestione dati e archivi - Esercizi SQL
-
Gestione dati e archivi - Esercizi