Cos'è la modellazione ER? Impara con l'esempio

⚡ Riepilogo intelligente

La modellazione entità-relazione (ERM) è un approccio grafico alla progettazione di database che rappresenta oggetti del mondo reale come entità, li descrive con attributi e cattura il modo in cui sono connessi attraverso le relazioni, producendo un progetto chiaro prima ancora che vengano create le tabelle.

  • 🧩 Che cosa è: La modellazione ER è un modello di dati grafico di alto livello che definisce gli elementi di dati e le loro relazioni.
  • 🗂️ Elementi costitutivi: Le entità rappresentano cose del mondo reale, gli attributi ne descrivono le proprietà e le relazioni descrivono come le entità interagiscono.
  • 🔗 Cardinalità: Le relazioni possono essere uno a uno, uno a molti o molti a molti, risolte tramite un'entità di giunzione.
  • 🚀 Modello EER: Il modello ER avanzato utilizza la notazione UML e costrutti aggiuntivi per database altamente complessi.
  • 🎬 Caso di studio MyFlix: Un esempio relativo a una videoteca mappa gli iscritti, i film, le categorie, i noleggi e i pagamenti in un diagramma ER.
  • 🤖 Assistenza AI: Gli strumenti di intelligenza artificiale e GitHub Copilot trasformano le descrizioni in linguaggio naturale in diagrammi ER e schemi SQL.

Modellazione ER

Cos'è la modellazione ER?

Modello di relazione tra entità (ER Modeling) è un approccio grafico alla progettazione di database. È un modello di dati di alto livello che definisce gli elementi di dati e la loro relazione per un sistema software specifico. Un modello ER viene utilizzato per rappresentare oggetti del mondo reale.

Un'entità è una cosa o un oggetto del mondo reale che si distingue dall'ambiente circostante. Ad esempio, ogni dipendente di un'organizzazione è un'entità separata. Di seguito sono elencate alcune delle principali caratteristiche delle entità.

  • Un'entità ha un insieme di proprietà.
  • Le proprietà dell'entità possono avere valori.

Consideriamo di nuovo il nostro primo esempio. Un dipendente di un'organizzazione è un'entità. Se "Peter" è un programmatore (un dipendente) presso MicrosoftPuò avere attributi (proprietà) come nome, età, peso, altezza, ecc. È ovvio che questi abbiano valori rilevanti per lui.

Ogni attributo può avere dei valori. Nella maggior parte dei casi, un singolo attributo ha un solo valore. Tuttavia, è possibile che gli attributi abbiano anche più valori. Ad esempio, l'età di Peter ha un solo valore, ma la sua proprietà "numeri di telefono" può avere più valori.

Le entità possono avere relazioni tra loro. Consideriamo l'esempio più semplice. Supponiamo che ciascuna Microsoft Al programmatore viene dato un computer. È chiaro che anche il computer di Peter è un'entità. Peter usa quel computer, e lo stesso computer viene usato da Peter. In altre parole, esiste una relazione reciproca tra Peter e il suo computer.

Nella modellazione Entità-Relazione, modelliamo le entità, i loro attributi e le relazioni tra le entità.

Perché utilizzare un modello ER?

Ora potresti pensare perché utilizzare la modellazione ER quando possiamo semplicemente creare il database e tutti i suoi oggetti senza modellazione ER? Una delle sfide affrontate durante la progettazione di un database è il fatto che progettisti, sviluppatori e utenti finali tendono a visualizzare i dati e il loro utilizzo in modo diverso. Se questa situazione non viene controllata, possiamo finire per produrre un sistema di database che non soddisfa i requisiti degli utenti.

Strumenti di comunicazione comprensibili a tutte le parti interessate (utenti tecnici e non tecnici) sono fondamentali per la realizzazione di sistemi di database che soddisfino i requisiti degli utenti. I modelli ER sono un esempio di tali strumenti.

I diagrammi ER aumentano anche la produttività degli utenti, poiché possono essere facilmente convertiti in tabelle relazionali.

Modello Enhanced Entity Relationship (EER).

Il modello EER (Enhanced Entity Relationship) è un modello di dati di alto livello che fornisce estensioni al modello ER (Entity Relationship) originale. I modelli EER supportano una progettazione più dettagliata. La modellazione EER è emersa come soluzione per la modellazione di database altamente complessi.

EER utilizza la notazione UML. UML è l'acronimo di Linguaggio di modellazione unificato; è un linguaggio di modellazione generico utilizzato durante la progettazione di sistemi orientati agli oggetti. Le entità sono rappresentate come diagrammi di classe. Le relazioni sono rappresentate come associazioni tra entità. Il diagramma mostrato di seguito illustra un diagramma ER utilizzando il Notazione UML.

Modello Enhanced Entity Relationship (EER).

Caso di studio: Diagramma ER per la videoteca “MyFlix”

Ora lavoriamo con il sistema di database della libreria video MyFlix per comprendere meglio il concetto di diagrammi ER. Useremo questo database per tutte le esercitazioni pratiche di questo tutorial.

MyFlix è un'entità commerciale che noleggia film ai suoi membri. MyFlix ha archiviato i suoi record manualmente. La direzione ora vuole passare ad a DBMS.

Analizziamo i passaggi necessari per sviluppare un diagramma EER per questo database:

  1. Identificare le entità e determinare le relazioni che esistono tra loro.
  2. Ogni entità, attributo e relazione dovrebbe avere nomi appropriati che possano essere facilmente compresi anche da persone non tecniche.
  3. Le relazioni non dovrebbero essere collegate direttamente tra loro. Le relazioni dovrebbero connettere le entità.
  4. Ogni attributo in una determinata entità dovrebbe avere un nome univoco.

Entità presenti nella libreria “MyFlix”

Gli enti da inserire nel ns Diagramma ER siamo:

  • Membri – questa entità conterrà le informazioni relative ai membri.
  • Film – questa entità conterrà informazioni relative ai film.
  • Categorie – questa entità conterrà le informazioni che classificano i film in diverse categorie, come "Drammatico", "Azione", "Epico", ecc.
  • Noleggio film: questa sezione conterrà le informazioni relative ai film noleggiati ai membri.
  • Pagamenti – questa sezione conterrà le informazioni relative ai pagamenti effettuati dai membri.

Definire le relazioni tra le entità

Membri e film

Per quanto riguarda le interazioni tra le due entità vale quanto segue.

  • Un membro può noleggiare più di un film in un dato periodo.
  • Un film può essere noleggiato da più membri in un dato periodo.

Dallo scenario sopra descritto, possiamo notare che la natura della relazione è molti-a-molti. I database relazionali non supportano le relazioni molti-a-molti. È necessario introdurre un'entità di collegamento. Questo è il ruolo svolto dall'entità MovieRentals. Essa ha una relazione uno-a-molti con la tabella Members e un'altra relazione uno-a-molti con la tabella Movies.

Entità di film e categorie

Quanto segue vale per i film e le categorie.

  • Un film può appartenere a una sola categoria, ma una categoria può contenere più di un film.

Da ciò possiamo dedurre che la natura della relazione tra le tabelle delle categorie e dei film è di tipo uno-a-molti.

Membri ed entità di pagamento

Quanto segue è valido in merito ai membri e ai pagamenti.

  • Un membro può avere un solo account ma può effettuare più pagamenti.

Da ciò possiamo dedurre che la natura della relazione tra i membri e gli enti di pagamento è di tipo uno-a-molti.

Creare il modello EER utilizzando MySQL banco di lavoro

In MySQL banco di lavoro, clicca sul pulsante “+”.

Creare il modello EER utilizzando MySQL banco di lavoro

Double Fai clic sul pulsante Aggiungi diagramma per aprire l'area di lavoro per i diagrammi ER.

Aggiungi diagramma in MySQL banco di lavoro

Viene visualizzata la seguente finestra.

MySQL Ambiente di modellazione Workbench EER

Diamo un'occhiata ai due oggetti con cui lavoreremo.

  • L'oggetto tabella strumento da tavolo ci consente di creare entità e definire gli attributi associati a ciascuna entità.
  • La relazione con il luogo strumento di relazione luogo Questo pulsante ci permette di definire le relazioni tra le entità.

L'entità Membri avrà i seguenti attributi

  • Numero di iscrizione
  • Nomi completi
  • Genere
  • Data di nascita
  • Indirizzo fisico
  • indirizzo postale

Ora creiamo la tabella Membri.

1. Trascina l'oggetto tabella dal pannello degli strumenti.

2. Trascinalo nell'area di lavoro. Apparirà un'entità denominata tabella 1.

3. Double Fai clic su di esso. Apparirà la finestra delle proprietà mostrata di seguito.

Proprietà della tabella dei membri in MySQL banco di lavoro

Il prossimo,

  1. Modifica la tabella 1 in Membri.
  2. Modificare il valore predefinito idtable1 in membership_number.
  3. Fai clic sulla riga successiva per aggiungere il campo successivo.
  4. Procedi allo stesso modo per tutti gli attributi identificati nell'entità Membri.

La finestra delle proprietà ora dovrebbe assomigliare a questa.

attributi dell'entità dei membri definiti

Ripetere i passaggi precedenti per tutte le entità identificate.

L'area di lavoro del diagramma dovrebbe ora assomigliare a quella mostrata di seguito.

Entità MyFlix nell'area di lavoro del diagramma

Creiamo un rapporto tra i membri e il noleggio di film

  1. Seleziona la relazione di posizione utilizzando lo strumento colonne esistenti.
  2. Fai clic su membership_number nella tabella Members.
  3. Fai clic su reference_number nella tabella MovieRentals.

Creare un rapporto tra i membri e MovieRentals

Ripeti i passaggi precedenti per le altre relazioni. Il tuo diagramma ER dovrebbe ora apparire così:

Diagramma ER di MyFlix completato

DOMANDE FREQUENTI

Un diagramma ER utilizza tre componenti principali: le entità come rettangoli, gli attributi come ovali e le relazioni come rombi. Gli attributi sottolineati indicano le chiavi primarie.

I tipi di attributi più comuni sono quelli semplici (atomici), composti (divisibili), derivati ​​(calcolati), multivalore (con più valori) e gli attributi chiave che identificano un'entità.

La cardinalità definisce quante istanze di un'entità sono correlate a un'altra: uno a uno, uno a molti o molti a molti. Un'entità di giunzione risolve i collegamenti molti a molti non supportati.

Un'entità forte possiede una propria chiave primaria ed è autonoma. Un'entità debole non ha una chiave completa e dipende da un'entità proprietaria.

La notazione a zampa di gallina mostra la cardinalità con le terminazioni delle linee che ricordano la zampa di un uccello. Le punte indicano il lato multiplo; le barre e i cerchi indicano il lato singolo e quello facoltativo.

Un modello ER è una rappresentazione visiva di alto livello di entità e relazioni. Il modello relazionale lo implementa sotto forma di tabelle, righe, colonne e chiavi all'interno di un DBMS.

Gli strumenti di intelligenza artificiale trasformano le descrizioni in linguaggio naturale in diagrammi ER, suggeriscono entità e relazioni e generano schemi SQL. I progettisti esaminano e correggono l'output prima di implementarlo.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub Suggerisce entità, relazioni e strutture di tabella e genera codice SQL per crearle. Può anche generare diagrammi come codice, ad esempio con Mermaid, che vengono poi visualizzati in un diagramma ER.

Riassumi questo post con: