Relazione - Riucc/Comic-san GitHub Wiki
-
Abstract: Il progetto Comic-san si propone di modellare una base di dati di una fumetteria. All’interno della fumetteria oltre ai fumetti o manga verranno venduti anche modellini e action figure appartenenti a varie serie. Si vuole registrare uno storico delle vendite dei vari prodotti comprati dai clienti. Qualsiasi prodotto puo’ essere prenotato da uno o piu clienti identificati da una tessera personale. Si vuole tenere conto anche della casa editrice(o marca) di ogni prodotto in modo da poter attuare sconti specifici su tale casa editrice.
-
Analisi dei requisiti:
Si vuole realizzare una base di dati per gestire una fumetteria. I prodotti vengono registrati nell'entità Prodotto la quale tiene traccia di tutti i prodotti acquistabili all'interno della fumetteria.I prodotti possono essere presenti nel negozio oppure prenotabili e sono caratterizzati dai seguenti attributi:
- Codice
- Fornitore
- Prezzo
- Serie
- Disponibilità
- Condizione
- Saga
I prodotti si distinguono in Volumi con gli attributi autore e edizione (a loro volta suddivisi in Manga con l'attributo numero, Fumetti con l'attributo numero o Altro) e Modellini con l'attributo dimensione. Ogni prodotto viene fornito dall'azienda che lo produce la quale poi potrà indurre degli sconti sui suoi prodotti. Gli attributi del Fornitore sono:
- Codice
- Nome
- Numero Telefonico
- Indirizzo
I prodotti possono essere acquistati o prenotati dai Clienti i quali sono caratterizzati da:
- Codice Fiscale
- Codice Tessera
- Nome
- Cognome
- Numero Telefonico
Ad ogni Cliente corrisponde una Tessera con gli attributi:
- Codice
- Codice Cliente
- Tipo
Ogni Prodotto ha una Serie da cui proviene (Manga,serie animata,serie tv, ecc.) distinta da:
- Codice
- Nome
- Tipo
Nei Volumi si vogliono distinguere inoltre i compositori che verranno rappresentati dall'entita Autore con i seguenti attributi:
-
Codice
-
Nome
-
Cognome
-
Nazionalita
-
Progettazzione concettuale
3.1. Lista delle classi
*Prodotti: lista di tutti i prodotti acquistabili nella fumetteria.
-Codice: string
-Fornitore: string
-Prezzo: decimal
-Serie: string
-Disponibilità: int
-Condizione: string
-Saga: string
Sono definite le seguenti sottoclassi con una gerarchia parziale:
*Volumi:
-Autore: string
-Edizione: string
*Modellini:
-Dimensione: float
Per la classe Volumi sono definite le seguenti sottoclassi con una gerarchia totale:
*Manga:
-Numero: string
*Fumetto:
-Numero: string
*Altro
*Fornitore: informazioni sul fornitore con i vari recapiti.
-Codice: string
-Nome: string
-Email: string
-Numero Telefonico: string
-Indrizzo: string
*Clienti: contiene la lista di tutti i clienti con i vari dati anagrafici e recapiti.
-Codice Fiscale: string
-Codice Tessera: string
-Nome: string
-Cognome: string
-Email: string
-Numero Telefonico: string
*Tessera: contiene tutte le tessere che sono state create.
-Codice
-Tipo
-Codice cliente: string
*Serie: contiene tutte le informazioni riguardanti le serie di provenienza dei vari prodotti.
-Codice: string
-Nome: string
-Tipo: string
*Autore: lista degli autori con le informazioni su questi.
-Codice: string
-Nome: string
-Cognome: string
-Nazionalita: string
3.2. Lista delle associazioni
*Prodotto-Fornitore: Fornitura
-Ogni Fornitore produce uno o piu Prodotti.
-Ogni Prodotto viene fornito da un solo Fornitore.
-Molteplicita(N,1)
*Prodotto-Serie: Appartenenza
-Ogni Prodotto appartiene ad una ed una sola Serie.
-Ogni Serie ha uno o piu Prodotti che le appartengono.
-Moltelplicita(1,N)
*Volume-Autore: Scrittura
-Ogni Volume puo essere scritto da uno o piu Autori
-Ogni Autore puo aver scritto uno o piu Volumi
-Molteplicita(N,N)
*Cliente-Tessera: Possesso
-Un Cliente puo avere o meno una Tessera
-Una Tessera appartiene ad uno ed un solo Cliente
-Molteplicita(1,N)
*Cliente-Prodotto: Vendita
-Un Cliente puo' comprare uno o piu' Prodotti con diponibilita>0
-Un Prodotto puo' essere comprato da uno o piu' Clienti
-Molteplicita(N,N)
*Cliente-Prodotto: Prenotazione
-Un Cliente con attributo tessera diverso da null puo' prenotare uno o piu' Prodotti
-Un Prodotto con disponibilita=0 puo' essere prenotato da uno o piu' Clienti
-Molteplicita(N,N)
- Ristrutturazione logica
4.1. Eliminazione delle generalizzazioni
*Generalizzazione "Tessera"
Tutte le entita figlie vengono riunite nell'attributo 'tipo' di Tessera, il quale potra assumere i valori "Base","Intermedia" o "Premium" per distinguere le varie tipologie di Tessera.
*Generalizzazione "Volume"
Tutte le entita figlie vengono riunite nell'attributo 'tipo' di Volume, il quale potra assumere i valori
"Manga","Fumetto" o "Altro" per distinguere le varie tipologie di Volumi.L'attributo "numero" viene accorpato in
Volume e nel caso in cui sia necessario può essere null (ad esempio per i libri).
*Generalizzazione "Prodotto"
Le entità figlie vengono accorpate all'entità padre e gli attributi diventano opzionali.