From 6739ace6b2e2096d4f7b27a108aa2845e89f4a34 Mon Sep 17 00:00:00 2001 From: Cookie-CHR Date: Tue, 12 May 2020 13:34:43 +0200 Subject: [PATCH] Aggiunta immagine datoderivato.png --- datoderivato.md | 71 +++++++++++++++++++++++++++++++++++++++++++ img/datoderivato.png | Bin 0 -> 38107 bytes 2 files changed, 71 insertions(+) create mode 100644 datoderivato.md create mode 100644 img/datoderivato.png diff --git a/datoderivato.md b/datoderivato.md new file mode 100644 index 0000000..fa1e05f --- /dev/null +++ b/datoderivato.md @@ -0,0 +1,71 @@ +# Caso di studio: aggiunta di un dato derivato + +In `alexandria` non sono presenti molti dati quantitativi: la maggior parte delle proprietà sono infatti qualitative, e come tali descritte da stringhe. Un dato derivato aggiungibile, però, è il numero di libri, film o videogame presenti nella libreria multimediale di un utente. + +![](img/datoderivato.png) + +Per sapere se conviene mantenere questo dato derivato, effettuiamo un'analisi dei costi: + +## Analisi dei costi + +*(Ndr: in seguito verranno calcolati i costi di mantenimento solo di uno dei tre dati derivati, perché il costo e il procedimento sono sempre gli stessi.)* + +Valuteremo il costo di due operazioni: +- Operazione 1: Inserimento di un nuovo libro/film/videogame nella tabella +- Operazione 2: Visualizzazione dei dati di un utente, compreso il numero di libri/film/videogame presenti nella sua libreria multimediale + +Le tabelle dei volumi sono state create in base a statistiche trovate ricercando online: Ogni anno in media una persona legge 12 libri, guarda 60 film e compra 24 videogame, per un totale di 96 elementi per ogni utente, circa. Immaginandoci 100 utenti, avremo quindi 9600 elementi: + +| Concetto | Tipo | Volume | +|----------|:----:|-------:| +| Utente | E | 100 | +| Elemento | E | 9600 | + +La tabella degli accessi non sarà ricavata: i dati verranno analizzati in funzione di quest'ultima come conclusione. + + +### Con dato derivato: +Operazione 1: Inserisco una nuova tupla nella tabella Elemento, e poi aggiorno l'apposito attributo nella tabella Utente, passando per l'associazione Possiede. + +Ogni elemento è posseduto da un unico utente, quindi l'associazione in questo caso è 1 a 1. Ne segue che occorreranno un aggiornamento per Possiede e uno per Utente, quindi due aggiornamenti in tutto. + +1 write + (2 read + 2 write) = 7 per operazione + +Operazione 2: Leggo il dato dalla tabella Utente + +1 read = 1 + +### Senza dato derivato: +*Operazione 1*: Inserisco una nuova tupla nella tabella elemento, senza aggiornare altro + +1 write = 2 per operazione + +Operazione 2: Passando per l'associazione Possiede, calcolo la quantità di elementi del tipo desiderato. Poniamo che, per calcolare la quantità di elementi che soddisfano una condizione, sia necessario e sufficiente leggerli tutti. + +Ogni utente possiede in media N elementi, quindi occorreranno un numero 2*N di operazioni read (N per l'associazione e N per l'entità). N, ossia la cardinalità di passaggio, verrà calcolato in base alla tabella dei volumi fra Utente e Possiede: + +Card(Utente -> Possiede) = Vol(Possiede) / Vol(Utente) + +Vol(Utente) = 100 + +Vol(Possiede) = Vol (Elemento) = 9600 + +Card(Utente -> Possiede) = 9600 / 100 = 96 + +Il costo sarà quindi + +96 read = 96 per operazione + +## Risultato finale + +Abbiamo calcolato i costi singoli di ciascuna operazione, adesso calcoliamo quale rapporto devono avere le due operazioni perché convenga il dato derivato. + +Al momento abbiamo queste due equazioni che rappresentano i costi totali: + +CostoCon: 7 * Op1 + 2 * Op2 + +CostoSenza: 2 * Op1 + 96 * Op2 + +Dove Op1 e Op2 sono rispettivamente la frequenza di esecuzione dell'operazione 1 e dell'operazione 2, e CostoCon e Costosenza sono le equazioni dei costi con e senza il dato derivato. + +Ponendo CostoCon < CostoSenza e facendo tutti i calcoli del caso, risulta che il rapporto fra Op1 e Op2 deve essere strettamente minore di 94/5. Ne consegue che, perché convenga tenere il dato derivato, le operazioni di inserimento di un nuovo dato devono essere al massimo 19 volte di più delle operazioni di visualizzazione. \ No newline at end of file diff --git a/img/datoderivato.png b/img/datoderivato.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf326522cf01b6dc7550242c5091c289ec771fd GIT binary patch literal 38107 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 BpP2vv literal 0 HcmV?d00001