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: