Il modello relazionale

Cos'è il modello relazionale

Il modello relazionale è un modello di dati usato nei DBMS per gestire i database relazionali.Si basa sul concetto di relazione matematica ed è rappresentato tramite tabelle.

Si tratta di un modello logico composto da costrutti che permettono al DBMS (Data Base Management System) l'organizzazione e la gestione dei dati.

La relazione e le tabelle

In matematica una relazione è un sottoinsieme del prodotto cartesiano AxB di due insiemi A e B.

Dove gli insiemi A e B sono due domini diversi.

un esempio di relazione matematica

Nota. In questa spiegazione mi limito a due insiemi A e B diversi tra loro per semplificare la spiegazione. In realtà, in una relazione i domini possono anche essere più di due. Inoltre, gli insiemi del prodotto cartesiano possono anche essere uguali tra loro.

Il prodotto cartesiano degli insiemi A e B è un insieme composto da tutte le coppie ordinate (a,b) dei due insiemi. Dove a∈A e b∈B.

la differenza tra prodotto cartesiano e relazione

Quindi, la relazione è un sottoinsieme del prodotto cartesiano AxB composto da n-ple ordinate e distinte tra loro.

Ogni n-pla è composta dagli elementi dei due insiemi A e B disposti.

Nota. Ogni n-pla è ordinata. Vol dire che in un prodotto cartesiano AxB la prima posizione nella n-pla deve essere sempre un elemento dell'insieme A, mentre la seconda posizione nella n-pla un elemento dell'insieme B.

Le n-ple possono essere rappresentate con una tabella.

la rappresentazione della tabella in una tabella

Quindi, la tabella è una rappresentazione della relazione matematica.

Ogni colonna della tabella equivale a un dominio della relazione.

la rappresentazione della tabella in una tabella

L'ordine delle n-ple non è importante nella tabella.

Qual è la differenza tra n-pla, coppia e tupla. Una n-pla è detta coppia se è composta da due elementi (a,b) come in questo caso. E' detta tupla o n-pla se è composta da più elementi.

Un esempio pratico

Ho tre insiemi contenenti diversi elementi: l'insieme delle capitali, delle nazioni e dei continenti.

Sono tre domini di tipo stringa.

tre insiemi (domini) di esempio

Il prodotto cartesiano dei tre domini è composto dalle 27 combinazioni (capitale, nazione, continente).

Ogni combinazione è una tupla composta da tre elementi di tipo stringa ossia stringa x stringa x stringa.

le 27 combinazioni (tuple)

La relazione è un sottoinsieme del prodotto cartesiano composto da tre tuple.

Pertanto, il sottoinsieme ha una cardinalità (numero elementi) pari a 3.

la relazione è un sottoinsieme del prodotto cartesiano

Posso rappresentare la relazione in una tabella.

In un database relazionale questa relazione si vedrebbe in questo modo.

la rappresentazione della relazione in una tabella

Perché usare la tabella? Per gran parte degli utenti finali la rappresentazione tabellare è sicuramente più semplice e intuitiva della relazione matematica tra insiemi.

L'ordine delle colonne e delle righe nella tabella è casuale.

Ogni colonna è detta attributo e contiene i dati omogenei del proprio dominio stringa (capitali, nazioni, continenti).

Ogni riga della tabella è invece una n-pla ordinata detta tupla o record.

Il numero di righe della tabella coincide con la cardinalità del sottoinsieme della relazione ossia 3.

Nel modello relazionale ogni riga (tupla o record) della tabella è diversa dalle altre per almeno un elemento.

Ad esempio, nel modello relazionale non può esistere una tupla doppia con gli stessi elementi.

un esempio pratico

Perché le righe non possono essere uguali? Un insieme non contiene elementi ripetuti. Quindi non possono esistere due elementi uguali in un insieme. Poiché la relazione è sottoinsieme e la tabella è una rappresentazione della relazione, questa regola vale anche per la tabella.

I nomi delle colonne (attributi) compongono la schema di relazione.

R(capitali:stringa, nazioni:stringa, continenti:stringa)

o semplicemente senza indicare il dominio di ogni attributo

R(capitali, nazioni, continenti)

Le tuple (dati) cono invece le istanze della relazione.

In una base dati possono esserci diverse relazioni ossia diverse tabelle.

L'insieme delle relazioni è detto schema di base dati.

R = { R1(X1), R2(X2), ... , Rn(Xn) }

Dove Rn sono le relazioni presenti nella base dati.

Il modello relazionale è basato sui valori

Nel modello relazionale i riferimenti tra i dati di relazioni diverse si basano sui valori dei domini delle tuple.

Ad esempio, in una base dati ci sono due tabelle (relazioni).

La prima tabella include l'anagrafica dei clienti mentre l'altra gli ordini di un'azienda.

Ogni cliente ha almeno un ordine ma alcuni clienti fidelizzati hanno fatto più ordini nello stesso periodo.

le tabelle della base dati

Lo schema della base dati è

R = { Clienti(CodiceCliente, Cognome, Nome, Città) , Ordini(CodiceCliente, NumOrdine, Data, Importo) }>

Entrambe le tabelle hanno l'attributo CodiceCliente.

L'attributo "CodiceCliente" è un riferimento tra le due tabelle.

un esempio di riferimento

Ad esempio, il cliente Giuseppe Bianchi (codice cliente 1231) ha fatto due ordini in due date diverse.

E' lo stesso valore (1231) nelle tuple a creare il riferimento tra le due tabelle.

Così facendo non occorre aggiungere un ulteriore elemento esterno per collegare le due tabelle.

Differenza tra modello relazione, gerarchico e reticolare. Il modello relazionale si distingue da altri modelli di dati, come il modello gerarchico e reticolare, in cui i riferimenti sono posti con l'aggiunta di puntatori esterni sui record. Nel modello relazionale non c'è bisogno del puntatore per creare un riferimento, perché la rappresentazione logica dei dati e i riferimenti sono basati sui valori stessi e i dati fisici sono indipendenti dal modello logico.

E così via.

 

 

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Basi di dati