Progettazione di un Database
Per prima cosa, nella progettazione di un database, è necessario identificare e stabilire che tipo di informazioni si desidera rappresentare. In base a questa identificazione è possibile determinare le tabelle necessarie e quindi tutta la struttura della base di dati. Una volta identificate le informazioni che si desidera memorizzare, si passa alla definizione delle tabelle, ossia delle entità che rappresentano i dati. Le informazioni devono essere quindi suddivise in gruppi omogenei, in modo tale da poter creare delle tabelle che contengano dati relativi ad una sola entità o argomento. Inoltre si deve tener conto della ridondanza (o ripetizione) dei dati: i dati memorizzati nelle tabelle non devono essere ripetuti o quanto meno questa ridondanza deve essere ridotta al minimo indispensabile.
Esempio
Nella definizione di un database scolastico si memorizzeranno, in tre tabelle distinte, i dati anagrafici degli studenti, gli esami da affrontare per il corso di studi e gli esami superati. In questo modo, quindi, si eviterà di riscrivere i dati anagrafici di ogni singolo studente, per ogni esame che questi sosterrà.
Determinare i campi
La definizione dei campi prevede non solo l’identificazione delle singole informazioni, ma anche il tipo di dato utilizzato per la rappresentazione.
Esempi dei campi e dei tipi di dato per le tabelle:
Studenti
Cognome, Nome, Matricola, Data_Nascita, Citta, Email, Codice_Corso varchar 50, varchar 50, int 11, date, varchar 80, varchar 80, varchar 8
Identificare i record in maniera “univoca”
Un’operazione molto importante È quella di identificare un campo chiave, attraverso il quale sarà possibile in qualsiasi momento, posizionarsi e leggere nel modo più veloce possibile, il record di nostro interesse. Quindi ogni tabella deve avere un suo campo chiave in modo da poter essere identificata in maniera univoca. La chiave di una tabella può essere composta da uno o più campi. Un campo o un insieme di campi che identificano in modo univoco un record richiamato chiave primaria. Un esempio di chiave primaria può essere il codice fiscale, la matricola ecc.
Relazioni tra le tabelle
Dopo aver identificato le informazioni e quindi suddivise le stesse in tabelle è necessario definire come le varie tabelle sono correlate tra di loro. Supponiamo di avere una tabella studente e una tabella esami sostenuti queste due tabelle potrebbero essere messi in relazione tramite il campo chiave matricola. Nei database relazionali, le relazioni tra tabelle sono indispensabili proprio perché ci permettono di organizzare i dati in maniera ordinata e strutturata. La relazione tra due o più tabelle avviene grazie alla definizione di un legame. Il legame È dato dalla presenza dello stesso campo entrambe le tabelle. Solitamente questo campo è un campo di tipo chiave primaria in una delle tabelle relazionate detto quindi di tipo chiave esterna dell’altra.
Tipologie di relazioni
Nel database relazionali esistono tre tipi di relazioni
Uno ad uno – Ad ogni record contenuto in una tabella corrisponde un solo record di una seconda tabella.
• Uno a molti – Ad ogni record di una tabella corrispondono più record contenuti in una seconda tabella.
Molti a molti – A più record di una tabella corrispondono più record contenuti in una seconda tabella.
Relazione uno a uno
In questo tipo di relazione un Record corrisponde ad un solo record nella tabella relazionata.
La presenza del campo codice_Corso in entrambe le tabelle ci fa capire che è presente una relazione tra le due.
Relazione “uno a molti”
In questo tipo di relazione ogni record di una tabella corrispondono più record contenuti in una seconda cappella. Si può notare il campo aula presente nella tabella esame. In un database progettato correttamente, sarà presente anche un’altra tabella aule, definita con le caratteristiche e la posizione di ciascuno.
Come si può notare dall’esempio, ad un’aula possono corrispondere n^ esami. In questo caso si parla quindi di relazione “uno a molti”.
Relazione “molti a molti”
Sicuramente questo di tipo di relazione è la più complicata, questa relazione stabilisce che a più record di una tabella corrispondono più record contenuti in una seconda tabella. Immaginiamo le tabelle Studenti, Esami ed Esami_Sostenuti, composte dai seguenti record:
Come si può notare dall’esempio, a tanti esami corrispondono tante prove di tanti studenti. In questo caso si parla quindi di relazione “molti a molti”.
Dalla tabella Esami_Sostenuti, che riporta questo tipo di relazione, si può quindi notare come lo stesso esame AN002 è stato sostenuto da tre studenti diversi, e come uno stesso studente ha sostenuto esami diversi.