Laboratorio di basi di dati
Progettazione concettuale
Dizionario dei termini
| Termine | Descrizione | Sinonimi | Collegamenti |
|---|---|---|---|
| Giocatore | Persona fisica iscritta al gioco, può possedere zero o più villaggi. | Utente | Villaggio |
| Villaggio | Elemento fondamentale del gioco, un giocatore può possederne uno o più. | Infrastruttura, truppa | Giocatore |
| Infrastruttura | Costruzione appartenente ad un villaggio. Può essere militare, civile o di produzione dei beni. | Campo di grano, municipio, magazzino, caserma | Villaggio |
| Attacco | Combattimento tra due villaggi. | Villaggio, truppa | |
| Truppa | Unità militare di un villaggio, le singole truppe (legionario, pretoriano, ecc...) | Fanteria, cavalleria, armi | Attacco, villaggio |
Modello E-R realizzato con approccio inside-out, detto anche “a macchia d'olio”. Lo sviluppo è partito dalle entità giocatore e villaggio e dalla loro messa in relazione, in quanto concetti basilari dello schema. In seguito è avvenuto lo sviluppo delle infrastrutture, individuando gli attributi fondamentali e utilizzando una generalizzazione per i tipi specifici richiesti dal gioco. Per il passaggio di livello delle infrastrutture sono state introdotte delle costanti (gli attributi a_up, f_up, g_up, l_up) che, moltiplicate per il livello, restituiscono le quantità richieste di argilla, ferro, grano e legno per il potenziamento desiderato: il fattore di moltiplicazione è diverso per ogni infrastruttura. Lo sviluppo è stato completato con la parte riguardante gli attacchi e le truppe. Per queste ultime è stata introdotta un'entità per rappresentare i vari tipi di truppe con i loro valori di attacco e difesa e le quantità necessarie per produrre un'unità di una specifica truppa: in questo caso i valori a_up, f_up, g_up, l_up non sono dei moltiplicatori, ma le quantità effettivamente richieste. La presenza delle truppe in un villaggio è rappresentata in una relazione tra l'entità del tipo truppa e quella dei villaggi. Per registrare i combattimenti è stata creata un'entità apposita, avente come attributi un id progressivo e la data-ora del combattimento. Le partecipazioni dei villaggi ai combattimenti sono state rese tramite due associazioni tra l'entità Villaggio e quella Combattimento: una per il villaggio che sferra l'attacco ed un'altra per il villaggio che deve difendersi, in entrambi i casi con il numero di truppe impiegate e perse. Queste due associazioni sono ternarie, in quanto viene collegata anche l'entità dei tipi di truppa, in modo da attingere all'elenco dei tipi di truppe esistenti per specificare le truppe impiegate.
Regole di vincolo
- RV1) Le coordinate di un villaggio devono essere comprese nell'intervallo -375,+375.
- RV2) Due villaggi diversi non possono avere le stesse coordinate.
- RV3) Il livello di un'infrastruttura può variare da 1 a 20.
- RV4) Per ogni villaggio si possono creare fino ad un totale di 6 infrastrutture di produzione beni e fino ad altre 3 infrastrutture per ogni altro tipo.
- RV5) Le quantità di risorse non possono essere minori di 0.
- RV6) Un villaggio non può attaccare se stesso.
- RV7) In un combattimento, il numero di truppe di un tipo perse da un villaggio non può essere superiore al numero di truppe di quel tipo impiegate.
Regole di derivazione
- RV1) Il numero di abitanti di un villaggio si ottiene sommando la popolazione di tutte le infrastrutture presenti in esso.
- RV2) Il numero di abitanti di un’infrastruttura si ottiene moltiplicando per 2 il suo livello e sommando 3 al risultato.
- RV3) Il numero di truppe in un villaggio si ottiene sommando tutte le diverse unità militari presenti in esso.
- RV4) Le quantità totali di grano, ferro, legno ed argilla di un villaggio si ottengono sommando le rispettive quantità presenti in ogni magazzino di quel villaggio.
Progettazione logica
Analisi delle ridondanze
Abitanti Villaggio. Attributo dell'entità Operazioni che lo coinvolgono:
- Registrare un nuovo utente e la creazione di un nuovo villaggio (580 volte /gg).
- Registrare il passaggio di livello di un’infrastruttura (40.000 volte /gg).
- Trovare i dieci giocatori che hanno il più alto numero di abitanti (300 volte /gg).
L’operazione 3 in cui viene effettuato il passaggio di livello di un’infrastruttura coinvolge anche gli abitanti perché salendo il livello aumenta il numero di abitanti. L’operazione 1 coinvolge l’attributo abitanti perché creando un nuovo villaggio, vengono create da subito infrastrutture con una determinata popolazione e bisogna calcolare il numero di abitanti del nuovo villaggio.
Tavola dei volumi
| Concetto | Costrutto | Volume |
|---|---|---|
| Utente | E | 100.000 |
| Villaggio | E | 100.000 |
| Composto | R | 3.900.000 |
| Infrastruttura | E | 3.900.000 |
Un villaggio può avere da un minimo 18 infrastrutture (villaggio creato ex-novo) a un massimo di 60 totali, la media è di 39 da cui il volume per l’entità Infrastrutture.
Tavole degli accessi per le operazioni individuate
Operazione 3 con ridondanza
| Concetto | Costrutto | Accessi |
|---|---|---|
| Infrastruttura | E | 1 |
| Composizione | R | 1 |