2. Progettazione Concettuale
La progettazione concettuale traduce i requisiti di un qualsiasi sistema informatico in una descrizione:
- Formale: espressa in modo non ambiguo ma adeguato a catturare le caratteristiche fondamentali del mondo da descrivere
- Integrata: la descrizione si riferisce alla totalità dell’ambiente (non settoriale)
- Indipendente dalla realizzazione fisica
La descrizione formale fa riferimento ad un modello concettuale, che permette di produrre uno schema concettuale, cioè una rappresentazione semplificata che dovrà contenere tutti e soli gli aspetti interessanti per la gestione dell’azienda.
Noi utilizzeremo il modello entità-relazione per la fase di progettazione concettuale.
Il modello entità relazione
Il modello entità relazione è formato principalmente da tre oggetti:
- Entità
- Relazioni
- Attributi
Entità
Rappresenta una classe di oggetti del mondo reale di interesse per l’applicazione.
Gli oggetti possono essere materiali (macchine, studenti, …) o immateriali (conti corrente, corsi, …).
Ogni entità ha un nome.
Relazione
Rappresenta un legame logico tra entità di interesse per l’applicazione.
Ogni istanza di una relazione è un’ n-pla tra le singole istanze delle entità coinvolte nella relazione.
Ogni relazione è caratterizzata da un nome.
Ci possono essere relazioni diverse tra le stesse entità.
Le relazioni possono anche essere ternarie, ma di solito vengono usate poco.
Attributi
Rappresentano caratteristiche delle entità e delle relazioni di interesse per l’applicazione.
Ogni istanza di entità e di relazione possiede un valore per ciascun attributo.
Ogni attributo è caratterizzato da un nome.
Esempio di attributi di relazioni Esempio di schema entità relazione
Cardinalità
È il numero di volte che una data istanza di entità deve e può partecipare ad una relazione.
- (1, 1): obbligatoria, una sola volta
- (1, n): obbligatoria, almeno una volta
- (0, 1); opzionale, una sola volta
- (0, n): opzionale, fino ad n volte
Cardinalità degli attributi
Scalare: un solo valore.
Multivalore: sono ammessi n valori.
Entità o attributo?
Come si sceglie se definire una nuova entità o un nuovo attributo?
Se il concetto è significativo per il contesto applicativo: entità.
Se il concetto è marginale e descrivibile in modo semplice: attributo.
Se il concetto esprime un legame tra entità: relazione.
Identificatore
Identifica in modo univoco la singola istanza di un’entità:
- è totale, obbligatorio, unico ed esplicito
- può essere composto, ma non può assumere valori nulli
- non è generalmente modificabile
Entità deboli
Sono entità i cui attributi non sono sufficienti ad identificarle.
Contengono istanze la cui presenza nel sistema è accettata solo se presenti determinate istanze di altre entità da cui queste dipendono:
- In caso di eliminazione dell’istanza di riferimento le istanze deboli collegate devono essere eliminate
- L’identificatore dell’entità debole conterrà l’identificatore dell’entità da cui dipende
Generalizzazione
Una gerarchia di generalizzazione è il legame logico tra un’entità padre E ed alcune entità figlie , dove:
- E è la generalizzazione di
- sono le specializzazioni di E
- Ogni istanza di è anche istanza di E (e di tutte le sue generalizzazioni)
- Una istanza di E può essere istanza di una o più
- Gli attributi dell’entità E non devono essere replicati nelle sue specializzazioni, in quanto esse li ereditano (come in Java).
Nell’immagine sopra ci sono delle lettere: di seguito se ne trova il significato.
- t sta per totale: ogni istanza dell’entità padre deve far parte di una delle entità figlie
- p sta per parziale: ogni istanza dell’entità padre può far parte o no di una delle entità figlie
- e sta per esclusiva: ogni istanza dell’entità padre deve far parte di una sola delle entità figlie
- o sta per overlapping: ogni istanza dell’entità padre può far parte di una o più sola delle entità figlie contemporaneamente