Académique Documents
Professionnel Documents
Culture Documents
Paolo Oltramonti
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 l’attività.
• Il sito effettuerà vendite nel solo territorio italiano.
• Il sito dovrà svolgere principalmente 3 funzioni:
1. Mostrare i prodotti al cliente
2. Permettere al cliente di navigare il catalogo nel quale sono organizzati i prodotti
3. Permettere al cliente di acquistare i prodotti presenti nel catalogo (sottomettere un ordine)
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
Requisiti
Glossario dei termini
Catalogo Catalogo nel quale sono organizzate delle categorie che Categoria
contengono prodotti
Categoria Categoria nella quale sono organizzati prodotti dello stesso tipo Prodotto, Catalogo
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 l’attività.
• Il sito effettuerà vendite nel solo territorio italiano.
• 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, un’icona ed una descrizione. Le categorie saranno organizzate in cataloghi in modo da poter avere diverse versioni del sito
riservate a determinate tipologie di clienti.
Requisiti
Diagramma E-R
Per realizzare lo schema viene utilizzata una strategia di tipo misto; si parte da
uno schema embrionale, espandendolo a macchia d’olio fino allo schema finale
• Cliente • Acquisto
• Ordine • Composizione
• Prodotto
Progettazione concettuale
Approfondimento dell’entità “cliente”
Ogni cliente oltre al proprio indirizzo principale può memorizzare una rubrica di indirizzi di
spedizione utili all’evasione dei suoi ordini.
Si definisce quindi la nuova entità “Rubrica indirizzi”: Una rubrica di indirizzi di spedizione è
associata ad ogni cliente. Il cliente sceglierà l’indirizzo di spedizione al quale spedire
l’ordine dalla rubrica degli indirizzi
Progettazione concettuale
Approfondimento dell’entità “prodotto”
Ogni prodotto risiederà fisicamente in uno o più magazzini in modo da gestire la disponibilità
dei prodotti a sistema.
Viene quindi definita l’entità “Magazzino”: Un magazzino sarà identificato e avrà al suo
interno dei prodotti che contribuiranno a garantire la disponibilità di essi nel sito
Progettazione concettuale
Approfondimento dell’entità “prodotto”
Tipo prodotto
Vetrina: un prodotto può essere messo
in evidenza in una vetrina (una vetrina
per esempio può essere l’home page)
Catalogo
Progettazione concettuale
Approfondimento dell’entità “ordine”
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)
Progettazione concettuale
Approfondimento dell’entità “ordine”
Progettazione concettuale
Approfondimento delle entità “spedizione” e “pagamento”
Spedizione
Pagamento
Progettazione concettuale
Schema E-R finale
Cliente Rubrica
Indirizzi
indirizzi
Spedizione Consegna
Acquisto
Carta di
Contrassegno Paypal
Confermato Spedito Contabilizzato credito
Prodotto
Tipo
Catalogo Categoria Tipo prodotto
Categoria
Evidenza Vetrina
Progettazione concettuale
Analisi delle entità
CLIENTE
IDCliente È il codice univoco che viene associato al cliente nel momento della registrazione; identifica qualsiasi
cliente del sito; è candidato ad essere chiave primaria dell’entità “cliente”
Username È lo pseudonimo del cliente per accedere al sito
Password È la password che il cliente deve inserire per accedere al sito
email Indirizzo email del cliente
Indirizzo di Indirizzo al quale fatturare l’ordine. Attributo composto
fatturazione
Telefono Numeri di telefono del cliente. Attributo multivalore
Progettazione concettuale
Analisi delle entità
ORDINE
IDOrdine È il codice univoco che identifica l’ordine; è candidato ad essere la chiave primaria dell’entità “ordine”
Data di Data in cui l’ordine viene inserito dal cliente
inserimento
CONFERMATO
Nessun attributo
SPEDITO
Nessun attributo
PAGATO
Nessun attributo
CONTABILIZZATO
Nessun attributo
ANNULLATO
Nessun attributo
Progettazione concettuale
Analisi delle entità
SPEDIZIONE
IDSpedizione È il codice univoco che identifica la spedizione; Sarà riportato nel documento di spedizione; è
candidato ad essere chiave primaria dell’entità “Spedizione”
Data di E’ la data in cui viene effettivamente spedito l’ordine
spedizione
CORRIERE
Spese di Sono le spese di spedizione associate al metodo di spedizione corriere
spedizione
CORRIERE ESPRESSO
Spese di Sono le spese di spedizione associate al metodo di spedizione corriere espresso
spedizione
Progettazione concettuale
Analisi delle entità
PAGAMENTO
IDPagamento È il codice univoco associato al pagamento; è candidato ad essere chiave primaria dell’entità
“Pagamento”
Data di E’ la data in cui viene effettivamente effettuata la transazione
pagamento
Importo E’ l’importo del pagamento
pagamento
CONTRASSEGNO
Nessun attributo
CARTA DI CREDITO
Nessun attributo
PAYPAL
Nessun attributo
Progettazione concettuale
Analisi delle entità
PRODOTTO
IDProdotto È il codice univoco identifica un prodotto; è candidato ad essere chiave primaria dell’entità “prodotto”
Nome prodotto E’ il nome del prodotto che verrà visualizzato
Descrizione E’ la descrizione breve del prodotto che verrà visualizzata
breve prodotto
Descrizione E’ la descrizione dettagliata del prodotto che verrà visualizzata nella scheda del prodotto
dettagliata
prodotto
Immagine E’ l’immagine del prodotto che verrà visualizzata nella pagina di categoria
thumb prodotto
Immagine full E’ l’immagine del prodotto che verrà visualizzata nella scheda del prodotto
prodotto
Immagine E’ l’immagine per la galleria d’immagini del prodotto. Attributo multivalore
galleria prod
Prezzo E’ il prezzo di vendita del prodotto
Peso E’ il peso del prodotto
Costo E’ il costo del prodotto
MAGAZZINO
IDMagazzino E’ il codice univoco che identifica un magazzino prodotti; è candidato ad essere chiave primaria
dell’entità “magazzino”
Progettazione concettuale
Analisi delle entità
VETRINA
IDVetrina È il codice univoco che identifica la vetrina su cui saranno pubblicati i prodotti in evidenza; è candidato
ad essere chiave primaria dell’entità “vetrina”
Nome vetrina E’ il nome della vetrina che sarà visualizzato nel sito
CATEGORIA
IDCategoria È il codice univoco che identifica una categoria; è candidato ad essere chiave primaria dell’entità
“categoria”
Nome categoria E’ il nome della categoria che sarà visualizzato nel sito
Descrizione E’ la descrizione della categoria che sarà visualizzata nel sito
categoria
Icona categoria E’ l’icona della categoria che sarà visualizzata nel sito
CATALOGO
IDCataglogo È il codice univoco che identifica un catalogo; è candidato ad essere chiave primaria dell’entità
“catalogo”
Nome catalogo E’ il nome del catalogo che servirà all’operatore per identificare il catalogo
Descrizione E’ la descrizione del catalogo che servirà all’operatore per avere informaizoni più dettagliate sul
catalogo catalogo
Progettazione concettuale
Analisi delle relazioni e della cardinalità
INDIRIZZI
Collega l’entità “cliente” con l’entità “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 dell’entità 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 dell’entità
rubrica indirizzi è obbligatoria in quanto un indirizzo di spedizione deve essere associato ad un cliente
ACQUISTO
Collega l’entità “cliente” con l’entità “ordine”; rappresenta l’immissione 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 dell’entità “ordine” alla relazione è obbligatoria in quanto ogni ordine deve essere
stato immesso da un cliente, mentre la partecipazione dell’entità “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 l’entità “ordine” con l’entità “prodotto”; rappresenta la presenza di determinati prodotti all’interno 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 dell’entità “ordine” alla relazione è obbligatoria in quanto ogni ordine deve
contenere almeno un prodotto, mentre la partecipazione dell’entità “prodotto” alla relazione è
facoltativa in quanto vi possono essere dei prodotti che non sono associati ad alcun ordine
Quantità E’ la quantità di un prodotto associata ad un determinato ordine
CONSEGNA
Collega l’entità “ordine” con l’entità “spedizione”; definisce la spedizione fisica dell’ordine
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 dell’entità “Spedizione” è obbligatoria in quanto ogni
spedizione deve essere associata ad un ordine, mentre la partecipazione dell’entità “Ordine” è
facoltativa in quanto un ordine può essere stato immesso ma non ancora spedito.
FATTURAZIONE
Collega l’entità “ordine” con l’entità “pagamento”; definisce il pagamento/fatturazione dell’ordine
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 dell’entità “Pagamento” è obbligatoria in quanto ogni
pagamento deve essere associato ad un ordine, mentre la partecipazione dell’entità “Ordine” è
facoltativa in quanto un ordine può essere stato immesso ma non ancora pagato.
Progettazione concettuale
Analisi delle relazioni e della cardinalità
EVIDENZA
Collega l’entità “prodotto” con l’entità “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
Testo evidenza E’ il testo utilizzato nell’home page per il prodotto in evidenza
Immagine E’ l’immagine utilizzata nell’home page per il prodotto in evidenza
evidenza
LOCAZIONE
Collega l’entità “prodotto” con l’entità “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
Disponibilità E’ la disponibilità di un prodotto in un determinzato magazzino
Progettazione concettuale
Analisi delle relazioni e della cardinalità
TIPO PRODOTTO
Collega l’entità “prodotto” con l’entità “categoria”; definisce l’appartenenza 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 dell’entità prodotto è obbligatoria in quanto in
quanto un prodotto può essere assegnato solo ad una categoria, mentre la partecipazione dell’entità
categoria è facoltativa in quanto possono esistere delle categorie che non contengono alcun prodotto
TIPO CATEGORIA
Collega l’entità “categoria” con l’entità “catalogo”; definisce l’appartenenza 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
IDCliente
Nome Nome
Cognome 0-N
Cognome
Indirizzo Indirizzo di Indirizzo di Indirizzo
Città fatturazione spedizione Città
Provincia Provincia
IDSpedizione CAP CAP
1-1
Data spedizione Consegna
Spedizione
Acquisto
IDOrdine
0-1 1-1 Data di inserimento
Carta di
Contrassegno Paypal
Confermato Spedito Contabilizzato credito
Quantità IDMagazzino
Nome magazzino
Composizione 0-N
Pagato Annullato 0-N
Locazione Magazzino
IDProdotto
0-N Nome prodotto
Disponibilità IDVetrina
IDCatalogo IDCategoria
Nome vetrina
1-1 Prodotto 0-N
Progettazione concettuale
Analisi delle prestazioni sullo schema E-R
Concetto Tipo Volume Concetto Tipo Volume
Cliente E 10000 Indirizzi R 15000
Rubrica indirizzi E 15000
Acquisto R 31000
Ordine E 31000
Consegna R 30000
Confermato E 1000
Fatturazione R 29000
Spedito E 1000
Composizione R 60000
Pagato E 1000
Annullato E 20 Evidenza R 20
Spedizione E 30000 Tipo prodotto R 500
Corriere E 20000
Tipo categoria R 20
Corriere espresso E 10000
Pagamento E 29000
Tavole dei volumi
Contrassegno E 14000
Carta di credito E 10000 Nella tavola dei volumi sono riportati il numero di
occorrenze di ogni entità e di ogni relazione dello
PayPal E 5000 schema E-R sulle dimensioni dei relativi attributi,
Prodotto E 500 stimando il funzionamento a regime.
Magazzino E 2
I volumi sono stimati considerando le cardinalità
Vetrina E 2 delle entità coinvolte.
Categoria E 15
Catalogo E 5
Progettazione logica
Analisi delle prestazioni sullo schema E-R
Operazione Tipo Frequenza
Restituire tutti gli ordini effettuati e non ancora spediti Batch 1 / giorno
Restituire tutti gli ordini effettuati e non ancora pagati Batch 1 / giorno
Restituire tutti gli ordini effettuati in un determinato intervallo di date Interattiva 5 / giorno
IDCliente
Tabella degli accessi
Username 0-N 1-1 IDIndirizzo Concetto Costrutti Accessi Tipo
Password
Cliente Rubrica Alias indirizzo
email Indirizzi
indirizzi Attivo
Telefono [0:N]
Cliente Entità 1 S
Nome Nome
Cognome Cognome
Indirizzo di
Indirizzo
Città fatturazione
Indirizzo di
spedizione
Indirizzo
Città
Indirizzi Relazione 3 S
Provincia Provincia
CAP CAP
Rubrica indirizzi Entità 3 S
Inserimento spedizione
IDSpedizione
Data spedizione
Spedizione
1-1
Consegna Tabella degli accessi
0-1
IDOrdine
Data di inserimento
Concetto Costrutti Accessi Tipo
Ordine Spedizione Entità 1 S
Corriere
Corriere
espresso
Corriere Entità 1 S
Spese di spedizione Spese di spedizione
Consegna Relazione 1 S
Confermato Spedito Contabilizzato
Ordine Entità 1 L
Progettazione logica
Analisi delle prestazioni sullo schema E-R
Inserimento ordine
IDCliente
Username
Password
email
Telefono [0:N]
Cliente Tabella degli accessi
Nome
Cognome 0-N
Indirizzo di
fatturazione
Concetto Costrutti Accessi Tipo
Provincia
CAP
Confermato Entità 1 S
Pagato Annullato
Composizione Prodotto Entità 3 L
IDProdotto
0-N Nome prodotto
Prodotto
Progettazione logica
Analisi delle prestazioni sullo schema E-R
Aggiornamento ordine (contabilizzazione)
IDOrdine
Data di inserimento
Tabella degli accessi
Ordine Concetto Costrutti Accessi Tipo
Ordine Entità 1 L
Contabilizzato Entità 1 S
Confermato Spedito Contabilizzato
Pagato Annullato
Progettazione logica
Analisi delle prestazioni sullo schema E-R
Restituire i prodotti associati ad un ordine
IDOrdine Tabella degli accessi
Data di inserimento IDProdotto
Quantità
Nome prodotto
Concetto Costrutti Accessi Tipo
1-N 0-N
Ordine Composizione Prodotto Ordine Entità 1 L
Progettazione logica
Analisi delle prestazioni sullo schema E-R
Restituire i prodotti associati ad un ordine
IDProdotto
Nome prodotto Tabella degli accessi
IDCategoria Concetto Costrutti Accessi Tipo
1-1 Prodotto
0-N
Categoria Entità 1 L
Descrizione breve prodotto
Categoria Tipo prodotto Descrizione dettagliata prodotto Tipo prodotto Relazione 20 L
Immagine thumb prodotto
Nome categoria
Immagine full prodotto Prodotto Entità 20 L
Immagine galleria prodotto [0:N]
Descrizione categoria Prezzo prodotto
Icona Categoria Costo prodotto
Peso prodotto
IDCatalogo IDCategoria
Tabella degli accessi
Concetto Costrutti Accessi Tipo
0-N 0-N
Tipo Catalogo Entità 1 L
Catalogo Categoria
Categoria
Tipo Categoria Relazione 10 L
Nome categoria
Categoria Entità 10 L
Nome catalogo Descrizione categoria
Descrizione catalogo Icona Categoria
Progettazione logica
Analisi delle ridondanze
IDpagamento
Data pagamento
Pagamento Importo pagamento
Composizione
Consegna R 30000
Corriere
Corriere
espresso
Spedizione E 30000 0-N
IDProdotto
Nome prodotto
Spese di spedizione Spese di spedizione
0-N
Corriere E 20000 Prodotto
• Operazione 1: Inserimento di un pagamento per un ordine (50 volte al giorno) Costo prodotto
Peso prodotto
Progettazione logica
Analisi delle ridondanze
Presenza di ridondanza
Operazione 1 Concetto Costrutto Accessi Tipo
Ordine E 1 L Costo operazione 1:
Composizione R 2 L 100 accessi in scrittura
Prodotto E 2 L
400 accessi in lettura
Consegna R 1 L
Spedizione E 1 L
Corriere o CE E 1 L
Pagamento E 1 S
Fatturazione R 1 S
Totale accessi (contando doppi gli accessi in scrittura): 600 accessi al giorno
Progettazione logica
Analisi delle ridondanze
Assenza di ridondanza
Operazione 1 Concetto Costrutto Accessi Tipo Costo operazione 1:
Ordine E 1 L 400 accessi in lettura
Composizione R 2 L 100 accessi in scrittura
Prodotto E 2 L
Consegna R 1 L
Spedizione E 1 L
Corriere o CE E 1 L
Pagamento E 1 S
Fatturazione R 1 S
IDOrdine
Data di inserimento
Ordine IDOrdine
Data di inserimento
IDStatusOrdine
Status ordine
1-1 0-N
Ordine Avanzamento Status
ordine
Confermato Spedito Contabilizzato
Pagato Annullato
La gerarchia “Ordine” – “Stati ordine” viene risolta mantenendo l’entità 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 dall’avanzamento dell’ordine 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 dell’ordine.
Progettazione logica
Eliminazione delle generalizzazioni
IDSpedizione
Data spedizione
Spedizione
IDMetodoSpedizione IDSpedizione
Descrizione metodo spedizione Data spedizione
Spese di spedizione
0-N 1-1
Metodo Tipo spedizione Spedizione
spedizione
Corriere
Corriere
espresso
La gerarchia “Spedizione” – “Corriere” – “Corriere espresso” viene risolta mantenendo l’entità 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
IDpagamento
Data pagamento IDpagamento
Pagamento Importo pagamento IDMetodoPagamento Data pagamento
Descrizione metodo pagamento Importo pagamento
0-N 1-1
Metodo Tipo pagamento Pagamento
pagamento
Carta di
Contrassegno Paypal
credito
La gerarchia “Pagamento” – “Contrassegno” – “Carta di credito” – “PayPal” viene risolta mantenendo l’entità
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
IDCliente
email
IDCliente
Username
Password
Telefono1
Telefono2 1-1 0-1
Dati
Anagrafica Cliente
anagrafici
Indirizzo
Città Indirizzo di
CAP fatturazione
Provincia
Cognome
Nome
Progettazione logica
Partizionamento/accorpamento di concetti
IDProdotto
Nome prodotto
L’entità “Prodotto” viene partizionata in
due entità: “Prodotto” e “Dati ausiliari
Prodotto prodotto” in modo da separare gli attributi
che vengono acceduti separatamente; infatti
Descrizione breve prodotto nell’entità “prodotto” rimangono i dati di che
Descrizione dettagliata prodotto vengono visualizzati nella scheda prodotto
Immagine thumb prodotto del sito dal cliente, mentre i dati utilizzati
Immagine full prodotto soltanto per questioni di reportistica
Immagine galleria prodotto [0:N] vengono inseriti nella nuova entità “Dati
Prezzo prodotto
ausiliari prodotto”.
Costo prodotto
Peso prodotto Le due entità saranno in relazione 1-1 con
coerenza tra identificatore primario.
IDProdotto IDProdotto
Nome prodotto
Progettazione logica
Partizionamento/accorpamento di concetti
Eliminazione degli attributi multivalore
Concetto Attributo Soluzione adottata
Cliente Telefono L’entità “cliente” può avere nessuno, uno o più numeri di telefono; poiché i numeri di telefono si suppone possano
(entità) essere al massimo due (fisso e mobile), l’attributo viene diviso in due attributi semplici (“telefono1” e “telefono2”)
che vengono accorpati all’entità “cliente”; nel caso fosse necessario memorizzare più numeri di telefono, la
ristrutturazione dell’attributo passa attraverso la definizione di un’ulteriore entità e di una relazione uno a molti
Prodotto Immagine L’entità “prodotto” può avere nessuna, una o più immagini per la galleria; poichè le immagini saranno in media una
(entità) galleria prodotto decina per ogni prodotto e l’accesso a queste avverrà in maniera contestuale per ogni prodotto si è optato per
creare un’entità “galleria immagini” in relazione uno a molti con l’entità “prodotto” con chiave esterna l’ID del
prodotto, chiave primaria un’ID univoco “IDImmagineGalleria” e un attributo “Immagine galleria”. In questo modo
più prodotti potranno anche utilizzare la stessa immagine per una galleria
Rubrica Indirizzo di L’indirizzo di spedizione del cliente viene suddiviso nei seguenti attributi che vengono accorpati all’entità stessa:
indirizzi spedizione • Nome • Città
(entità) • Cognome • CAP
• Indirizzo • Provincia
Progettazione logica
Scelta degli identificatori principali
IDOrdine
Data di inserimento
1-N
Ordine (IDOrdine, Data di inserimento) Quantità
Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto,
Descrizione dettagliata prodotto, Immagine thumb prodotto, Composizione
immagine full prodotto, Prezzo prodotto)
Composizione (IDOrdine, IDProdotto) IDProdotto
0-N Nome prodotto
Progettazione logica
Scelta degli identificatori principali
Entità e Relationship molti a molti
IDProdotto
Nome prodotto
Vetrina (IDVetrina, Nome vetrina)
IDVetrina
Nome vetrina Testo in evidenza 0-N Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto,
0-N
Descrizione dett. prodotto, Immagine thumb prodotto,
0-N
Vetrina Evidenza Prodotto immagine full prodotto, Prezzo prodotto)
Evidenza (IDVetrina, IDProdotto, Testo in evidenza, Immagine in evid.)
Immagine in evidenza Prezzo prodotto
Descrizione breve prodotto con vincoli di integrità referenziale fra
Descrizione dettagliata prodotto • IDVetrina in Evidenza e la chiave di Vetrina
Immagine thumb prodotto
Immagine full prodotto
• IDProdotto in Evidenza e la chiave di Prodotto
IDMagazzino
IDProdotto Disponibilità
Nome prodotto
Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto,
Descrizione dett. prodotto, Immagine thumb prodotto,
0-N 0-N immagine full prodotto, Prezzo prodotto)
Locazione Magazzino
Magazzino (IDMagazzino)
Prodotto Locazione (IDProdotto, IDMagazzino, Disponibilità)
Progettazione logica
Scelta degli identificatori principali
Entità e Relationship uno a molti
IDProdotto
Nome prodotto Galleria immagini (IDImmagineGalleria, Immagine galleria, IDProdotto)
Prodotto (IDProdotto, Nome prodotto, Descrizione breve prodotto,
IDImmagineGalleria
Immagine galleria Galleria 1-1 0-N Descriz. dett. prodotto, Immagine thumb prodotto,
Galleria Prodotto
immagini immagine full prodotto, Prezzo prodotto)
Prezzo prodotto
Descrizione breve prodotto • con vincolo di integrità referenziale fra IDProdotto in
Descrizione dettagliata prodotto Galleria immagini e la chiave di Prodotto
Immagine thumb prodotto
Immagine full 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
IDCliente
Rubrica indirizzi (IDIndirizzo, Indirizzo, Città, CAP, IDCliente)
IDIndirizzo
email Alias indirizzo
Cliente (IDCliente, Nome, Username, Password)
Username Nome
Password
Cognome
Indirizzo
• con vincolo di integrità referenziale fra IDCliente in
0-N 1-1 Rubrica indirizzi e la chiave di Cliente
Cliente Rubrica Città
Indirizzi Provincia
indirizzi CAP • IDCliente in Rubrica indirizzi non ammette valore nullo in quanto
Attivo
la cardinalità minima della relationship è 1
IDCliente
Nome
Username
Password
Ordine
Progettazione logica
Scelta degli identificatori principali
Entità e Relationship uno a molti
Progettazione logica
Scelta degli identificatori principali
Entità e Relationship uno a uno
IDOrdine
Data di inserimento
IDOrdine
Data di inserimento
Telefono1
Cliente (IDCliente, Nome, Username, Password)
1-1 0-1
Telefono2
Indirizzo Dati Ordine (IDCliente, email, Telefono1, Telefono2, Indirizzo, Città,
Città Anagrafica Cliente
Provincia anagrafici CAP)
CAP
Progettazione logica
Schema E-R ristrutturato
IDCliente
IDCliente IDIndirizzo
email Alias indirizzo
Nome Username
Cognome Nome
Password
Cognome
Telefono1 Indirizzo
Telefono2 1-1 0-1 0-N 1-1
Indirizzo Dati Rubrica Città
Città Anagrafica Cliente Indirizzi Provincia
Provincia anagrafici indirizzi CAP
CAP Attivo
0-N
IDStatusOrdine
Status ordine
0-N 1-1
Status Avanzamento Acquisto
ordine IDOrdine
Data di inserimento
1-1
1-1 1-1
Anagrafica Dati ausiliari
IDImmagineGalleria 1-1 0-N Prezzo prodotto
Immagine galleria Galleria prodotto prodotto
Galleria Descrizione breve prodotto
immagini Descrizione dettagliata prodotto
Immagine thumb prodotto Peso prodotto
Immagine full prodotto Costo prodotto
Progettazione logica
Scelta degli indici
Identifichiamo le tabelle non volatili nelle quali potremo valutare di inserire
degli indici
Composizione Categoria
Dati anagrafici Dati ausiliari prodotto
Locazione
Evidenza
Ordine
Galleria immagini
Pagamento
Magazzino
Rubrica indirizzi
Spedizione Metodo pagamento
Prodotto
Progettazione fisica
Scelta degli indici
Escludiamo le tabelle con poche occorrenze
Tabelle non volatili Occorrenze Candidata per
indici
Catalogo 5 NO
Categoria 15 NO
Evidenza 20 NO
Magazzino 2 NO
Metodo pagamento 3 NO
Metodo spedizione 2 NO
Prodotto 500 SI
Tipo categoria 20 NO
Vetrina 2 NO
Progettazione fisica
Scelta degli indici
Gli indici portano dei benefici nelle performance per relazioni che contano
molti accessi in lettura
Progettazione fisica
Scelta degli indici
Identifichiamo gli attributi che partecipano alle interrogazioni
Prezzo Prodotto X X
Progettazione fisica
Scelta degli indici
Valutiamo l’inserimento degli indici nei campi candidati
Inseriremo quindi degli indici sui campi “Nome Prodotto” Descrizione Breve Prodotto:
e “Descrizione Breve Prodotto” ND = L / (B/(K+P)) =~ 500/(100+4) = 5
Nel caso della tabella “Galleria immagini” valutiamo l’attributo “Immagine Galleria” di tipo
Text(255) di 255 byte
ND = L / (B/(K+P)) =~ 5.000/(255+4) = 19
Inseriremo quindi anche in questo caso un indice sul campo “Immagine Galleria”
1-1
Anagrafica
IDIndirizzo
1-N
Alias indirizzo
IDCAP
Nome CAP
Cognome CAP
Indirizzo 1-1
Rubrica Città
Provincia Anagrafica
indirizzi CAP
1-N
IDProvincia
Provincia
Provincia
Normalizzazione
Schema finale
TBL_CATEGORIA
TBL_CATALOGO TBL_TIPO_CATEGORIA PK,I1 IDCategoria
PK,I1 IDCatalogo PK,FK1,I1,I3 IDCatalogo
Icona_Categoria
PK,FK2,I4,I2 IDCategoria
Nome_Categoria
Nome_Catalogo
Descrizione_Categoria
TBL_CAP TBL_CITTA Descrizione_Catalogo
TBL_PROVINCIA
PK IDCAP PK IDCitta
PK IDProvincia
TBL_GALLERIA_IMMAGINI
CAP Nome_Citta
Provincia PK,I1 IDImmagineGalleria
FK1,I1 IDProvincia FK1,I1 IDCAP
TBL_PRODOTTO
I3 Immagine_Galleria
PK,I3 ID_Prodotto FK1,I4,I2 IDProdotto
Nome_Magazzino
TBL_ORDINE TBL_COMPOSIZIONE
PK,I2 ID_Ordine PK,FK1,I1,I3 IDOrdine TBL_DATI_AUSILIARI_PRODOTTO
PK,FK2,I4,I2 IDProdotto
Data_Inserimento PK,FK1,I1 IDProdotto
FK1,I4,I1 IDCliente Quantita
FK2,I5,I3 IDStatusOrdine Peso_Prodotto
Costo_Prodotto
TBL_STATUS_ORDINE
PK,I1 IDStatusOrdine TBL_EVIDENZA TBL_VETRINA
PK,FK1,I3,I1 IDProdotto PK,I1 IDVetrina
Status_Ordine
PK,FK2,I4,I2 IDVetrina
Nome_Vetrina
Testo_In_Evidenza
TBL_PAGAMENTO Immagine_In_Evidenza
TBL_METODO_PAGAMENTO
PK,I1 IDPagamento
PK,I1 IDMetodoPagamento
Data_Pagamento
TBL_SPEDIZIONE TBL_METODO_SPEDIZIONE
Descrizione_Metodo_Pagamento Importo_Pagamento
FK1,I2 IDMetodoPagamento PK,I1 IDSpedizione PK,I1 IDMetodoSpedizione
FK2,U2,U1 IDOrdine
Data_Spedizione Descrizione_Metodo_Spedizione
FK1,I3,I2 IDMetodoSpedizione Spese_Spedizione
FK2,U2,U1 IDOrdine
Progettazione fisica