Livello concettuale e schema E/R | Informatica Anno 5 Modulo 1 L02 | Prof. Giagnotti
Informatica · Anno 5 · Modulo 1 · Lezione 02
✍ Autore: profgiagnotti · Lezione 02

Livello concettuale e schema E/R

Dalla differenza tra sistemi informativi e informatici alla progettazione concettuale: il modello Entity/Relationship per rappresentare entità, associazioni e attributi. UML e Chen a confronto, cardinalità, chiavi, associazioni con attributi.

Anno 5Modulo 1 Lezione 02Modello E/R Chen & UMLSVG Responsive ~45 min di lettura📑 Stampa →
OBIETTIVI DI APPRENDIMENTO
✓Individuare le entità ed i relativi attributi
✓Riconoscere le associazioni tra le entità
✓Determinare il grado di una associazione
✓Riconoscere molteplicità e tipo di associazioni (1:1, 1:N, N:M)
✓Rappresentare i dati attraverso il modello E/R in UML e Chen
Cosa studieremo

Vedremo cosa significa modellare i dati, come progettare una base di dati attraverso i 3 livelli di astrazione affrontando il primo dei 3 livelli, il livello concettuale, e studiando un modello che consente di rappresentare i dati in modo semplificato: il modello entity/relationship.

1. Il modello dei dati

Modellare i dati significa realizzare una rappresentazione semplificata della realtà osservata o di un problema, individuandone gli elementi caratterizzanti e i legami che intercorrono tra essi.

La progettazione di un modello di dati avviene attraverso 3 livelli di astrazione:

1

LIVELLO CONCETTUALE o livello di oggetti: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema. Indipendente dal DBMS.

2

LIVELLO LOGICO o livello di record: rappresenta il modo in cui i dati vengono organizzati negli archivi ovvero la composizione e la loro struttura logica. Deriva dal concettuale.

3

LIVELLO FISICO è l’implementazione del livello logico sui supporti per la registrazione fisica dei dati (file, indici, partizioni).

FIGURA — 3 LIVELLI DI ASTRAZIONE
LIVELLO CONCETTUALE — Schema E/R Rappresenta la realtà in modo indipendente da tecnologia. Entità, attributi, relazioni. Linguaggio progettista e utente. LIVELLO LOGICO — Schema Relazionale Traduce E/R in tabelle, colonne e chiavi secondo modello relazionale. Indipendente dal DBMS specifico. LIVELLO FISICO — Implementazione SQL Crea tabelle nel DBMS scelto (MySQL, PostgreSQL...). Dipende da sistema, tipi dato, ottimizzazioni.

2. Il livello concettuale ed il modello E/R

La progettazione concettuale è la sintesi tra la visione degli utenti e la visione di chi progetta l’applicazione. Essa deve possedere 2 caratteristiche opposte: essere estremamente precisa ed espressa con formalismi sufficientemente semplici da permetterne la lettura anche da parte di utenti non tecnici.

Il modello Entità / Associazioni ha queste caratteristiche.

⚠️ Attenzione terminologia

In letteratura si legge spesso Modello Entità / Relazioni ma il termine relazione è importante nel modello relazionale dei dati, assumendo un significato totalmente diverso poiché si riferisce al livello logico della progettazione. Qui usiamo Entità / Associazioni.

Ipotizziamo di voler rappresentare i libri presenti in una biblioteca e i relativi editori. Potrò esprimere il modello nei due seguenti modi:

FIGURA DB1-1 — CONFRONTO UML VS CHEN PER EDITORE PUBBLICA LIBRO
UML EDITORE pubblica LIBRO CHEN EDITORE pubblica LIBRO

2.2 I componenti del diagramma E/R

▭ Entità

Rappresenta una classe di oggetti del mondo reale con esistenza autonoma e distinguibile. Si rappresenta con un rettangolo. Il nome è sempre al singolare e in maiuscolo.

✅ Esempi validi: STUDENTE, CORSO, PROFESSORE, PRODOTTO
❌ Non sono entità: "iscrizione" (è una relazione), "nome" (è un attributo)
STUDENTE
◯ Attributi

Le proprietà che descrivono un'entità. Si rappresentano con ellissi collegate all'entità. L'attributo che identifica univocamente ogni occorrenza è la chiave — si sottolinea nel diagramma.

Semplice: un solo valore (Nome, Cognome)
Composto: più sotto-attributi (Indirizzo → Via, Città, CAP)
Multivalore: più valori possibili (NumeriTelefono)
Derivato: calcolabile da altri (Età da DataNascita)
◇ Associazioni (Association)

Rappresenta un legame logico tra due o più entità. Si disegna con un rombo collegato alle entità partecipanti. Anche le relazioni possono avere attributi propri.

ISCRIZIONE
collegata tra STUDENTE e CORSO
Entità Debole

Un'entità che non ha chiave propria e dipende da un'entità forte per la propria identificazione. Si rappresenta con un doppio rettangolo. La relazione di dipendenza usa un doppio rombo.

Es: EDIFICIO debole rispetto a UNIVERSITÀ — il numero dell'edificio è unico solo all'interno di un campus specifico

2.1 Le Entità: «cosa devo memorizzare?»

Un’entità rappresenta una classe di oggetti della realtà che hanno caratteristiche comuni e un’esistenza autonoma nel contesto analizzato.

FIGURA — ENTITÀ EDITORE
EDITORE
ConcettoEsempio
EntitàSTUDENTE
Istanza / occorrenzaMario Rossi, matricola S1024
EntitàLIBRO
Istanza / occorrenza«Il nome della rosa», ISBN 9788845292613

2.2 Associazioni: «come sono collegati gli oggetti?»

Una realtà interessante non è composta da oggetti isolati. Gli oggetti interagiscono: uno studente frequenta un corso, un cliente effettua ordini, un autore scrive libri.

Entità AAssociazioneEntità B
STUDENTEfrequentaCORSO
CLIENTEeffettuaORDINE
AUTOREscriveLIBRO
FIGURA — ASSOCIAZIONE CHEN ENTITÀ A - ASSOCIAZIONE - ENTITÀ B
ENTITÀ A ASSOCIAZIONE ENTITÀ B

2.2.1 Grado delle associazioni e ricorsive

Le associazioni hanno un grado determinato dal numero di entità che partecipano. Le più diffuse sono le binarie. Ternaria: Fornitore, Prodotto, Magazzino → Fornitura. Ricorsiva: DIPENDENTE coordina DIPENDENTE.

FIGURA ASS1-1 — ASSOCIAZIONE RICORSIVA DIPENDENTE COORDINA - SVG RESPONSIVE
DIPENDENTE coordina

2.3 Attributi di entità e di associazioni

Un’entità da sola dice che cosa stiamo rappresentando, ma non quali informazioni vogliamo memorizzare. Gli attributi descrivono le proprietà delle entità. Formato, dimensione, opzionalità.

FIGURA ATTRIBUTI STUDENTE
STUDENTE matricola PK nome cognome data_nascita indirizzo codice_fiscale

Anche le associazioni possono avere attributi. Esempio concessionaria: Persona, Automobile, Acquisto con data, prezzo_acquisto, targa.

FIGURA UML ASSOCIAZIONE CON ATTRIBUTI
PERSONA ACQUISTOdataprezzo_acquistotarga AUTOMOBILE
FIGURA CHEN ASSOCIAZIONE CON ATTRIBUTI
PERSONA AUTOMOBILE ACQUISTO data prezzo_acquisto targa
📌 Regola importante

In questa fase di progettazione vanno individuati solo gli attributi elementari e non vanno definiti gli attributi derivati da una elaborazione. Esempio: età da DataNascita, saldoContoCorrente da movimenti. Il mancato rispetto produce inefficienza.

2.4 Le Chiavi — identificare univocamente

📖 Definizione — Chiave primaria

Una chiave primaria (Primary Key, PK) è un insieme minimale di attributi o un attributo che identifica univocamente ogni istanza di un’entità. Se formata da più attributi è chiave composta {PPK}.

🔑

Chiave Candidata: attributo (o combinazione minima) che identifica univocamente. Es. STUDENTE: sia Matricola che CodiceFiscale sono candidate.

🗝

Chiave Primaria (PK): candidata scelta come identificatore principale. Non può contenere NULL e deve essere unica. Es. Matricola.

🔗

Chiave Esterna (FK): concetto modello relazionale. Attributo che fa riferimento a PK di altra tabella. Es. CodClasse in STUDENTE → CLASSE.

3. Tipi di associazione — Molteplicità

📖 Definizione — Molteplicità

La molteplicità di un’associazione è il numero di possibili istanze di un’entità in corrispondenza di un’istanza dell’altra entità che partecipa all’associazione.

NotazioneSignificatoEsempio
(1,1) — 1..1Obbligatoria esattamente unaOgni STUDENTE appartiene a esattamente una CLASSE
(0,1) — 0..1Opzionale al massimo unaPERSONA può avere zero o un PASSAPORTO
(1,N) — 1..NObbligatoria, molteCLASSE deve avere almeno uno STUDENTE
(0,N) — 0..NOpzionale, moltePROFESSORE può avere zero o più CORSI
MOLTEPLICITÀ - COME LEGGERE LA FRASE
«Un cliente può effettuare zero o più ordini» → CLIENTE 0..N«Ogni ordine deve appartenere a un solo cliente» → ORDINE 1..1

4. Cardinalità: la parte più importante del diagramma

La cardinalità indica quante occorrenze di un’entità possono essere associate a occorrenze dell’altra. È la regola del gioco del mondo reale.

1:1

Uno a uno: Ad ogni occorrenza di A corrisponde al massimo una occorrenza di B, e viceversa. Es. PERSONA ——1—— POSSIEDE ——1—— PASSAPORTO

1:N

Uno a molti: Ad ogni occorrenza di A corrispondono più occorrenze di B, ma ogni B è associata a una sola A. La più comune. Es. CLASSE ——1—— CONTIENE ——N—— STUDENTE

N:M

Molti a molti: Ad ogni occorrenza di A corrispondono più occorrenze di B, e viceversa. Nel relazionale si risolve con tabella di congiunzione. Es. STUDENTE ——N—— FREQUENTA ——M—— CORSO

CARDINALITÀ 1:1, 1:N, N:M
1:1 — PERSONA HA UNA SOLA CARTA D'IDENTITÀ PERSONA possiede CARTA_ID (1,1) (1,1) Ogni persona ha esattamente 1 carta, ogni carta appartiene a 1 sola persona. 1:N — IL CASO PIÙ COMUNE · CLIENTE EFFETTUA ORDINE CLIENTE effettua ORDINE #101 ORDINE #102 ORDINE #103 (1,1) (1,N) 1 cliente → N ordini, ogni ordine appartiene a 1 solo cliente. Caso più usato nei DB. N:M — MOLTI A MOLTI · STUDENTE FREQUENTA CORSO STUDENTE FREQUENTA CORSO (0,N) (0,M) Nota docente — fondamentale: N:M è legittima nel modello CONCETTUALE, ma nel modello LOGICO diventa una tabella associativa (es. ISCRIZIONE con FK studente + corso + data). Esempio: STUDENTE(1) —(0,N) FREQUENTA (0,M)— CORSO(1) → ISCRIZIONE[matricola, codiceCorso, voto]

5. Come si passa da una traccia al diagramma E/R - 7 passi

01

Individua i «nomi importanti» — persone, oggetti, luoghi, eventi o concetti autonomi. Candidati entità.

02

Elimina i falsi candidati — «Indirizzo» è attributo di Cliente; «cliente» è entità.

03

Individua gli attributi — Per ogni entità: quali informazioni servono per descriverne un’istanza?

04

Trova gli identificatori — Scegli PK naturale se affidabile, altrimenti artificiale id_cliente.

05

Individua i verbi — effettua, contiene, scrive, insegna, appartiene, prenota… sono associazioni.

06

Determina le cardinalità — Leggi frasi in entrambe direzioni. Non indovinare: deduci dal testo.

07

Controlla il modello — Tutte le informazioni richieste sono rappresentabili? Duplicazioni? Entità inutili?

Validazione con frasi naturali

Ogni autore può scrivere uno o più libri ed ogni libro deve essere scritto da un solo autore
Ogni editore può pubblicare uno o più libri ed ogni libro deve essere pubblicato da un solo editore
Ogni categoria deve classificare uno o più libri ed ogni libro deve essere classificato attraverso una sola categoria

6. Esempio completo — la biblioteca

Scenario: vogliamo gestire una piccola biblioteca. Sono presenti LIBRI, AUTORI, EDITORI e CATEGORIE.

EntitàAttributi principaliPK
AUTOREid_autore, nome, cognome, nazionalità, data_nascita, genereid_autore
LIBROISBN, titolo, anno_pubblicazione, lingua, prezzoISBN
EDITOREid_editore, ragione_sociale, indirizzo, cittàid_editore
CATEGORIAid_categoria, descrizioneid_categoria
AssociazioneCardinalitàMotivazione
AUTORE — scrive — LIBRO1:NUn autore molti libri; ogni libro un autore (versione semplificata)
EDITORE — pubblica — LIBRO1:NUn editore molti libri; ogni libro un editore
CATEGORIA — classifica — LIBRO1:NUna categoria molti libri; ogni libro una categoria
SCHEMA E/R COMPLETO — BIBLIOTECA
SCRIVE PUBBLICA CLASSIFICA 1 N N 1 N 1 AUTORE PK id_autore nome cognome nazionalità data_nascita LIBRO PK ISBN titolo anno_pub. lingua prezzo EDITORE PK id_editore ragione_sociale indirizzo città CATEGORIA PK id_categoria descrizione modello concettuale — diagramma E/R

7. Un caso più realistico: libri e più autori

Se un autore può scrivere molti libri e un libro può avere molti autori, l’associazione diventa AUTORE N:M LIBRO. Nel modello relazionale sarà necessario introdurre tabella associativa SCRITTURA.

DAL CONCETTUALE AL RELAZIONALE - N:M → DUE 1:N + ENTITÀ ASSOCIATIVA
AUTOREPK id_autore SCRITTURAPK/FK id_autorePK/FK ISBNruolo LIBROPK ISBN 1N N1 N:M → due relazioni 1:N + entità associativa | ruolo = attributo dell’associazione

8. Associazioni con attributi

Alcune informazioni descrivono il legame tra entità. In STUDENTE — sostiene — ESAME, il voto non è attributo dello studente né dell’esame, ma del legame specifico.

ATTRIBUTO DELL’ASSOCIAZIONE - STUDENTE SOSTIENE ESAME
STUDENTEPK matricola SOSTIENE ESAMEPK id_esame voto data
🎯 Domanda decisiva - Dove metto l’attributo?

Chiediti sempre: «Questo attributo descrive l’oggetto oppure descrive il collegamento tra due oggetti?» La risposta determina dove collocarlo. Voto non descrive studente in assoluto, né esame in assoluto. Descrive quello studente in quell’esame.

9. Associazioni ternarie e ricorsive: quando il modello diventa più complesso

TERNARIA: FORNITORE — PRODOTTO — SEDE: una specifica sede acquista uno specifico prodotto da uno specifico fornitore.
RICORSIVA: DIPENDENTE — supervisiona — DIPENDENTE: un dipendente può essere responsabile di altri dipendenti.

✅ Buona pratica

Per gli esercizi ordinari conviene privilegiare associazioni binarie quando sono sufficienti a rappresentare correttamente la realtà. Le associazioni ternarie e ricorsive si usano quando la loro informazione non può essere rappresentata senza perdere significato.

10. Errori tipici nella progettazione E/R

ErrorePerché è sbagliatoCorrezione
Confondere entità e attributoSi perde possibilità di rappresentare più occorrenze autonomeChiedersi se concetto ha propria identità
Usare nome+cognome come PKNon garantisce unicitàUsare identificatore affidabile
Invertire 1 e NStruttura DB errataLeggere relazione in entrambe direzioni
Mettere tutto in una sola entitàProduce ridondanzaSeparare concetti autonomi
Creare tabella per ogni associazione 1:N nel concettualeSi confondono concettuale e logicoPrima modellare realtà; poi tradurre in tabelle
Ignorare attributi dell’associazioneVoto, quantità, ruolo collocati maleVerificare se attributo dipende dal legame

11. E/R e modello relazionale: non sono la stessa cosa

E/R VS RELAZIONALE - CONFRONTO
MODELLO CONCETTUALE: CLIENTE 1 — effettua — N ORDINE — entità, attributi, cardinalità, indipendente da DBMS↓ traduzione MODELLO RELAZIONALE: CLIENTE(id_cliente PK, nome, email) — ORDINE(id_ordine PK, data_ordine, id_cliente FK → CLIENTE)Nel concettuale non stai ancora scrivendo SQL. La FK è concetto del logico.DA RICORDARE: FK = modello logico, non concettuale.
📌 Da ricordare

Nel diagramma E/R non stai ancora scrivendo SQL. La FK è un concetto del modello logico relazionale. Nel modello concettuale ci interessa soprattutto esprimere che un ordine è effettuato da un cliente.

12. Laboratorio mentale — progettare senza disegnare subito

📝 Esercizio A — videoteca

Una videoteca gestisce film, registi e clienti. Ogni film ha codice, titolo, anno e durata. Un regista può dirigere più film, mentre ogni film ha un solo regista. Un cliente può noleggiare più film e lo stesso film può essere noleggiato da molti clienti nel tempo. Per ogni noleggio si devono memorizzare data di inizio e data di restituzione.

Domande: Quali sono le entità? PK? Associazioni? Cardinalità? Dove collocheresti le date del noleggio?

✅ Soluzione ragionata A

Entità: FILM, REGISTA, CLIENTE. Associazioni: REGISTA 1:N FILM; CLIENTE N:M FILM tramite NOLEGGIO. Attributi dell’associazione NOLEGGIO: data_inizio, data_restituzione. Queste informazioni dipendono dallo specifico rapporto tra un cliente e uno specifico film.

📝 Esercizio B — scuola

Una scuola gestisce studenti, classi e docenti. Ogni studente appartiene a una sola classe. Una classe comprende molti studenti. Un docente può insegnare più materie e una materia può essere insegnata da più docenti. Obiettivo: costruisci il diagramma E/R individuando anche l’eventuale entità MATERIA.

📝 Esercizio C — sfida ricorsiva

In un’azienda ogni dipendente può supervisionare altri dipendenti. Un dipendente può avere al massimo un supervisore diretto, mentre un supervisore può avere molti collaboratori. Obiettivo: rappresenta l’associazione ricorsiva SUPERVISIONA e indica le cardinalità.

✅ Checklist prima di consegnare un diagramma E/R

□ Ho individuato tutte le entità necessarie?
□ Ogni entità ha un identificatore?
□ Gli attributi sono associati all’entità corretta?
□ Le associazioni hanno un nome significativo?
□ Ho verificato la cardinalità in entrambe le direzioni?
□ Ho individuato eventuali attributi delle associazioni?
□ Sto descrivendo il modello concettuale, senza anticipare inutilmente SQL?
□ Il diagramma rappresenta davvero tutte le regole espresse dalla traccia?

📌 Punti chiave — Da studiare per verifica

Il modello E/R descrive concettualmente una realtà prima della sua implementazione nel DBMS. Le entità rappresentano classi di oggetti autonomi; le loro singole occorrenze sono le istanze. Gli attributi descrivono le proprietà delle entità e, in alcuni casi, delle associazioni. La PK identifica univocamente ogni istanza. Le associazioni rappresentano i legami significativi. Le cardinalità fondamentali sono 1:1, 1:N e N:M; per una descrizione più precisa si possono indicare minimo e massimo, come 0..N o 1..1. Una relazione N:M è corretta nel modello concettuale; nel modello relazionale sarà trasformata tramite entità/tabella associativa. Un attributo come voto, quantità, ruolo o data di partecipazione può appartenere all’associazione se descrive il legame e non una delle entità. La progettazione efficace parte dalla traccia: nomi → entità, proprietà → attributi, verbi → associazioni, frasi quantitative → cardinalità.

🐙 Laboratori Pratici

Vuoi passare all'azione? Accedi alla repository ufficiale GitHub del corso per scaricare i file del laboratorio pratico in formato .md.

Vuoi consultare la sezione dedicata ai laboratori sul sito? Accedi cliccando il pulsante qui sotto.

🛠️ Sezione dedicata ai Laboratori

Consulta anche la sezione dedicata alle Guide. Qui trovi soluzioni ad esercizi sul modello E/R.

📦 Sezione dedicata alle Guide

📚 Prossimo passo - Dal concettuale al logico

Nella prossima lezione traduciamo questo schema E/R in tabelle relazionali: PK, FK, vincoli, e come la N:M diventa tabella associativa con doppia FK. Se questo E/R è chiaro, il relazionale sarà meccanico. Portate i diagrammi di oggi: li trasformeremo in SQL.