FASI DI PROGETTAZIONE BASE DATI – NEGOZIO DI SCARPE

Guida completa e passo dopo passo per la progettazione di una base di dati per un negozio di scarpe, pensata per essere chiara, didattica e adatta anche a contesti scolastici.


👟 1. Descrizione dell’Attività

Un negozio di scarpe vende calzature di varie marche, modelli, numeri e colori, e gestisce:

  • Clienti che acquistano online o in sede

  • Ordini con uno o più articoli

  • Pagamenti associati agli ordini

  • Magazzino e forniture da parte di fornitori

L’obiettivo è progettare una base di dati che gestisca in modo efficiente vendite, scorte, clienti e fornitori.


📋 2. Analisi dei Requisiti Utente

🔍 Requisiti funzionali:

  • Visualizzare il catalogo delle scarpe disponibili

  • Registrare clienti, ordini e pagamenti

  • Gestire scorte in magazzino

  • Collegare ogni ordine a uno o più articoli acquistati

  • Collegare scarpe ai fornitori

🧾 Requisiti informativi:

  • Ogni scarpa ha: marca, modello, colore, numero, prezzo, quantità

  • Ogni cliente ha: nome, cognome, email, indirizzo

  • Ogni ordine ha: data, cliente, stato, articoli acquistati

  • Ogni fornitore ha: nome, telefono, email


🧠 3. Identificazione delle Entità e Relazioni

EntitàAttributi Principali
Scarpa ID_scarpa, marca, modello, colore, numero, prezzo, quantità_in_magazzino
Cliente ID_cliente, nome, cognome, email, indirizzo
Ordine ID_ordine, data_ordine, stato, ID_cliente (FK)
Pagamento ID_pagamento, data, importo, metodo_pagamento, ID_ordine (FK)
DettaglioOrdine ID_ordine (FK), ID_scarpa (FK), quantità
Fornitore ID_fornitore, nome, telefono, email
Fornitura ID_fornitore (FK), ID_scarpa (FK), data_fornitura

🧾 4. Disegno Logico dei Dati (Schema Relazionale)

CLIENTE (
  ID_cliente INT PRIMARY KEY,
  nome VARCHAR(50),
  cognome VARCHAR(50),
  email VARCHAR(100),
  indirizzo TEXT
)

SCARPA (
  ID_scarpa INT PRIMARY KEY,
  marca VARCHAR(50),
  modello VARCHAR(50),
  colore VARCHAR(30),
  numero INT,
  prezzo DECIMAL(6,2),
  quantità_in_magazzino INT
)

ORDINE (
  ID_ordine INT PRIMARY KEY,
  data_ordine DATE,
  stato VARCHAR(30),
  ID_cliente INT,
  FOREIGN KEY (ID_cliente) REFERENCES CLIENTE(ID_cliente)
)

DETTAGLIO_ORDINE (
  ID_ordine INT,
  ID_scarpa INT,
  quantità INT,
  PRIMARY KEY (ID_ordine, ID_scarpa),
  FOREIGN KEY (ID_ordine) REFERENCES ORDINE(ID_ordine),
  FOREIGN KEY (ID_scarpa) REFERENCES SCARPA(ID_scarpa)
)

PAGAMENTO (
  ID_pagamento INT PRIMARY KEY,
  data DATE,
  importo DECIMAL(7,2),
  metodo_pagamento VARCHAR(30),
  ID_ordine INT,
  FOREIGN KEY (ID_ordine) REFERENCES ORDINE(ID_ordine)
)

FORNITORE (
  ID_fornitore INT PRIMARY KEY,
  nome VARCHAR(100),
  telefono VARCHAR(20),
  email VARCHAR(100)
)

FORNITURA (
  ID_fornitore INT,
  ID_scarpa INT,
  data_fornitura DATE,
  PRIMARY KEY (ID_fornitore, ID_scarpa),
  FOREIGN KEY (ID_fornitore) REFERENCES FORNITORE(ID_fornitore),
  FOREIGN KEY (ID_scarpa) REFERENCES SCARPA(ID_scarpa)
)

🧩 5. Modello Entità-Relazione (E-R)

Ecco la struttura concettuale:

CLIENTE (1) —— (N) ORDINE  
ORDINE (1) —— (N) DETTAGLIO_ORDINE —— (N) SCARPA  
ORDINE (1) —— (1) PAGAMENTO  
FORNITORE (1) —— (N) FORNITURA —— (N) SCARPA  

Vuoi che ti generi lo schema E-R grafico? Posso farlo!


💡 6. Esempi Pratici (Query SQL)

▶️ Visualizzare tutte le scarpe disponibili

SELECT * FROM SCARPA WHERE quantità_in_magazzino > 0;

▶️ Inserire un nuovo cliente

INSERT INTO CLIENTE (ID_cliente, nome, cognome, email, indirizzo)
VALUES (1, 'Sara', 'Bianchi', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.', 'Via Firenze 20');

▶️ Aggiungere un nuovo ordine

INSERT INTO ORDINE (ID_ordine, data_ordine, stato, ID_cliente)
VALUES (101, '2025-04-09', 'in lavorazione', 1);

▶️ Aggiungere scarpe all'ordine

INSERT INTO DETTAGLIO_ORDINE (ID_ordine, ID_scarpa, quantità)
VALUES (101, 202, 2);  -- 2 paia della scarpa ID 202

▶️ Registrare pagamento ordine

INSERT INTO PAGAMENTO (ID_pagamento, data, importo, metodo_pagamento, ID_ordine)
VALUES (501, '2025-04-09', 159.90, 'Carta di Credito', 101);

Riepilogo delle Fasi

FaseDescrizione sintetica
Descrizione attività Vendita scarpe, clienti, ordini, fornitori
Analisi requisiti utente Cosa serve sapere e fare con i dati
Individuazione entità Scarpe, clienti, ordini, pagamenti, fornitori
Modello E-R Relazioni tra entità (1:N, N:M)
Disegno logico relazionale Tabelle SQL con PK/FK
Esempi pratici Query e inserimenti con SQL


Back to top