Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione 5
1 Progettazione Concettuale 7
1.1 Analisi dei Requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Requisiti in linguaggio naturale . . . . . . . . . . . . . . . . 7
1.1.2 Glossario dei termini . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Raggruppamento dei requisiti . . . . . . . . . . . . . . . . . 8
1.1.4 Generalizzazioni . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.5 Definizione delle operazioni . . . . . . . . . . . . . . . . . . 10
1.2 Progettazione Schema E-R . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Schema Scheletro . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Raffinamenti . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.3 Vincoli e attributi derivabili . . . . . . . . . . . . . . . . . . 18
1.2.4 Dizionario dei dati . . . . . . . . . . . . . . . . . . . . . . . 18
2 Progettazione Logica 21
2.1 Stime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Tabella dei volumi . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Tabella delle operazioni . . . . . . . . . . . . . . . . . . . . 22
2.2 Schemi delle operazioni . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Schema Operazione 1 . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Schema operazione 2 . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 Schema operazione 3 . . . . . . . . . . . . . . . . . . . . . 24
2.2.4 Schema operazione 4 . . . . . . . . . . . . . . . . . . . . . 26
2.2.5 Schema Operazione 5 . . . . . . . . . . . . . . . . . . . . . 28
2.2.6 Schema Operazione 6 . . . . . . . . . . . . . . . . . . . . . 29
2.2.7 Schema Operazione 7 . . . . . . . . . . . . . . . . . . . . . 31
2.2.8 Schema Operazione 8 . . . . . . . . . . . . . . . . . . . . . 31
2.2.9 Schema Operazione 9 . . . . . . . . . . . . . . . . . . . . . 31
2.2.10 Schema Operazione 10 . . . . . . . . . . . . . . . . . . . . 32
2.2.11 Schema Operazione 11 . . . . . . . . . . . . . . . . . . . . 33
2.3 Eliminazione Gerarchie . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 Eliminazione Attributi Multivalore . . . . . . . . . . . . . . . . . . 35
2.4.1 Schema E-R finale ristrutturato . . . . . . . . . . . . . . . . 36
3
INDICE 4
3 Progettazione Fisica 41
Introduzione
Lo scopo di tale progetto è realizzare una base di dati che possa soddisfare tutte
le richieste di un negozio virtuale di videogiochi. La progettazione della base di
dati si svilupperà in 3 fasi:
1. Progettazione Concettuale: in questa fase il nostro scopo sarà quello di
descrivere un analisi dei requisiti della base di dati e produrre uno schema
E-R che soddisfi tutti i requisiti
5
INTRODUZIONE 6
Parte 1
Progettazione Concettuale
7
PARTE 1. PROGETTAZIONE CONCETTUALE 8
Dall’analisi dei requisiti richiesti dal cliente riusciamo a desumere il seguente glos-
sario dei termini:
1.1.4 Generalizzazioni
Come espresso nell’analisi dei requisiti, possiamo creare una gerarchia sull’entità
videogioco, distinguendo fra videogiochi TRIPLA A, caratterizzati dalla casa pro-
duttrice, e videogiochi INDIE, caratterizzati dal nome degli sviluppatori. Possiamo
inoltre dire che tale gerarchia è totale ed esclusiva in quanto i videogiochi con-
tenuti all’interno del negozio sono tutti TRIPLA A e INDIE, e inoltre è esclusiva in
quanto un videogioco TRIPLA A non può essere INDIE e viceversa.
Indice Operazione
Op.1 Inserire un nuovo videogioco
Op.2 Inserire un nuovo utente
Op.3 Inserimento di acquisto di un videogioco da parte di un utente
Op.4 Stampa il numero di giochi contenuti in libreria di un utente
Op.5 Inserimento di un videogioco nella lista dei desideri di un utente
Op.6 Stampa del numero di giochi contenuti in lista dei desideri di un utente
Op.7 Inserimento di un versamento
Op.8 Inserimento di un periodo promozionale
Op.9 Inserimento di uno sconto per un videogioco
Op.10 Inserimento di un amico
Op.11 Stampa il numero di amici per ogni utente
1.2.2 Raffinamenti
Procediamo adesso, come previsto dalla strategia top-down, con i vari raffinamenti
fino ad arrivare allo schema E-R che rappresenti tutti i requisiti.
• Acquisti degli utente: un utente può acquistare un videogioco una sola volta
e inoltre se non ha abbastanza liquidità nel portafoglio non può acquistare quel
gioco. Se il saldo disponibile è sufficiente allora bisognerà aggiornare il saldo
decurtandolo sulla base del prezzo del videogioco acquistato.
• Inserimento dei giochi in lista dei desideri: un utente non può aggiungere
un gioco già acquistato in lista dei desideri
• Saldo del portafoglio: il tetto massimo del saldo del portafoglio per ogni
utente è di 1000€
Attributi derivabili
Entità
Relazioni
Progettazione Logica
2.1 Stime
Si suppongono le seguenti stime non specificate nell’analisi dei requisiti1 :
21
PARTE 2. PROGETTAZIONE LOGICA 22
2 Con la notazione x/m, dove x è un numero, si intende che tale operazione viene effettuata x
volte al mese
23 2.2. SCHEMI DELLE OPERAZIONI
3L + 3S = 9L · 100/m = 900L/m
2L + 2S = 6L · 100/m = 600L/m
In questo caso quindi il numero di letture mensili è minore con l’eliminazione della
ridondanza. Per dare un riscontro, però, dobbiamo analizzare tutte le operazioni
nella quale è coinvolto l’attributo.
Consideriamo quanto affermato nelle stime iniziali, ovvero che un utente acquista
PARTE 2. PROGETTAZIONE LOGICA 28
Per quanto detto nelle stime dei volumi, consideriamo che in media la lista dei
desideri di ogni utente contenga 15 videogiochi
La tavola di accessi è la seguente:
L’insieme dei concetti utilizzati in questo caso è lo stesso visto per l’operazione
10. Valutiamo però anche in questo caso i costi con e senza ridondanza. Poichè
questa operazione deve essere fatta per ogni utente, consideriamo il volume totale
(5000 utenti).
In questo caso, consideriamo quanto detto nelle stime, ovvero che in media ogni
utente ha 10 amici.
E’ evidente il fatto che convenga mantenere la ridondanza: infatti i costi per man-
tenerla sono 10000 + 750 = 10750 letture mensili a fronte di 450 + 55000 = 55450
letture mensili per eliminarla.
PARTE 2. PROGETTAZIONE LOGICA 34
INDIE(nome_videogioco)
Sviluppatori (nome_sviluppatore)
SviluppatoriGiocoIndie(nome_videogioco, nome_sviluppatore)
Progettazione Fisica
1 Per semplicità di implementazione delle operazioni è stato assegnato un saldo iniziale ad ogni
41