Il modello Entità - Relazioni di Giuseppe Sacco
Banche, anagrafi comunali, librerie, compagnie aeree e alberghiere, negozi,
segreterie didattiche di università, guardia di finanza, industrie.
Sono solo alcuni esempi di attività che richiedono l'uso di una
base di dati.
I sistemi per la gestione di basi di dati (spesso indicati come DBMS
DataBase
Management System o SGBD Sistemi per la Gestione delle Basi di Dati)
hanno sempre costituito un forte interesse sia all'interno del mondo accademico
che all'esterno.
La capacità di cercare, modificare, presentare,
mettere in relazione dati nella maniera più veloce e simile agli
schemi mentali delle persone che devono usarle è sempre stata ambizione
e necessità di molti programmi per computer.
Nell'ambito degli ultimi 20 anni si sono venuti a creare vari modelli
teorici di organizzazioni dei dati.
A questi sono seguite le implementazioni
e l'uso.
Dai modelli molto semplici che principalmente lavoravano su archivi
sequenziali si è arrivati al modello relazionale ad oggetti passando
dal gerarchico, dal reticolare e da altri ancora.
Il modello attualmente più utilizzato è detto relazionale.
In questo articolo lo descriveremo secondo la sua teoria e vedremo come
si può realizzare una piccola base di dati che possa essere utilizzata
per gestire l'affitto di alcuni campetti da calcetto e dei tornei che vi
si fanno. In fondo all'articolo è una piccola bibliografia.
Un po' di terminologia
Il modello relazionale si basa su due concetti primarî: entità
e relazioni.
Le entità sono descrizioni dei dati così
come li intendiamo normalmente e sono memorizzati in tabelle, le relazioni
sono i rapporti tra le entità e non sono in genere memorizzabili.
Un semplice esempio è quello di avere le entità squadra
e socio, con la relazione essere-portiere-di che lega
le due entità.
Ogni entità è descritta da varî attributi
che hanno un certo tipo. Nel caso dell'entità squadra
gli attributi potrebbero essere nome di tipo sequenza di 50 caratteri,
portiere
di tipo sequenza di 30 caratteri, e così via per tutti i ruoli.
Le relazioni sono descritte dalle entità, dal verso
e dalla
cardinalità che può essere uno a uno,
uno
a molti, molti a uno, molti a molti; inoltre va considerata
l'obbligatorietà o meno della relazione. Ad esempio il fatto che
per ogni squadra abbia un socio come portiere, mentre non tutti i soci
sono portieri di squadre.
Negli attuali sistemi per la gestione di basi di dati, le entità
sono memorizzate in tabelle, mentre le relazioni sono descritte per ogni
campo
delle tabelle. Le tabelle sono concettualmente simili ad una griglia nella
quale sistemiamo in ogni riga un elemento memorizzato nella tabella (detto
istanza
dell'entità o record) e in ogni colonna della riga un solo
attributo dell'entità (detto campo.) Così la tabella
dei soci potrà essere vista come una griglia che ha le colonne etichettate
nome,
cognome,
numero-tessera
e per ogni riga i relativi attributi per ogni singolo socio.Sulle relazioni
c'è invece ancora grande discussione nel mondo accademico: alcuni
le vedono all'interno della tabelle, altri le modellano esternamente. Per
nostra fortuna i prodotti che vedremo sono tutti omogenei e modellano le
relazioni internamente alle tabelle. Per questo nella tabella
squadra
c'è un campo chiamato
Portiere che contiene un riferimento
alla tabella dei soci.
Dopo aver introdotto i termini di entità, relazione, tabella
e campo passiamo a formalizzare il riferimento usato per memorizzare
le relazioni. Per ogni entità è necessario definire un campo
(o una serie di campi presi insieme) che identifichi univocamente l'istanza.
Ad esempio, per il socio si tratta del numero della tessera, per la squadra
del nome. Questo campo è detto chiave primaria ed è
quindi l'unico mezzo per identificare (e quindi per riferire) una particolare
istanza. Per modellare la relazione ha-come-portiere si ricorre
al mettere il riferimento al portiere, cioè si inserisce nella tabella
squadra un campo (Portiere) dello stesso tipo della chiave primaria
dell'entità socio. In questo caso si dice anche che il campo Portiere
è chiave esterna, cioè chiave di un'altra entità.
A questo punto siamo in grado di vedere il seguente grafo e di capirlo.
Si tratta di un grafo, semplificato, entità-relazioni che presenta
lo schema del circolo di calcetto in esempio. (In grassetto vediamo
le chiavi primarie mentre le relazioni sono indicate dalle frecce.)
(Versione
PDF)
|