Modello relazionale

Da Wikipedia, l'enciclopedia libera.

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).

Si basa sulla teoria degli insiemi e sulla logica del primo ordine ed è strutturato intorno al concetto matematico di relazione (detta anche tabella). Per il suo trattamento ci si avvale di strumenti quali il calcolo relazionale e l'algebra relazionale.

Venne 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. Oggi è uno dei modelli logici più utilizzati, implementato su moltissimi DBMS sia commerciali che open source.

Descrizione[modifica | modifica wikitesto]

Esempio di tabella di un DBMS secondo il modello relazionale (Facoltà e loro corsi). Visibile in alto in grigio l'intestazione o testata della tabella con i nomi dei vari campi o attributi e i valori assunti da questi nelle rispettive righe, record o tuple nel corpo sottostante (è presente un record duplicato).

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 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.

Esempio di relazione tra più tabelle. Due tabelle secondarie, attraverso le rispettive foreign key, puntano ovvero sono referenziate ad una tabella primaria che contiene un campo comune tra le tre detta chiave primaria (nell'esempio il campo Activity Code)

Applicazione ai database[modifica | modifica wikitesto]

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.

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 un 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 o inserimento dei record (insert), R lettura (select), 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.

Altri modelli[modifica | modifica wikitesto]

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 | modifica wikitesto]

Indice
0 - 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ?


M[modifica | modifica wikitesto]

O[modifica | modifica wikitesto]

U[modifica | modifica wikitesto]

V[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]