università degli studi di Trieste
corso di laurea triennale in ingegneria informatica
progetto di un database per un
negozio
di videogiochi
Negozio di videogiochi
Si vuole realizzare un database per la gestione di un negozio di vendita videogiochi.
I prodotti che il negozio vende sono videogiochi, console, alcune guide di giochi e svariati accessori per
console e computer.
I dipendenti che lavorano nel negozio al momento della vendita di un prodotto devono inserire il proprio
codice personale. I dati del dipendente che servono sono codice dipendente, nome, cognome, il ruolo
all’interno del negozio, sesso, indirizzo, telefono, e-mail.
Il dipendente inoltre può vendere solo prodotti disponibili e non può vendere una quantità negativa o nulla.
Le console possono essere portatili o per tv e ogni console possiede i suoi giochi.
Di ogni gioco si vuole memorizzare il codice prodotto, il titolo, la casa produttrice, il prezzo, la trama, il
genere, la console a cui fa riferimento, il supporto (se cd, dvd, ecc.), la quantità e l’ anno di produzione.
Per ogni console si vogliono memorizzare i dati relativi al codice prodotto, nome, la versione, il prezzo, la
casa produttrice e alla quantità.
Per ogni accessorio si vuole memorizzare il codice prodotto, tipo (se joystick, joypad, ecc.), a quale modello
si riferisce, il prezzo e la quantità.
Il negozio ha diversi fornitori da cui può comprare. Per fornitore si intende una società. Per ciascun fornitore
si vuole memorizzare il nome della sede, l’indirizzo della società, il numero di telefono,la città e lo stato in cui
si trova.
Per ciascuna guida al gioco si vuole memorizzare titolo, il prezzo, la sua quantità e a quale console si
riferisce. La guida può far riferimento anche a più console.
Glossario dei termini
Termine
Descrizione
Sinonimi
Collegamenti
Videogioco
Videogioco per console e per pc
che il cliente può comprare
Guida
Guida pratica per la soluzione e i
trucchi di un videogioco
Dipendente, fornitore
Accessorio
Componente aggiuntivo ad una
console o ad un computer
Fornitore, dipendente
Console
Oggetto che permette di giocare
ad un videogioco
Fornitore
Società che fornisce i prodotti al
negozio
Videogioco, console,
guida, accessorio
Dipendente
Persona che lavora nel negozio
Videogioco, console,
guida, accessorio
Gioco
Modello
Dipendente, fornitore
Fornitore, dipendente
Strutturazione dei requisiti
Frasi di carattere generale
•Si vuole realizzare un database per la gestione di un negozio di vendita videogiochi.
•I prodotti che il negozio vende sono videogiochi, console, alcune guide di giochi e svariati accessori
per console e computer.
Frasi relative al dipendente
•I dipendenti che lavorano nel negozio al momento della vendita di un prodotto devono inserire il
proprio codice personale.
•I dati del dipendente che servono sono codice dipendente, nome, cognome, il ruolo all’interno del
negozio, sesso, indirizzo, telefono, e-mail.
•Il dipendente inoltre può vendere solo prodotti disponibili.
Frasi relative al fornitore
•Il negozio ha diversi fornitori da cui può comprare.
•Per fornitore si intende una società.
•Per ciascun fornitore si vuole memorizzare il nome della sede, l’indirizzo della società, il numero di
telefono,la città e lo stato in cui si trova.
Frasi relative alla console
•Le console possono essere portatili o per tv.
•Ogni console possiede i suoi giochi.
•Per ogni console si vogliono memorizzare i dati relativi al codice prodotto, al nome, la versione, il
prezzo, la casa produttrice e la quantità.
Frasi relative al videogioco
•Di ogni gioco si vuole memorizzare il codice prodotto, il titolo, la casa produttrice, il prezzo, la trama, il
genere, la console a cui fa riferimento, il supporto (se cd, dvd, ecc.), la quantità e l’ anno di produzione.
Frasi relative all’ accessorio
•Per ogni accessorio si vuole memorizzare il codice prodotto, il tipo (se joystick, joypad, ecc.), a quale
console si riferisce, il prezzo, la quantità.
Frasi relative alla guida
•Per ciascuna guida al gioco si vuole memorizzare il titolo, il prezzo, la quantità e a quale console si
riferisce.
•La guida può far riferimento anche a più console.
Operazioni sui dati
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Inserimento dati anagrafici di un fornitore e di un dipendente (circa 1 volta l’anno)
Inserimento dati console, videogioco, accessorio e guida (circa 3 volte al mese)
Modifica dati anagrafici di un fornitore e di un dipendente (circa 1 volta l’anno)
Modifica dati console, videogioco, guida e accessorio (circa 2 volte al mese)
Visualizzare tutti i dati di un fornitore (circa 2 volte al mese)
Dato il titolo del videogioco visualizzare tutti i suoi dati (circa 50 volte al giorno)
Dato il nome di una console visualizzare tutti i dati e tutte le versioni disponibili con i relativi
prezzi e quantità disponibile (circa 1 volta al giorno)
Dato il tipo di accessorio visualizzare tutti i dati e a che console si riferisce (circa 1 volta al
giorno)
Dato il titolo di una guida visualizzare tutti i suoi dati (circa 5 volte a settimana)
Vendita di un videogioco, di una console, di una guida e di un accessorio inserendo il codice
dipendente, la data in cui avviene la vendita e la quantità venduta (circa 50 volte al giorno)
Classifica dei dipendenti visualizzando oltre i dati relativi al dipendente anche la quantità di
videogiochi venduti tra due date (circa 1 volta al mese )
Classifica dei videogiochi in base alla quantità venduta tra due date (circa 1 volta alla
settimana)
Classifica delle console più vendute in un intervallo di date (circa 1 volta al mese)
Classifica dei dipendenti visualizzando, oltre i dati del cliente, anche il fatturato di vendita dei
videogiochi tra due date(1 volta al mese)
PROGETTAZIONE CONCETTUALE
Schema scheletro
Strategia di progetto usata
DIPENDENTE
progettazione mista
VENDITA
•Suddivisione in sottoproblemi
• Raffinamenti successivi
VIDEOGIOCO
CONSOLE
FORNITURA
FORNITORE
GUIDA
ACCESSORIO
Diagrammi E R :
raffinamento dell’entità videogioco
Hanno un loro genere
Fanno riferimento ad una casa produttrice
Possono avere diversi supporti (cd, dvd, ecc.)
Un videogioco è riferito ad una determinata console (es: resident evil 4 per playstation, wii ecc.)
CASA
PRODUTTRICE
PRODUZIONE
SUPPORTO
TIPO
SUPPORTO
TIPO GENERE
VIDEOGIOCO
GENERE
RIFERITO
CONSOLE
Di ogni videogioco si registrano il numero di serie, il titolo, il prezzo, la trama, la disponibilità e l’ anno di
produzione. La disponibilità è intesa come quantità disponibile.
Raffinamento dell’entità console:
La console è prodotta da una casa produttrice
CASA
PRODUTTRICE
PRODUZIONE
→ Per ogni console si conoscono
i dati relativi al numero di serie,
nome, il prezzo e la quantità.
TIPO
VERSIONE
CONSOLE
TV
VERSIONE
PORTATILE
Una console può avere diversi tipi di
versione (es: la playstation 2 versione
‘original’ e la playstation 2 versione
‘slim’)
Si dividono in console portatile oppure in
console per televisione
Generalizzazione TOTALE ed ESCLUSIVA:
una console può essere solo portatile o solo
per tv, non può essere tutte e due.
Raffinamento dell’entità guida e accessorio:
CONSOLE
ASSOCIATA
GUIDA
Una guida di videogiochi deve essere associata ad una console perché il cliente che richiede una
particolare guida deve conoscere per che console è stata scritta.
Di ciascuna guida al gioco si conosce il titolo, il prezzo e la quantità disponibile a magazzino.
CONSOLE
ASSOCIATO
CA
ACCESSORIO
Un accessorio è associato ad una determinata console (per esempio presa scart per playstation 2).
Raffinamento dell’entità fornitore e relazioni con
videogioco, console, guida e accessorio
VIDEOGIOCO
CONSOLE
GUIDA
ACCESSORIO
Il fornitore fornisce al negozio
dei prodotti, quali videogiochi,
console, guide e accessori.
FORNITURA
CITTA’
POSSIEDE
SEDE
Esistono diversi fornitori per i
diversi prodotti del negozio.
FORNITORE
Dato un prodotto qualsiasi si
può conoscere qual è il fornitore
associato.
STATO
Per ciascun fornitore si conosce il nome della
sede, l’indirizzo della società, il numero di
telefono,la città e lo stato in cui si trova.
Il fornitore, inteso come società, risiederà in
una città precisa di uno stato. Per esempio,
Tecnogroup s.p.a., Roma, Italia.
L’entità dipendente e la relazione vendita dei
prodotti
VIDEOGIOCO
CONSOLE
GUIDA
ACCESSORIO
VENDITA
I dati del dipendente che si
conoscono sono il codice
dipendente, il nome, il cognome, il
ruolo che ha all’interno del
negozio, il sesso, l’ indirizzo, il
telefono e la e-mail.
DIPENDENTE
Il dipendente al momento della vendita
deve inserire il suo codice personale
per un eventuale identificazione
successiva.
Schema concettuale finale
CASA
PRODUTTRICE
TIPO
VERSIONE
GENERE
VERSIONE
TIPO GENERE
PRODUZIONE
ASSOCIATA
SUPPORTO
TIPO
SUPPORTO
VIDEOGIOCO
RIFERITO
CONSOLE
GUIDA
ASSOCIATO
CA
TV
PORTATILE
ACCESSORIO
FORNITURA
VENDITA
CITTA’
SEDE
FORNITORE
DIPENDENTE
POSSIEDE
STATO
ANALISI DELLE ENTITA’
FORNITORE
FornitoreID
E’ il codice univoco che identifica il fornitore;è candidato ad essere chiave primaria
dell’entità “fornitore”.
Nome
Definisce il nome del fornitore inteso come società – azienda.
Telefono
E’ il numero di telefono del fornitore. Attributo multivalore.
Indirizzo
E’ il sito dove si trova la società del fornitore. Attributo composto.
CITTA’
CittàID
E’ il codice univoco che identifica la città dove lavora il fornitore; è candidato ad essere
chiave primaria dell’entità “città”.
Nome
Definisce il nome della città.
STATO
StatoID
E’ il codice univoco che identifica lo stato dove si trova la città in cui lavora il fornitore; è
candidato ad essere chiave primaria dell’entità “stato”.
Nome
Definisce il nome dello stato.
VIDEOGIOCO
VideogiocoID
E’ il codice univoco che identifica il videogioco univocamente; è candidato ad essere
chiave primaria dell’entità “videogioco”.
Titolo
E’ il titolo del videogioco.
Trama
Informazioni della storia del videogioco.
Anno
E’ l’anno in cui il videogioco è uscito in commercio.
Prezzo
Rappresenta il costo del videogioco.
Quantità
Rappresenta il numero di elementi presenti a magazzino.
CASA PRODUTTRICE
CasaprodID
E’ il codice univoco che identifica la casa produttrice; è candidata ad essere chiave
primaria dell’entità “casa produttrice”.
Nome
E’ il nome della casa produttrice.
GENERE
GenereID
E’ il codice che identifica univocamente il genere; è candidata ad essere chiave
primaria dell’entità “genere”.
Nome
E’ il genere di appartenenza di un videogioco; ad esempio sportivo, picchiaduro ecc.
SUPPORTO
SupportoID
E’ il codice univoco che identifica il tipo di supporto;è candidata ad essere chiave
primaria dell’entità “supporto”.
Tipo
Descrive il tipo di supporto (Dvd, Blue Rey ecc.)
CONSOLE
ConsoleID
E’ il codice univoco che identifica la console; è candidata ad essere chiave primaria
dell’entità “console”.
Nome
Definisce il nome della console.
Quantità
Rappresenta il numero di elementi presenti a magazzino.
Prezzo
Rappresenta il costo della console in euro.
PORTATILE
Nessun attributo.
TV
Nessun attributo.
VERSIONE
VersioneID
E’ il codice univoco che identifica la versione di una console; è candidata ad essere
chiave primaria dell’entità “versione”.
Nome
E’ il nome della versione di una console. Per esempio slim, original, ecc.
DIPENDENTE
DipendenteID
E’ il codice univoco che identifica il dipendente del negozio; è candidato ad essere
chiave primaria dell’entità “dipendente”.
Nome
E’ il nome proprio del dipendente.
Cognome
E’ il cognome del dipendente.
Sesso
Maschio o Femmina.
Indirizzo
E’ la residenza del dipendente. Attributo composto.
Telefono
E’ il numero di telefono del dipendente. Attributo multivalore.
Email
E’ l’indirizzo di posta elettronica del dipendente.
Ruolo
Rappresenta il ruolo all’interno del negozio (venditore, tecnico ecc.) Attributo
multivalore.
ACCESSORIO
AccessorioID
E’ il codice univoco che identifica l’accessorio; è candidato ad essere chiave primaria
dell’entità “accessorio”.
Prezzo
E’ il costo dell’accessorio in euro.
Quantità
Rappresenta la quantità a magazzino dell’accessorio.
Tipo
Definisce la tipologia dell’accessorio.
GUIDA
GuidaID
E’ il codice univoco che identifica la guida; è candidata ad essere chiave primaria
dell’entità “guida”.
Titolo
E’ il titolo della guida.
Prezzo
E’ il costo in euro della guida.
Quantità
Rappresenta il numero di copie presenti in negozio della guida.
ANALISI DELLE RELAZIONI E DELLA CARDINALITA’
POSSIDE
Collega l’entità “stato” con l’entità “città”.
Cardinalità
UNO A MOLTI : una città può risiedere in un solo stato ma uno stato possiede più
città.
SEDE
Collega l’entità “fornitore” con l’entità “città”. Rappresenta la città dove ha sede l’azienda fornitrice
Cardinalità
UNO A MOLTI : un fornitore ha sede in una sola città ma in quella città ci possono
essere più fornitori.
FORNITURA
Collega l’entità “”fornitore” con le entità “videogioco”, con l’entità “console”, con l’entità “guida” e
con l’entità “accessorio”. Relazione quinquennaria.
Cardinalità
MOLTI A MOLTI : un fornitore può fornire uno o più prodotti e un prodotto può
essere fornito da uno o più fornitori.
Data
E’ la data in cui avviene la fornitura.
Quantità
E’ il numero di pezzi di un prodotto fornito.
TIPO SUPPORTO
Collega l’entità “supporto” con l’entità “videogioco”.
Cardinalità
UNO A MOLTI : un videogioco ha uno e uno solo tipo di supporto ma un tipo di
supporto può essere associato a più videogiochi.
TIPO GENERE
Collega l’entità “videogioco” all’entità “genere”.
Cardinalità
UNO A MOLTI : ogni videogioco è assegnato ad un solo genere mentre un genere
può essere associato a più videogiochi.
PRODUZIONE
Collega l’entità “casa produttrice” all’entità “videogioco” e all’entità “console”. Relazione ternaria.
Cardinalità
UNO A MOLTI : una casa produttrice produce uno o più videogiochi (oppure
console) ma un videogioco (oppure una console) viene prodotta da una sola casa
produttrice.
RIFERITO
Collega l’entità “videogioco” con l’entità “console”.
Cardinalità
MOLTI A MOLTI :un videogioco può fare riferimento a una o più console e una
console può avere uno o più giochi.
ASSOCIATA
Collega l’entità “console” all’entità “guida”.
Cardinalità
MOLTI A MOLTI : una guida può far riferimento a una o più console e una console
può essere associata a una o più guide.
ASSOCIATO C – A
Collega l’entità “console” all’entità “accessorio”.
Cardinalità
MOLTI A MOLTI : un tipo di accessorio può far riferimento ad una o più console e
quella console può essere associata ad uno o più accessori.
TIPO VERSIONE
Collega l’entità “console” all’entità “versione”.
Cardinalità
MOLTI A MOLTI : una console può avere una o più versioni e una versione può
riguardare una o più console.
VENDITA
Collega l’entità “dipendente” alle entità “videogioco”, “console”, “guida” e “accessorio”. Relazione
quinquennaria.
Cardinalità
MOLTI A MOLTI : un dipendente può vendere uno o più prodotti e un prodotto può
essere venduto da più dipendente.
Data
E’ la data in cui avviene una vendita.
Quantità
Rappresenta il numero di pezzi venduti.
Business Rules
Regole di vincolo
(1) Il dipendente, al momento della vendita di un prodotto, deve inserire il proprio codice personale.
(2) Il dipendente deve vendere solo prodotti disponibili.
(3) Il dipendente non deve vendere una quantità nulla o negativa.
Schema E R finale con attributi e cardinalità
CasaprodID
GenereID
GENERE
(1,N)
TIPO GENERE
(1,1)
CASA
PRODUTTRICE
Nome
Nome
VersioneID
(1,N)
VideogiocoID
Titolo
PRODUZIONE
Anno
Trama
Quantità
(1,N)
SupportoID
SUPPORTO
Tipo
(1,1)
TIPO
SUPPORTO
VERSIONE
(1,N)
Quantità
Prezzo
(1,1)
(1,N)
VIDEOGIOCO
Nome
(1,1)
ConsoleID
Nome
Prezzo
(1,N)
TIPO
VERSIONE
(0,N)
ASSOCIATA
(1,N)
(1,N)
RIFERITO
CONSOLE
GUIDA
(1,N)
ASSOCIATO
CA
(1,N)
GuidaID
Titolo
Prezzo
Quantità
TV
ittàID
PORTATILE
(1,N)
CITTA’
(1,N)
SEDE
Nome
(1,N)
(1,1)
(1,N)
FORNITURA
(1,N)
POSSIEDE
ACCESSORIO
(1,N)
Data
Quantità
STATO
(1,N)
(1,N)
(1,N)
Data
Nome
StatoID
VENDITA
(1,N)
(1,N)
(1,N)
(1,N)
Indirizzo
Telefono
Nome
FornitoreID
DIPENDENTE
Tipo
FORNITORE
Quantità
(1,N)
(1,1)
Prezzo
AccessorioID
(1,N)
Ruolo
Email
Telefono
Indirizzo
Sesso
Cognome
Nome
DipendenteID
PROGETTAZIONE LOGICA:
tavola dei volumi
Entità
Concetto
Volume
Fornitore
20
Città
20
Stato
10
Dipendente
5
Accessorio
50
Videogioco
2000
Console
10
Guida
20
Supporti
10
Genere
10
Casa produttrice
1000
Versioni
20
Tv (Console)
6
Portatili (Console)
4
Concetto
Volume
Sede
20
Possiede
20
Fornitura
1080
Vendita
1080
Tipo supporto
2000
Tipo genere
2000
Produzione
1010
Riferito
2000
Tipo versione
10
Associata
20
Associato C A
50
Relazioni
Nella tavola dei volumi vengono riportati
tutti i concetti dello schema con il volume
(numero di occorrenze) previsto a regime.
Tavola delle operazioni
Operazione
Tipo
Frequenza
Inserimento dati anagrafici di un fornitore e di un dipendente
I
1 / anno
Inserimento dati console, videogioco, accessorio e guida
I
3 / mese
Modifica dati anagrafici di un fornitore e di un dipendente
I
1 / anno
Modifica dati console, videogioco, guida e accessorio
I
2 / mese
Visualizzare tutti i dati di un fornitore
B
2 / mese
Dato il titolo del videogioco visualizzare tutti i suoi dati
B
50 / giorno
Dato il nome di una console visualizzare tutti i dati e tutte le versioni disponibili con i relativi
prezzi e quantità disponibile
B
1 / giorno
Dato il tipo di accessorio visualizzare tutti i dati e a che console si riferisce
B
1 / giorno
Dato il titolo di una guida visualizzare tutti i suoi dati
B
5 / settimana
Vendita di un videogioco
I
50 / giorno
Classifica dei dipendenti visualizzando oltre i dati relativi al dipendente anche la quantità di
videogiochi venduti tra due date
B
1 / mese
Classifica dei videogiochi in base alla quantità venduta tra due date
B
1 / settimana
Classifica delle console più vendute in un intervallo di date
B
1 / mese
Classifica dei dipendenti visualizzando, oltre i dati del cliente, anche il fatturato di vendita
dei videogiochi tra due date
B
1 / mese
Vendita di una console
I
1 / giorno
Vendita di una guida
I
1 / giorno
Vendita di un accessorio
I
2 / settimana
Schema di operazione – tavola degli accessi
OPERAZIONE : Dato il titolo del videogioco visualizzare tutti i suoi dati
CasaprodID
GenereID
(1,N)
GENERE
TIPO GENERE
(1,1)
CASA
PRODUTTRICE
Nome
Nome
(1,N)
VideogiocoID
Titolo
Anno
PRODUZIONE
Trama
Quantità
Prezzo
(1,N)
SupportoID
SUPPORTO
Tipo
(1,1)
TIPO
SUPPORTO
ConsoleID
Nome
Quantità
Prezzo
(1,1)
VIDEOGIOCO
(1,N)
(1,N)
RIFERITO
CONSOLE
CONCETTO
COSTRUTTO
ACCESSI
TIPO
Videogioco
Entità
1
Lettura
Tipo supporto
Relazione
2
Lettura
Un titolo di videogioco in media ha 2 supporti perché è
venduto per 2 console diverse
Supporto
Entità
2
Lettura
Un titolo di videogioco ha un unico genere
Tipo genere
Relazione
1
Lettura
Genere
Entità
1
Lettura
Riferito
Relazione
2
Lettura
Console
Entità
2
Lettura
Produzione
Relazione
1
Lettura
Casa
produttrice
Entità
1
Lettura
In media un titolo di videogioco è venduto per 2 console.
Un titolo di videogioco ha una sola casa produttrice
Ristrutturazione dello schema E-R :
Eliminazione delle generalizzazioni
TIPO
VERSIONE
ConsoleID
TIPO
VERSIONE
Nome
Quantità
Prezzo
RIFERITO
ASSOCIATA
ConsoleID
Nome
Quantità
Prezzo
Portatile
CONSOLE
ASSOCIATO
CA
RIFERITO
TV
CONSOLE
ASSOCIATA
ASSOCIATO
CA
PORTATILE
La gerarchia “console”-“tv”-“portatile”, non avendo i figli attributi specifici che li
distinguono, viene risolta inglobando le entità figlie della generalizzazione nel
padre, aggiungendo un attributo “portatile” che contraddistingue il tipo di console.
Non ci sono relazioni che interessavano “tv” e “portatile” quindi la gerarchia
rimane così.
Ristrutturazione dello schema E-R :
Partizionamento dell’entità videogioco
VideogiocoID
Titolo
L’entità “videogioco” viene partizionata in due
entità “dati videogioco” e “videogioco” separando
così i suoi attributi che:
1. vengono acceduti da operazioni diverse
2. in fase di caricamento si presentano delle
ridondanze di dati (si pensi che in media un
videogioco è riferito a 2 console distinte).
Anno
ConsoleID
Trama
Nome
Quantità
Prezzo
Quantità
Prezzo
VIDEOGIOCO
(1,N)
(1,N)
RIFERITO
CONSOLE
Questo tipo di partizionamento si chiama
‘decomposizione verticale’ cioè si suddivide il
concetto operando sui suoi attributi.
Quantità
Prezzo
Trama
Anno
Titolo
VideogiocoID
CONSOLE
RIFERITO
DATI
VIDEOGIOCO
(1,N)
DATI
(1,1)
(1,1)
VIDEOGIOCO
Soluzione: si decide di accorpare gli attributi
“quantità” e “prezzo” nell’ entità “videogioco” e gli
attributi “videogiocoID”, “titolo”, “”anno” e “trama”
nell’entità “dati videogioco”.
La chiave primaria dell’entità “videogioco” è una
chiave composta dagli attributi “VideogiocoID” e
“ConsoleID” che sono anche le due chiavi esterne
della stessa entità.
Ristrutturazione dello schema E-R :
Partizionamento dell’entità console
VersioneID
(1,N)
TIPO
VERSIONE
ConsoleID
L’entità “console” viene partizionata in due entità
“dati console” e “console” separando così i suoi
attributi che vengono acceduti da operazioni
diverse e presenterebbero ridondanza dati.
Nome
VERSIONE
(1,N)
Nome
Quantità
Prezzo
Anche in questo caso si tratta di una
‘decomposizione verticale’.
Nome
VersioneID
CONSOLE
VERSIONE
(1,N)
Prezzo
Nome
TIPO
VERSIONE
(1,1)
(1,N)
DATI CONSOLE
Quantità
ConsoleID
(1,1)
DATI C
CONSOLE
Soluzione: si decide di accorpare gli attributi
“quantità” e “prezzo” nell’ entità “console” e gli
attributi “consoleID” e “nome” nell’entità “dati
console”.
La chiave primaria dell’entità “console” è composta
da 2 attributi “ConsoleID” e “VersioneID” che sono
anche chiave esterne per la stessa entità.
Ristrutturazione dello schema E-R :
Partizionamento dell’entità accessorio
ConsoleID
Nome
Portatile
CONSOLE
(1,N)
ASSOCIATO
CA
(1,N)
L’entità “accessorio” viene partizionata in due
entità “tipo accessorio” e “accessorio” separando
così i suoi attributi che vengono acceduti da
operazioni diverse e che presenterebbero
ridondanza dati.
ACCESSORIO
Tipo
Quantità
Prezzo
AccessorioID
Anche in questo caso si tratta di una
‘decomposizione verticale’.
AccessorioID
Tipo
TIPO
ACCESSORIO
(1,N)
TIPO
(1,1)
ACCESSORIO
TIPO
Quantità
Prezzo
DATI CONSOLE
Soluzione: si decide di accorpare gli attributi
“quantità” e “prezzo” nell’ entità “accessorio” e gli
attributi “accessorioID” e “tipo” nell’entità “tipo
accessorio”.
La chiave primaria dell’entità “accessorio” è
composta da 2 attributi “AccessorioID” e
“ConsoleID” che sono anche chiavi esterne per la
stessa entità.
Ristrutturazione dello schema E-R :
Partizionamento delle relazioni vendita e fornitura
FORNITURA
Quantità
La relazione “vendita” viene
partizionata in quattro relazioni
“vendita v”, “vendita g”,”vendita
a” e “vendita c”.
VENDITA
Data
DIPENDENTE
La relazione “fornitura” viene
partizionata in quattro relazioni
“fornitura v”, “fornitura
g”,”fornitura a” e “fornitura c”.
Email
FORNITORE
VENDITA A
Data
FORNITURA V
VENDITA G
Data
Quantità
Data
Data
Data
DIPENDENTE
FORNITURA A
Quantità
FORNITURA C
FORNITORE
Data
Quantità
FORNITURA
G
Quantità
Quantità
Telefono
Quantità
Data
Indirizzo
VENDITA V
Nome
Il partizionamento della
relazione è dovuto al fatto che
nell’atto di inserimento a
magazzino di un prodotto non
si inserirà mai tutti i prodotti
contemporaneamente e quindi
ci sarebbe una grossa quantità
di valori NULL.
FornitoreID
Telefono
Indirizzo
Sesso
Cognome
Nome
DipendenteID
Il partizionamento della
relazione è dovuto al fatto che
nell’atto di vendita non si
venderà mai (o quasi mai) più
prodotti contemporaneamente
e quindi ci sarebbe una grossa
quantità di valori NULL.
Quantità
VENDITA C
(1,N)
(1,1)
Data
Quantità
Data
Quantità
Telefono
Indirizzo
Nome
FornitoreID
Email
Telefono
Indirizzo
Sesso
Cognome
Nome
DipendenteID
Ristrutturazione dello schema E-R :
attributi composti e multivalore
Eliminazione degli attributi multivalore
CONCETTO
ATTRIBUTO
SOLUZIONE ADOTTATA
Dipendente (entità)
Telefono
Bisogna conoscere ALMENO un numero di telefono del
dipendente. Tuttavia ai fini dell’applicazione può essere utile
registrare anche solo due numeri di telefono; l’attributo “telefono”
viene diviso in “cellulare” e “casa”, che diventano 2 attributi distinti
dell’entità “dipendente”. Se 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
(per un dipendente fino a n numeri di telefono).
Fornitore (entità)
Telefono
L’entità “fornitore” deve avere ALMENO un numero di telefono;
poiché i numeri di telefono necessari ai fini dell’applicazione si
suppone possano essere soltanto due (fisso e mobile), l’attributo
viene diviso in due attributi semplici (“cellulare” e “aziendale”) che
vengono accorpati all’entità “fornitore”; nel caso fosse necessario
memorizzare più numeri di telefono, la ristrutturazione dell’attributo
passa attraverso la definizione di un’ulteriore entità (telefono) e di
una relazione uno a molti.
Dipendente (entità)
Ruolo
Il dipendente possiede un ruolo all’interno del negozio e quel ruolo
può essere associato ad uno o più dipendenti; la ristrutturazione
dell’attributo passa attraverso la definizione di un’ulteriore entità
(ruolo) e di una relazione uno a molti.
Eliminazione degli attributi composti
CONCETTO
ATTRIBUTO
SOLUZIONE ADOTTATA
Dipendente (entità)
Indirizzo
L’ indirizzo del dipendente viene suddiviso nei seguenti attributi
:
• Via
• Città
• Provincia
• Cap.
Solo l’attributo “Via” viene accorpato nell’entità “Dipendente”;
Gli attributi “Città”, “Provincia” e “Cap” vengono trasformati in 3
entità distinte per evitare ridondanze nell’entità “dipendente”.
Fornitore (entità)
Indirizzo
L’indirizzo del fornitore viene suddiviso nei seguenti attributi
che vengono accorpati nell’entità stessa:
• Via
• numero civico
Ristrutturazione dello schema E-R :
BUSINESS RULES  REGOLE DI VINCOLO  (1), (2) e (3)
“Il dipendente non deve vendere una quantità nulla o negativa”
“Il dipendente, al momento della vendita di un prodotto, deve inserire il proprio codice personale”
“Il dipendente deve vendere solo prodotti disponibili”
I VINCOLI DEVONO ESSERE RISPETTATI QUI :
Non posso vendere un prodotto (in fase di
vendita) se in ‘quantità’ è presente un valore
non positivo!
Il dipendente inserisce il proprio codice
personale nelle tabelle di vendita.
Quantità
Data
VENDITA V
Quantità
VENDITA A
Data
Data
Quantità
Data
VENDITA G
VENDITA C
Quantità
DIPENDENTE
Non posso vendere un prodotto la cui
quantità in magazzino è uguale a zero!
Email
Telefono
Indirizzo
Sesso
Cognome
Nome
DipendenteID
Scelta degli identificatori principali
Nel modello relazionale gli identificatori principali (chiavi primarie) vengono usati per stabilire
legami tra dati in relazioni diverse.
Per ogni entità si è creato appositamente un identificatore che:
non può contenere valori NULL perché, se così fosse, non garantirebbe l’accesso a tutte le
occorrenze dell’entità corrispondente;
in quanto identificatore, non può ripetersi all’interno dello stesso concetto;
è un identificatore interno, cioè è costituito solo da attributi dell’entità stessa;
è formato da un solo attributo (o al massimo 2), in modo da facilitare le operazioni di join e da
ridurre le dimensioni degli indici.
Schema E R ristrutturato
GenereID
CasaprodID
GENERE
CASA
PRODUTTRICE
Nome
Nome
(1,N)
(1,N)
ASSOCIATA
(1,1)
GUIDA
(1,1)
PRODUZIONE
(1,N)
Prezzo
VERSIONE
Quantità
Prezzo
GuidaID
Titolo
Quantità
Prezzo
Quantità
Trama
Titolo
Anno
VideogiocoID
ConsoleID
Nome
Portatile
(1,N)
DATI
VIDEOGIOCO
SupportoID
(1,N)
SUPPORTO
Tipo
(1,1)
DATI
VIDEOGIOCO
(1,1)
(1,N)
(1,N)
RIFERITO
(1,N)
(1,1)
(1,1)
DATI CONSOLE
DATI C
CONSOLE
TIPO
VERSIONE
(1,1)
TIPO
SUPPORTO
Nome
(1,N)
TIPO GENERE
VersioneID
(1,1)
AccessorioID
Tipo
(1,N)
(1,1)
ASSOCIATO
CA
(1,1)
ACCESSORIO
TIPO
(1,N)
TIPO
ACCESSORIO
(1,N)
Quantità
Data
(1,N)
FORNITURA A
Data
(1,N)
(1,N)
(1,N)
Ora
Data
(1,N)
FORNITURA C
FORNITORE
(1,N)
Data
Quantità
(1,1)
Aziendale
SEDE
Nome
Cellulare
(1,1)
(1,N)
CITTA’
VENDITA V
(1,N)
Ora
Data
Quantità
(1,N)
VENDITA A
(1,N)
Quantità
Numero C
Via
Nome
FornitoreID
CittàID
FORNITURA
G
(1,N)
Quantità
Data
(1,N)
Quantità
Quantità
Prezzo
FORNITURA V
(1,N)
Ora
Data
Quantità
(1,N)
VENDITA C
(1,N)
ProvinciaID
Data
Ora
DIPENDENTE
PROVINCIA
(1,N)
VENDITA G
Nome
(1,1)
Quantità
(1,N)
(1,1)
(1,N)
RUOLO
Nome
StatoID
RuoloID
Casa
Email
Cellulare
STATO
Sesso
Cognome
Nome
DipendenteID
TIPO RUOLO
(1,N)
POSSIEDE
(1,N)
RESIDENZA
(1,1)
CITTADIP
CittaDipID
Cap
Provincia
Città
Via
(1,1) Nome
(1,1)
CAP
Tipo
CapID
Cap
ASSOCIATA
POSSIEDE
tblCittaDip
tblCAP
PK
PK
CittaDipID
FK1
Nome
ProvinciaID
tblDipendente
CapID
CAP
DipendenteID
FK1
FK2
Cognome
Nome
Sesso
Via
Citta
Provincia
Cap
Cellulare
Casa
Email
RuoloID
CittaDipID
tblRuolo
PK
RuoloID
Tipo
tblDipendenteVideogioco
PK
PK
Data
Ora
FK1
FK2
FK2
DipendenteID
VideogiocoID
ConsoleID
Quantita
tblDipendenteConsole
PK
PK
Data
Ora
FK1
FK2
FK2
DipendenteID
ConsoleID
VersioneID
Quantita
tblCasaProduttrice
PK
tblGenere
PK
CasaprodID
PK
ProvinciaID
Nome
tblDipendenteGuida
PK
PK
Data
Ora
FK1
FK2
DipendenteID
GuidaID
Quantita
tblDipendenteAccessorio
tblDatiConsoleGuida
PK,FK2
PK,FK1
PK
PK
Data
Ora
FK1
FK2
FK2
DipendenteID
AccessorioID
ConsoleID
Quantita
GuidaID
ConsoleID
tblDatiConsole
PK
ConsoleID
FK1
Nome
Portatile
CasaprodID
Nome
GenereID
tblProvinciaDip
PK
tblTipoAccessorio
PK
tblVersione
PK
VersioneID
AccessorioID
Tipo
Nome
Nome
tblVideogioco
tblDatiVideogioco
PK
FK1
FK2
VideogiocoID
Titolo
Anno
Trama
CasaprodID
GenereID
PK,FK1
PK,FK2
FK3
tblConsole
VideogiocoID
ConsoleID
PK,FK1
PK,FK2
tblGuida
PK
GuidaID
Prezzo
Quantita
Titolo
Prezzo
Quantità
tblFornitoreConsole
tblFornitoreGuida
Prezzo
Quantità
SupportoID
tblAccessorio
PK,FK1
PK,FK2
ConsoleID
AccessorioID
Prezzo
Quantita
tblFornitoreAccessorio
tblFornitoreVideogioco
tblSupporto
PK
ConsoleID
VersioneID
SupportoID
Tipo
PK,FK2
PK,FK2
PK,FK1
PK
VideogiocoID
ConsoleID
FornitoreID
Data
PK,FK2
PK,FK2
PK,FK1
PK
ConsoleID
VersioneID
FornitoreID
Data
PK,FK1
PK,FK2
PK
FornitoreID
GuidaID
Data
Quantita
Quantita
Quantita
tblFornitore
tblCitta
tblStato
PK
StatoID
Nome
PK
CittaID
FK1
Nome
StatoID
PK
FornitoreID
FK1
Nome
Via
NumeroCivico
Cellulare
Aziendale
CittaID
PK,FK2
PK,FK2
PK,FK1
PK
AccessorioID
ConsoleID
FornitoreID
Data
Quantita
Documentazione di schemi logici
Esiste un vincolo di integrità referenziale tra
l’attributo “SupportoID” della relazione
“tblVideogioco” e l’attributo “SupportoID”
della relazione “tblSupporto”.
tblSupporto
SupportoID
Esiste un vincolo di integrità
referenziale tra l’attributo
“FornitoreID” delle relazione
“tblFornitoreVideogioco” e l’attributo
“FornitoreID” della relazione
“tblFornitore”;
Inoltre esiste un vincolo di integrità
referenziale tra gli attributi
“VideogiocoID” e “ConsoleID” della
relazione “tblFornitoreVideogioco” e
gli attributi “VideogiocoID” e
“ConsoleID” della relazione
“tblVideogioco”.
Tipo
tblVideogioco
VideogiocoID
ConsoleID
Prezzo
Quantita
“VideogiocoID”, “ConsoleID” e “FornitoreID”
della relazione “tblFornitoreVideogioco” non
sono sufficienti a determinare una chiave
primaria in quanto uno stesso videogioco
può essere fornito da uno stesso fornitore
nell’arco di un periodo  si aggiunge
l’attributo “Data” alla chiave primaria.
SupportoID
tblFornitoreVideogioco
VideogiocoID
ConsoleID
FornitoreID
Data
Quantita
tblFornitore
FornitoreID
Nome
Via
Numero civico
tblCitta
CiitaID
Nome
StatoID
Cellulare
Aziendale
CittaID
Esiste un vincolo di integrità referenziale tra
l’attributo “CittaID” della relazione
“tblFornitore” e l’attributo “CittaID” della
relazione “tblCitta”.
tblStato
StatoID
Nome
Esiste un vincolo di integrità referenziale tra
l’attributo “StatoID” della relazione “tblCitta”
e l’attributo “StatoID” della relazione
“tblStato”.
Scarica

videogiochiPresentazione - Studenti Dipartimento di Ingegneria