Il modello relazionale
Relational Model of Data

Proposto da E. F. Codd in "A Relational Model of Data for Large Shared Data Banks" (1970)

Lo scopo era quello di definire uno schema concettuale di un database in modo indipendente dal modo in cui i dati sono memorizzati nella memoria di un elaboratore.

Il modello relazionale si distingue per:
l'economia di concetti
l'astrazione rispetto ai linguaggi di programmazione.


robustezza del modello teorico
Idea innovativa:
rappresentare le informazioni per mezzo di una struttura, chiamata relazione o tabella, che ha come fondamento un concetto molto semplice della teoria matematica degli insiemi.

Definizioni matematiche

I dati sono rappresentati tramite tabelle, chiamate relazioni.
Ogni relazione è definita dalle colonne di cui è composta e contiene tutte le n-uple dello stesso tipo contenute nel database. Le colonne rappresentano i campi, o proprietà, dei dati rappresentati dalla tabella; ogni riga corrisponde a un record in un linguaggio di programmazione e raggruppa i valori che queste proprietà assumono in una n-upla.
Le colonne possono contenere solo dati di tipo elementari: stringhe, interi, reali, date, eccetera. Una colonna non può contenere puntatori, né valori multipli, né sottotabelle; inoltre non si possono aggiungere nuovi tipi di dati.


semplicità del linguaggio di interrogazione
Il linguaggio per la manipolazione dei dati è quel linguaggio fornito da un DBMS che viene utilizzato da ogni utente per interrogare e/o modificare un database. Tale linguaggio permette di rivolgere domande (queries) che riguardano un insieme specificato di relazioni.

linguaggio di interrogazione (query language).

Si possono avere a disposizione due classi di linguaggi di interrogazione ad alto livello:

linguaggi algebrici (o procedurali)
che definiscono una domanda come un'espressione attraverso operatori relazionali; la risposta, che è la valutazione (il calcolo) dell'espressione, è una relazione.
linguaggi basati sul calcolo relazionale (o non procedurali)
una domanda è un predicato e la risposta è una relazione le cui tuple soddistano tale predicato (soddisfano i requisiti).

Operatori relazionali

Un grande vantaggio dei DBMS relazionali (RDBMS) è di avere un linguaggio di accesso comune chiamato SQL (Structured Query Language) che è attualmente IL linguaggio di interrogazione di database relazionali più diffuso. Ciò permette a una stessa applicazione di interagire con RDBMS di diversi costruttori e di trasferire facilmente dati fra RDBMS disomogenei.