Gli schemi concettuali Il modello Entity-Relationships Alessandro Palermo, 2009
Rappresentare la realtà Quando dobbiamo rappresentare una situazione reale sotto forma di database molto spesso ci troveremo davanti ad un alto numero di tabelle o ancora peggio di relazioni.
Divisione dei compiti Molto spesso in un’azienda che sviluppa software, la persona che parla con i clienti non è la stessa che progetta, che sviluppa e che collauda. Ovviamente le persone che concorrono alla creazione del software hanno un diverso grado o settore di preparazione.
Lo schema concettuale Abbiamo quindi bisogno di rappresentare concettualmente i dati ad un alto livello di astrazione, così da avere uno schema chiaro di ciò che dovremo sviluppare. Questo schema dovrà essere comprensibile semplicemente da chiunque.
Il modello Entity-Relationships Per far fronte a queste necessità, nel campo dei database, si utilizza comunemente un modello chiamato Entity-Relationships (Entità-Relazioni)
Il modello E-R Il modello E-R si basa su un insieme di concetti molto vicini alla realtà da rappresentare. Ad esempio, se voglio rappresentare l’anagrafe dirò che una Persona risiede in un Comune.
Il modello E-R Utilizzando questo tipo di sistema il progettista di database potrà comunicare agli altri apparati preposti alla produzione software ed anche con i non-tecnici. Ad esempio, non sempre tecnici e clienti si capiscono (con la possibilità di sviluppare in maniera non corretta). Il modello E-R può essere un sistema di esposizione della risoluzione di un problema.
Niente computer!!! Quando ci troviamo di fronte ad un problema quindi, il primo passo da fare sarà quello di creare uno schema concettuale SENZA utilizzare il computer, che verrà riportato al PC solo quando si avrà chiara la soluzione del problema. Perché il modello E-R sia di semplice lettura, sarà necessario seguire alcune regole.
Le entità Rappresentano classi di oggetti (fatti, persone, …) che hanno proprietà comuni ed esistenza autonoma. Ad esempio, se voglio rappresentare l’anagrafe, Persona e Comune saranno le entità.
Le entità Le entità vengono rappresentate graficamente attraverso un rettangolo nel quale verrà inscritto il nome. Persona Persona Comune Comune
Gli attributi Ogni entità possiede una serie di attributi che ne descrive le caratteristiche. Ad esempio una Persona è rappresentata dal suo Nome, Cognome, Codice fiscale, Genere, … un Comune sarà rappresentato dal Nome, N. di abitanti, N. di Frazioni, …
Gli attributi Sono rappresentati graficamente da delle frecce a punta rotonda di fianco alle quali sarà scritto il nome. Gli attributi chiave primaria saranno sottolineati. Persona Nome Cognome Codice Fiscale … Comune Nome N.Abitanti N.Frazioni …
Le relazioni Le relazioni (dette anche associazioni) rappresentano il legame tra due o più entità (raro). La relazione esprime che tipo di legame intercorre tra due entità caratterizzandolo attraverso un nome. Ad esempio, una Persona RISIEDE in un Comune.
Le relazioni Sono rappresentate graficamente attraverso dei rombi collegati alle entità interessate nel quale verrà inscritto il nome della stessa. Persona Nome Cognome Codice Fiscale … Comune Nome Risiede in N.Abitanti N.Frazioni …
Cardinalità Viene specificato il numero minimo e massimo di volte in cui un dato di una entità può essere collegato a quello di un’altra. Persona Persona Persona Nome Cognome Codice Fiscale … (1,1) (1,1) (1,1) Comune Nome Risiede in (1,N) N.Abitanti N.Frazioni …
Relazioni particolari È possibile esprimere una serie di attributi anche ad una relazione. Persona Persona Persona Nome Cognome Codice Fiscale … (0,N) Libro Titolo Ha in prestito (0,N) Editore Pagine … Dal giorno
Relazioni particolari Una relazione può fare riferimento alla stessa entità Persona Persona Persona Nome (0,1) Cognome Cognome Codice Fiscale … (0,N) Dipende da
Relazioni particolari Da un entità possono partire (ed arrivare) più relazioni. Ad esempio, per rappresentare una biblioteca, un Libro può essere scritto da più Autori e allo stesso momento essere preso in prestito da una Persona
Esercizio 1 Si vuole creare una base di dati per l’I.S.I.S.S. “Carlo Anti” nella quale vengano rappresentati i vari indirizzi, ognuno con le proprie classi. Ogni classe è composta da più alunni.
Esercizio 2 Si vuole creare una base di dati per “Giunti al punto” (Libreria) che vuole rappresentare i libri che ha in casa, ognuno scritto da uno o più autori. Il libro sarà caratterizzato inoltre da un genere e da un editore.
Esercizio 3 Si vuole creare una base di dati per gestire la propria raccolta di cd musicali. Ogni cd musicale sarà composto dai suoi autori, dalle sue tracce e dal suo genere.
Homework (Facile) La RAI vuole rappresentare il palinsesto dei suoi programmi attraverso una base di dati. Ogni programma sarà condotto da uno o più presentatori, verrà trasmesso in fasce orarie e avrà uno o più ospiti.
Homework (Medio) L’unione europea vuole utilizzare una base di dati per catalogare i farmaci. I farmaci contengono dei componenti e sono prodotti da una casa farmaceutica. Si vuole inoltre sapere di ogni farmaco i paesi in cui è distribuito.
Homework (Difficile) Mr. Palermo vuole utilizzare una base di dati per rappresentare i suoi test di informatica. Ogni test conterrà una o più domande che sottoporrà agli studenti di una classe, che totalizzeranno un punteggio.