Sei sulla pagina 1di 50

Progetto di base di dati per un sito di ecommerce

Requisiti espressi in linguaggio naturale


Si vuole realizzare una base di dati per una societ che opera nel settore del commercio elettronico B2C. La necessit quella di creare un sito adatto a svolgere lattivit. Il sito effettuer vendite nel solo territorio italiano attraverso il sito.
1. 2. 3. 1. 2. 3. 4. 5. 6. 7.

Il sito dovr svolgere principalmente 3 funzioni:

Mostrare i prodotti al cliente Permettere al cliente di navigare il catalogo nel quale sono organizzati i prodotti Permettere al cliente di acquistarei prodotti presenti nel catalogo ( sottomettere un ordine)

Il flusso standard sar relativamente semplice:

Atterrare in una Home Page dove saranno presentati i prodotti che si vogliono mettere in evidenza Accedere alle categorie di prodotti Accedere allle schede di dettaglio dei prodotti Inserire i prodotti desiderati nel carrello Mostrare il resoconto dei prodotti nel carrello con i prezzi ed il totale in evidenza Selezionare il tipo di spedizione ed il metodo di pagamento Sottomettere lordine

I prodotti saranno organizzati in categorie. Ogni categoria avr un nome, unicona ed una descrizione. Le categorie saranno organizzate in cataloghi in modo da poter avere diverse versioni del sito riservate a determinate tipologie di clienti. Per identificare un catalogo sar sufficiente avere un nome ed una descrizione. Ogni prodotto sar identificato da un codice e avr un nome, una descrizione breve, una descrizione dettagliata, un immagine per la pagina di categoria, unimmagine per la scheda di dettaglio, una galleria dimmagini opzionale, un prezzo, un peso ed un costo. Ogni prodotto potr essere fisicamente disponibile in uno o pi magazzini. Ogni cliente dovr essere identificato da uno username, una password, un indirizzo email e le informazioni necessarie per levasione dellordine (indirizzo di spedizione/fatturazione + uno o pi numeri di telefono utili al corriere per la consegna). Ogni cliente potr avere una rubrica di indirizzi di spedizione ai quali assegnare degli pseudonimi per riconoscerli. Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Per lordine dovr essere tracciato anche lavanzamento che consiste nelle fasi di: ordine confermato da parte del cliente, ordine spedito da parte dellazienda, ordine pagato da parte del cliente, contabilizzazione dellordine che chiude il ciclo di un ordine. Ovviamente un ordine pu anche essere annullato in determinati casi particolari. Inizialmente saranno disponibili 3 metodi di pagamento: contrassegno, carta di credito e PayPal. Dei quali dovremo tracciare le seguenti informazioni: data pagamento, importo pagamento ed ordine associato al pagamento. Inizialmente saranno disponibili 2 tipi di spedizione: Corriere e corriere espresso. Dei quali dovremo tracciare le seguenti informazioni: data di spedizione , ordine associato. Le spese di spedizione dipendono dal metodo di pagamento selezionato.

Requisiti

Requisiti espressi in linguaggio naturale


Operazioni previste sulla base di dati
1. CLIENTI: (a) Inserimento dati cliente. (b) Cancellazione dati cliente. (c) Aggiornamento dati cliente. 2. PRODOTTO CATEGORIA - CATALOGO: (a) Aggiunta prodotto/categoria/catalogo. (b) Cancellazione prodotto/categoria/catalogo. (c) Aggiornamento prodotto/categoria/catalogo. 3. VETRINA: (a) Inserimento prodotto in vetrina. (b) Cancellazione prodotto in vetrina. (c) Aggiornamento prodotto in vetrina. 4. PAGAMENTO: (a) Inserimento nuovo pagamento. (b) Cancellazione pagamento. (c) Aggiornamento pagamento. 5. TIPOLOGIE PAGAMENTO: (a) Inserimento nuove tipologie di pagamento. (b) Cancellazione tipologia di pagamento. (c) Aggiornamento tipologia di pagamento. 6. SPEDIZIONE: (a) Inserimento nuova spedizione. (b) Cancellazione spedizione. (c) Aggiornamento spedizione. 7. TIPOLOGIE SPEDIZIONE: (a) Inserimento nuove tipologie di spedizione. (b) Cancellazione tipologia di spedizione. (c) Aggiornamento tipologia di spedizione. 8. ORDINE: (a) Inserimento nuovo ordine. (b) Cancellazione ordine. (c) Aggiornamento ordine. 9. MAGAZZINO: (a) Inserimento nuovo magazzino. (b) Cancellazione magazzino. (c) Aggiornamento magazzino. (d) Aggiornamento scorte a magazzino 10. ALTRE PROCEDURE: (a) Dato un cliente restituire tutti gli ordini effettuati (b) Restituire tutti gli ordini effettuati e non ancora spediti. (c) Restituire tutti gli ordini effettuati e non ancora pagati (d) Restituire tutti gli ordini effettuati in un determinato intervallo di date (e) Restituire tutti i prodotti presenti nella vetrina (f) Restituire tutti i prodotti presenti in una categoria (g) Restituire tutte le categorie presenti in un catalogo (h) Restituire i prodotti associati ad un ordine (i) Restituire tutte le informazioni associate ad un ordine (j) Restituire tutti i dati associati ad un cliente (k) Restituire il fatturato giornaliero/mensile/annuale

Requisiti

Glossario dei termini

Termine Prodotto Cliente Catalogo Categoria Ordine Home page Pagamento Spedizione Magazzino

Descrizione Oggetto fisico che si pu acquistare nel sito Persona che effettua almeno un ordine nel sito Catalogo nel quale sono organizzate delle categorie che contengono prodotti Categoria nella quale sono organizzati prodotti dello stesso tipo Insieme di tutte le informazioni relative ad un acquisto da parte di un cliente Pagina nella quale si visualizzano dei prodotti che si vogliono mettere in evidenza Pagamento relativo ad un acquisto. Pu essere fatto in 3 modi: Carta di credito, contrassegno o PayPal Spedizione della merce acquistata. Pu essere fatto in 2 modi: Corriere standard o corriere espresso Magazzino nel quale saranno dispinibili i prodotti venduti

Sinonimi

Collegamenti Ordine, Categoria, Home page Ordine Categoria Prodotto, Catalogo Prodotto, cliente, pagamento, spedizione

Vetrina

Prodotti Ordine Ordine Prodotto

Requisiti

Strutturazione dei requisiti


FRASI DI CARATTERE GENERALE Si vuole realizzare una base di dati per una societ che opera nel settore del commercio elettronico. La necessit quella di creare un sito adatto a svolgere lattivit. Il sito effettuer vendite nel solo territorio italiano attraverso il sito. FRASI RELATIVE AI PRODOTTI Il sito dovr svolgere principalmente 3 funzioni:
Mostrare i prodotti al cliente Permettere al cliente di navigare il catalogo nel quale sono organizzati i prodotti Permetter eal cliente di acquistarei prodotti presenti nel catalogo ( sottomettere un ordine) Atterrare in una Home Page dove saranno presentati i prodotti che si vogliono mettere in evidenza Accedere alle categorie di prodotti Accedere allle schede di dettaglio dei prodotti Inserire i prodotti desiderati nel carrello Mostrare il resoconto dei prodotti nel carrello con i prezzi ed il totale in evidenza

Il flusso standard sar relativamente semplice:


I prodotti saranno organizzati in categorie. Ogni prodotto sar identificato da un codice e avr un nome, una descrizione breve, una descrizione dettagliata, un immagine per la pagina di categoria, unimmagine per la scheda di dettaglio, una galleria dimmagini opzionale, un prezzo, un peso ed un costo. Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Ogni prodotto potr essere fisicamente disponibile in uno o pi magazzini

FRASI RELATIVE AGLI ORDINI Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Per lordine dovr essere tracciato anche lavanzamento che consiste nelle fasi di: ordine confermato da parte del cliente, ordine spedito da parte dellazienda, ordine pagato da parte del cliente, contabilizzazione dellordine che chiude il ciclo di un ordine. Ovviamente un ordine pu anche essere annullato in determinati casi particolari. FRASI RELATIVE AI CATALOGHI Il sito dovr svolgere principalmente 3 funzioni:
Permettere al cliente di navigare il catalogo nel quale sono organizzati i prodotti Permetter eal cliente di acquistarei prodotti presenti nel catalogo ( sottomettere un ordine)

Le categorie saranno organizzate in cataloghi in modo da poter avere diverse versioni del sito riservate a determinate tipologie di clienti. Per identificare un catalogo sar sufficiente avere un nome ed una descrizione.

Requisiti

Strutturazione dei requisiti


FRASI RELATIVE ALLE CATEGORIE Il flusso standard sar relativamente semplice:
... Accedere alle categorie di prodotti ...

I prodotti saranno organizzati in categorie. Ogni categoria avr un nome, unicona ed una descrizione. Le categorie saranno organizzate in cataloghi in modo da poter avere diverse versioni del sito riservate a determinate tipologie di clienti.

FRASI RELATIVE AI CLIENTI Il sito dovr svolgere principalmente 3 funzioni:


Mostrare i prodotti al cliente ...

Ogni cliente dovr essere identificato da uno username, una password, un indirizzo email e le informazioni necessarie per levasione dellordine (indirizzo di spedizione/fatturazione + uno o pi numeri di telefono utili al corriere per la consegna). Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: canale di vendita, data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Ogni cliente potr avere una rubrica di indirizzi di spedizione ai quali assegnare degli pseudonimi per riconoscerli.

FRASI RELATIVE ALLHOME PAGE Il flusso standard sar relativamente semplice:


Atterrare in una Home Page dove saranno presentati i prodotti che si vogliono mettere in evidenza

FRASI RELATIVE AL PAGAMENTO Selezionare il tipo di spedizione ed il metodo di pagamento Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: canale di vendita, data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Inizialmente saranno disponibili 3 metodi di pagamento: contrassegno, carta di credito e PayPal. Dei quali dovremo tracciare le seguenti informazioni: data pagamento, importo pagamento, ordine associato al pagamento. FRASI RELATIVE ALLA SPEDIZIONE Selezionare il tipo di spedizione ed il metodo di pagamento Per ogni ordine le informazioni dovranno essere tracciate le seguenti informazioni: canale di vendita, data inserimento ordine, cliente, prodotti, metodo di spedizione, metodo di pagamento, indirizzo di spedizione e stato dellordine. Inizialmente saranno disponibili 2 tipi di spedizione: Corriere e corriere espresso. Dei quali dovremo tracciare le seguenti informazioni: data di spedizione , ordine associato Le spese di spedizione dipendono dal metodo di pagamento selezionato.

Requisiti

Diagramma E-R
Per realizzare lo schema viene utilizzata una strategia di tipo misto; si parte da uno schema embrionale, espandendolo a macchia dolio fino allo schema finale

Le entit principali: Cliente Ordine Prodotto

Le relazioni principali: Acquisto Composizione

Progettazione concettuale

Specializzazione dellentit cliente

Ogni cliente oltre al proprio indirizzo principale pu memorizzare una rubrica di indirizzi di spedizione utili allevasione dei suoi ordini. Si definisce quindi la nuova entit Rubrica indirizzi: Una rubrica di indirizzi di spedizione associata ad ogni cliente. Il cliente sceglier lindirizzo di spedizione al quale spedire lordine dalla rubrica degli indirizzi

Progettazione concettuale

Specializzazione dellentit prodotto

Ogni prodotto risieder fisicamente in uno o pi magazzini in modo da gestire la disponibilit dei prodotti a sistema. Viene quindi definita lentit Magazzino: Un magazzino sar identificato e avr al suo interno dei prodotti che contribuiranno a garantire la disponibilit di essi nel sito

Progettazione concettuale

Specializzazione dellentit prodotto


La visualizzazione e categorizzazione dei prodotti ci porta a definire 3 ulteriori entit e 3 ulteriori relazioni: Vetrina: un prodotto pu essere messo in evidenza in una vetrina (una vetrina per esempio pu essere lhome page) Categoria: un prodotto appartiene ad una categoria nella quale sar visualizzato. Catalogo: ad un catalogo possono essere associate delle categorie in modo da poter differenziare le offerte e mostrare set di prodotti dedicato

Progettazione concettuale

Specializzazione dellentit ordine

Lo stato di un ordine pu essere confermato (ordine inserito da parte del cliente), spedito (ordine spedito al cliente), pagato (ordine pagato da parte del cliente), contabilizzato (ordine confermato, pagato e consegnato al cliente ordine concluso) o annullato (ordine annullato da parte del cliente o del negozio) La generalizzazione totale ed esclusiva.

Progettazione concettuale

Specializzazione dellentit ordine

Un ordine dopo la sua immissione a sistema, per poter essere considerato chiuso, deve completare due ulteriori attivit che ci portano a definire due nuove entit: Pagamento: Perch un ordine sia accettato dal sistema ed evaso, deve essere stato completato il pagamento da parte del cliente. Spedizione: Un ordine deve essere spedito al cliente che ha effettuato lordine allindirizzo indicato dal cliente

Progettazione concettuale

Specializzazione delle entit spedizione e pagamento

La spedizione di un ordine pu essere effettuata con corriere o con corriere espresso. La generalizzazione totale ed esclusiva.

Un ordine pu essere pagato con contrassegno, carta di credito o PayPal. Anche in questo caso la generalizzazione totale ed esclusiva.

Progettazione concettuale

Schema E-R finale

Progettazione concettuale

Analisi delle entit


CLIENTE IDCliente Username Password email Indirizzo di fatturazione Telefono il codice univoco che viene associato al cliente nel momento della registrazione; identifica qualsiasi cliente del sito; candidato ad essere chiave primaria dellentit cliente lo pseudonimo del cliente per accedere al sito la password che il cliente deve inserire per accedere al sito Indirizzo email del cliente Indirizzo al quale fatturare lordine. Attributo composto Numeri di telefono del cliente. Attributo multivalore

RUBRICA INDIRIZZI DI SPEDIZIONE IDIndirizzo Alias indirizzo di spedizione Indirizzo di spedizione il codice univoco che viene associato allindirizzo nel momento della sua creazione; identifica qualsiasi indirizzo; candidato ad essere chiave primaria dellentit rubrica indirizzi di spedizione lo pseudonimo assegnato dal cliente allindirizzo di spedizione per essere intuitivo (esempio: casa, ufficio, mamma) Indirizzo al quale spedire la merce al cliente. Attributo composto

Progettazione concettuale

Analisi delle entit


ORDINE IDOrdine Data di inserimento il codice univoco che identifica lordine; candidato ad essere la chiave primaria dellentit ordine Data in cui lordine viene inserito dal cliente

CONFERMATO Nessun attributo SPEDITO Nessun attributo PAGATO Nessun attributo CONTABILIZZATO Nessun attributo ANNULLATO Nessun attributo

Progettazione concettuale

Analisi delle entit

SPEDIZIONE IDSpedizione Data di spedizione il codice univoco che identifica la spedizione; Sar riportato nel documento di spedizione; candidato ad essere chiave primaria dellentit Spedizione E la data in cui viene effettivamente spedito lordine

CORRIERE Spese di spedizione Sono le spese di spedizione associate al metodo di spedizione corriere

CORRIERE ESPRESSO Spese di spedizione Sono le spese di spedizione associate al metodo di spedizione corriere espresso

Progettazione concettuale

Analisi delle entit


PAGAMENTO IDPagamento Data di pagamento Importo pagamento il codice univoco associato al pagamento; candidato ad essere chiave primaria dellentit Pagamento E la data in cui viene effettivamente effettuata la transazione E limporto del pagamento

CONTRASSEGNO Nessun attributo

CARTA DI CREDITO Nessun attributo

PAYPAL Nessun attributo

Progettazione concettuale

Analisi delle entit


PRODOTTO IDProdotto Nome prodotto Descrizione breve prodotto Descrizione dettagliata prodotto Immagine thumb prodotto Immagine full prodotto Immagine galleria prod Prezzo Peso Costo il codice univoco identifica un prodotto; candidato ad essere chiave primaria dellentit prodotto E il nome del prodotto che verr visualizzato E la descrizione breve del prodotto che verr visualizzata E la descrizione dettagliata del prodotto che verr visualizzata nella scheda del prodotto

E limmagine del prodotto che verr visualizzata nella pagina di categoria E limmagine del prodotto che verr visualizzata nella scheda del prodotto E limmagine per la galleria dimmagini del prodotto. Attributo multivalore E il prezzo di vendita del prodotto E il peso del prodotto E il costo del prodotto MAGAZZINO

IDMagazzino

E il codice univoco che identifica un magazzino prodotti; candidato ad essere chiave primaria dellentit magazzino

Progettazione concettuale

Analisi delle entit


VETRINA IDVetrina Nome vetrina il codice univoco che identifica la vetrina su cui saranno pubblicati i prodotti in evidenza; candidato ad essere chiave primaria dellentit vetrina E il nome della vetrina che sar visualizzato nel sito

CATEGORIA IDCategoria Nome categoria Descrizione categoria Icona categoria il codice univoco che identifica una categoria; candidato ad essere chiave primaria dellentit categoria E il nome della categoria che sar visualizzato nel sito E la descrizione della categoria che sar visualizzata nel sito E licona della categoria che sar visualizzata nel sito

CATALOGO IDCataglogo Nome catalogo Descrizione catalogo il codice univoco che identifica un catalogo; candidato ad essere chiave primaria dellentit catalogo E il nome del catalogo che servir alloperatore per identificare il catalogo E la descrizione del catalogo che servir alloperatore per avere informaizoni pi dettagliate sul catalogo

Progettazione concettuale

Analisi delle relazioni e della cardinalit

INDIRIZZI Collega lentit cliente con lentit rubrica indirizzi; rappresenta la rubrica degli indirizzi di spedizione di ogni cliente Cardinalit Uno a molti; ogni cliente pu avere uno o pi indirizzi di spedizione associati alla sua anagrafica; la partecipazione dellentit cliente facoltativa in quanto un cliente pu non avere un indirizzo di spedizione nel caso in cui non abbia ancora effettuato ordini, mentre la partecipazione dellentit rubrica indirizzi obbligatoria in quanto un indirizzo di spedizione deve essere associato ad un cliente

ACQUISTO Collega lentit cliente con lentit ordine; rappresenta limmissione di un ordine da parte di un cliente Cardinalit Uno a molti; ogni ordine associato ad un solo cliente mentre ogni cliente pu aver inserito pi ordini; la partecipazione dellentit ordine alla relazione obbligatoria in quanto ogni ordine deve essere stato immesso da un cliente, mentre la partecipazione dellentit cliente alla relazione facoltativa in quanto vi possono essere dei clienti che non hanno immesso alcun ordine

Progettazione concettuale

Analisi delle relazioni e della cardinalit


COMPOSIZIONE Collega lentit ordine con lentit prodotto; rappresenta la presenza di determinati prodotti allinterno di un ordine Cardinalit Molti a molti; ogni ordine pu comprendere uno o pi prodotti e ogni prodotto pu essere inserito in pi ordini; la partecipazione dellentit ordine alla relazione obbligatoria in quanto ogni ordine deve contenere almeno un prodotto, mentre la partecipazione dellentit prodotto alla relazione facoltativa in quanto vi possono essere dei prodotti che non sono associati ad alcun ordine E la quantit di un prodotto associata ad un determinato ordine CONSEGNA Collega lentit ordine con lentit spedizione; definisce la spedizione fisica dellordine Cardinalit Uno a uno; ogni ordine pu essere spedito una e una sola volta e una spedizione pu essere associata soltanto ad un ordine; la partecipazione dellentit Spedizione obbligatoria in quanto ogni spedizione deve essere associata ad un ordine, mentre la partecipazione dellentit Ordine facoltativa in quanto un ordine pu essere stato immesso ma non ancora spedito. FATTURAZIONE Collega lentit ordine con lentit pagamento; definisce il pagamento/fatturazione dellordine Cardinalit Uno a uno; ogni ordine pu essere pagato una e una sola volta ed un pagamento pu essere associata soltanto ad un ordine; la partecipazione dellentit Pagamento obbligatoria in quanto ogni pagamento deve essere associato ad un ordine, mentre la partecipazione dellentit Ordine facoltativa in quanto un ordine pu essere stato immesso ma non ancora pagato.

Quantit

Progettazione concettuale

Analisi delle relazioni e della cardinalit


EVIDENZA Collega lentit prodotto con lentit vetrina; definisce la presenza di un prodotto nella vetrina Cardinalit Molti a molti; ogni prodotto pu essere presente in una vetrina e ogni vetrina pu contenere pi prodotti; la partecipazione da ambo i lati della relazione facoltativa in quanto un prodotto pu non apparire in alcuna vetrina ed una vetrina pu non contenere alcun prodotto in evidenza E il testo utilizzato nellhome page per il prodotto in evidenza E limmagine utilizzata nellhome page per il prodotto in evidenza

Testo evidenza Immagine evidenza

LOCAZIONE Collega lentit prodotto con lentit magazzino; rappresenta la locazione presso la quale sono presenti i prodotti Cardinalit Molti a molti; ogni magazzino pu comprendere uno o pi prodotti e ogni prodotto pu essere presente in pi magazzini; la partecipazione da ambo i lati della relazione facoltativa in quanto un prodotto pu non esssere presente in nessun magazzino e vi possono essere dei magazzini che non sono associati ad alcun prodotto E la disponibilit di un prodotto in un determinzato magazzino

Disponibilit

Progettazione concettuale

Analisi delle relazioni e della cardinalit

TIPO PRODOTTO Collega lentit prodotto con lentit categoria; definisce lappartenenza di un prodotto ad una determinata categoria Cardinalit Uno a molti; ogni categoria pu avere uno o pi prodotti al suo interrno, mentre un prodotto pu essere associato ad una sola categoria; la partecipazione dellentit prodotto obbligatoria in quanto in quanto un prodotto pu essere assegnato solo ad una categoria, mentre la partecipazione dellentit categoria facoltativa in quanto possono esistere delle categorie che non contengono alcun prodotto TIPO CATEGORIA Collega lentit categoria con lentit catalogo; definisce lappartenenza di una categoria ad un determinato catalogo Cardinalit Molti a molti; ogni catalogo pu comprendere una o pi categorie di prodotti e ogni categoria pu essere inserita in pi cataloghi; la partecipazione da ambo i lati della relazione facoltativa in quanto una categoria pu non esssere presente ad alcun catalogo e vi possono essere dei cataloghi che non sono contengono alcuna categoria

Progettazione concettuale

Schema E-R finale con gli attributi

Progettazione concettuale

Analisi delle prestazioni sullo schema E-R


Concetto
Cliente Rubrica indirizzi Ordine Confermato Spedito Pagato Contabilizzato Annullato Spedizione Corriere Corriere espresso Pagamento Contrassegno Carta di credito PayPal Prodotto Magazzino Vetrina Categoria Catalogo

Tipo
E E E E E E E E E E E E E E E E E E E E

Volume
10000 15000 31000 31000 30000 29000 28000 20 30000 20000 10000 29000 14000 10000 5000 100 2 2 15 5

Concetto Indirizzi Acquisto Consegna Fatturazione Composizione Locazione Evidenza Tipo prodotto Tipo categoria

Tipo R R R R R R R R R

Volume 15000 31000 30000 29000 60000 150 20 100 20

Tavole dei volumi Nella tavola dei volumi sono riportati il numero di occorrenze di ogni entit e di ogni relazione dello schema E-R sulle dimensioni dei relativi attributi, stimando il funzionamento a regime. I volumi sono stimati considerando le cardinalit delle entit coinvolte.

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Operazione Inserimento dati cliente Cancellazione dati cliente Aggiornamento dati cliente Inserimento prodotto Cancellazione prodotto Aggiornamento prodotto Inserimento categoria Cancellazione categoria Aggiornamento categoria Inserimento catalogo Cancellazione catalogo Aggiornamento catalogo Inserimento prodotti in vetrina Cancellazione prodotti in vetrina Aggiornamento prodotti in vetrina Inserimento magazzino Cancellazione magazzino Aggiornamento magazzino Inserimento ordine Cancellazione ordine Aggiornamento ordine Inserimento pagamento * Evidenziate le operazioni pi importanti che andremo ad analizzare Tipo Interattiva Interattiva Interattiva Frequenza 20 / giorno 20 / anno 3 / giorno 2 / mese 5 / anno 2 / mese 2 / anno 1 / anno 2 / anno 2 / anno 1 / anno 2 / anno 1 / anno 1 / anno 4 / settimana 1 / anno 1 / anno 1 / giorno 50 / giorno 5 / mese 100 / giorno 50 / giorno

Tavola delle operazioni Sono riportate le tipologie e la frequenza delle operazioni effettuate sulla base di dati.

Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Batch Interattiva Interattiva Batch Interattiva

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Operazione Cancellazione pagamento Aggiornamento pagamento Inserimento tipologia pagamento Cancellazione tipologia pagamento Aggiornamento tipologia pagamento Inserimento spedizione Cancellazione spedizione Aggiornamento spedizione Inserimento tipologia spedizione Cancellazione tipologia spedizione Aggiornamento tipologia spedizione Dato un cliente restituire tutti gli ordini effettuati Restituire tutti gli ordini effettuati e non ancora spediti Restituire tutti gli ordini effettuati e non ancora pagati Restituire tutti gli ordini effettuati in un determinato intervallo di date Restituire le informazioni da visualizzare nella scheda di un prodotto Restituire tutti i prodotti presenti nella vetrina Restituire tutti i prodotti presenti in una categoria Restituire tutte le categorie presenti in un catalogo Restituire i prodotti associati ad un ordine Restituire tutti i dati associati ad un cliente Restituire il fatturato giornaliero/mensile/annuale * Evidenziate le operazioni pi importanti che andremo ad analizzare Tipo Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Batch Batch Batch Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Interattiva Batch Frequenza 5 / anno 1 / mese 1 / anno 50 / giorno 5 /mese 5 / mese 1 / anno 1 / giorno 1 / giorno 1 / giorno 5 / giorno 1000 / giorno 500 / giorno 300 / giorno 800 / giorno 100 / giorno 10 / giorno 1 / giorno

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Inserimento dati cliente
Tabella degli accessi Concetto
Cliente Indirizzi Rubrica indirizzi

Costrutti
Entit Relazione Entit

Accessi
1 3 3

Tipo
S S S

Inserimento spedizione
Tabella degli accessi Concetto
Spedizione Corriere Consegna Ordine Spedito

Costrutti
Entit Entit Relazione Entit Entit

Accessi
1 1 1 1 1

Tipo
S S S L S

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Inserimento ordine
Tabella degli accessi Concetto
Ordine Acquisto Cliente Confermato Composizione Prodotto

Costrutti
Entit Relazione Entit Entit Relazione Entit

Accessi
1 1 1 1 3 3

Tipo
S L L S S L

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Aggiornamento ordine (contabilizzazione)
Tabella degli accessi Concetto
Ordine Contabilizzato

Costrutti
Entit Entit

Accessi
1 1

Tipo
L S

Restituire informazioni da visualizzare nella scheda prodotto


Tabella degli accessi Concetto
Prodotto Locazione Magazzino

Costrutti
Entit Relazione Entit

Accessi
1 3 3

Tipo
L L L

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Restituire i prodotti associati ad un ordine
Tabella degli accessi Concetto
Ordine Composizione Prodotto

Costrutti
Entit Relazione Entit

Accessi
1 5 5

Tipo
L L L

Restituire tutti i prodotti presenti in una vetrina


Tabella degli accessi Concetto
Prodotto Evidenza Vetrina

Costrutti
Entit Relazione Entit

Accessi
10 10 1

Tipo
L L L

Progettazione logica

Analisi delle prestazioni sullo schema E-R


Restituire i prodotti associati ad un ordine
Tabella degli accessi Concetto
Categoria Tipo prodotto Prodotto

Costrutti
Entit Relazione Entit

Accessi
1 20 20

Tipo
L L L

Restituire tutte le categorie presenti in un catalogo


Tabella degli accessi Concetto
Catalogo Tipo Categoria Categoria

Costrutti
Entit Relazione Entit

Accessi
1 10 10

Tipo
L L L

Progettazione logica

Analisi delle ridondanze

Concetto
Ordine Composizione Prodotto Pagamento Fatturazione Consegna Spedizione Corriere Corriere espresso

Tipo
E R E E R R E E E

Volume
30000 60000 100 30000 30000 30000 30000 20000 10000

Operazione 1: Inserimento di un pagamento per un ordine (50 volte al giorno) Operazione 2: Analisi degli importi di pagamento per reportistica (1 volta al giorno)

Progettazione logica

Analisi delle ridondanze


Presenza di ridondanza Operazione 1
Concetto
Ordine Composizione Prodotto Consegna Spedizione Corriere o CE Pagamento Fatturazione

Costrutto
E R E R E E E R

Accessi
1 2 2 1 1 1 1 1

Tipo
L L L L L L S S

Costo operazione 1: 100 accessi in scrittura 400 accessi in lettura

Operazione 2

Concetto
Pagamento

Costrutto
E

Accessi
1

Tipo
L

Costo operazione 2: trascurabile

Totale accessi (contando doppi gli accessi in scrittura): 600 accessi al giorno Progettazione logica

Analisi delle ridondanze


Assenza di ridondanza Operazione 1
Concetto
Ordine Composizione Prodotto Consegna Spedizione Corriere o CE

Costrutto
E R E R E E

Accessi
1 2 2 1 1 1

Tipo
L L L L L L

Costo operazione 1: 400 accessi in lettura

Operazione 2

Concetto
Ordine Composizione Prodotto Consegna Spedizione Corriere o CE

Costrutto
E R E R E E

Accessi
50 100 100 50 50 50

Tipo
L L L L L L

Costo operazione 2: 400 accessi in lettura

Totale accessi: 800 accessi al giorno Si opta quindi per mantenere la ridondanza presentata nello schema E-R Progettazione logica

Eliminazione delle generalizzazioni


Entit padre Ordine Spedizione Pagamento Entit figlie Confermato Spedito Pagato Contabilizzato - Annullato Corriere Corriere espresso Contrassegno Carta di credito - PayPal Tipo Generalizzazione totale e esclusiva Generalizzazione totale e esclusiva Generalizzazione totale e esclusiva

La gerarchia Ordine Stati ordine viene risolta mantenendo lentit padre Ordine e accorpando le entit figlie in una nuova entit Status ordine con un attributo Status ordine che descrive lo stato in cui si trova un ordine definito dallavanzamento dellordine e un identificatore dello stesso (sar la chiave primaria della tabella in corrispondenza con la foreign key della tabella Ordine); Si optato per questa scelta in quanto nel futuro potrebbero essere aggiunti nuovi stati dellordine.

Progettazione logica

Eliminazione delle generalizzazioni

La gerarchia Spedizione Corriere Corriere espresso viene risolta mantenendo lentit padre Spedizione e accorpando le entit figlie in una nuova entit Tipologia Spedizione con un attributo Descrizione tipologia spedizione che descrive il tipo di spedizione che pu essere selezionata da un cliente per effettuare un ordine, un attributo Spese di spedizione che indica le spese di spedizione associate al metodo di spedizione e un identificatore dello stesso (sar la chiave primaria della tabella in corrispondenza con la foreign key della tabella Spedizione); Si optato per questa scelta in quanto nel futuro potrebbero essere aggiunti nuovi metodi di spedizione con possibili ulteriori attributi per descriverne le caratteristiche.

Progettazione logica

Eliminazione delle generalizzazioni

La gerarchia Pagamento Contrassegno Carta di credito PayPal viene risolta mantenendo lentit padre Pagamento e accorpando le entit figlie in una nuova entit Tipologia Pagamento con un attributo Descrizione tipologia pagamento che descrive il tipo di pagamento che pu essere selezionato da un cliente per effettuare un ordine e un identificatore dello stesso (sar la chiave primaria della tabella in corrispondenza con la foreign key della tabella Pagamento); Anche in questo caso si optato per questa scelta in quanto nel futuro potrebbero essere aggiunti nuovi metodi di pagamento con possibili ulteriori attributi per descriverne le caratteristiche.

Progettazione logica

Partizionamento/accorpamento di concetti
Lentit Cliente viene partizionata in due entit: Cliente e Dati anagrafici in modo da separare gli attributi che vengono acceduti separatamente; infatti nellentit cliente rimangono i dati di accesso del cliente che vengono utilizzati per identificare un cliente al momento del login, mentre i dati utilizzati soltanto nel momento in cui viene immesso un ordine vengono inseriti nella nuova entit Dati anagrafici. Le due entit saranno in relazione 1-1 con coerenza tra identificatore primario.

Progettazione logica

Partizionamento/accorpamento di concetti
Lentit Prodotto viene partizionata in due entit: Prodotto e Dati ausiliari prodotto in modo da separare gli attributi che vengono acceduti separatamente; infatti nellentit prodotto rimangono i dati di che vengono visualizzati nella scheda prodotto del sito dal cliente, mentre i dati utilizzati soltanto per questioni di reportistica vengono inseriti nella nuova entit Dati ausiliari prodotto. Le due entit saranno in relazione 1-1 con coerenza tra identificatore primario.

Progettazione logica

Partizionamento/accorpamento di concetti
Eliminazione degli attributi multivalore
Concetto
Cliente (entit)

Attributo
Telefono

Soluzione adottata
Lentit cliente pu avere nessuno, uno o pi numeri di telefono; poich i numeri di telefono si suppone possano essere al massimo due (fisso e mobile), lattributo viene diviso in due attributi semplici (telefono1 e telefono2) che vengono accorpati allentit cliente; nel caso fosse necessario memorizzare pi numeri di telefono, la ristrutturazione dellattributo passa attraverso la definizione di unulteriore entit e di una relazione uno a molti Lentit prodotto pu avere nessuna, una o pi immagini per la galleria; poich le immagini saranno in media una decina per ogni prodotto e laccesso a queste avverr in maniera contestuale per ogni prodotto si optato per creare unentit galleria immagini in relazione uno a molti con lentit prodotto con chiave esterna lID del prodotto, chiave primaria unID univoco IDImmagineGalleria e un attributo Immagine galleria. In questo modo pi prodotti potranno anche utilizzare la stessa immagine per una galleria

Prodotto (entit)

Immagine galleria prodotto

Eliminazione degli attributi composti


Concetto
Cliente (entit)

Attributo
Indirizzo di fatturazione Nome Cognome Indirizzo Citt CAP Provincia

Soluzione adottata
Lindirizzo di fatturazione del cliente viene suddiviso nei seguenti attributi che vengono accorpati allentit stessa:

Rubrica indirizzi (entit)

Indirizzo di spedizione

Lindirizzo di spedizione del cliente viene suddiviso nei seguenti attributi che vengono accorpati allentit stessa: Nome Citt Cognome CAP Indirizzo Provincia

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship molti a molti

Ordine (IDOrdine, Data di inserimento) Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descrizione dettagliata prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto) Composizione (IDOrdine, IDProdotto) con vincoli di integrit referenziale fra IDOrdine in Composizione e la chiave di Ordine IDProdotto in Composizione e la chiave di Prodotto

Catalogo (IDCatalogo, Nome catalogo, Descrizione catalogo) Categoria (IDCategoria, Icona categoria, Nome categoria, Descrizione categpria) Tipo Categoria (IDCatalogo, IDCategoria) con vincoli di integrit referenziale fra IDCatalogo in Tipo Categoria e la chiave di Catalogo IDCategoria in Tipo Categoria e la chiave di Categoria

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship molti a molti
Vetrina (IDVetrina, Nome vetrina) Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descrizione dett. prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto) Evidenza (IDVetrina, IDProdotto, Testo in evidenza, Immagine in evid.) con vincoli di integrit referenziale fra IDVetrina in Evidenza e la chiave di Vetrina IDProdotto in Evidenza e la chiave di Prodotto

Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descrizione dett. prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto) Magazzino (IDMagazzino) Locazione (IDProdotto, IDMagazzino, Disponibilit) con vincoli di integrit referenziale fra IDProdotto e la chiave di Prodotto IDMagazzino e la chiave di Magazzino

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship uno a molti
Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descrizione dett. prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto, IDCategoria) Categoria (IDCategoria, Icona categoria, Nome categoria, Descrizione categoria) con vincolo di integrit referenziale fra IDCategoria in Prodotto e la chiave di Prodotto IDCategoria in Prodotto non ammette valore nullo in quanto la cardinalit minima della relationship 1

Galleria immagini (IDImmagineGalleria, Immagine galleria, IDProdotto) Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descriz. dett. prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto) con vincolo di integrit referenziale fra IDProdotto in Galleria immagini e la chiave di Prodotto IDProdotto in Galleria immagini non ammette valore nullo in quanto la cardinalit minima della relationship 1

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship uno a molti
Rubrica indirizzi (IDIndirizzo, Indirizzo, Citt, CAP, IDCliente) Cliente (IDCliente, Nome, Username, Password) con vincolo di integrit referenziale fra IDCliente in Rubrica indirizzi e la chiave di Cliente IDCliente in Rubrica indirizzi non ammette valore nullo in quanto la cardinalit minima della relationship 1

Ordine (IDOrdine, Data di inserimento, IDCliente) Cliente (IDCliente, Nome, Username, Password) con vincolo di integrit referenziale fra IDCliente in Ordine e la chiave di Cliente IDCliente in Ordine non ammette valore nullo in quanto la cardinalit minima della relationship 1

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship uno a molti
Ordine (IDOrdine, Data di inserimento, IDStatusOrdine) Status ordine (IDStatusOrdine, Status ordine) con vincolo di integrit referenziale fra IDStatusOrdine in Ordine e la chiave di Status ordine IDStatusOrdine in Ordine non ammette valore nullo in quanto la cardinalit minima della relationship 1

Spedizione (IDSpedizione, Data spedizione, IDMetodoSpedizione) Metodo spedizione (IDMetodoSpedizione, Desc metodo spedizione, Spese di spedizione) con vincolo di integrit referenziale fra IDMetodoSpedizione in Spedizione e la chiave di Metodo spedizione IDMetodoSpedizione in Spedizione non ammette valore nullo in quanto la cardinalit minima della relationship 1

Pagamento (IDPagamento, Data pagamento, Importo pagamento, IDMetodoPagamento) Metodo pagamento (IDMetodoPagamento, Desc metodo pagamento) con vincolo di integrit referenziale fra IDMetodoPagamento in Pagamento e la chiave di Metodo pagamento IDMetodoPagamento in Pagamento non ammette valore nullo in quanto la cardinalit minima della relationship 1

Progettazione logica

Scelta degli identificatori principali


Entit e Relationship uno a uno
Spedizione (IDSpedizione, Data spedizione, IDOrdine) Ordine (IDOrdine, Data di inserimento) con vincoli di integrit referenziale. Ammette valori nulli

Pagamento (IDPagamento, Data pagamento, Importo pagamento, IDOrdine) Ordine (IDOrdine, Data di inserimento) con vincoli di integrit referenziale. Ammette valori nulli

Cliente (IDCliente, Nome, Username, Password) Ordine (IDCliente, email, Telefono1, Telefono2, Indirizzo, Citt, CAP) con vincoli di integrit referenziale. Ammette valori nulli

Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto, Descriz. dett. prodotto, Immagine thumb prodotto, immagine full prodotto, Prezzo prodotto) Dati Ausiliari prodotto (IDProdotto, Peso prodotto, Costo prodotto) con vincoli di integrit referenziale, senza valori nulli

Progettazione logica

Schema E-R ristrutturato

Progettazione logica

Schema finale