Modello relazionale
In informatica il modello relazionale è un modello logico di rappresentazione o strutturazione dei dati di un database implementato su sistemi di gestione di basi di dati (DBMS), detti perciò sistemi di gestione di basi di dati relazionali (RDBMS).
Proposto da Edgar F. Codd nel 1970 per semplificare la scrittura di interrogazioni sui database e per favorire l'indipendenza dei dati, venne reso disponibile come modello logico in DBMS reali nel 1981 e ad oggi è uno dei modelli logici più utilizzati, implementato su moltissimi DBMS sia commerciali che open source. Si basa sulla teoria degli insiemi e sulla logica del primo ordine, strutturato intorno al concetto matematico di relazione (detta anche tabella) e per il suo trattamento ci si avvale di strumenti quali il calcolo relazionale e l'algebra relazionale.
Descrizione modifica
L'assunto fondamentale del modello relazionale è che tutti i dati sono rappresentati come relazioni e manipolati con gli operatori dell'algebra relazionale o del calcolo relazionale, da cui appunto il nome.
Il modello relazionale consente al progettista di database di creare una rappresentazione consistente e logica dell'informazione. La consistenza è ottenuta inserendo nel progetto del database appropriati vincoli, normalmente chiamati schema logico. La teoria comprende anche un processo di normalizzazione in base al quale viene selezionato tra le diverse alternative lo schema maggiormente "desiderabile".
Il piano di accesso e altri dettagli operativi vengono gestiti dal motore del DBMS e non dovrebbero trovare spazio nello schema logico: questo è in contrasto con la pratica corrente in molti DBMS di ottenere miglioramenti delle prestazioni attraverso modifiche dello schema logico.
La struttura base del modello relazionale è composta da:
- uno o più attributi o campi dato;
- un tipo di dato ed un dominio su quel tipo, definito come l'insieme dei valori che può assumere un determinato attributo o campo dato;
- un valore per ciascun attributo all'interno del dominio o tipo di dato consentito;
- una tupla, record o riga cioè l'insieme non ordinato di valori assunti dagli attributi.
La testata della relazione è l'insieme di attributi o campi dato, mentre il corpo è l'insieme di n tuple o record di dati o valori. La testata di una relazione è anche la testata di ciascuna delle sue tuple. La tabella è invece la rappresentazione grafica normalmente accettata per rappresentare la relazione tra attributi e valori.
Il principio base del modello relazionale è dunque che tutte le informazioni siano rappresentate da valori inseriti in relazioni (tabelle); dunque, un database relazionale è un insieme di relazioni contenenti valori e il risultato di qualunque interrogazione (o manipolazione) dei dati può essere rappresentato anch'esso da relazioni (tabelle).
Il modello relazionale risponde al requisito dell'indipendenza dei dati e prevede una distinzione tra il livello fisico e il livello logico: questa capacità di astrazione ha fatto la sua fortuna nel mondo della gestione dati.
Applicazione ai database modifica
Tabella è il termine normalmente usato in sostituzione del termine teorico relazione per indicare l'insieme delle righe e delle colonne della matrice di dati. La struttura di una tabella è specificata da una lista di colonne, ciascuna delle quali ha un nome univoco (l'attributo o campo dato), un tipo di dato e un dominio, cioè un insieme di valori accettati (valori univoci non ripetuti se è una chiave primaria, oppure valori ripetibili; fra questi il valore NULL se l'attributo non è obbligatorio).
Attributo o campo dato è il termine usato per indicare l'intestazione iniziale di una colonna; ad esso si associa un certo tipo di dato con il suo dominio di possibili valori. Il tipo di dato usato nei database relazionali può essere un insieme di numeri interi, un insieme di caratteri alfanumerici, l'insieme delle date, i valori booleani vero e falso ecc... I corrispondenti "nomi di tipo", ad esempio, saranno dunque le stringhe "int", "char", "date", "boolean", etc. Da sottolineare che, da una parte, la teoria relazionale non definisce quali tipi vadano supportati, e dall'altra molti sistemi garantiscono la possibilità di definire tipi di dati definiti dall'utente cioè personalizzati, in aggiunta a quelli "standard" forniti dal sistema.
Valore di attributo è il dato o valore di una cella identificata da una specifica coppia riga - colonna, come ad esempio "Mario Rossi" o "2006", mentre una tupla è praticamente la stessa cosa di una riga o record di dati o valori.
Una relazione è dunque la definizione di una tabella, cioè un insieme di colonne e righe, cioè attributi o campi dato insieme ai rispettivi dati o valori che vi compaiono. La definizione della tabella è la testata iniziale e i dati che vi appaiono sono il corpo cioè un insieme di righe.
In tale ambito, il termine relazione a volte si riferisce anche alle relazioni o vincoli interrelazionali che intercorrono tra una tabella primaria (master) ed altre tabelle secondarie (slave) attraverso l'associazione tra una chiave primaria della tabella principale e le foreign key delle altre tabelle.
Le operazioni tipiche basilari che saranno possibili su una tabella precedentemente definita e creata nella sua struttura tramite il Data Definition Language (DDL) sono quelle cosiddette di CRUD ovvero C creazione (create) o inserimento dei record (insert), R lettura (read), U aggiornamento (update), D cancellazione (delete), attraverso il Data Query Language e il Data Manipulation Language (DML) del linguaggio standard SQL. Altre operazioni tipiche sono la definizione delle chiavi (primarie o esterne) sulle tabelle definite ed altre ancora sono definite nel linguaggio Data Control Language e nello stesso Data Definition Language.
Vincoli di integrità referenziale
Quando si crea una relazione tra due tabelle, è possibile impostare l’integrità referenziale.
L’integrità referenziale è un insieme predefinito di vincoli o regole che il programma (ad es. MS Access) utilizza per accettarsi che la relazione sia valida. Es:
- il campo correlato nella tabella primaria deve essere chiave primaria;
- i campi correlati devono avere lo stesso tipo di dati;
- le tabelle devono appartenere allo stesso database.
Inoltre, l’integrità referenziale:
- consente di prevenire modifiche o cancellazioni accidentali dei dati
- non consente di inserire tuple nella tabella secondaria se il valore attribuito alla chiave esterna non è uguale ad un valore della chiave della tabella primaria
(… ad essa collegata).
Altri modelli modifica
Prima dell'avvento del modello relazionale, i DBMS utilizzavano altri due modelli logici di database: il modello gerarchico e il modello reticolare. Sebbene oggi la gran parte dei DBMS aderiscano (o dicano di aderire: v. le 12 regole di Codd) al modello relazionale, in alcuni centri elettronici sono ancora utilizzati DBMS gerarchici o reticolari, specialmente in casi in cui la migrazione avrebbe costi proibitivi. Secondo alcuni autori il modello relazionale potrebbe in futuro cedere il passo a un modello object oriented, ma da una parte i DBMS object-oriented (OODBMS) stentano ad affermarsi, dall'altra i migliori DBMS relazionali stanno rilasciando funzionalità object-oriented, come la possibilità di definire tipi di dato utente.
Strumenti di modellazione di dati modifica
M modifica
O modifica
- Oracle Designer
U modifica
V modifica
Voci correlate modifica
Altri progetti modifica
- Wikimedia Commons contiene immagini o altri file sul modello relazionale
Collegamenti esterni modifica
- (EN) relational data model, in Free On-line Dictionary of Computing, Denis Howe. Disponibile con licenza GFDL