Manuale completo per l'Esame di Stato · E-R e Progettazione Concettuale · Livello 2/3 · Edizione Integrale

Dai Requisiti al Modello E-R

Dal testo alla consegna perfetta: metodo passo-passo, schemi pronti, 6 casi svolti, esercizi con soluzioni e template per la Seconda Prova

Contenuto didattico avanzato — per la classe 5ª e la preparazione all'Esame di Stato

🎯 Obiettivi — alla fine saprai
  • Tradurre qualsiasi specifica d'esame in entità/attributi/associazioni
  • Applicare i trucchi salva-punti (Test Decisivo, Domanda Magica, 8 schemi)
  • Riconoscere ed esplicitare le assunzioni progettuali
  • Impaginare la consegna d'esame secondo gli standard ministeriali
📚 Prerequisiti
  • Concetti base di modello concettuale e relazionale
  • Simbologia grafica E-R (rettangolo, rombo, pallini, generalizzazioni)
⏱ Percorsi di studio
  • Percorso base (≈ 90 min di studio reale · oppure attiva «Modalità essenziale»): §§1–4, Er1–Er2, Passo 3 (§5, senza Er3), poi 1 esempio tra §§6–8
  • Percorso completo & Esame (≈ 3–4 h): Er3, esempi §§9–11, §12, §13 e §14
  • Fai i 4 quiz e i 2 «Trova l’errore» ✓ e stampa la Scheda di Sintesi (§15) col pulsante dedicato

1 Il processo: dove si colloca questo lavoro

Per fare un database si fanno 4 passi, uno dopo l’altro:

Le quattro fasi della progettazione di un database 1. Analisi dei requisiti 2. Progettazione concettuale → E-R 3. Progettazione logica 4. Progettazione fisica Questo manuale riguarda le fasi 1 e 2 (evidenziato in giallo/blu)
Quello che capisci dal testo (fase 1) diventa il disegno E-R (fase 2).
In sintesi Fase 1: leggi il testo, annoti le ipotesi su ciò che non è detto, poi lo traduci in costrutti.
Fase 2: trasformi quello che hai capito in un disegno: lo schema E-R.
Perché serve un metodo Il testo dice cose come «ogni studente sta in una classe», «un libro ha più autori», «per un socio servono due telefoni». Il tuo lavoro è trasformare queste frasi nei 4 pezzi del disegno: entità, attributi, legami e chiavi. Nelle prossime sezioni vedrai come farlo passo passo.
📖 Parole chiave — passa col mouse (o tocca) le parole Minimondo · Testo · Istanza · Cardinalità · Copertura

2 Passo 0 — Leggere il testo e scrivere le ipotesi

0 Prima di classificare le parole (quello è il Passo 1) fai due cose sole: leggi con attenzione e scrivi le ipotesi su ciò che il testo non dice. Non è un metodo parallelo: è il foglio su cui, dopo, giustifichi le tue scelte.

1. Leggi il testo, non il disegno

Rileggi la traccia due o tre volte, a voce bassa se ti aiuta. Distingui ciò che è detto da ciò che è lasciato implicito. Non tradurre ancora in rettangoli e rombi: le quattro domande del Passo 1 arriveranno dopo, e servono proprio a quello.

2. Scrivi le ipotesi (numerate)

Ogni volta che per andare avanti devi decidere qualcosa che il testo non dice, scrivila come ipotesi numerata. Parla del minimondo, non del costrutto E-R:

Esempio — dopo la prima lettura di una traccia «biblioteca»
IpotesiPerché la scrivo
1. C’è una sola biblioteca, senza dati propri richiesti.Il testo dice «gestisco una piccola biblioteca»: è la cornice, non un elenco.
2. Lo stesso socio non riprende lo stesso libro in date diverse.Il testo parla di prestiti e della data, ma non dice se la coppia socio–libro può tornare. Devo decidere.
3. I donatori sono una categoria di soci, non un gruppo a sé.Il testo dice «alcuni soci sono anche donatori»: è un sottoinsieme del mondo dei soci.

Queste tre frasi non sono ancora il modello. Al Passo 1 e al Passo 3 le userai per motivare (prestito come rombo o come entità; biblioteca fuori dallo schema; donatore come sottoinsieme o come attributo).

Le ipotesi si allargano dopo

L’elenco del Passo 0 è un foglio vivo. Quando al Passo 1 (domanda 4) o al Passo 3 (R3, R4) fai una scelta che il testo non impone, aggiungi o precisa un’ipotesi: non inventare vincoli che la traccia non suggerisce, ma non lasciare le scelte «a sentimento».

Se la traccia è completa e chiara, l’elenco può essere corto. All’esame quasi mai lo è: i punti extra arrivano proprio dalle assunzioni scritte.

✔️ Output del Passo 0: un elenco numerato di ipotesi (anche breve, anche da completare). Poi passi al Passo 1: le quattro domande, una parola alla volta.

3 Passo 1 — Leggere il testo ed individuare attributi, entità, associazioni

Rettangolo = entità
Rombo = associazione
Pallino pieno = identificatore
Pallino vuoto = attributo
Doppio cerchio = multivalore (0,n)
(1,n) Cardinalità accanto all'entità
Attenzione — una parola può cambiare ruolo

Quando traduci un testo in un modello E-R, una stessa parola (ad esempio Città, Visita, Iscrizione) può diventare attributo, entità o associazione, a seconda di ciò che il testo richiede. Le domande da porsi, in ordine, sono:

  1. La parola ha due o più dati propri descrittivi?
    "Di Città, il testo mi chiede solo il nome, oppure anche altri dati (come provincia, abitanti, sindaco…)?"
  2. La parola è collegata ad altri concetti?
    "Nel testo, la Città è collegata ad altri termini (ad esempio, la Città appartiene a una Provincia, che ha un nome, una superficie, un numero di abitanti…)?"

Rispondendo alle domande 1 e 2 stabilisci se la parola del testo considerata è un attributo o non è un attributo

  • Se la risposta a 1 e 2 è NO → la parola è un attributo (pallino vuoto).
  • Se la risposta a 1 o 2 è → la parola non è un semplice attributo: potrebbe essere un'entità, ma anche un'associazione. Per distinguere, prosegui con la domanda 3.
  1. La parola rappresenta un legame o un evento tra due o più concetti?
    "La parola descrive un'azione, una relazione o un evento che collega altre entità (ad esempio Iscrizione, Prenotazione, Matrimonio)?"
    • Se la risposta è NO → la parola è un'entità (rettangolo) a sé stante, collegata ad altre entità con opportuni legami.
    • Se la risposta è → sorge il dubbio: associazione o entità? Per risolverlo, bisogna porsi una quarta domanda.

Solo se la risposta alla domanda 3 è SÌ, chiediti:

  1. La stessa coppia di istanze può essere coinvolta più volte nel legame?
    "Esempio: lo stesso Paziente e lo stesso Dottore possono avere più Visite distinte in date diverse, ognuna con diagnosi/terapia proprie?"
    • Se la risposta è NO → la parola è un'associazione (rombo) che collega due o più entità.
    • Se la risposta è → la parola, anche se sembra un legame, va modellata come entità (rettangolo), perché rappresenta un evento ripetibile con una propria identità.
Approfondimento — 5 varianti (Città / Iscrizione / Visita)

Tre varianti dello stesso testo per capire la differenza (tutte su Città)

  • Variante 1 — Solo il nome: «Di ogni studente vogliamo sapere la Città.» Qui della Città interessa solo il nome → risposte a 1 e 2: NO → attributo (pallino vuoto) di STUDENTE.
  • Variante 2 — Più dati propri: «Di ogni studente vogliamo sapere la Città; di ogni Città vogliamo ricordare nome, numeroAbitanti, nomeSindaco, cognomeSindaco.» Qui servono più dati propri della Città → risposta a 1: SÌ → non è attributo. Alla domanda 3 la risposta è NO (non è un legame) → entità CITTÀ, collegata a STUDENTE con il legame AbitaIn.
  • Variante 3 — Collegamento con un altro concetto: «Di ogni studente vogliamo sapere la Città; ogni Città appartiene a una Provincia, di cui vogliamo sapere nome, superficie, numeroAbitanti.» Qui la Città è collegata a un altro oggetto (PROVINCIA) con dati propri → risposta a 2: SÌ → non è attributo. Alla domanda 3 la risposta è NO (non è un legame) → entità CITTÀ, collegata sia a STUDENTE sia a PROVINCIA.

Due esempi per distinguere associazione ed entità-evento (solo quando la domanda 3 è SÌ)

  • Variante 4 — La parola rappresenta un legame semplice (associazione): «Di ogni studente vogliamo sapere nome e cognome; di ogni corso vogliamo sapere titolo e durata; di ogni iscrizione vogliamo ricordare la data.» Qui Iscrizione è un legame tra STUDENTE e CORSO (domanda 3: SÌ). Poiché uno studente si iscrive a un corso una sola volta (non ha senso iscriversi due volte allo stesso corso), la coppia (Studente, Corso) può comparire al massimo una volta → risposta alla domanda 4: NOassociazione ISCRIZIONE (rombo), collegata a STUDENTE e CORSO.
  • Variante 5 — La parola sembra un legame ma è un evento ripetibile (entità): «Di ogni paziente vogliamo sapere nome e codiceFiscale; di ogni dottore vogliamo sapere nome e specializzazione; di ogni visita vogliamo ricordare data, diagnosi e terapia prescritta.» Qui Visita sembra un legame tra PAZIENTE e DOTTORE (domanda 3: SÌ). Ma lo stesso paziente può essere visitato più volte dallo stesso dottore (in date diverse). La coppia (Paziente, Dottore) può quindi comparire più volte, e ogni visita ha una propria identità (data, diagnosi, terapia). Risposta alla domanda 4: Visita va modellata come entità VISITA (rettangolo), collegata a PAZIENTE e DOTTORE tramite associazioni (ad esempio Effettua e Riceve).

In sintesi: è il testo a decidere il ruolo della parola, non la parola stessa. Una stessa parola può essere attributo in un contesto, entità in un altro, associazione in un altro ancora. Il modellatore deve sempre chiedersi, in ordine: "Questa parola descrive una caratteristica? Un oggetto autonomo? Un legame tra oggetti? E se è un legame, è ripetibile tra le stesse istanze?"

Diagramma confrontativo Visita (errato vs corretto) — apri dopo le 4 domande
❌ MODELLO ERRATO — Visita come associazione DOTTORE PAZIENTE Visita (0,n) (0,n) Data Motivo

Il rombo collega la coppia (Dottore, Paziente) una volta sola: la seconda visita non si può registrare e Data/Motivo si confondono sulla stessa coppia.

✅ MODELLO CORRETTO — Visita come entità DOTTORE PAZIENTE VISITA (0,n) (1,1) (0,n) (1,1) CodVisita Data Motivo

VISITA è un rettangolo con i suoi attributi: ogni occorrenza è un'istanza distinta. Lati: DOTTORE/PAZIENTE (0,n) — VISITA (1,1) (ogni visita ha un dottore e un paziente).

I 5 ruoli delle parole — non confonderli Dopo la lettura e le ipotesi del Passo 0, a ogni parola va assegnato uno di questi 5 ruoli E-R (non confonderli):
  • Entità (rettangolo): cose di cui ricordare dati, ognuna con il suo elenco (CUOCO, PIATTO, TAVOLO);
  • Associazione (rombo): verbi che collegano due entità (Prepara tra Cuoco e Piatto);
  • Attributo (pallino): singolo valore di una sola cosa (Prezzo del piatto);
  • Verbo che è entità (rettangolo): sembra un legame (verbo) ma la stessa coppia torna con dati diversi → diventa entità (PRENOTAZIONE, Passo 1);
  • Contesto (fuori dal modello): cornice unica del minimondo (es. “la biblioteca” se il DB è di una sola biblioteca senza dati propri) — una sola istanza senza dati richiesti, non entra nello schema (vedi esempio sotto).
⚠️ Non tutto entra nel modello — il Contesto

Nel testo compaiono spesso parole che non sono né entità, né associazioni, né attributi: sono solo la cornice / contesto del minimondo, cioè lo sfondo unico in cui avviene tutto e di cui non devi memorizzare un elenco in tabella.

Come riconoscerlo: chiediti “di questa cosa devo fare un elenco con più righe?” Se la risposta è NO — perché ce n’è una sola, non ha dati propri (suoi, non delle cose che contiene) e non è collegata ad altro — è contesto e resta fuori dallo schema.

  • Esempio nell’esercizio qui sotto: «Gestisco un ristorante.» — RISTORANTE è il contenitore di tutto (il minimondo). Non ha un elenco di ristoranti diversi, né attributi propri richiesti: non diventa entità.
  • Altri esempi tipici: «L’università vuole gestire carriere e corsi…» → se il DB è di una sola università, UNIVERSITÀ è contesto; se invece il testo dice «più università convenzionate, ognuna con nome, sede, rettore…» allora diventa entità UNIVERSITÀ con i suoi attributi. Stesso per Biblioteca, Ospedale, Azienda: conta cosa chiede il testo, non la parola.
  • Regola pratica — non confondere contenitore e contenuto: i dati degli studenti (matricola, nome…) non sono dati dell’università. Se il testo chiede solo dati del contenuto (studenti, corsi, esami) e non chiede dati del contenitore stesso (nome/sede/rettore dell’università) né elenca più contenitori diversi, il contenitore è contesto e resta fuori. Diventa entità solo quando il testo ne richiede dati propri o ne prevede più istanze.
✓ Micro-esercizio interattivo — Entità, Associazioni, Attributi o Contesto?

Specifica: «Gestisco un ristorante. I cuochi preparano i piatti del menu; ogni piatto ha un prezzo ed è composto da più ingredienti. I clienti effettuano prenotazioni di tavoli per una specifica data e ora.»

Per ciascun elemento del testo scegli il costrutto corretto (distinguendo chiaramente tra Entità, Associazioni e Attributi): feedback immediato.

CUOCO
PREPARA (cuoco → piatto)
PIATTO
PREZZO
INGREDIENTE (più valori per piatto)
TAVOLO
PRENOTAZIONE (data, ora)
RISTORANTE
Mostra soluzione commentata completa

Applica il metodo in ordine: domande 1-2 → attributo o no; domanda 3 → entità o legame; domanda 4 → rombo o entità-evento; test del contenitore → contesto.

CUOCO, PIATTO, TAVOLO → Entità (rettangoli): domande 1 e 2: SÌ (elementi autonomi; il testo cita esplicitamente prezzo per PIATTO e data/ora per PRENOTAZIONE) → non sono attributi. Domanda 3: NO (non descrivono un legame) → entità di cui fare l’elenco.
PREZZO → Attributo semplice (pallino vuoto): domande 1 e 2: NO (singolo valore numerico del piatto, senza dati né legami propri) → resta attributo di PIATTO.
INGREDIENTE → Attributo multivalore (doppio cerchio) di PIATTO: domande 1 e 2: NO (il testo dice solo “composto da più ingredienti”, senza dati né legami propri dell’ingrediente) → non è entità: è un elenco di valori del piatto.
PREPARA → Associazione (rombo): domande 1-2: SÌ → non attributo. Domanda 3: SÌ (lega CUOCO e PIATTO). Domanda 4: NO (legame stabile, non evento ripetibile) → rombo.
PRENOTAZIONE (data, ora) → Entità-evento (rettangolo, trappola): domande 1-2: SÌ → non attributo. Domanda 3: SÌ (lega cliente—tavolo). Domanda 4: (la stessa coppia cliente/tavolo può tornare più volte in date diverse, ogni volta con dati propri) → non basta il rombo: va modellata come entità PRENOTAZIONE con due associazioni 1:n (Passo 1).
RISTORANTE → Contesto (fuori dal modello): test del contenitore/contenuto: è la cornice unica del minimondo (“gestisco un ristorante”), una sola istanza implicita e nessun dato proprio richiesto (i dati richiesti sono di cuochi/piatti/tavoli, non del ristorante stesso) → resta fuori dallo schema.
📋 Output del Passo 1 — cosa consegni

Alla fine del Passo 1 devi avere un elenco scritto, non solo idee in testa. L’output è una tabella di lavoro con una riga per ogni entità individuata:

Esempio — tabella Entità / Attributi / Associazioni (caso Ristorante — versione realistica)
EntitàAttributi (provvisori)Associazioni (con chi si lega)
CUOCOmatricola, nomePrepara → PIATTO
PIATTOcodice, nome, prezzo, ingrediente …Prepara ← CUOCO
CLIENTEcodice, nome, telefonoPrenota → PRENOTAZIONE
TAVOLOnumero, posti— (via PRENOTAZIONE)
PRENOTAZIONEdata, ora→ CLIENTE · → TAVOLO

La tabella è uno strumento di lavoro provvisorio per passare subito al disegno E-R: non va arricchita fino a diventare illeggibile. Compilarla ti evita di dimenticare entità o di confondere attributi con entità; i dettagli (identificatori, composti/multivalore, cardinalità e attributi di associazione) li curerai direttamente nello schema grafico. Vedi Passo 2 qui sotto per come compilarla.

🔍 Quiz — Trova l'errore nel modello

Lo schema qui sotto è stato disegnato da uno studente sulla specifica del ristorante (§3), con attributi, identificatori e cardinalità. Lo studente ha commesso 2 errori nell'assegnazione dei costrutti. Leggi lo schema, identifica tutti gli errori e spiegali.

Schema da analizzare

Matricola Nome CUOCO (0,n) Prepara (0,n) Codice Nome Prezzo Ingredienti PIATTO (0,n) Prenota Data Ora (0,n) Codice Nome Telefono Tavolo CLIENTE

Convenzioni: pallino pieno = identificatore · pallino vuoto = attributo · doppio cerchio = multivalore · (min,max) accanto all’entità.

Cosa trovi di sbagliato? Leggi attentamente lo schema e scegli l'errore:

Mostra spiegazione completa

Errore A — Prenotazione è un rombo, ma deve essere entità: Il testo dice "i clienti effettuano prenotazioni di tavoli per data e ora" — cioè la stessa coppia cliente–tavolo può comparire più volte (prenotazioni in date diverse). Secondo la domanda 4 del Passo 1, la coppia è ripetibile → Prenotazione deve essere un'entità (rettangolo) con due associazioni 1:n verso CLIENTE e TAVOLO.

Errore C — Tavolo è un attributo, ma deve essere entità: Il testo dice "ogni tavolo ha numero e posti a sedere" → ha dati propri, quindi Tavolo è un'entità autonoma, non un semplice pallino di CLIENTE.

Le altre opzioni non sono errori:

  • B) Gli ingredienti del testo sono solo nomi ("composto da più ingredienti") senza dati propri → corretto attributo multivalore.
  • D) "Ogni cliente vogliamo codice, nome e telefono" → singolo valore, non "più numeri" → attributo semplice è corretto.

4 Passo 2 — Costruire la tabella Entità / Attributi / Associazioni

2 Come anticipato nell’Output del Passo 1, ora trasformi l’elenco nella tabella di lavoro: una riga = un’entità, con i suoi attributi provvisori e le associazioni che la riguardano.

Come compilarla
  1. Colonna Entità: una riga per ogni entità individuata al Passo 1 (usa il nome al singolare, maiuscolo). Escludi il contesto.
  2. Colonna Attributi: elenca i dati citati dal testo dopo “di X vogliamo sapere…” così come compaiono, senza aggiungere colonne per identificatori/multivalore.
  3. Colonna Associazioni: per ogni entità indica i verbi/eventi che la legano ad altre entità (es. “Prepara → PIATTO”). Se un verbo è diventato entità-evento (PRENOTAZIONE), segnalo come entità a sé con le sue due associazioni.
Perché una tabella Ti costringe a scrivere e a verificare: ogni entità ha almeno un attributo? Ogni associazione collega davvero due entità della tabella? Se una riga resta vuota, hai dimenticato qualcosa o hai classificato male (es. un attributo scambiato per entità).
Prima di compilare — il Passo 1 termine per termine In ognuno dei tre esempi, prima della tabella trovi il ragionamento completo del Passo 1: ogni termine del testo attraversa le 4 domande del box «Attenzione — una parola può cambiare ruolo» del Passo 1 — 1. ha dati propri descrittivi? 2. è collegata ad altri concetti? (NO–NO → attributo); 3. rappresenta un legame o un evento tra due o più concetti?; 4. la stessa coppia di istanze può tornare più volte? — mentre per la cornice del minimondo vale il test del contenitore: «è una sola? ha dati propri? devo farne un elenco?» Se le tre risposte sono NO → contesto: resta fuori dallo schema.

Esempio 1 — Ristorante (versione realistica, estesa dal micro-esercizio)

Testo: «Gestisco un ristorante. Di ogni cuoco vogliamo matricola e nome; i cuochi preparano i piatti del menu; di ogni piatto vogliamo codice, nome, prezzo ed elenco degli ingredienti; di ogni cliente vogliamo codice, nome e telefono; ogni tavolo ha numero e posti a sedere; i clienti effettuano prenotazioni di tavoli per data e ora.» → RISTORANTE è contesto (una sola, senza dati propri — fuori tabella).

Esempio 1 · Passo 1 in azione — ogni termine attraversa le 4 domande del Passo 1 (+ test del contenitore)
Termine Domande 1–2
dati propri? collegata ad altri? (NO–NO → attributo)
Domanda 3
legame o evento?
Domanda 4
stessa coppia ripetibile?
Verdetto
RISTORANTETest del contenitore: «gestisco un ristorante» = cornice unica del minimondo; una sola istanza, il testo non chiede dati del ristorante, non devo farne un elencoContesto — fuori dallo schema
CUOCO1–2: SÌ (dati propri: matricola, nome; prepara i piatti) → non attributoNO (non è un verbo)Entità (rettangolo)
PIATTO1–2: SÌ (dati propri: codice, nome, prezzo, ingredienti; legato a cuochi e ingredienti) → non attributoNOEntità
CLIENTE1–2: SÌ (dati propri: codice, nome, telefono; effettua prenotazioni) → non attributoNOEntità
TAVOLO1–2: SÌ (dati propri: numero, posti; riceve prenotazioni) → non attributoNOEntità (entra nel disegno solo attraverso PRENOTAZIONE)
matricola, nome, codice, numero, posti1: NO (singoli valori, nessun dato proprio) · 2: NO → attributiAttributi semplici delle rispettive entità
PREZZO1: NO (singolo valore del piatto) · 2: NO → attributoAttributo semplice di PIATTO
INGREDIENTI1: NO (il testo chiede solo i nomi, nessun dato dell’ingrediente) · 2: NO → attributoAttributo multivalore (doppio cerchio) di PIATTO
TELEFONO1: NO · 2: NO → attributoAttributo di CLIENTE (doppio cerchio solo se il testo dicesse «più numeri»)
PREPARA («i cuochi preparano i piatti»)1–2: SÌ (verbo che collega due cose) → non attributoSÌ (lega CUOCO e PIATTO)NO (legame stabile, senza dati propri)Associazione (rombo)
PRENOTAZIONE1: SÌ (dati propri: data, ora) → non attributoSÌ (evento che collega CLIENTE e TAVOLO) («prenotazioni» al plurale, «per data e ora»: la stessa coppia cliente–tavolo torna in giorni diversi, ogni volta con dati propri)Entità-evento (rettangolo, trappola — vedi Passo 1)
data, ora (della prenotazione)1: NO · 2: NO → attributiAttributi dell’entità PRENOTAZIONE: descrivono l’evento, non il cliente né il tavolo
EFFETTUA («i clienti effettuano prenotazioni»)1–2: SÌ (verbo) → non attributoSÌ (lega CLIENTE e PRENOTAZIONE)NOAssociazione (rombo)
→ Passo 2 · Tabella di lavoro risultante
EntitàAttributiAssociazioni
CUOCOmatricola, nomePrepara → PIATTO
PIATTOcodice, nome, prezzo, ingredientePrepara ← CUOCO
CLIENTEcodice, nome, telefonoPrenota → PRENOTAZIONE
TAVOLOnumero, posti— (via PRENOTAZIONE)
PRENOTAZIONEdata, ora→ CLIENTE · → TAVOLO

Perché ingrediente è attributo? Domande 1-2: NO (il testo non chiede dati né legami propri per l’ingrediente, solo i nomi che compongono il piatto) → non è entità; è un attributo multivalore di PIATTO. — Perché CLIENTE ha telefono? Perché è realistico e richiesto: un cliente senza identificativo/telefono non sarebbe contattabile per la prenotazione.

Esempio 2 — Biblioteca (contenitore = contesto)

Testo: «La biblioteca vuole gestire i prestiti. Di ogni libro vogliamo titolo e codice; di ogni socio nome e numTessera; un socio prende in prestito più libri e del prestito ricordiamo la data.» → BIBLIOTECA è contesto (una sola, senza dati propri).

Esempio 2 · Passo 1 in azione — il contenitore (BIBLIOTECA) non supera il test → contesto
Termine Domande 1–2
dati propri? collegata ad altri? (NO–NO → attributo)
Domanda 3
legame o evento?
Domanda 4
stessa coppia ripetibile?
Verdetto
BIBLIOTECATest del contenitore: «La biblioteca vuole gestire i prestiti»: una sola, il testo non chiede dati su di essa (né nome, né città…), non devo farne un elencoContesto — fuori dallo schema
LIBRO1–2: SÌ (dati propri: titolo, codice; collegato ai soci dal prestito) → non attributoNOEntità (rettangolo)
SOCIO1–2: SÌ (dati propri: nome, numTessera; prende in prestito libri) → non attributoNOEntità
titolo, codice, nome, numTessera1: NO (singoli valori) · 2: NO → attributiAttributi semplici (codice e numTessera diventeranno identificatori in Er1, ma in tabella restano qui)
PRESTITO («prende in prestito»)1–2: SÌ (verbo con un dato proprio: la data) → non attributoSÌ (lega SOCIO e LIBRO)NO — assunzione: la stessa coppia socio–libro è in prestito una volta sola; se il testo dicesse «riprende più volte lo stesso libro» → entità PRESTITO (Passo 1)Associazione (rombo)
data («del prestito ricordiamo la data»)1: NO · 2: NO → attributoAttributo dell’associazione: descrive la coppia (socio, libro), non il socio né il libro → pallino sul rombo
→ Passo 2 · Tabella di lavoro risultante
EntitàAttributiAssociazioni
LIBROcodice, titoloPrestito → SOCIO
SOCIOnumTessera, nomePrestito → LIBRO

Nota: PRESTITO qui è un legame con attributo data (coppia non ripetibile, ovvero si fa l’ipotesi che un utente non prenda in prestito lo stesso libro più volte) → resta nella colonna Associazioni, non diventa riga a sé. Se il testo dicesse “lo stesso socio può riprendere lo stesso libro più volte”, diventerebbe entità PRESTITO con riga propria.

Esempio 3 — Catena di biblioteche (contenitore = entità)

Testo: «Una catena gestisce più biblioteche, ognuna con nome, città e orario; ogni biblioteca possiede più copie di libri.» → qui BIBLIOTECA ha dati propri e più istanze → è entità.

Esempio 3 · Passo 1 in azione — qui il contenitore (BIBLIOTECA) supera il test → entità; la CATENA resta contesto
Termine Domande 1–2
dati propri? collegata ad altri? (NO–NO → attributo)
Domanda 3
legame o evento?
Domanda 4
stessa coppia ripetibile?
Verdetto
CATENATest del contenitore: «una catena gestisce più biblioteche»: una sola catena, il testo non chiede dati su di essa (né nome, né sede…), non devo farne un elencoContesto — fuori dallo schema
BIBLIOTECA1–2: SÌ (dati propri: nome, città, orario; possiede copie) → non attributoNOEntità — a differenza dell’Esempio 2: qui ha dati propri e ce n’è più di una → va in tabella
nome, città, orario1: NO (singoli valori) · 2: NO → attributiAttributi semplici di BIBLIOTECA
COPIA1: il testo non cita dati, ma «più copie» = oggetti da elencare e distinguere uno per uno · 2: SÌ (ogni copia appartiene a una biblioteca ed è la copia di un libro) → non attributo; assunzione: aggiungiamo codiceCopiaNOEntità (in Er1 potrà essere modellata come entità debole legata all'entità BIBLIOTECA, Er3.2)
LIBRO1: assunzione (ci interessano ISBN e titolo del libro) · 2: SÌ (ogni copia è la copia di un libro: distinguiamo il libro dalle copie fisiche) → non attributoNOEntità; ogni copia è la copia di un solo libro → sarà collegata a COPIA dall’associazione Riproduce
ISBN, titolo1: NO · 2: NO → attributiAttributi semplici di LIBRO (ISBN sarà identificatore)
POSSIEDE («ogni biblioteca possiede più copie»)1–2: SÌ (verbo) → non attributoSÌ (lega BIBLIOTECA e COPIA)NO (la coppia biblioteca–copia è unica)Associazione 1:n (rombo)
RIPRODUCE («copie di libri»: ogni copia è la copia di un libro)1–2: SÌ (verbo) → non attributoSÌ (lega COPIA e LIBRO)NO (la coppia copia–libro è unica: una copia fisica riproduce sempre lo stesso libro)Associazione 1:n (rombo)
→ Passo 2 · Tabella di lavoro risultante
EntitàAttributiAssociazioni
BIBLIOTECAnome, città, orarioPossiede → COPIA
COPIAcodiceCopiaPossiede ← BIBLIOTECA · Riproduce → LIBRO
LIBROISBN, titoloRiproduce ← COPIA

Da questa tabella passi subito al disegno E-R: i dettagli fini (identificatori, composti/multivalore, cardinalità, attributi di associazione) li rappresenti direttamente nello schema grafico, senza appesantire la tabella.

⚠️ Prima di proseguire: servono le nozioni del modello E-R

Hai completato il Passo 1 (individuare nel testo entità, attributi e associazioni) e il Passo 2 (la tabella di lavoro). A questo punto ti aspetteresti di proseguire con il Passo 3 e disegnare subito il modello E-R.

In realtà, prima di illustrare il Passo 3 sono necessari 3 paragrafi — Er1, Er2, Er3 — che diano le necessarie conoscenze sul modello E-R.

Er1 Attributi e identificatori

Er1 Per ogni entità cerca nella specifica le caratteristiche richieste: «di X vogliamo sapere …», «memorizziamo … di X». Ogni caratteristica diventa un attributo: un segmento che parte dal rettangolo e termina con un pallino e il nome dell'attributo.

Nome NumTessera Cognome Telefono (0,n) SOCIO
Entità SOCIO: identificatore NumTessera (pallino pieno), attributi Nome e Cognome (pallini vuoti), attributo multivalore Telefono (doppio cerchio) con cardinalità (0,n).
PERSONA Indirizzo Via NumCivico Città Attributo composto: pallino più grande con i pezzi attaccati
Attributo composto Indirizzo: il pallino più grande indica che si scompone in Via, NumCivico e Città (come nell'esempio del manuale modelloErLogico).
CLASSE Anno Sezione Identificatore composto: un UNICO pallino pieno all'estremità della barra orizzontale che collega i pallini vuoti di Anno e Sezione
Entità CLASSE: l'identificatore è formato da due attributiAnno e Sezione — entrambi con pallino vuoto e aste dirette verso l'entità, collegati da una barra orizzontale alla cui estremità si trova un unico pallino pieno (convenzione di modelloErLogico, come nell'esempio PRESIDENTE con Nome + Cognome: l'identificatore composto si rappresenta collegando con una barra i pallini vuoti degli attributi che lo compongono e ponendo un solo pallino pieno all'estremità della barra).
Errore comune: dare all'identificatore un pallino vuoto, oppure dimenticarlo. Ogni entità deve avere un identificatore (salvo che sia un'entità debole, vedi Er3.2).
Errore comune (identificatore composto): mettere un pallino pieno su ciascun attributo del composto (Anno ● e Sezione ●) e dire che «gli identificatori di CLASSE sono Anno e Sezione». Così si suggerisce che esistano due identificatori distinti, come se ogni attributo valesse da solo: ma Anno da solo non basta (in un anno ci sono più sezioni: A, B, C…) e Sezione da solo nemmeno (la sezione A esiste in tutti gli anni). L'identificatore è UNO SOLO, formato dalla coppia (Anno, Sezione): si dice quindi «l'identificatore di CLASSE è Anno + Sezione». Nel disegno si usa un solo pallino pieno, all'estremità della barra che collega i pallini vuoti dei due attributi — non un pallino pieno per ciascuno.
✓ Micro-esercizio interattivo — Attributi e identificatori

Specifica: «Di ogni studente vogliamo la matricola (univoca), il nome, il cognome, l'indirizzo (via, città, CAP) e l'email (opzionale).»

Classifica ciascun elemento: il feedback diagnostico è immediato.

MATRICOLA
NOME / COGNOME
INDIRIZZO (via, città, CAP)
EMAIL (opzionale)
Mostra soluzione commentata
Identificatore: MATRICOLA (pallino pieno) — è l'attributo univoco.
Attributo composto: INDIRIZZO (pallino grande con sotto-attributi Via, Città, CAP).
Email: NON è multivalore — è opzionale (può non esserci) ma a singolo valore. Se la specifica dicesse «più email per studente», allora sì → doppio cerchio (0,n).

Er2 Associazioni e cardinalità

Er2 Nel Passo 1 hai visto che i verbi che collegano due cose («un socio prende in prestito dei libri») diventano quasi sempre associazioni: qui impari a trasformarli in rombi e a ricavarne le cardinalità. Attenzione però: a volte il verbo è un’entità — lo capisci con la domanda «la stessa coppia può tornare più volte?» Se sì, è un’entità; altrimenti è un’associazione — vedi Passo 1 (es. Visita). Se il testo non lo dice, la scelta va in una ipotesi (Passo 0, poi ampliata).

Come si ricavano le cardinalità

Per ogni estremità dell'associazione poniti la domanda chiave:

La domanda magica «Per un'istanza dell'entità X, quante istanze dell'entità Y sono al minimo / al massimo collegate?» La coppia (min,max) che rispondi va scritta accanto a X.
Esempio: associazione Iscrizione tra STUDENTE e CLASSE
DomandaRisposta dalla specificaCardinalità
Per uno studente, quante classi sono collegate a lui al minimo / al massimo?al minimo una, al massimo una (obbligatoria)(1,1) accanto a STUDENTE
Per una classe, quanti studenti sono collegati ad essa al minimo / al massimo?al minimo uno, al massimo molti(1,n) accanto a CLASSE
STUDENTE Iscrizione CLASSE (1,1) (1,n) 1:n — uno studente sta in una sola classe; una classe contiene molti studenti
Associazione 1:n con cardinalità poste accanto alle entità, secondo la convenzione del manuale precedente.

I tre tipi di legame tra due entità

Attenzione — dato del legame Se un dato descrive la coppia e non una sola entità, va sul rombo. Esempio: la data del prestito non è del socio né del libro, ma della coppia (socio, libro).
Limite dell’associazione Un’associazione collega una coppia una volta sola. Se la stessa coppia può tornare (es. il medico visita più volte lo stesso paziente) e ha una data, serve un'entità → vedi Passo 1.
SOCIO Prestito LIBRO (0,n) (0,n) DataPrestito DataRestituzione
Associazione n:m Prestito con attributi propri DataPrestito e DataRestituzione.
Errore comune: mettere i numeri dal lato sbagliato. Ricorda: il numero vicino a X dice quanti Y stanno con un X.
Errore comune: dare una chiave al legame (rombo). Il rombo non ha mai una chiave, ma può avere dati (es. data).
✓ Micro-esercizio interattivo — Cardinalità

Specifica: «Ogni corso ha al massimo 30 studenti. Ogni studente segue da 3 a 6 corsi.»

Imposta le cardinalità dell'associazione FREQUENTA(STUDENTE, CORSO) ragionando con la domanda magica, scegli il tipo di associazione, poi premi Verifica.

Accanto a STUDENTE ( , ) — per uno studente, quanti corsi?
Accanto a CORSO ( , ) — per un corso, quanti studenti?
Tipo di associazione
Mostra soluzione
Accanto a STUDENTE → (3,6) = per uno studente, quanti corsi (da 3 a 6).
Accanto a CORSO → (0,30) = per un corso, quanti studenti (max 30).
Assunzione esplicita: il minimo 0 (corso appena creato) non è nel testo: va dichiarata. Senza di essa (1,30) sarebbe discutibile.
È una n:m.

Er3 Riconoscere i costrutti particolari

Percorso base: le 4 domande del Passo 1 (test evento–entità compreso) bastano per la prima esercitazione. Approfondimento: Er3.1–Er3.4 introducono costrutti utili ma non indispensabili.

Er3.1 Generalizzazione / specializzazione

Capita quando alcuni elementi di un gruppo hanno qualcosa in più: «alcuni prodotti da forno sono vegani (con certificazione), altri senza glutine (con soglia), uno stesso prodotto può essere anche entrambi». Si crea un'entità padre (es. PRODOTTO_DA_FORNO) e una o più figlie (VEGANO, SENZA_GLUTINE).

PRODOTTO_DA_FORNO (p,s) PRODOTTO_VEGANO PRODOTTO_SENZA_GLUTINE
Generalizzazione con due figlie: dal padre scende una linea con freccia verso il padre che si biforca verso le entità figlie. La copertura (p,s) indica che non tutti i prodotti da forno appartengono a una figlia e che un prodotto può appartenere a entrambe.
Nota didattica Questo è un caso di generalizzazione con due figlie: PRODOTTO_VEGANO possiede l'attributo proprio CertificazioneVegana, mentre PRODOTTO_SENZA_GLUTINE possiede SogliaGlutine. Le categorie non sono complementari: la copertura è parziale perché possono esistere prodotti da forno appartenenti a nessuna delle due, e sovrapposta perché uno stesso prodotto può appartenere a entrambe.
Secondo esempio — una sola figlia: nell'esempio della biblioteca (§6), DONATORE è un sottoinsieme di SOCIO. Qui si vede il contrasto: il sottoinsieme non è totale, perché esistono soci che non sono donatori; non si indica però e/s, perché esiste una sola entità figlia.

Er3.2 Entità deboli

Alcune entità non hanno un identificatore proprio: «un'aula è individuata dal numero e dall'edificio in cui si trova» — il numero da solo non basta. È un'entità debole: per riconoscerla serve anche la chiave dell'entità forte a cui è legata. Nel disegno: rettangolo normale, i suoi dati con pallini bianchi e un pallino nero esterno a L sulla relazione — es. NumAula + Nome(EDIFICIO) (vedi figura sotto, stessa idea di POSIZIONE in BIBLIOTECA).

Entità debole — convenzione modelloErLogico POSIZIONE NumRipiano NumScaffale Riferimento BIBLIOTECA Nome Città Identificatore di POSIZIONE = NumRipiano + NumScaffale + Nome(BIBLIOTECA) — pallino nero esterno agganciato alla relazione
Stessa convenzione di modelloErLogico.htmlimg_ti/er_posizione_biblioteca.png e er_studente_universita.png: entità debole con rettangolo singolo (non doppio), attributi propri con pallini bianchi e pallino nero esterno collegato con linea a “L” alla relazione identificante. L’identificatore è NumRipiano + NumScaffale + Nome(BIBLIOTECA).

Er3.3 Associazione ricorsiva

Se il legame è tra elementi dello stesso gruppo («una persona è genitore di altre persone»), si disegna un solo rombo con un anello a U che torna sull'entità. Sui due lati si scrivono i ruoli (chi è genitore / chi è figlio) e le cardinalità.

Associazione ricorsiva Genitore — come in modelloErLogico PERSONA (0,n) (0,2) Genitore GENITORE DI FIGLIO DI
Stessa convenzione grafica di modelloErLogico.htmlimg_ti/er_ricorsiva_persona.png: anello a U sotto PERSONA, ruoli "GENITORE DI" / "FIGLIO DI" sui lati verticali. Cardinalità: (0,n) lato genitore — una persona può essere genitore di molte persone — e (0,2) lato figlio: ogni persona ha al più due genitori. Lettura: «una persona è genitore di (0,n) persone; una persona è figlia di (0,2) persone».
Perché (0,2)? Perché qui vogliamo ricordare entrambi i genitori, quindi al massimo 2. Se ne bastasse uno, scriveremmo (0,1). Lo decide sempre il testo, non il buon senso.

Er3.4 Associazioni ternarie

Se il fatto esiste solo quando ci sono tre cose insieme («il venditore V fornisce il prodotto P al dipartimento D»), si usa un solo rombo a tre gambe. Non spezzarlo in tre legami a due: perderesti il significato.

Associazione ternaria — convenzione modelloErLogico Fornitura Dipartimento Nome NumDipendenti Prodotto IdProdotto Prezzo Venditore Telefono Nome Un solo rombo a tre gambe (non 3 binarie) — come in img_ti/er_ternaria_fornitura.png
Stessa convenzione di modelloErLogico.htmlimg_ti/er_ternaria_fornitura.png: rombo centrale collegato a sinistra a Dipartimento, a destra a Prodotto e sotto a Venditore (un solo rombo a tre gambe). Il fatto “fornitura” esiste solo se i tre sono presenti insieme.

5 Passo 3 — Tirare le fila: dalla tabella del Passo 2 allo schema completo

3 La tabella del Passo 2 è una bozza: le sue colonne (Entità / Attributi / Associazioni) vanno ora migliorate e completate usando quanto imparato in Er1 (attributi e identificatori), Er2 (associazioni e cardinalità) e Er3 (costrutti particolari). Non serve un elenco di otto controlli: basta lo stesso ritmo del Passo 14 domande. Le prime tre si fanno sempre; la quarta solo se il testo dà un segnale.

Passo 3 · Quattro domande di revisione — stesso ritmo del Passo 1
DomandaQuandoCosa completi nella tabella / nello schema
R1 — Come si identifica? C'è un attributo univoco? Se no, si costruisce una coppia con un'entità collegata?Sempre (Er1 · Er3.2)Pallino pieno; oppure entità debole (pallino nero a L); oppure un codice che inventi tu.
R2 — Come sono fatti i dati? Qualche dato si spezza (Indirizzo) o ha più valori (Telefono)?Sempre (Er1)Composto = pallino grande con i pezzi. Multivalore = doppio cerchio (0,n).
R3 — Come funziona il legame? Quante istanze collega? Su ogni lato: presa UNA istanza di X, quante istanze di Y al minimo / al massimo? E se il testo dà un dato del legame, dove va?Sempre (Er2 · Passo 1, domanda 4)Scrivi (min,max) accanto a entrambe le entità. Dato di una coppia che capita una volta sola → sul rombo. Se invece la coppia si ripete, al Passo 1 hai già deciso che non è un rombo: è un'entità con due 1:n.
R4 — Il testo segnala qualcosa di particolare? «Alcuni/speciali», «si collega a se stesso», «tre cose insieme»?Solo se c'è un segnale (Er3)Sottoinsieme / generalizzazione, ricorsiva con ruoli, rombo a tre gambe. Nessun segnale → si salta.
✔️ Output del Passo 3: la tabella completata (identificatori, cardinalità, e i costrutti solo se il testo li chiede) è la guida per disegnare lo schema E-R finale — poi la verifichi con la checklist della §12.

Le 4 domande di revisione — come nel Passo 1

Nel Passo 1 non facevi sempre la domanda 4: la ponevi solo se la 3 era SÌ. Qui è la stessa idea. R1, R2, R3 si fanno su ogni riga della tabella. R4 si apre solo se nel testo senti un segnale: altrimenti non la memorizzi come passo a vuoto.

🔑 R1 — Come si identifica? sempre
«C'è un attributo (o una coppia) che distingue ogni istanza dalle altre?»
  • SÌ → pallino pieno (se è una coppia di attributi: barra + un solo pallino pieno).
  • NO → si può costruire una coppia con l'identificatore di un'entità collegata (es. NumAula + Edificio)?
    • SÌ → entità debole: pallino nero esterno a L agganciato all'associazione identificante.
    • NO → aggiungi tu un codice univoco.
Esempi debole: Aula (NumAula + Edificio), Posizione (NumRipiano + Scaffale + Biblioteca).
📦 R2 — Come sono fatti i dati? sempre
«Un dato si divide in pezzi (via, città, provincia)? Uno stesso dato ha più valori (più telefoni)?»
  • Si spezza → pallino grande con i pezzi attaccati (composto).
  • Ha più valori → doppio cerchio (0,n) (multivalore).
  • Altrimenti resta un pallino vuoto semplice.
Esempi: Indirizzo composto; Telefono (0,n) multivalore.
⚖️ R3 — Come funziona il legame? sempre
Rispondi con la domanda magica: «Per UNA istanza di X, quante istanze di Y al minimo / al massimo?» — e ripetila per ogni estremità del legame.
  • 1. Quante istanze collega? Una risposta per lato, scritta accanto all'entità di quel lato: (min,max) — es. (0,n) accanto a SOCIO, (0,n) accanto a LIBRO. Mai una cardinalità sola: i lati sono due.
  • 2. C'è un dato del legame? Solo se il testo ne dà uno (una Data, un importo, una Quantità) e la coppia di istanze capita una volta sola → quel dato va sul rombo (es. DataPrestito).
  • 3. La coppia si ripete? Non è una scelta nuova: è il test del Passo 1, domanda 4. Se la stessa coppia può tornare più volte con dati propri, il legame non è un rombo ma un'entità con due associazioni 1:n (VISITA, PRENOTAZIONE): i suoi dati stanno sull'entità, non sul rombo.
Esempio: Prestito (0,n)(0,n) con DataPrestito e DataRestituzione sul rombo; Visita invece è un'entità, perché la coppia paziente–dottore torna in date diverse.
👑 R4 — Il testo segnala qualcosa di particolare? solo se segnale
Non la fai a vuoto. La apri solo se nel testo senti uno di questi tre segnali:
  • «Alcuni / speciali» (alcuni soci sono donatori, alcune camere sono suite) → gruppo speciale: un solo dato in più e nessun legame proprio → basta un attributo (es. InOfferta); due o più dati e/o un legame proprio → figlia: una sola → sottoinsieme (freccia verso il padre); due o più → generalizzazione con t/p ed e/s.
  • «Si collega a se stesso» (un dipendente gestisce altri dipendenti) → associazione ricorsiva: anello a U, ruoli, due cardinalità.
  • «Tre cose insieme» (il fatto esiste solo se Fornitore, Prodotto e Reparto ci sono tutti) → rombo a tre gambe, non tre binarie.
Nessun segnale → si salta. Non scrivere «ricorsiva: no; ternaria: no».
Errore comune — i due «quante volte» di R3: la cardinalità conta quante istanze dell'altra entità sono collegate a una istanza (min,max) e vale in ogni momento; la ripetibilità chiede se la stessa coppia può ricomparire nel tempo e decide se il legame è un rombo o un'entità. Un rombo con (0,n)(0,n) su una coppia che si ripete è un errore: la seconda visita non si può registrare.
📝 Nota aggiuntiva — test ambigui e scelte di modellazione

Se il testo non dice tutto: chiediti cosa manca, documenta le assunzioni per iscritto e non inventare vincoli che non ci sono (vedi gli esempi svolti: ogni scelta è motivata da un'assunzione esplicita).

Se più modelli sono corretti (trade-off): a volte lo stesso dato si può rappresentare in più modi (es. GENERE come attributo semplice, multivalore o entità; un gruppo speciale come attributo o come figlia della R4). Scegli leggendo bene cosa chiede il testo, non per gusto personale, e motiva la scelta.

🔍 Quiz — Trova l'errore nello schema

Lo schema qui sotto è stato disegnato da uno studente sulla specifica di una segreteria studenti (§7), con attributi, identificatori e cardinalità. Lo studente ha commesso 4 errori nell'applicazione delle 4 domande di revisione del Passo 3. Trova tutti e 4.

Schema da analizzare

Matricola Nome Cognome Indirizzo STUDENTE (0,n) Sostiene (1,1) Esame Data Voto NumVerbale (1,1) Riguarda (0,n) CodCorso Titolo Crediti CORSO (1,1) Tiene (0,n) CodDocente Nome Cognome Telefono DOCENTE

Convenzioni: pallino pieno = identificatore · pallino vuoto = attributo · (min,max) accanto all’entità.

Cosa trovi di sbagliato? Lo schema contiene 4 errori applicando le 4 domande di revisione del Passo 3. Seleziona tutti gli errori che trovi (puoi sceglierne più di uno):

Mostra spiegazione completa

I 4 errori da trovare sono A, B, C e D:

  1. A — Manca l'identificatore (R1): Matricola "univoca" → pallino pieno, non vuoto.
  2. B — Indirizzo non è composto (R2): "composto da via, città e provincia" → pallino grande con le componenti.
  3. C — Esame è entità (Passo 1, domanda 4): la coppia si ripete → rettangolo con NumVerbale/Data/Voto e due 1:n.
  4. D — Telefono non è multivalore (R2): "più numeri" → doppio cerchio (0,n).

6 Esempio completo: dal testo della traccia allo schema Percorso base

Le richieste del testo

Pausa attiva · livello guidato

Prima di leggere il procedimento svolto, prova a:

  1. Passo 0: rileggi il testo e annota le ipotesi su ciò che non è detto;
  2. Passo 1: separare dati, legami e vincoli con le 4 domande, ed elencare le entità candidate;
  3. Passo 2: costruire la tabella Entità / Attributi / Associazioni;
  4. Passo 3: collocare identificatori e Telefono con le 4 domande di revisione (R1–R3) e ricavare le cardinalità;
  5. Passo 3 (R4): il testo parla di donatori come categoria di soci → apri il segnale «speciali» e decidi se DONATORE è un attributo di SOCIO o un sottoinsieme, motivando la scelta (amplia l’ipotesi se serve).

Aiuto: parti dalle ipotesi del Passo 0, poi applica le 4 domande. Confronta con la soluzione e valuta il modello con la rubrica della §12.

«Gestisco una piccola biblioteca e vorrei un programma che:
  1. memorizzi i libri posseduti: di ogni libro conosciamo il codice, che lo identifica univocamente, il titolo e l'anno di pubblicazione; un libro può essere scritto da più autori;
  2. degli autori vogliamo sapere il codice (unico), il nome e il cognome;
  3. memorizzi i dati dei soci iscritti: numero di tessera (unico), nome, cognome; un socio può lasciare più numeri di telefono;
  4. registri i prestiti: un socio può prendere in prestito molti libri; uno stesso libro, nel tempo, può essere prestato a più soci; di ogni prestito vogliamo ricordare la data in cui è avvenuto;
  5. alcuni soci sono anche donatori: per questi vogliamo registrare l'importo complessivo delle donazioni.»

Passo 0 — Ipotesi dalla prima lettura

  1. C’è una sola biblioteca, senza dati propri richiesti (è la cornice del testo).
  2. Il testo non dice se lo stesso socio riprende lo stesso libro in date diverse: per ora ipotizzo di no.
  3. I donatori sono presentati come una categoria di soci, non come un gruppo a sé.

Queste tre frasi le riprendo e le preciso ai passi successivi (non le butto via).

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
LIBROEntitàCodice, Titolo, AnnoPubbl
AUTOREEntitàCodAutore, Nome, Cognome
SOCIOEntitàNumTessera, Nome, Cognome, Telefono
ScritturaAssociazionelega AUTORE e LIBRO
PrestitoAssociazionelega SOCIO e LIBRO, con DataPrestito
DONATOREGruppo speciale di SOCIOImportoDonazioni (si completa con la R4 del Passo 3)

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le due associazioni
DomandaRisposta dalla specificaEsito
Per un autore, quanti libri sono collegati a lui al minimo / al massimo?almeno uno, anche molti(1,n) accanto ad AUTORE
Per un libro, quanti autori al minimo / al massimo?almeno uno, anche molti(1,n) accanto a LIBRO
Per un socio, quanti libri in prestito al minimo / al massimo?nessuno o molti(0,n) accanto a SOCIO
Per un libro, a quanti soci è stato prestato al minimo / al massimo?nessuno o molti (nel tempo)(0,n) accanto a LIBRO

Assunzione n. 3 (lettura delle cardinalità): ogni autore ha almeno un libro e ogni libro almeno un autore → (1,n) da entrambe le parti di Scrittura.

Modello E-R finale

Nota: qui assumiamo che ogni autore abbia almeno un libro e ogni libro almeno un autore → (1,n) da entrambe le parti.
CodAutore Nome Cognome AUTORE Scrittura (1,n) (1,n) Codice Titolo AnnoPubbl LIBRO Prestito (0,n) (0,n) DataPrestito Nome Cognome SOCIO NumTessera Telefono (0,n) DONATORE ImportoDonazioni
Modello E-R finale: convenzioni del manuale precedente (rettangoli = entità, rombi = associazioni, pallino pieno = identificatore, doppio cerchio = multivalore, cardinalità accanto alle entità). SOCIO → DONATORE è un sottoinsieme: la freccia va verso il padre e non si indica alcuna componente e/s con una sola figlia.
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1–2 → entità LIBRO/AUTORE + Scrittura; requisito 3 → SOCIO + Telefono multivalore; requisito 4 → Prestito con DataPrestito; requisito 5 → sottoinsieme SOCIO–DONATORE.

7 Secondo esempio: Segreteria — focus attributo composto Percorso base

🎯 Focus: attributo composto Indirizzo + ESAME come entità

Le richieste del testo

Pausa attiva · livello semi-guidato

Prima di leggere il procedimento svolto, prova a:

  1. decidere se ESAME è un'associazione o un'entità;
  2. scrivere le tre associazioni necessarie;
  3. ricavare le cardinalità ponendo entrambe le domande per ogni legame.

Non guardare subito il Passo 1: applica il test «la stessa coppia può ripetersi?» e assegna 1 punto per ogni criterio corretto della rubrica.

«Sono il referente della segreteria studenti di un istituto e vorrei un programma che:
  1. memorizzi i dati degli studenti: la matricola (univoca), il nome, il cognome e l'indirizzo, che voglio composto da via, città e provincia;
  2. per ogni corso attivato conservi il codice (unico), il titolo e il numero di crediti; ogni corso è tenuto da un solo docente;
  3. dei docenti ricordi il codice (unico), il nome e il cognome; di ogni docente vogliamo registrare più numeri di telefono;
  4. registri gli esami: uno studente può sostenere più volte l'esame di uno stesso corso, negli appelli successivi; di ogni sostenimento vogliamo ricordare il numero di verbale (unico), la data e il voto.»

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
STUDENTEEntitàMatricola, Nome, Cognome, Indirizzo (composto)
CORSOEntitàCodCorso, Titolo, Crediti
DOCENTEEntitàCodDocente, Nome, Cognome, Telefono (multivalore)
ESAMEEntitàNumVerbale, Data, Voto
Sostiene / Riguarda / TieneAssociazioniESAME–STUDENTE, ESAME–CORSO, CORSO–DOCENTE

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le tre associazioni
DomandaRispostaEsito
Per uno studente, quanti esami sostiene al minimo / al massimo?nessuno o molti (negli anni)(0,n) accanto a STUDENTE
Per un esame, quanti studenti al minimo / al massimo?uno soltanto(1,1) accanto a ESAME
Per un esame, quali corsi al minimo / al massimo?uno soltanto(1,1) accanto a ESAME
Per un corso, quanti esami al minimo / al massimo?nessuno o molti (appelli)(0,n) accanto a CORSO
Per un corso, quanti docenti al minimo / al massimo?uno soltanto(1,1) accanto a CORSO
Per un docente, quanti corsi al minimo / al massimo?nessuno o molti(0,n) accanto a DOCENTE

Tre associazioni: Sostiene (STUDENTE–ESAME), Riguarda (ESAME–CORSO) e Tiene (DOCENTE–CORSO). Nessuna ha attributi propri: data e voto stanno sull'entità ESAME, non su un rombo!

Confronto con il caso «compra» Nell'associazione «AUTO compra PROPRIETARIO» con DataAcquisto il rombo era corretto: quella coppia si verifica una volta sola, quindi l'attributo descrive bene la coppia. Qui invece «lo studente sostiene più volte l'esame dello stesso corso»: la stessa coppia si ripete → serve l'entità ESAME, e ogni sostenimento conserva i propri dati.

Modello E-R finale

Matricola Nome Cognome Indirizzo Via Città Provincia STUDENTE (0,n) Sostiene (1,1) NumVerbale Data Voto ESAME (1,1) Riguarda (0,n) CodCorso Titolo Crediti CORSO (1,1) Tiene (0,n) CodDocente Nome Cognome Telefono (0,n) DOCENTE
Modello E-R finale: ESAME è un'entità (rettangolo), non un rombo, perché la stessa coppia (studente, corso) si ripete negli appelli; ogni sostenimento resta distinto grazie al verbale. L'attributo composto Indirizzo è disegnato con la convenzione di modelloErLogico.html: pallino più grande con le componenti Via, Città e Provincia attaccate direttamente ad esso. Lettura ad alta voce: «uno STUDENTE (0,n) SOSTIENE (1,1) ESAMI; un ESAME (1,1) RIGUARDA (0,n) un CORSO; un DOCENTE (0,n) TIENE (1,1) CORSI».
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1 → STUDENTE con Indirizzo composto; requisito 2 → CORSO + associazione Tiene (1,1); requisito 3 → DOCENTE con Telefono multivalore; requisito 4 → l'entità ESAME con le associazioni Sostiene e Riguarda: l'apparente associazione è diventata entità.

8 Terzo esempio: Officina — focus catena 1:n Percorso base

🎯 Focus: catena CLIENTE→VEICOLO→RIPARAZIONE (doppia 1:n)

Le richieste del testo

Pausa attiva · livello applicativo

Prima di leggere il procedimento svolto, prova a:

  1. disegnare una bozza con CLIENTE e VEICOLO;
  2. aggiungere RIPARAZIONE nel modo che ritieni corretto;
  3. controllare se la catena delle due associazioni 1:n rispetta la specifica.

Confronta soprattutto le cardinalità minime e massime e verifica che Data, Descrizione e Costo descrivano ogni intervento, non il veicolo in generale.

«Gestisco un'officina meccanica e vorrei un programma che:
  1. memorizzi i dati dei clienti: il codice (unico), il nome e il cognome; di ogni cliente vogliamo registrare più numeri di telefono;
  2. ricordi i dati dei veicoli: la targa (unica), la marca e il modello; ogni veicolo appartiene a un solo cliente, e un cliente può possedere più veicoli;
  3. registri le riparazioni: uno stesso veicolo può essere portato in officina più volte nel tempo; di ogni intervento vogliamo ricordare il numero della scheda di lavoro (unico), la data, una descrizione e il costo.»

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
CLIENTEEntitàCodCliente, Nome, Cognome, Telefono (multivalore)
VEICOLOEntitàTarga, Marca, Modello
RIPARAZIONEEntitàNumScheda, Data, Descrizione, Costo
Possiede / HaAssociazioniCLIENTE–VEICOLO, VEICOLO–RIPARAZIONE

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le due associazioni
DomandaRispostaEsito
Per un cliente, quanti veicoli al minimo / al massimo?nessuno o molti(0,n) accanto a CLIENTE
Per un veicolo, quale proprietario al minimo / al massimo?uno soltanto(1,1) accanto a VEICOLO
Per un veicolo, quante riparazioni al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a VEICOLO
Per una riparazione, quale veicolo al minimo / al massimo?uno soltanto(1,1) accanto a RIPARAZIONE
Confronto Se la specifica avesse detto «per ogni veicolo vogliamo ricordare la data dell'ultimo tagliando», quel dato sarebbe stato un semplice attributo del veicolo. Qui invece ogni intervento è un fatto separato e ripetibile → entità RIPARAZIONE, come Visita ed Esame nelle sezioni precedenti.

Modello E-R finale

CodCliente Nome Cognome Telefono (0,n) CLIENTE (0,n) Possiede (1,1) Targa Marca Modello VEICOLO (0,n) Ha (1,1) NumScheda Data Descrizione Costo RIPARAZIONE
Modello E-R finale: RIPARAZIONE è un'entità (rettangolo), non un rombo, perché lo stesso veicolo ha molti interventi distinti. Lettura ad alta voce: «un CLIENTE (0,n) POSSIEDE (1,1) VEICOLI; un VEICOLO (0,n) HA (1,1) RIPARAZIONI».
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1 → CLIENTE con Telefono multivalore; requisito 2 → VEICOLO + associazione Possiede (1,1); requisito 3 → l'entità RIPARAZIONE con NumScheda, Data, Descrizione e Costo, collegata da Ha.
✓ Quiz di richiamo — dopo Biblioteca / Segreteria / Officina

Prima di passare agli esempi avanzati, ripassa tre punti chiave. Feedback immediato.

Evento ripetibile (stessa coppia, date diverse)
«Più numeri di telefono»
VEICOLO — Ha — RIPARAZIONE: lato veicolo?

9 Quarto esempio: Albergo — focus sottoinsieme + evento ripetibile Approfondimento

🎯 Focus: SUITE sottoinsieme di CAMERA + PRENOTAZIONE come entità

Le richieste del testo

Pausa attiva · livello autonomo

Prova a produrre il modello completo prima di leggere la soluzione:

  1. individua entità, attributi e identificatori;
  2. decidi se SUITE è un attributo o un sottotipo;
  3. trasforma PRENOTAZIONE nel costrutto corretto;
  4. scrivi e giustifica tutte le cardinalità.

Consegna ideale: schema E-R, tre assunzioni esplicite e una breve lettura ad alta voce. Usa la rubrica della §12: 8/10 indica una buona autonomia.

«Gestisco un piccolo albergo e vorrei un programma che:
  1. memorizzi i dati dei clienti: il codice (unico), il nome e il cognome; di ogni cliente vogliamo registrare più numeri di telefono;
  2. descriva le camere: il numero (unico), il piano e i posti letto; alcune camere sono suite: per queste vogliamo registrare anche il supplemento giornaliero;
  3. gestisca le prenotazioni: uno stesso cliente può prenotare più volte la stessa camera; di ogni prenotazione vogliamo ricordare il codice (unico), la data di arrivo e la data di partenza.»

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
CLIENTEEntitàCodCliente, Nome, Cognome, Telefono (multivalore)
CAMERAEntitàNumero, Piano, PostiLetto
SUITEGruppo speciale di CAMERASupplemento (si completa con la R4 del Passo 3)
PRENOTAZIONEEntitàCodPren, DataArrivo, DataPartenza
Effettua / RiguardaAssociazioniCLIENTE–PRENOTAZIONE, PRENOTAZIONE–CAMERA

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le due associazioni
DomandaRispostaEsito
Per un cliente, quante prenotazioni al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a CLIENTE
Per una prenotazione, quale cliente al minimo / al massimo?uno soltanto(1,1) accanto a PRENOTAZIONE
Per una prenotazione, quale camera al minimo / al massimo?una sola(1,1) accanto a PRENOTAZIONE
Per una camera, quante prenotazioni al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a CAMERA

Modello E-R finale

CodCliente Nome Cognome Telefono (0,n) CLIENTE (0,n) Effettua (1,1) CodPren DataArrivo DataPartenza PRENOTAZIONE (1,1) Riguarda (0,n) Numero Piano PostiLetto CAMERA SUITE Supplemento
Modello E-R finale: PRENOTAZIONE è un'entità (la coppia cliente–camera si ripete nel tempo) e SUITE è un sottoinsieme di CAMERA (una sola figlia → freccia verso il padre, nessuna indicazione di e/s, come per DONATORE nella §6). Lettura ad alta voce: «un CLIENTE (0,n) EFFETTUA (1,1) PRENOTAZIONI; una PRENOTAZIONE (1,1) RIGUARDA (0,n) una CAMERA».
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1 → CLIENTE con Telefono multivalore; requisito 2 → CAMERA con il sottoinsieme SUITE e l'attributo Supplemento; requisito 3 → l'entità PRENOTAZIONE con CodPren, DataArrivo e DataPartenza, collegata da Effettua e Riguarda.

10 Quinto esempio: Palestra — focus entità debole + evento ripetibile Approfondimento

🎯 Focus: AULA entità debole di EDIFICIO + ISCRIZIONE come entità

Le richieste del testo

Pausa attiva · livello applicativo

Prima di leggere il procedimento svolto, prova a:

  1. capire perché AULA non riesce a identificarsi da sola;
  2. decidere se ISCRIZIONE è un rombo o un rettangolo;
  3. ricavare tutte le cardinalità con la domanda magica.

Aiuto: applica le 4 domande del Passo 1 e la convenzione dell'entità debole di Er3.2. Confronta poi con la soluzione e usa la rubrica della §12.

«Gestisco una palestra disposta su due edifici e vorrei un programma che:
  1. memorizzi i dati dei soci: il codice tessera (unico), il nome e il cognome; di ogni socio vogliamo registrare più numeri di telefono;
  2. descriva le aule: ogni aula è individuata dal numero d'aula e dall'edificio in cui si trova; di ogni aula conosciamo la capienza; dei due edifici conosciamo il nome;
  3. gestisca i corsi: il codice (unico), il nome e il livello; ogni corso è tenuto da un solo istruttore e si svolge in un'aula; degli istruttori conosciamo il codice (unico) e il cognome;
  4. registri le iscrizioni: uno stesso socio può iscriversi più volte allo stesso corso, in periodi diversi; di ogni iscrizione vogliamo ricordare il numero (unico), la data di inizio e la data di fine.»

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
SOCIOEntitàCodTessera, Nome, Cognome, Telefono (multivalore)
EDIFICIOEntitàNomeEdificio
AULAEntitàNumAula, Capienza — identificatore da completare (ramo «NO» della R1)
CORSOEntitàCodCorso, Nome, Livello
ISTRUTTOREEntitàCodIstruttore, Cognome
ISCRIZIONEEntitàCodIscr, DataInizio, DataFine
Effettua, Riguarda, SiTiene, Tiene, AppartieneAssociazionicollegano le entità come da testo

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le cinque associazioni
DomandaRispostaEsito
Per un socio, quante iscrizioni al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a SOCIO
Per un'iscrizione, quale socio?uno soltanto(1,1) accanto a ISCRIZIONE
Per un'iscrizione, quale corso?uno soltanto(1,1) accanto a ISCRIZIONE
Per un corso, quante iscrizioni?nessuna o molte(0,n) accanto a CORSO
Per un corso, quale aula?una soltanto(1,1) accanto a CORSO
Per un'aula, quanti corsi?nessuno o molti (in orari diversi)(0,n) accanto ad AULA
Per un'aula, quale edificio?uno soltanto (obbligatorio: serve a identificarla!)(1,1) accanto ad AULA
Per un edificio, quante aule?almeno una, anche molte — assunzione: ogni edificio del minimondo ha almeno un'aula(1,n) accanto a EDIFICIO
Per un istruttore, quanti corsi?nessuno o molti(0,n) accanto a ISTRUTTORE
Per un corso, quale istruttore?uno soltanto(1,1) accanto a CORSO

Cinque associazioni: Effettua (SOCIO–ISCRIZIONE), Riguarda (ISCRIZIONE–CORSO), SiTiene (CORSO–AULA), Tiene (ISTRUTTORE–CORSO) e Appartiene (AULA–EDIFICIO). Attenzione: Appartiene non è una normale 1:n, è l'associazione identificante dell'entità debole AULA.

Modello E-R finale

CodTessera Nome Cognome Telefono (0,n) SOCIO (0,n) Effettua (1,1) CodIscr DataInizio DataFine ISCRIZIONE (1,1) Riguarda (0,n) CodCorso Nome Livello CORSO (1,1) SiTiene (0,n) NumAula Capienza AULA Appartiene (1,1) (1,n) NomeEdificio EDIFICIO (1,1) Tiene (0,n) CodIstruttore Cognome ISTRUTTORE Identificatore di AULA = NumAula + Nome(EDIFICIO) — pallino nero esterno agganciato all'associazione identificante Appartiene (convenzione Er3.2)
Modello E-R finale: AULA è un'entità debole — il suo pallino nero esterno è agganciato all'associazione identificante Appartiene, e l'identificatore è NumAula + Nome(EDIFICIO). ISCRIZIONE è un'entità (coppia socio–corso ripetibile nei rinnovi). Lettura ad alta voce: «un SOCIO (0,n) EFFETTUA (1,1) ISCRIZIONI; un'ISCRIZIONE (1,1) RIGUARDA (0,n) un CORSO; un CORSO (1,1) SI TIENE (0,n) in un'AULA; un'AULA (1,1) APPARTIENE (1,n) a un EDIFICIO; un ISTRUTTORE (0,n) TIENE (1,1) CORSI».
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1 → SOCIO con Telefono multivalore; requisito 2 → AULA (debole) + EDIFICIO con Appartiene; requisito 3 → CORSO + ISTRUTTORE con Tiene; requisito 4 → l'entità ISCRIZIONE con Effettua e Riguarda.

11 Sesto esempio: Panificio — focus generalizzazione (p,s) + evento ripetibile Approfondimento

🎯 Focus: VEGANO / SENZA_GLUTINE generalizzazione sovrapposta + CONSEGNA come entità

Le richieste del testo

Pausa attiva · livello applicativo

Prima di leggere il procedimento svolto, prova a:

  1. decidere se FORNITORE è un attributo o un'entità (domande 1-2 del Passo 1);
  2. applicare la domanda 4 a CONSEGNA (è ripetibile?);
  3. capire quali lettere t/p ed e/s merita la gerarchia del requisito 3.

Attenzione alla parola «entrambe»: determina la copertura. Confronta poi con la soluzione e usa la rubrica della §12.

«Gestisco un panificio e vorrei un programma che:
  1. memorizzi i dati dei fornitori: la partita IVA (unica) e la ragione sociale; di ogni fornitore vogliamo registrare più numeri di telefono;
  2. registri le consegne: un fornitore effettua più consegne dello stesso prodotto in giorni diversi; di ogni consegna vogliamo ricordare il numero (unico), la data e la quantità di pezzi consegnati;
  3. descriva i prodotti da forno: il codice (unico), il nome e il prezzo; alcuni prodotti sono vegani: per questi registriamo la certificazione vegana; altri sono senza glutine: per questi registriamo la soglia di glutine certificata; un prodotto può appartenere a entrambe le categorie.»

Passo 1 — Individuo entità, attributi e associazioni (le 4 domande)

Applico le 4 domande del Passo 1 a ogni parola importante del testo:

Passo 2 — Tabella Entità / Attributi / Associazioni

Tabella di lavoro (bozza, senza identificatori né cardinalità)
CostruttoTipoAttributi / Collegamenti
FORNITOREEntitàPIVA, RagioneSociale, Telefono (multivalore)
PRODOTTO_DA_FORNOEntitàCodice, Nome, Prezzo
VEGANO / SENZA_GLUTINEGruppi speciali di PRODOTTO_DA_FORNOCertificazioneVegana / SogliaGlutine (si completano con la R4 del Passo 3)
CONSEGNAEntitàNumConsegna, Data, Quantita
Effettua / RiguardaAssociazioniFORNITORE–CONSEGNA, CONSEGNA–PRODOTTO_DA_FORNO

Passo 3 — Le 4 domande di revisione

R3 — domanda magica per le due associazioni
DomandaRispostaEsito
Per un fornitore, quante consegne al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a FORNITORE
Per una consegna, quale fornitore al minimo / al massimo?uno soltanto(1,1) accanto a CONSEGNA
Per una consegna, quale prodotto al minimo / al massimo?uno soltanto (assunzione esplicitata)(1,1) accanto a CONSEGNA
Per un prodotto, quante consegne al minimo / al massimo?nessuna o molte (nel tempo)(0,n) accanto a PRODOTTO_DA_FORNO
Confronto con i sottoinsiemi DONATORE e SUITE Nella biblioteca (§6) e nell'albergo (§9) la gerarchia aveva una sola figlia: sottoinsieme, freccia diretta, nessuna indicazione e/s. Qui le figlie sono due: serve la barra orizzontale e vanno indicate le componenti t/p ed e/s della copertura.

Modello E-R finale

PIVA RagioneSociale Telefono (0,n) FORNITORE (0,n) Effettua (1,1) NumConsegna Data Quantita CONSEGNA (1,1) Riguarda (0,n) Codice Nome Prezzo PRODOTTO_DA_FORNO (p,s) VEGANO SENZA_GLUTINE CertificazioneVegana SogliaGlutine
Modello E-R finale: CONSEGNA è un'entità (la coppia fornitore–prodotto si ripete nel tempo); VEGANO e SENZA_GLUTINE sono le figlie della generalizzazione di PRODOTTO_DA_FORNO: freccia verso il padre, barra orizzontale, copertura (p,s) — parziale («alcuni prodotti») e sovrapposta («può appartenere a entrambe»). Le figlie ereditano Codice, Nome, Prezzo e le associazioni del padre. Lettura ad alta voce: «un FORNITORE (0,n) EFFETTUA (1,1) CONSEGNE; una CONSEGNA (1,1) RIGUARDA (0,n) un PRODOTTO_DA_FORNO».
✔️ Ora ogni frase del testo ha una corrispondenza nello schema: requisito 1 → FORNITORE (entità, domande 1-2 del Passo 1) con Telefono multivalore; requisito 2 → l'entità CONSEGNA con Effettua e Riguarda; requisito 3 → PRODOTTO_DA_FORNO con la generalizzazione (p,s) VEGANO / SENZA_GLUTINE e i rispettivi attributi propri.

12 Verifica del modello e checklist finale Percorso base

Alla fine controlli il disegno sul testo (a scuola lo confronti con la traccia). Come?

  1. Leggi il disegno ad alta voce: «un AUTORE (1,n) SCRIVE (1,n) LIBRI» e confronta con le frasi del testo;
  2. Controlla che tutto ciò che chiede il testo ci sia e che non ci sia niente di inventato;
  3. Controlla lo stile del tuo disegno: nomi al singolare e in maiuscolo (è la convenzione del disegno, il testo della traccia non la usa), ogni entità con chiave (o debole spiegata), niente chiavi sui rombi, dati del legame sul rombo.
✔ Checklist interattiva — spunta al completamento

Tre esercizi graduati — prova tu

🟢 Livello 1 — Guidato: aggiungi un attributo

Specifica: «Dei soci vogliamo anche l'email (opzionale)». Dove lo metti? Che simbolo usi? È identificatore?

Soluzione: Attributo semplice Email su SOCIO, pallino vuoto, nessuna cardinalità (singolo valore opzionale = attributo normale, non multivalore). Non è identificatore.

🟡 Livello 2 — Semi-guidato: scegli la cardinalità

Specifica: «Ogni corso ha al massimo 30 studenti, ogni studente segue da 3 a 6 corsi». Associazione Frequenta(STUDENTE,CORSO): quali cardinalità?

Soluzione: Accanto a STUDENTE → (3,6) = per uno studente quanti corsi. Accanto a CORSO → (0,30) = per un corso quanti studenti (0 se corso appena creato). È una n:m.

🔴 Livello 3 — Autonomo: individua l'errore

Schema errato: ORDINE come rombo tra CLIENTE e PRODOTTO con attributi Data, Totale. La specifica dice: «Un cliente ordina più volte lo stesso prodotto in date diverse».

Soluzione: È l'errore visto nel Passo 1: la stessa coppia (cliente,prodotto) si ripete → ORDINE deve essere entità con NumOrdine identificatore, collegata con due 1:n a CLIENTE e PRODOTTO. Il rombo collegherebbe la coppia una volta sola.

Rubrica di autovalutazione — 10 punti
Criterio0 punti1 punto2 punti
Entità ed eventiMancano o sono quasi tutti erratiIndividuati con qualche incertezzaEntità ed eventi sono distinti e motivati
Attributi e identificatoriMancano o sono collocati malePrevalentemente correttiCompleti, pertinenti e identificati
Associazioni e cardinalitàLegami o cardinalità assentiQualche errore di verso o min/maxLegami e cardinalità sono giustificati
Costrutti particolariNon riconosciutiRiconosciuti ma non sempre motivatiApplicati solo quando necessari
Tutto coperto e assunzioniFrasi dimenticateQuasi tutto copertoOgni frase si ritrova nel disegno e le assunzioni sono scritte

Come leggere il punteggio: 0–4 = ripassa le basi; 5–7 = stai migliorando; 8–10 = sei autonomo. Basta valutare l’esempio che hai scelto tra §§6–8 (base) o §§9–11 (approfondimento).

Esempio già valutato — come si usa la rubrica

Per calibrare l'autovalutazione, ecco un lavoro-tipo già valutato. Consegna di uno studente sulla specifica della videoteca: FILM (Codice, Titolo, Anno), CASA (Sede, Telefono — senza identificatore), CLIENTE (CodCliente, Nome), NOLEGGIO come entità (NumNoleggio, DataUscita, DataRientro) con le due associazioni verso CLIENTE e FILM; associazione Produce 1:n corretta tra CASA e FILM; però il lato NOLEGGIO–FILM porta (0,n) invece di (1,1), e non c'è nessuna assunzione esplicitata.

Rubrica compilata sul lavoro-tipo — totale 7/10
CriterioPuntiMotivazione
Entità ed eventi2NOLEGGIO riconosciuto come entità (test decisivo applicato); CASA correttamente distinta da un semplice attributo di FILM.
Attributi e identificatori1Attributi pertinenti e ben collocati, ma CASA resta senza identificatore: ogni entità ne deve avere uno (es. CodCasa).
Associazioni e cardinalità1Produce corretta (1:n); ma ogni noleggio riguarda un solo film → accanto a NOLEGGIO serve (1,1), non (0,n).
Costrutti particolari2Evento ripetibile trasformato correttamente; nessun costrutto inventato oltre la specifica.
Tutto coperto e assunzioni1Tutto coperto, ma manca la lista delle assunzioni (es. «un noleggio riguarda un solo film»).

Totale 7/10 → stai migliorando. Per arrivare a 9–10: aggiungi la chiave a CASA, correggi (1,1) sui lati di NOLEGGIO, scrivi le assunzioni. Quando ti valuti, scrivi punteggio + perché: se non sai spiegare un 2, è un 1.

Quiz finale cumulativo — 10 domande su tutto il manuale

Ogni risposta ti spiega subito il perché. Alla fine premi ↺ Ricomincia e rifallo fino a 10/10: è il miglior ripasso possibile prima della verifica.

✓ Quiz finale — ripasso d'insieme
TAVOLO (con numero e posti a sedere)
PREZZO di un prodotto
«Di ogni socio registriamo PIÙ NUMERI DI TELEFONO»
«La TARGA è univoca»
«Lo studente FREQUENTA i corsi» (nessun dato in più sul legame)
«Il dottore visita PIÙ VOLTE lo stesso paziente; ricordiamo data e motivo»
«L'AULA si individua col numero E DALL'EDIFICIO in cui si trova»
«Alcuni soci sono anche DONATORI (con importo donazioni)» — scelta del manuale §6
«La FORNITURA ha senso solo con venditore + prodotto + reparto insieme»
«Della coppia (socio, libro) vogliamo la DATA del prestito» — dove va la data?
E dopo? Con lo schema verificato vai alla fase 3: trasformi il disegno in tabelle (vedi template §14).

13 Esercizi graduati per l'Esame di Stato Percorso completo

Tre problemi a complessità progressiva per allenare l'autonomia. Per ciascun esercizio puoi consultare gli aiuti progressivi a tre livelli (apri solo quello che ti serve!) prima di visualizzare la soluzione completa con schema E-R.

Prova timed (consigliata) Scegli l'Esercizio 2 o 3: 25 minuti, traccia sola, senza aprire gli aiuti. Poi confronta con la soluzione e valuta con la rubrica §12.
Livello 1 · Base — Flotta aziendale e trasferte

Esercizio 1 — Gestione parco auto aziendale

«Una società di consulenza gestisce il proprio parco autoveicoli. Di ogni veicolo interessa memorizzare la targa (univoca), il modello, la categoria (utilitaria, berlina, furgone) e la data di immatricolazione. Dei dipendenti si registrano matricola (univoca), cognome, nome e uno o più recapiti telefonici. I dipendenti possono noleggiare più volte lo stesso veicolo per trasferte di lavoro; di ciascun noleggio si vogliono registrare il codice noleggio, la data di inizio, la data di fine e i chilometri percorsi.»
💡 Livello 1 — Aiuto: Entità individuate e assunzioni
  • Sostantivi candidati: VEICOLO (con Targa PK), DIPENDENTE (con Matricola PK, Telefono multivalore).
  • Test decisivo: «Un dipendente può noleggiare più volte lo stesso veicolo?» NOLEGGIO non può essere un rombo, ma è una terza entità con CodNoleggio PK.
  • Società di consulenza: è il contesto del minimondo, resta fuori.
🔍 Livello 2 — Aiuto: Struttura dei legami e cardinalità
  • DIPENDENTE (0,n) ─── Effettua ─── (1,1) NOLEGGIO: un dipendente effettua da 0 a molti noleggi; ogni noleggio è effettuato da esattamente 1 dipendente.
  • NOLEGGIO (1,1) ─── Riguarda ─── (0,n) VEICOLO: ogni noleggio riguarda 1 solo veicolo; un veicolo può essere noleggiato da 0 a molte volte.
  • Attributo Telefono: doppio cerchio (0,n) attaccato a DIPENDENTE.
⭐ Livello 3 — Soluzione completa commentata e Diagramma E-R
DIPENDENTE Matricola Cognome Nome Telefono (0,n) (0,n) Effettua (1,1) NOLEGGIO CodNoleggio DataInizio DataFine KmPercorsi (1,1) Riguarda (0,n) VEICOLO Targa Modello Categoria DataImmatricolaz

Schema Logico risultante:

DIPENDENTE (Matricola(PK), Cognome, Nome)
TELEFONO_DIPENDENTE (PK(MatricolaDipendente, NumeroTelefono), FK(MatricolaDipendente))
VEICOLO (Targa(PK), Modello, Categoria, DataImmatricolaz)
NOLEGGIO (CodNoleggio(PK), DataInizio, DataFine, KmPercorsi, FK(MatricolaDipendente), FK(TargaVeicolo))
Livello 2 · Intermedio — E-Learning & Entità Deboli

Esercizio 2 — Piattaforma di Formazione Online

«Una piattaforma e-learning eroga corsi multimediali. Di ogni corso si memorizzano il codice corso (univoco), il titolo, la descrizione e il prezzo. Ogni corso è suddiviso in moduli didattici ordinati: i moduli non hanno un codice globale, ma sono numerati progressivamente all'interno del rispettivo corso (NumModulo 1, 2, 3...) e hanno titolo e durata in minuti. Gli utenti registrati possono essere Studenti o Docenti: per tutti si memorizzano email (univoca) e password; degli studenti si registrano matricola e data iscrizione, mentre dei docenti si registra la tariffa oraria e la specializzazione. Uno studente può iscriversi a più corsi (iscrizione a data fissa) e ogni corso può avere molti studenti iscritti.»
💡 Livello 1 — Aiuto: Entità e Costrutti critici
  • MODULO è un'entità debole: è identificato da NumModulo + CodiceCorso(CORSO). Pallino nero esterno collegato all'associazione identificante.
  • UTENTE è l'entità padre di una generalizzazione (t,e) con figlie STUDENTE e DOCENTE.
  • Iscrizione tra STUDENTE e CORSO è una relazione n:m con attributo DataIscrizione sul rombo (oppure entità autonoma se lo studente potesse re-iscriversi allo stesso corso).
🔍 Livello 2 — Aiuto: Cardinalità e Gerarchia
  • CORSO (1,n) ─── Comprende ─── (1,1) MODULO (entità debole).
  • STUDENTE (0,n) ─── Iscrizione (Data) ─── (0,n) CORSO: associazione n:m con attributo di legame Data.
  • Generalizzazione: freccia da STUDENTE e DOCENTE verso UTENTE con vincolo (t,e) — totale ed esclusiva.
⭐ Livello 3 — Soluzione completa commentata e Diagramma E-R
UTENTE Email Password (t,e) DOCENTE TariffaOraria STUDENTE DataIscr (0,n) Iscrizione Data (0,n) CORSO CodCorso Titolo Prezzo (1,n) Comprende (1,1) MODULO NumModulo DurataMin
Livello 3 · Avanzato — Simulazione Seconda Prova d'Esame

Esercizio 3 — Pronto Soccorso, Triage e Visite Ospedaliere

«Un presidio ospedaliero intende informatizzare l'accettazione e il percorso clinico del Pronto Soccorso. All'arrivo, il Paziente (codice fiscale univoco, cognome, nome, data di nascita, recapito) effettua un Accesso registrato da un Infermiere di triage (matricola, cognome, nome). Dell'Accesso si memorizzano un numero progressivo annuale (identificatore), la data e l'ora di arrivo e il Codice Colore di triage (Rosso, Giallo, Verde, Bianco). Durante la permanenza associata a quello specifico accesso, il paziente può essere sottoposto a una o più Visite mediche eseguite da Medici di guardia (matricola, cognome, specializzazione); di ogni visita si registrano orario di inizio, diagnosi preliminare ed eventuale prescrizione. Nel corso di una visita medica, il medico può richiedere uno o più Esami diagnostici (codice esame univoco, tipologia, esito e ora refertazione).»
💡 Livello 1 — Aiuto: Architettura delle entità
  • 4 Attori/Oggetti principali: PAZIENTE, INFERMIERE, MEDICO, ESAME.
  • 2 Eventi temporali distinti a cascata:
    1. ACCESSO: evento di ingresso al triage (collega Paziente e Infermiere).
    2. VISITA: atto clinico compiuto durante l'accesso (collega Accesso e Medico).
  • Attenzione: VISITA non si collega direttamente a Paziente, ma ad ACCESSO, garantendo la tracciabilità della specifica permanenza ospedaliera.
🔍 Livello 2 — Aiuto: Catena delle cardinalità 1:n
  • PAZIENTE (0,n) ─── Ingresso ─── (1,1) ACCESSO
  • INFERMIERE (0,n) ─── Triage ─── (1,1) ACCESSO
  • ACCESSO (1,n) ─── Include ─── (1,1) VISITA
  • MEDICO (0,n) ─── Esegue ─── (1,1) VISITA
  • VISITA (0,n) ─── Prescrive ─── (1,1) ESAME
⭐ Livello 3 — Soluzione completa commentata e Diagramma E-R
PAZIENTE CodFiscale (0,n) Ingresso (1,1) ACCESSO NumAccesso CodTriage (1,1) Triage (0,n) INFERMIERE (1,n) Include (1,1) VISITA CodVisita (1,1) Esegue (0,n) MEDICO (0,n) Prescrive (1,1) ESAME

14 Guida alla Seconda Prova: dalla consegna d'esame allo schema logico Percorso completo

All'Esame di Stato la commissione valuta non solo la correttezza dello schema E-R, ma la completezza e chiarezza della documentazione. Ecco come tradurre il lavoro che hai già fatto (Passi 0→1→2→3) nei 5 paragrafi della consegna d'esame, usando come esempio la Biblioteca della §6 che già conosci.

Il ponte: dal metodo ai 5 paragrafi
Cosa hai già fatto nel manuale → dove lo metti nella consegna
Passo del manualeCosa produceParagrafo della consegna
Passo 0 (§2) + Passo 1 (§3)Lettura, ipotesi numerate, poi le 4 domandePar. 1 — Analisi dei requisiti e assunzioni
Passo 2 (§4) + Passo 3 (§5)Tabella di lavoro completata (entità, attributi, cardinalità, costrutti)Par. 2 — Dizionario dei dati
Disegno E-R finale (esempi §§6–11)Schema concettuale con tutti i costruttiPar. 3 — Diagramma concettuale E-R
Regole di derivazione (nuovo, qui sotto)Spiegazione delle trasformazioni E-R → tabellePar. 4 — Ristrutturazione del modello
Schema logico finaleLe tabelle con PK e FKPar. 5 — Schema relazionale

Paragrafo 1 — Analisi dei requisiti e Assunzioni Progettuali

Riformula brevemente gli obiettivi del sistema. Poi elenca in modo numerato le assunzioni che giustificano le tue scelte dove la traccia è ambigua o incompleta. Le hai iniziate al Passo 0 (§2) e le hai ampliate al Passo 1 (§3, domanda 4) e al Passo 3 (§5, R3 e R4): ora le metti per iscritto nella consegna.

Esempio — Biblioteca (§6):
Assunzione 1: Un libro può essere scritto da più autori e un autore può aver scritto più libri → associazione Scrittura n:m.
Assunzione 2: Un socio può prendere in prestito molti libri, ma lo stesso libro è prestato a un solo socio alla volta → il testo non lo dice esplicitamente, lo si deduce dal contesto di una piccola biblioteca.
Assunzione 3: I donatori sono un sottoinsieme di SOCIO (e non una semplice etichetta) perché il testo presenta i donatori come «una categoria di soci».

Paragrafo 2 — Dizionario dei Dati (Tavola degli Attributi)

Presenta una tabella che descrive ogni entità, i suoi attributi, il tipo logico e la chiave primaria. Questa tabella è la traduzione formale della tabella di lavoro del Passo 2 (§4): prendi ogni riga della tabella e aggiungi le colonne con i tipi e i vincoli.

Biblioteca — Dizionario dei Dati dalla tabella di lavoro del §4
Entità / RelazioneNome AttributoTipo logico suggeritoDescrizione e VincoliChiave
AUTORECodAutoreINTCodice univoco (NOT NULL)PK
AUTORENomeVARCHAR(50)Nome dell'autore-
AUTORECognomeVARCHAR(50)Cognome dell'autore-
LIBROCodiceINTCodice univoco (NOT NULL)PK
LIBROTitoloVARCHAR(100)Titolo del libro-
LIBROAnnoPubblINTAnno di pubblicazione-
SOCIONumTesseraINTNumero di tessera univoco (NOT NULL)PK
SOCIONomeVARCHAR(50)Nome del socio-
SOCIOCognomeVARCHAR(50)Cognome del socio-
DONATOREImportoDonazioniDECIMAL(10,2)Importo complessivo donato-
Nota Le tabelle di legame (Scrittura, Prestito) e gli attributi multivalore (Telefono) vengono aggiunte nel Paragrafo 5 quando traduci in tabelle.

Paragrafo 3 — Diagramma Concettuale E-R

Disegna lo schema E-R che hai costruito con il metodo del manuale: rettangoli al singolare, chiavi con pallino pieno, rombi per le associazioni con cardinalità (min,max) su tutti i rami, freccia verso il padre per le generalizzazioni. Questo è il risultato del Passo 3 (§5) applicato alla tabella di lavoro.

Qui puoi copiare direttamente lo schema della Biblioteca (§6) che hai già disegnato — oppure ridisegnarlo meglio sul foglio protocollo.

Paragrafo 4 — Ristrutturazione del Modello (E-R → Tabelle)

Questa è la parte nuova: qui spieghi come trasformi lo schema E-R in tabelle. Ogni costrutto speciale ha una regola precisa:

Come ogni costrutto E-R diventa una tabella — regole da applicare alla Biblioteca
Costrutto E-RRegola di trasformazioneApplicazione alla Biblioteca
Entità sempliceDiventa una tabella con le colonne = attributiAUTORE(CodAutore(PK), Nome, Cognome)
LIBRO(Codice(PK), Titolo, AnnoPubbl)
SOCIO(NumTessera(PK), Nome, Cognome)
Attributo multivaloreTabella satellite con PK composta e FK verso il padreTELEFONO_SOCIO(PK(NumTessera, Telefono), FK(NumTessera))
Associazione n:mNuova tabella ponte: PK(...) composta + FK(...) per ciascuna estremità (+ attributi del rombo)SCRITTURA(PK(CodAutore, CodiceLibro), FK(CodAutore), FK(CodiceLibro))
Associazione 1:nLa PK del lato «1» diventa FK nella tabella del lato «n»PRESTITO(CodPrestito(PK), …, FK(NumTessera), FK(CodiceLibro))
Sottoinsieme / GeneralizzazioneScelta: tabella unica nel padre con tutti gli attributi, oppure tabelle separate per ogni figliaDONATORE: si può accorpare a SOCIO (con ImportoDonazioni NULL per i non-donatori) oppure separare — entrambe le scelte sono valide
Entità deboleLa tabella include la FK dell'entità forte come parte della PK composta(non presente in questo esempio — vedi palestra §10)
Attributo compostoOgni componente diventa una colonna a sé (nel logico non esiste l'attributo composto)(non presente in questo esempio — vedi segreteria §7)

Paragrafo 5 — Schema Logico Relazionale Finale

Scrivi le tabelle finali con questa notazione: Attributo(PK) per una chiave primaria semplice; PK(attr1, attr2, …) per una PK composta; FK(Attributo) per ogni chiave esterna.

AUTORE (CodAutore(PK), Nome, Cognome)
LIBRO (Codice(PK), Titolo, AnnoPubbl)
SOCIO (NumTessera(PK), Nome, Cognome)
DONATORE (PK(NumTessera), FK(NumTessera), ImportoDonazioni)    ← sottoinsieme: PK = FK verso SOCIO
SCRITTURA (PK(CodAutore, CodiceLibro), FK(CodAutore), FK(CodiceLibro))     ← tabella ponte n:m
TELEFONO_SOCIO (PK(NumTessera, Telefono), FK(NumTessera))       ← tabella satellite multivalore
PRESTITO (CodPrestito(PK), DataPrestito, FK(NumTessera), FK(CodiceLibro))
Come si legge Ogni tabella corrisponde a un pezzo dello schema E-R: rettangoli → tabelle principali, doppio cerchio → tabella satellite, rombo n:m → tabella ponte, sottoinsieme → tabella con PK = FK del padre.
Notazione: Matricola(PK) · PK(Matricola, IdEsame) · FK(Matricola). Esempio ponte: Svolgimento (PK(Matricola, IdEsame), FK(Matricola), FK(IdEsame), voto, data).

15 Scheda di sintesi E-R (Cheat-Sheet) stampabile Consultazione

Tutto quello che serve per il ripasso rapido prima della verifica o dell'esame, concentrato in una scheda sinottica.

Tavola Sinottica Rapida — Progettazione E-R e Modello Logico

1. Simbologia Grafica E-R

Rettangolo: Entità (sostantivo singolare)
Rombo: Associazione (verbo/legame)
Pallino pieno (●): Identificatore univoco (PK)
Pallino vuoto (○): Attributo semplice
Doppio cerchio (◎): Attributo multivalore (0,n)
Pallino grande con rami: Attributo composto
Freccia verso il padre: Generalizzazione (t/p, e/s)

2. Le 4 + 4 domande (il procedimento da ricordare)

Passo 1 — ruolo della parola: ha dati propri? è collegata ad altro? è un legame? la stessa coppia si ripete?
Passo 3 — revisione dello schema: come si identifica? (R1) come sono fatti i dati? (R2) come funziona il legame? (R3) il testo segnala qualcosa di particolare? (R4, solo se c'è un segnale)
Domanda Magica (dentro R3): «Presa UNA istanza di A, quante di B al min / max?» La coppia (min,max) va accanto ad A. Conta le istanze collegate: non è il test di ripetibilità (quello è il Passo 1, domanda 4).
Test Decisivo (Passo 1, domanda 4): «La stessa coppia può ripetersi?» Se entità con due 1:n.

3. Regole di Traduzione nel Logico

Relazione 1:n: la PK del lato (0,1)/(1,1) diventa chiave esterna nella tabella del lato (0,n)/(1,n): si scrive FK(Attributo).
Relazione n:m: nasce una tabella ponte con PK composta e le FK esplicite, es. Svolgimento (PK(Matricola, IdEsame), FK(Matricola), FK(IdEsame), …).
Relazione 1:1: FK collocata nell'entità con partecipazione obbligatoria (1,1).
Notazione: Codice(PK) · PK(attr1, attr2) · FK(chiaveEsterna).

4. Checklist Pre-Consegna d'Esame

1. [ ] Ogni entità ha la sua PK (pallino pieno)
2. [ ] Nomi di entità e legami: singolare + maiuscola nel tuo schema (la traccia non li usa)
3. [ ] Cardinalità presenti su tutti i rami
4. [ ] Eventi con storico modellati come entità
5. [ ] Generalizzazioni con vincoli (t/p, e/s)
6. [ ] Tabella delle assunzioni compilata
7. [ ] Verifica con lettura ad alta voce eseguita

16 Glossario dei termini Consultazione

Riferimento rapido per i termini usati nel manuale.

Minimondo
La parte di mondo che devi disegnare, quella descritta nel testo.
Testo (della traccia)
La traccia che ti danno all’esame con le richieste da trasformare in disegno.
Entità
Persone, oggetti o luoghi di cui il programma deve ricordare dati (STUDENTE, LIBRO, CAMERA): ne puoi fare l'elenco e contarle. Il segnale: il testo dice «di questa cosa vogliamo sapere…». Si disegnano con un rettangolo.
Attributo
Dato di un’entità. Vuoto = normale, pieno = chiave, doppio cerchio = più valori, grande = si divide in pezzi.
Associazione
Legame tra entità. Rombo. Non ha chiave, a volte ha una data.
Cardinalità
Numeri vicino all’entità: quanti legami può avere. 0 = può non averne, 1 = deve averne.
Identificatore (chiave)
Dato che identifica uno solo. Pallino pieno.
Generalizzazione
Padre con figlie che hanno già tutto del padre più qualcosa. Con due figlie scrivi t/p ed e/s, con una sola è un sottoinsieme.
Entità debole
Entità che da sola non si riconosce (es. Aula senza Edificio). Pallino nero a L sulla relazione.
Associazione ricorsiva
Legame dentro lo stesso gruppo. Anello a U con ruoli.
Associazione ternaria
Legame a tre insieme. Un solo rombo, non tre.
Test decisivo
La stessa coppia può tornare? Sì → entità, non rombo.
Scelta tra due modi (trade-off)
Due strade giuste: scegli in base a cosa chiede il testo.
Ipotesi (assunzione)
Decisione sul minimondo che il testo non impone. Si scrive al Passo 0 e si amplia dopo, per giustificare una scelta (es. «la coppia socio–libro non si ripete»).
Istanza
Una singola «cosa» del gruppo: Marco Rossi è un'istanza dell'entità STUDENTE. Nel disegno non appare, ma ogni rettangolo rappresenta tutte le sue istanze.
Sottoinsieme
Generalizzazione con una sola figlia: freccia verso il padre e nessuna indicazione e/s. Es. DONATORE sottoinsieme di SOCIO.
Chiave primaria (PK)
L'attributo con pallino pieno che identifica uno solo ogni istanza. Nel modello logico: Attributo(PK) se semplice, oppure PK(attr1, attr2, …) se composta.
Chiave esterna (FK)
Nel passaggio al logico, nei legami 1:n la chiave del lato «1» si ricopia nella tabella del lato «n»: si scrive FK(Attributo). Nelle tabelle ponte compare insieme alla PK composta, es. Svolgimento (PK(Matricola, IdEsame), FK(Matricola), FK(IdEsame), …).
Associazione n:m
Legame in cui entrambi i lati possono arrivare a molti (massimo = n). Nel logico nasce una tabella ponte con le due chiavi esterne.
Entità forte
Entità che ha un identificatore proprio (pallino pieno) e può «reggere» un'entità debole. Es. EDIFICIO rispetto ad AULA.