· Andrea Pollini · basi dati · 4 min read
Progettazione un Database: modello concettuale e logico
La modellazione logica è una fase fondamentale del processo di progettazione di un database.Vediamo le caratteristiche fondamentali
La progettazione di un database è un processo complesso che richiede una profonda conoscenza delle esigenze aziendali e delle tecnologie di database. Il processo può essere suddiviso in tre fasi principali:
- Analisi concettuale: In questa fase, si identifica la struttura logica dei dati che devono essere memorizzati nel database. Si tratta di una fase fondamentale, in quanto fornisce la base per le fasi successive.
- Modellazione logica: In questa fase, si traduce la struttura logica dei dati identificata nella fase di analisi concettuale in un modello logico, che è un’espressione delle strutture dati e delle relazioni tra esse.
- Implementazione: In questa fase, si crea il database fisico, ovvero la struttura di dati che viene effettivamente memorizzata sul sistema di archiviazione. In questo articolo, ci concentreremo sulla seconda fase del processo, ovvero la modellazione logica.
Analisi concettuale
L’analisi concettuale è la prima fase del processo di progettazione di un database. In questa fase, si identifica la struttura logica dei dati che devono essere memorizzati nel database.
L’analisi concettuale è fondamentale, in quanto fornisce la base per le fasi successive del processo di progettazione. Un’analisi concettuale ben eseguita può garantire che il database soddisfi le esigenze aziendali e sia efficiente da utilizzare.
Entità
L’entità è l’unità fondamentale di un modello concettuale. Un’entità rappresenta un oggetto del mondo reale che è di interesse per l’organizzazione.
Ad esempio, in un database di gestione di un negozio, le entità potrebbero essere:
- Cliente: rappresenta un cliente del negozio
- Prodotto: rappresenta un prodotto venduto dal negozio
- Ordine: rappresenta un ordine effettuato da un cliente
Attributi
Ogni entità ha un insieme di attributi, che rappresentano le diverse caratteristiche dell’entità.
Ad esempio, l’entità Cliente potrebbe avere gli attributi:
- codice: un codice univoco che identifica il cliente
- nome: il nome del cliente
- indirizzo: l’indirizzo del cliente
Relazioni
Le relazioni rappresentano le associazioni tra due o più entità.
Ad esempio, l’entità Cliente potrebbe essere in relazione con l’entità Ordine tramite la relazione “ha effettuato”. Questa relazione indica che un cliente ha effettuato uno o più ordini.
I tipi di relazioni più comuni sono:
- Uno a uno: una relazione in cui una riga in una tabella può essere associata a una sola riga in un’altra tabella.
- Uno a molti: una relazione in cui una riga in una tabella può essere associata a più righe in un’altra tabella.
- Molti a molti: una relazione in cui una riga in una tabella può essere associata a più righe in un’altra tabella e viceversa.
Ad esempio in un sistema di gestione delle spese, ogni spesa ha unan relazione 1 a molti con la categoria di spesa, in quanto una spesa può essere associata a una sola categoria, ma una categoria può essere associata a più spese.
Il modello logico
Il modello logico è una rappresentazione della struttura logica dei dati che devono essere memorizzati nel database. Esso è indipendente dal sistema di gestione di database (DBMS) che verrà utilizzato per implementare il database.
La deduzione del modello logico dal diagramma ER è un processo che consente di tradurre la struttura logica dei dati rappresentata nel diagramma ER in un modello logico, che è un’espressione delle strutture dati e delle relazioni tra esse.
Il modello logico è indipendente dal sistema di gestione di database (DBMS) che verrà utilizzato per implementare il database.
Il processo di deduzione del modello logico dal diagramma ER può essere suddiviso nelle seguenti fasi
Traduzione delle entità in tabelle
In questa fase, ogni entità del diagramma ER viene tradotta in una tabella del modello logico.
La tabella deve avere una colonna per ogni attributo dell’entità. La colonna per l’attributo chiave primaria deve essere impostata come chiave primaria della tabella.
Ad esempio, se il diagramma ER contiene un’entità Cliente con gli attributi codice, nome e indirizzo, la tabella del modello logico corrispondente avrà le seguenti colonne:
- codice (chiave primaria)
- nome
- indirizzo
- Traduzione delle relazioni in chiavi esterne
In questa fase, ogni relazione del diagramma ER viene tradotta in una o più chiavi esterne nelle tabelle corrispondenti.
La chiave esterna è una colonna nella tabella che fa riferimento a una chiave primaria in un’altra tabella.
La direzione della relazione determina quale tabella deve avere la chiave primaria e quale tabella deve avere la chiave esterna.
Ad esempio, se il diagramma ER contiene una relazione ha effettuato tra le entità Cliente e Ordine, la tabella Ordine deve avere una colonna codiceCliente che fa riferimento alla chiave primaria della tabella Cliente.
Definizione delle relazioni tra le tabelle
In questa fase, si definiscono le relazioni tra le tabelle del modello logico.
Le relazioni tra le tabelle sono definite tramite le chiavi esterne.
Ad esempio, la relazione ha effettuato tra le tabelle Cliente e Ordine può essere definita come segue: