Univercity Studio analitico per la creazione di un Database atto alla gestione di gioco di ruolo A cura di Michele Consiglio,Veronica Di Giorgio,Carmelo Pennisi, Giuseppe Tropea Univercity Panoramica Fasi della progettazione Progettazione concettuale Progettazione logica Progettazione fisica In questo seminario ci concentreremo in particolare sulle prime due fasi. 2 Univercity Panoramica Strategia di progetto Strategia top-down Strategia bottom-up Strategia inside-out Strategia mista Nella maggior parte dei casi la strategia mista è l’unica applicabile. Nel progettare la nostra base di dati abbiamo utilizzato proprio questa. 3 Univercity Panoramica Progettazione Concettuale Analisi dei Requisiti Costruzione del Glossario Eliminazione delle ambiguità Creazione insiemi omogenei Creazione Schema Scheletro Definizione Business Rule Analisi sottosistemi e passi di raffinamento Creazione schema finale Analisi di qualità 4 Univercity Panoramica Progettazione Logica Creazione tavola delle Frequenze Creazione tavola dei volumi Analisi delle ridondanze e calcolo dei costi Creazione dipendenze funzionali BCNF e 3NF 5 6 Univercity Panoramica Progettazione Concettuale Lo scopo della progettazione concettuale è tradurre la descrizione informale della realtà, risultato dell’analisi dei requisiti del DataBase, in uno schema formale, cioè un insieme di concetti e notazioni standard adatti alla rappresentazione del dominio applicativo, e completo che dovrà essere indipendente dai criteri di rappresentazione del DBMS usato. 7 Univercity Progettazione Concettuale Analisi dei Requisiti •L’Università è divisa in confraternite •Ogni utente appartiene ad una sola confraternita •Il giocatore può avere più oggetti •Ogni giocatore può accedere solo ad oggetti adatti al suo livello •Ogni utente possiede una stanza •L’utente può passare ad una nuova stanza •Gli oggetti sono contenuti nel negozio •Il giocatore ha un set di attributi modificabili •Il giocatore ha un livello •Un utente può vedere le stanze del proprio livello o inferiore •L’utente sceglie un piano di studi •Ogni piano di studi contiene più materie •Le materie sono definite da un livello richiesto per sostenerne l’esame •Ogni confraternita avrà un livello all'interno dell'università •Il piano di studi non può essere cambiato 8 Univercity Progettazione Concettuale Analisi dei Requisiti •L’utente può dare le materie del proprio piano di studi •L’utente può cambiare confraternita •L’utente può ricercare gli altri giocatori •Per ogni giocatore viene mostrata solo una parte degli attributi •L’elenco delle confraternite può essere visto da qualunque utente •L’utente può effettuare delle attività •L’utente può fare dei lavori •Ogni lavoro fa guadagnare dei soldi al giocatore •Le attività di svago possono far guadagnare soldi al giocatore •Un giocatore può fare qualunque attività per un massimo di tempo al giorno •Gli oggetti possono essere richiesti per effettuare le attività •Un giocatore può sfidare un altro utente •In caso di sfida gli attributi degli utenti decideranno l’esito •Per accedere alle attività un utente deve soddisfare dei requisiti •Acquistando gli oggetti le skill dell’utente aumentano •Ogni oggetto definisce l’aumento delle skill dell’utente 9 Univercity Progettazione Concettuale Analisi dei Requisiti •Ogni utente può possedere al più 5 oggetti •La stanza rigenera l’energia dell’utente di un tot •Le stanze di livello maggiore aumentano la capacita di rigenerazione •Ogni sfida può far guadagnare all’utente dei punti •Ogni sfida fa diminuire l’energia del giocatore. •Il giocatore deve completare un test •Ogni domanda deve avere un certo numero di risposte disponibili •Ogni risposta e associata alla prossima domanda da mostrare •Alla fine del questionario l’utente viene smistato in una confraternita •Ogni attività concorre all’aumentare dell’esperienza del giocatore •Ogni volta che l’esperienza raggiunge 100 l’utente sale di livello •Se l’utente raggiunge determinati livelli dovrà sostenere uno o più esami •Ogni utente ha un rango all’interno della confraternita •Ogni attività si svolge in un luogo •Più attività possono essere svolte nello stesso luogo •L’utente deve fornire un nome, una password e una email per essere identificato •Il lavoro fa aumentare le skills dell’utente 10 Progettazione Concettuale Costruzione del Glossario Univercity Termine Utente Descrizione Nome Email Password Livello Tempo_attività Confraternita Livello Nome Nome Nome Livello Propedeuticità Piano di studi Materia Negozio Attività Denaro Oggetto_necessario Aumento_Attributo Luogo Sinonimi Giocatore Legame Confraternita Skills Rango Stanza Attività Lavoro Piano di studi Utente Categoria Materia Piano di studi Oggetto Utente Oggetto Attributo 11 Progettazione Concettuale Costruzione del Glossario Univercity Termine Lavoro Skills Oggetto Stanza Descrizione Valore_attributo Remunerazione Nome Valore Nome Livello Aumento_attributo Livello Valore rigenerazione Test Sinonimi Legame Attributo Attributo Utente Negozio Attributo Questionario Rango Domanda Nome Testo Risposta Testo DomandaSuccessiva Utente Attributo Confraternita Utente Test Risposta Domanda 12 Univercity Progettazione Concettuale Insiemi omogenei e ambiguità È stata rilevata una ambiguità nella definizione dei requisiti relativi al negozio e al test. Con negozio non si intende effettivamente una nuova entità bensì una congettura relativa al contenitore degli oggetti, infatti non saranno presenti più negozi ma solo uno a cui si accederà per acquistare nuovi oggetti, venderne di vecchi… Anche il test è solo una congettura in quanto non esiste una entità ma solo il concetto che collega domande e risposte nell’ordine corretto. 13 Univercity Progettazione Concettuale Insiemi omogenei e ambiguità Negozio •L’ utente può avere più oggetti •Ogni utente può accedere solo ad oggetti adatti al suo livello •Gli oggetti sono contenuti nel negozio •L’utente può possedere al più 5 oggetti •Gli oggetti possono essere richiesti per effettuare le attività •Acquistando gli oggetti le skill dell’utente aumentano Lavoro •Ogni lavoro fa guadagnare dei soldi all' utente •L’utente può fare dei lavori •Il lavoro fa aumentare le skills dell’utente Test •Il giocatore deve completare un test •Alla fine del questionario l’utente viene smistato in una confraternita •Ogni domanda deve avere un certo numero di risposte disponibili • Ogni risposta e associata alla prossima domanda da mostrare 14 Univercity Progettazione Concettuale Insiemi omogenei e ambiguità Skills •Acquistando gli oggetti le skill dell’utente aumentano •Il lavoro fa aumentare le skills dell’utente •Ogni oggetto definisce l’aumento delle skill dell’utente •Il giocatore ha un set di attributi modificabili •Per ogni giocatore viene mostrata solo una parte degli attributi •In caso di sfida gli attributi degli utenti decideranno l’esito 15 Univercity Progettazione Concettuale Costruzione dello schema scheletro Entità fondamentali individuate: •Lo studente, fulcro del gioco, che effettua numerose azioni e si sposta in diversi luoghi all’interno dell’università. •Il negozio, il cui compito è vendere oggetti agli studenti (solo oggetti accessibili al livello dello studente) •Le stanze, alloggi indispensabili per la permanenza degli studenti all’interno dell’università •Il piano di studi, insieme di materie che lo studente dovrà scegliere e di cui dovrà sostenere gli esami •Le materie, il cui superamento è necessario per il miglioramento delle attitudini dello studente •Le confraternite, di cui l’utente farà parte una volta completato un questionario utile all’assegnamento della rispettiva confraternita 16 Univercity Progettazione Concettuale Costruzione dello schema scheletro •Attività, un elenco di attività che l’utente può svolgere per migliorare le sue attitudini e anche per guadagnare denaro •Lavoro, indispensabile per lo studente per guadagnare soldi e poter avere una vita sociale •Gli oggetti, che permettono allo studente di migliorare le sue abilità e possono essere richiesti per effettuare qualche attività •Skill dell’utente, determinanti durante le sfide poiché ne decidono l’esito..esse possono aumentare grazie agli oggetti •Il questionario, fondamentale per l’assegnazione dell’utente ad una confraternita. •Il rango , inteso come grado di importanza all’interno della confraternita 17 Univercity Progettazione Concettuale Costruzione dello schema scheletro 18 Progettazione Concettuale Business Rules: Termini Univercity Entità Descrizione Utente Rappresenta l’utente all’interno del gioco Email Stanza Alloggio per il giocatore all’interno del gioco Nome Piano di studi Insieme di materie che il giocatore può scegliere Insieme di nozioni che lo studente deve dimostrare di aver acquisito sostenendo un esame Materia Confraternita Attività Identificatore Attributi Cardinalità Nome Email Password Livello Tempo_attività Denaro Nome Livello Valore_rigenerazione (1,1) (1,1) (1,1) (1,1) (1,1) (1,1) (1,1) (1,1) (1,1) Nome Nome (1,1) Nome Nome Livello Propedeuticità (1,1) (1,1) (0,N) Insieme di giocatori caratterizzati da Nome caratteristiche comuni Nome Livello (1,1) (1,1) Delle attività che il giocatore può effettuare per migliorare e/o guadagnare denaro Nome Denaro Oggetto_necessario Aumento_attributo Attributo Luogo Tempo massimo (1,1) (0,1) (0,N) (1,N) (1,N) (1,1) (1,1) Nome 19 Progettazione Concettuale Business Rules: Termini Univercity Entità Descrizione Identificatore Lavoro Lavori che il giocatore può effettuare per guadagnare denaro Oggetto Oggetti utili al giocatore per svolgere (Nome,Livello) della attività e/o migliorare le proprie caratteristiche Skills Rango Domanda Risposta Nome Insieme di caratteristiche appartenenti al giocatore La qualifica assegnata al giocatore all’interno della confraternita di appartenenza Nome Domanda del quiz che il giocatore deve compilare Risposte possibili alle domande poste durante il quiz da compilare Testo Nome Testo Attributi Cardinalità Nome Valore_attributo Remunerazione Nome Livello Aumento_attributo (1,1) (1,1) (1,1) (1,1) (1,1) (1,1) Nome Valore Nome (1,1) (1,1) (1,1) Testo Risposta Testo (1,1) (1,N) (1,N) 20 Univercity Progettazione Concettuale Business Rules: Relazioni Relazioni Composizione Attributi NomePiano NomeMateria Entità coinvolte PianoDiStudi Materia Cardinalità (1,N) (1,N) Email NomePiano Utente PianoDiStudi (1,1) (0,N) Email NomeLavoro Utente Lavoro (0,N) (0,N) Email NomeAttività Utente Attività (0,N) (0,N) Email NomeStanza Email (NomeOggetto,Livello) Utente Stanza Utente Oggetto (1,1) (1,1) (0,N) (0,N) Frequenza Adempimento Svolgimento Residenza Zaino Descrizione Specifica la composizione del piano di studi da un insieme di materie Specifica che l’utente frequenta le lezioni del suo determinato piano di studi Specifica che l’utente adempie a dei determinati lavori Specifica che l’utente può svolgere determinate attività Specifica che l’utente risiede in una stanza Specifica che l’utente può possedere diversi oggetti 21 Progettazione Concettuale Business Rules: Relazioni Univercity Relazioni Descrizione Attributi Entità coinvolte Cardinalità Vendita Specifica che gli oggetti vengono venduti nel negozio (NomeOggetto,Livello) Oggetto Negozio (1,N) (1,N) Associazione Specifica che ad una domanda sono associate delle risposte TestoDomanda TestoRisposta Domanda Risposta (1,N) (1,N) Appartenenza Specifica l’appartenenza dell’utente alla confraternita Email NomeConfraternita Utente Confraternita (1,1) (0,N) Specifica che l’utente è Email caratterizzato da alcune skills NomeSkill Utente Skills (1,N) (1,N) Specifica che all’utente viene assegnato un rango Utente Rango (1,1) (0,N) Caratterizzazione Assegnazione Email NomeRango 22 Univercity Progettazione Concettuale Business Rule: Regole di vincolo Negozio: • • • • • L’utente DEVE acquistare solo oggetti adatti al suo livello Gli oggetti DEVONO essere venduti nel negozio L’acquisto degli oggetti DEVE far aumentare le skills dell’utente L’utente NON DEVE possedere più di 5 oggetti L’utente DEVE soddisfare dei requisiti per accedere alle attività Lavoro: • L’utente DEVE fare dei lavori • Le attività DEVONO svolgersi in un luogo • Il lavoro DEVE fare aumentare le skills dell’utente 23 Univercity Progettazione Concettuale Business Rule: Regole di vincolo Test: • • • • L’utente DEVE completare un test Ogni domanda DEVE avere un certo numero di risposte Ogni risposta DEVE essere associata alla domanda successiva Dopo il test l’utente DEVE essere smistato in una confraternita Skills: • • • • • • • L’utente DEVE visualizzare solo alcune caratteristiche degli altri utenti L’esito della sfida DEVE essere deciso dalle skills dei due utenti L’acquisto degli oggetti DEVE far aumentare le skills dell’utente L’utente DEVE soddisfare dei requisiti per accedere alle attività La stanza DEVE far rigenerare l’energia dell’utente in parte La sfida DEVE far diminuire l’energia all’utente Il lavoro DEVE fare aumentare le skills dell’utente 24 Progettazione Concettuale Business Rule: Regole di derivazione Univercity • L’aumento delle skills è ottenuto tramite l’acquisto di un oggetto • Il livello di una confraternita è ottenuto tramite la media dei livelli dei singoli utenti appartenenti alla confraternita • L’aumento delle skills è ottenuto tramite lo svolgimento di un lavoro( se l’aumento è previsto da quel lavoro) • L’aumento delle skills è ottenuto tramite lo svolgimento di una attività ( se l’aumento è previsto da quella attività) • L’aumento delle skills è ottenuto dalla vittoria di una sfida • L’aumento di energia dell’utente è ottenuto dalla stanza • La diminuizione di energia dell’utente è ottenuta dalla sfida • L’aumento dell’esperienza è ottenuto dallo svolgimento di attività • L’aumento di livello dell’utente è ottenuto dal raggiungimento di 100 nell’esperienza 25 Univercity Progettazione Concettuale Analisi sottosistemi e passi di raffinamento Dallo schema scheletro si passa alla decomposizione in sottoschemi utilizzando i sottoinsiemi omogenei individuati al passo precedente e raggruppandoli a seconda di un determinato contesto. Verranno raffinati i concetti presenti sulla base delle loro specifiche, aggiungendo nuovi concetti allo schema per descrivere specifiche non ancora descritte. Per semplicità faremo vedere solo la ricostruzione degli schemi 26 Univercity Progettazione Concettuale Primo Passo 27 Univercity Progettazione Concettuale Secondo Passo 28 Univercity Progettazione Concettuale Terzo Passo 29 Univercity Progettazione Concettuale Piccolo scorcio sulla qualità Completezza Definizione : tutti i dati sono rappresentati e le operazioni relative a questi ultimi possono essere eseguite Dopo una analisi approfondita dei requisiti, la costruzione degli schemi entità relazione, l’attraversamento degli schemi tramite l’esecuzione delle operazioni si ci è resi conto che solo una operazione non era stata prevista ed è stata aggiunta e sarà documentata nella prossima parte di documentazione. A questo punto ogni operazione relativa ai dati può essere eseguita. Si tratta del test che negli schemi visti prima non rispetta i requisiti e il glossario 30 Univercity Progettazione Concettuale Schema Revisionato 31 Univercity Progettazione Concettuale Piccolo scorcio sulla qualità Correttezza Sintattica Definizione : Uso non ammesso di costrutti Semantica Definizione : Uso rispettato costrutti rispetto al loro significato Nessun costrutto è stato utilizzato nel modo sbagliato. Leggibilità Definizione : rappresentazione semplice dei requisiti Ogni requisiti è rappresentato nella maniera più semplice Minimalità Definizione : Tutte le funzionalità descritte una sola volta. Nel seguito della documentazione si avrà uno studio delle ridondanze ma ad una prima analisi ogni operazione è descritta una sola volta. 32 33 Univercity Progettazione Logica Tavola delle Frequenze Id operazione Operazione Frequenza Tipo O1 Registrazione di un nuovo utente 30 volte al giorno I O2 Login Utente 60 volte al giorno I O3 Conteggio/visualizzazione oggetti 60 volte al giorno B O4 Modifica delle skills 160 volte al giorno B O5 Acquisto oggetti 15 volte al giorno I O6 Sfida tra utenti 80 volte al giorno I O7 Svolgimento di una attività/lavoro 120 volte al giorno I O8 Cambiamento di stanza 15 volte al giorno I O9 Dare Materie 4 volte al giorno I O10 Cambio di confraternita 3 volte al mese I O11 Visualizzazione delle skills 60 volte al giorno B O12 Visualizzazione del rango 60 volte al giorno B O13 Update del rango 2 volte al giorno B 34 Progettazione Logica Creazione Tavola dei Volumi Univercity Concetto Tipo Volume Utente E 1’000 Stanza E 30 Piano di studi E 10 Materia E 100 Confraternita E 9 Attività E 50 Lavoro E 50 Oggetto E 50 Skills E 7 Rango E 10 Domanda E 16 Risposta E 55 Composizione R 20 Frequenza R 100 Adempimento R 40 Svolgimento R 40 Residenza R 1’000 Zaino R 2’000 Vendita R 1’000 Associazione R 40 Appartenenza R 1’000 Caratterizzazione R 7’000 Assegnazione R 1’000 35 Univercity Progettazione Logica Ridondanze e costi Analizzeremo adesso le ridondanze riscontrate nel Database Avete trovato qualcosa? 36 Progettazione Logica Tavola Accessi O5 Univercity Quesito : è più conveniente mantenere un contatore per gli oggetti nella tabella utente oppure conteggiarli ad ogni occorrenza? Per conteggiare il numero di oggetti acquistati nella situazione corrente bisogna accedere alle tabelle utente e oggetti tramite la relazione zaino Nella situazione in cui il contatore venga spostato all’interno dell’utente Concetto Costrutto Accessi Tipo Utente Entità 1 L Zaino Relazione 2 L Oggetti Entità 1 L Nella situazione in cui il contatore venga spostato all’interno dell’utente Concetto Costrutto Accessi Tipo Utente Entità 1 L Zaino Relazione 1 L Oggetti Entità 1 L Utente Entità 1 S 37 Univercity Progettazione Logica Valutazione dei costi Valutazione del costo con ridondanza Mantenendo il contatore all’interno della tabella utente, dovremmo aggiungere un campo di grandezza pari a 1 byte (minimo per ottenere il numero 5 con un intero), che comporta quindi l’aggiunta di un campo per ogni utente aggiunto. Avendo valutato nella tabella dei volumi 1’000 utenti avremo 1000 byte in più contenuti nella tabella, approssimativamente 1 KB in più. Se consideriamo una lettura come due scritture si ha che per la tabella senza ridondanze si ha : 3 letture 1 scrittura 5*1000= 5000 Valutazione del costo senza ridondanza Eliminando la ridondanza saranno eseguite sulle tabelle indicate solo 4 letture quindi: 4*1000=4000 38 Univercity Progettazione Logica Conclusione Conviene non mantenere il contatore all’interno della tabella utente sia per motivi di spazio che per tempi di accesso non concorrenziali. 39 Progettazione Logica Tavola Accessi O12 e O13 Univercity Quesito: è più conveniente mantenere il rango nella tabella utente o calcolarlo di volta il volta ? Nel caso in cui il rango è conservato nella tabella utente la tavola degli accessi sarà la seguente Concetto Costrutto Accessi Tipo Utente Entità 1 L Per aumentare il rango dell’utente bisogna fare due accessi alla tabella utente, uno per il controllo del livello utente uno per la scrittura del nuovo rango Concetto Utente Utente Costrutto Entità Entità Accessi 1 1 Tipo L S Altrimenti, non conservandolo si ha l’attraversamento della relazione Assegnazione e una selezione del rango dall’utente. Concetto Utente Assegnazione Costrutto Entità Relazione Accessi 1 1 Tipo L L Il calcolo a seconda del livello implica solo una lettura del valore del livello dell’utente Concetto Utente Costrutto Entità Accessi 1 Tipo L 40 Univercity Progettazione Logica Valutazione dei costi Valutazione del costo con ridondanza Mantenendo il rango all’interno della tabella utente, dovremmo aggiungere un campo di grandezza pari a 1 byte, che comporta quindi l’aggiunta di un campo per ogni utente aggiunto. Avendo valutato nella tabella dei volumi 1’000 utenti avremo 1000 byte in più contenuti nella tabella, approssimativamente 1 KB in più. 2 letture + 1 scrittura 1000* 4= 4000 Valutazione del costo senza ridondanza Eliminando la ridondanza si ha che saranno eseguite sulle tabelle indicate solo 3 letture quindi: 1000 * 3 = 3000 41 Univercity Progettazione Logica Conclusione Conviene non mantenere il rango nella tabella utente. 42 Progettazione Logica Tavola Accessi O7 Univercity Quesito : è più conveniente fare un merge delle tabelle Attività e Lavoro? Concetto Utente Attività Svolgimento Costrutto Entità Entità Relazione Accessi 3 1 1 Tipo S L L Concetto Utente Lavoro Adempimento Costrutto Entità Entità Relazione Accessi 3 1 1 Tipo S L L Facendo il merge si dovrebbe aggiungere un boolean nella tabella Attività, raddoppiandone il volume e sommando i valori nella tabella delle operazioni. Il boolean sarà rappresentato da un tinyint (1) cioè 1 byte. 43 Univercity Progettazione Logica Valutazione dei costi Valutazione del costo con ridondanza Il volume delle tabelle separate sarebbe 50+40 = 90*2=180 3 Scritture+2Letture=8 Letture * 180= 1440 operazioni totali per lo svolgimento di una attività o di un lavoro a scelta, considerando che non si può contemporaneamente fare una attività e un lavoro. Valutazione del costo senza ridondanza Il volume delle tabelle accorpate sarebbe: 50+50+40=140 3 scritture + 2 letture= 8 letture * 140=1120 operazioni totali. Nonostante il volume totale delle tabelle sia minore, si hanno il doppio degli accessi su una tabella che proporzionalmente è quasi di grandezza doppia. 44 Univercity Progettazione Logica Conclusione Come scelta strategica si è deciso di mantenere le tabelle separate minimizzando così gli accessi e ottimizzando i tempi prestazionali. 45 Univercity Progettazione Logica Dipendenze Funzionali Entità Dipendenze Funzionali Utente Nickname->Livello Email->Nickname,Password Livello ->OreAttività Stanza Nome ->Livello Livello ->Rigenerazione Materia Nome->Livello Confraternita Nome->Livello Attività Attività->Nome,Denaro,AumentoAttributo,Luogo Lavoro Lavoro->Nome,Guadagno,AumentoAttributi Oggetto Nome,Livello->AumentoAttributi Skills Nome->Valore Domanda Testo->Risposta Risposta Testo->DomandaSuccessiva 46 Univercity Progettazione Logica Boyce Codd e Third Normal Foms Definizione BCNF : Uno schema relazionale R con dipendenze F si dice in Forma Normale di Boyce-Codd (BCNF) se : per ogni X--->A di F+ , A non appartiene ad X => X e’ una superchiave di R, cioè contiene o è una chiave. Definizione TNF : Uno schema relazionale R con dipendenze F si dice in Terza Forma Normale (3NF) se : per ogni X--->A di F+ , A non appartiene ad X => X e’ una superchiave di R oppure A è primo, cioè appartiene a qualche chiave. Passi per l’algoritmo 3NF Decomposizione sulla base delle dipendenze Join sulle decomposizioni Verifica dei risultati Una relazione r si decompone senza perdita su X1 e X2 se il join tra X1 e X2 non contiene ennuple spurie. Considerazione di inserimenti e cancellazioni Verifica dei principi di integrità 47 Univercity Progettazione Logica Considerazione Le entità che saranno prese in considerazione sono Utente e Stanza perché le altre relazioni si trovano già in BCNF perché in ogni FD a sinistra si trova la chiave della tabella ed inoltre sono dipendenze banali su campi che non sono chiavi alternative. 48 Progettazione Logica Entità utente Univercity Esempio di istanza Email [email protected] [email protected] [email protected] sempronio@do m.it Nome Pippo Tizio Caio Sempronio Password Pippo Tizio Caio Sempronio Livello 1 2 1 3 OreAttività X Y X Z Decomposizione sulle dipendenze Email [email protected] [email protected] [email protected] sempronio@do m.it Nome Pippo Tizio Caio Sempronio Password Pippo Tizio Caio Sempronio Livello 1 2 1 3 Nome Pippo Tizio Caio Sempronio OreAttività X Y X Z Livello X Y X Z 49 Progettazione Logica Considerazione Univercity Il join tra le tabelle non contiene ennuple spurie. Supponiamo ora di voler inserire un nuovo utente, Alfredo con email [email protected], necessario perché chiave per la relazione. Allora avremo l’inserimento di Email Nome Password [email protected] Alfredo ***** Nome Alfredo Livello 1 Livello 1 OreAttività X Ricomponendo con una join non vi sarà violazione dei vincoli d’integrità richiesti sia per i dati che per le dipendenze. Neanche la cancellazione comporta la violazione dei vincoli d’integrità richiesti. 50 Progettazione Logica Entità stanza Univercity Esempio di istanza Nome Stanza1 Stanza2 Stanza3 Stanza4 Livello X Y Z T Rigenerazione A B C D Decomposizione sulle dipendenze Nome Stanza1 Stanza2 Stanza3 Stanza4 Livello X Y Z T Livello X Y Z T Rigenerazione A B C D 51 Progettazione Logica Considerazione Univercity Il join tra le tabelle non contiene ennuple spurie. È importante notare che nella tabella dei Termini delle business rules Nome è chiave primaria per la tabella, ma ciò non rende impossibile l’inserimento di due stanze che abbiano lo stesso livello. Per questo motivo l’inserimento di un nuovo nodo dell’albero decisionale cioè una tupla tipo Nome Stanza5 Livello X Rigenerazione A Comporta una scomposizione di questo tipo Nome Stanza1 Stanza2 Stanza3 Stanza4 Stanza5 Livello X Y Z T X Livello X Y Z T Rigenerazione A B C D In cui la Join non comporta problemi. La stessa cosa vale per la cancellazione. 52 Univercity Progettazione Logica Identificazione Entità Utente (Email,Nome,Password,Livello, Rango, Confraternita, Stanza, PianoDiStudi, Tempo_attività,Denaro) Stanza (Nome, Rigenerazione,Livello) Confraternita (Nome, Livello) Oggetto (Nome, Livello, Aumento_skill) PianoDiStudi (Nome) Materia (Nome, Livello, Propedeudicità) Attività (Nome, Oggetto,Luogo,Requisito, Guadagno,Tempo_Massimo,Aumento_attributo) Lavoro (Nome, Valore_attributo, Guadagno) Skill (Nome,Valore) Rango (Nome) Domanda (Testo,Risposta) Risposta (Testo,DomandaSuccessiva) 53 Univercity Progettazione Logica Identificazione Relazioni -> Entità Composizione (Materia,PianoDiStudi) Associazione (Domanda,Risposta) Svolgimento (Attività,Utente) Adempimento (Utente,Lavoro) Caratterizzazione (Utente,Skill) Zaino (Oggetto,Utente) 54 Grazie per l’attenzione. Il team di Univercity A cura di Michele Consiglio,Veronica Di Giorgio,Carmelo Pennisi, Giuseppe Tropea 55