I diagrammi entità-relazione sono uno strumento utile per progettare basi di dati. Mostrano le entità coinvolte, i loro attributi e le relazioni tra loro. È necessario definire questi elementi per capire correttamente la struttura del database prima di costruirlo.
Un metodo spesso usato per creare un diagramma entità-relazione è la notazione a piede di porco. Introdotte negli anni ’70, le caratteristiche frecce usate nella notazione a zampa di gallina sono state chiamate anche frecce invertite, zampe di gallina o semplicemente forcelle.
Quali sono i simboli usati nella notazione a zampa di gallina?
La notazione a zampa di gallina usa alcune forme e simboli unici per rappresentare gli elementi in un database.
Entità
Un’entità è una cosa del mondo reale (persona, luogo, oggetto – qualsiasi cosa tu possa nominare nel tuo database può essere un’entità) rappresentata nella notazione a zampa di gallina da un rettangolo con un nome in una casella in alto. Un’entità è sempre singolare.
Attributi
Le entità hanno attributi che le descrivono. Questi attributi sono elencati sotto il nome nel resto del rettangolo. Un’entità può avere uno o molti attributi. Uno di questi attributi sarà il suo attributo chiave, o identificatore, che identifica in modo univoco quell’entità. L’identificatore è mostrato con un asterisco accanto al suo nome.
Quindi la nostra entità giocatore è rappresentata da un rettangolo con la parola giocatore al suo interno.
Relazioni
Le entità rappresentate nel diagramma hanno relazioni che descrivono come interagiscono. Le relazioni tra entità sono rappresentate da una linea con un verbo scritto sulla linea.
Come funzionano le relazioni nella notazione a zampa di gallina?
Le linee di relazione nella notazione a zampa di gallina hanno due indicatori per descrivere la cardinalità e la modalità della relazione. La cardinalità ti dice il numero massimo di volte che un’istanza di un’entità può essere associata a istanze dell’altra entità. La modalità vi dice il numero minimo di volte che l’istanza può essere associata alle istanze dell’altra entità. Nota che la maggior parte delle volte puoi semplicemente usare la parola cardinalità.
Questi indicatori sono mostrati alle due estremità della linea di relazione in modo che tu possa vedere come le entità si relazionano tra loro.
Uno
Molti
Si può vedere da questa da dove viene il nome “zampa di gallina”…
Zero o molti
Una relazione zero o molti significa che è opzionale. Potrebbe non esserci alcuna connessione tra le entità, o potrebbero essercene una o più.
Uno o molti
L'”uno” indica che questa non è una relazione opzionale, anche se potrebbero essercene più di uno.
Uno e solo uno
Non è possibile più di una relazione tra istanze.
Zero o uno
Un’altra relazione opzionale, con un massimo di una.
Notazione Chen vs. piede di porco
La notazione piede di porco non è l’unico modo per disegnare un diagramma entità-relazione. Un approccio alternativo e precedente, la notazione Chen, adotta un approccio diverso per rappresentare le entità e le loro relazioni: le entità sono rettangoli, i loro attributi sono ovali e le relazioni sono diamanti.
La notazione Chen usa simboli sulle linee tra le relazioni e le entità per mostrare la cardinalità:
Alcuni critici della notazione Chen sostengono che i suoi diagrammi occupano più spazio della zampa di gallina e che i simboli delle relazioni sono meno intuitivi.
Esempio di notazione a zampa di gallina in azione
Mettiamo a punto un negozio online per mostrare come funziona la notazione a zampa di gallina. Per il nostro esempio, semplificheremo il negozio e rappresenteremo solo quattro entità: cliente, ordine, prodotto e codice sconto.
Si può vedere dal diagramma che ogni entità ha un certo numero di attributi e che l’identificatore unico è segnato con un asterisco.
Ora iniziamo a mappare le relazioni. Possiamo iniziare con cliente e ordine.
La linea di relazione mostra che un cliente può avere zero o molti ordini, mentre un ordine può essere associato a uno e un solo cliente. Il verbo usato per la relazione può essere “places”, come in il cliente fa un ordine.
Passando a prodotto e ordine, un prodotto può essere associato a zero o molti ordini, mentre un ordine deve avere uno o molti prodotti (non si può avere un ordine senza ordinare qualcosa!). Per prodotto e ordine, possiamo usare il verbo “è aggiunto a” per descrivere come un prodotto viene aggiunto a un ordine.
Il prossimo è il codice sconto. Vogliamo incoraggiare i nostri clienti a ordinare i prodotti, quindi a volte invieremo un codice di sconto stagionale via e-mail. Potremmo inviare codici specifici legati a un determinato cliente, ma per il nostro esempio useremo lo stesso breve codice alfanumerico per tutti.
Non abbiamo bisogno di collegare il cliente al codice di sconto, perché basta inserire il codice quando ordinano e questo aggiornerà il costo totale dell’ordine. Non c’è bisogno di una relazione persistente tra cliente e codice sconto.
Ordini e codici sconto hanno una relazione zero o uno: un cliente potrebbe non inserire un codice sconto, ma se lo fa, può usarne solo uno alla volta. Scendendo dall’altra parte, un ordine potrebbe non avere alcun codice di sconto associato, ma se ce l’ha, può averne solo uno. Un codice sconto è “applicato a” un ordine.
Un vero diagramma entità-relazione disegnato usando la notazione a zampa di gallina sarà molto più complesso del nostro esempio. Ma potete vedere come la notazione a zampa di gallina rende facile vedere a colpo d’occhio come funzionerà il database. Probabilmente puoi anche iniziare ad immaginare le altre parti del nostro negozio online e come potrebbero relazionarsi tra loro.
La notazione a zampa di gallina funziona meglio quando hai bisogno di iniziare seriamente a costruire il tuo database. Quando dovete essere molto chiari su come le entità si relazionano tra loro, apprezzerete il livello di dettaglio incapsulato dalle linee di relazione in un diagramma entità-relazione (ERD) creato usando la notazione a zampa di gallina. Ma quando si sta appena iniziando a sviluppare il proprio progetto, si può fare affidamento su approcci più semplici all’ERD. Il primo passo per comunicare le proprie idee è abbozzare le entità, gli attributi e le relazioni. In questa fase, di solito è una buona idea lavorare velocemente e non preoccuparsi troppo dei dettagli.
Gleek supporta la notazione a zampa di gallina, e ti permette di creare molti altri diagrammi. I nostri strumenti di diagrammi sono per lo sviluppatore che vuole creare rapidamente un diagramma ER informale a livello concettuale o un rapido diagramma di contesto per capire come il vostro prodotto si relaziona con entità esterne. Se avete bisogno di discutere le vostre idee in una riunione o di collaborare alle prime fasi di progettazione di un database, provate l’approccio ai diagrammi di Gleek, facile da tastiera.