Relazione - Riucc/Comic-san GitHub Wiki

  1. 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.

  2. 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:

  1. Codice
  2. Fornitore
  3. Prezzo
  4. Serie
  5. Disponibilità
  6. Condizione
  7. 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:

  1. Codice
  2. Nome
  3. Mail
  4. Numero Telefonico
  5. Indirizzo

I prodotti possono essere acquistati o prenotati dai Clienti i quali sono caratterizzati da:

  1. Codice Fiscale
  2. Codice Tessera
  3. Nome
  4. Cognome
  5. Email
  6. Numero Telefonico

Ad ogni Cliente corrisponde una Tessera con gli attributi:

  1. Codice
  2. Codice Cliente
  3. Tipo

Ogni Prodotto ha una Serie da cui proviene (Manga,serie animata,serie tv, ecc.) distinta da:

  1. Codice
  2. Nome
  3. Tipo

Nei Volumi si vogliono distinguere inoltre i compositori che verranno rappresentati dall'entita Autore con i seguenti attributi:

  1. Codice

  2. Nome

  3. Cognome

  4. Nazionalita

  5. 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)
  1. 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.