2. Progettazione Concettuale

La progettazione concettuale traduce i requisiti di un qualsiasi sistema informatico in una descrizione:

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à

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.

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 E1,E2,...,EnE_1, E_2, ..., E_n, dove:

  • E è la generalizzazione di E1,E2,...,EnE_1, E_2, ..., E_n
  • E1,E2,...,EnE_1, E_2, ..., E_n sono le specializzazioni di E
  • Ogni istanza di EkE_k è anche istanza di E (e di tutte le sue generalizzazioni)
  • Una istanza di E può essere istanza di una o più EkE_k
  • 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.