· 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 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.

esempio relazione 1 a molti

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:

CREATE TABLE ordine (
  codice INT NOT NULL,
  codiceCliente INT NOT NULL,
  ...
);

ALTER TABLE ordine
  ADD CONSTRAINT fk_ordine_cliente
  FOREIGN KEY (codiceCliente)
  REFERENCES cliente (codice);
Back to Blog

Related Posts

View All Posts »
SQL: DDL, DML e DCL - Introduzione

SQL: DDL, DML e DCL - Introduzione

SQL (Structured Query Language) è un linguaggio di interrogazione utilizzato per la gestione di database relazionali. In questo post, ci concentreremo su tre sottoinsiemi di SQL: DDL, DML e DCL.

Dati e Informazioni

Dati e Informazioni

Dati e informazioni sono due concetti fondamentali in informatica. La comprensione della differenza tra questi due concetti è essenziale per comprendere il funzionamento dei sistemi informativi.

Strutture di controllo in Java

Strutture di controllo in Java

Strutture di controllo in Java | istruzioni condizionali, cicli e istruzione switch. Una guida completa alle strutture di controllo in Java.

Unit testing in Java

Unit testing in Java

Gli unit test sono una pratica di test software che consiste nel verificare il corretto funzionamento di singole unità di codice, come metodi o funzioni. In Java, il framework più popolare per l'unit testing è JUnit.

La logica binaria: Fondamento dell'era digitale

La logica binaria: Fondamento dell'era digitale

In questo articolo, esploreremo la logica binaria, il suo ruolo cruciale nel funzionamento dei computer e come viene utilizzata per rappresentare informazioni complesse attraverso l'uso di due soli simboli.