1
Fork 0
mirror of https://github.com/Steffo99/alexandria.git synced 2024-11-22 05:44:19 +00:00
bdd-2020-alexandria/copione.md

119 lines
5.6 KiB
Markdown
Raw Normal View History

_____
*Chiara*
2020-05-20 16:40:21 +00:00
### Titolo
Buongiorno a tutti, noi siamo Chiara Calzolari e Stefano Pigozzi e in questo video presenteremo Alexandria, il nostro progetto per la classe di Basi di Dati.
_____
*Steffo*
2020-05-20 16:40:21 +00:00
### Perchè Alexandria
2020-05-21 14:58:34 +00:00
Volevamo realizzare un sito web che permettesse agli utenti di creare e condividere la loro libreria multimediale, composta dai libri che hanno letto, film che hanno visto e videogiochi a cui hanno giocato.
2020-05-20 16:40:21 +00:00
2020-05-21 14:58:34 +00:00
Volevamo pubblicare il progetto su GitHub, e per farlo, avevamo bisogno di un nome da dargli che fosse facile da ricordare.
2020-05-20 16:40:21 +00:00
2020-05-21 14:58:34 +00:00
Allora, dato che parte del progetto riguardava i libri, abbiamo deciso di dargli il nome di Alexandria, come il nome della città in cui si trovava la più grande biblioteca dell'antichità.
2020-05-20 16:40:21 +00:00
_____
*Chiara*
2020-05-21 21:24:13 +00:00
2020-05-20 16:40:21 +00:00
### Schema Scheletro - pagina principale
2020-05-21 21:24:13 +00:00
Lo schema scheletro del progetto sarà suddiviso in sezioni, ciascuna riguardante un media diverso: Libri e audiolibri, Film o Videogiochi.
2020-05-20 16:40:21 +00:00
### Schema Scheletro - generico
2020-05-21 21:24:13 +00:00
Questa è la sezione principale, in cui descriviamo il fatto che gli utenti potranno aggiungere elementi alla loro raccolta multimediale, e recensirli. A questo punto, l'entità Elemento si divide in tre entità figlie: libro, film e videogioco.
2020-05-20 16:40:21 +00:00
### Schema Scheletro - libro
2020-05-21 21:24:13 +00:00
Questa è la sezione in cui ci occupiamo di libri e audiolibri.
Per ogni libro vengono raccolte alcune informazioni salienti, come gli autori, i generi e la trama. Invece, altre info come il numero di pagine sono definite per singola edizione.
2020-05-20 16:40:21 +00:00
### Schema Scheletro - Film
2020-05-21 21:24:13 +00:00
In questa sezione si gestiscono invece i film. Vengono raccolti il titolo, il codice EIDR e altre informazioni classiche, ma una cosa degna di nota è questa ternaria, che elenca il cast di un film e, per ogni membro, il ruolo che ha svolto.
2020-05-20 16:40:21 +00:00
### Schema Scheletro - Videogiochi
2020-05-21 21:24:13 +00:00
Arriviamo infine all'ultima sezione, la sezione Videogiochi. Anche qui vengono raccolte informazioni sul videogioco in generale, come lo sviluppatore e il publisher, e altre informazioni vengono invece distinte per ogni piattaforma.
2020-05-20 16:40:21 +00:00
_____
*Steffo*
2020-05-20 16:40:21 +00:00
### Spazio idee
2020-05-21 15:33:11 +00:00
Queste invece sono tutte le cose che abbiamo contribuito allo spazio idee.
2020-05-20 16:40:21 +00:00
### autoassociazioni
2020-05-21 15:33:11 +00:00
Partiamo dalle autoassociazioni.
2020-05-20 16:40:21 +00:00
2020-05-21 15:33:11 +00:00
In Alexandria, le autoassociazioni vengono usate per rappresentare correlazioni tra libri, film e videogiochi.
2020-05-20 16:40:21 +00:00
2020-05-21 15:33:11 +00:00
Esempi di correlazioni possono essere i sequel, i prequel, oppure opere ambientate nello stesso universo, come ad esempio, L'Impero Colpisce Ancora, che sarà correlato con Una Nuova Speranza e Il Ritorno dello Jedi.
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
### Identificatori esterni
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
In quanto agli identificatori esterni, in Alexandria ne abbiamo due casi.
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
### Identificatori esterni - recensione
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
Il primo sono le recensioni pubblicate dagli utenti relative a un elemento, che sono identificate dall'ID dell'elemento a cui si riferiscono.
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
### Identificatori esterni - localizzazione
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
Il secondo, invece, sono i film che hanno titoli diversi per ogni lingua.
2020-05-20 16:40:21 +00:00
2020-05-21 15:51:43 +00:00
Mentre nei libri e nei giochi gestiamo questa possibilità attraverso le entità edizione, non possiamo fare lo stesso nei film, che non ne sono dotati.
2020-05-21 15:51:43 +00:00
Abbiamo quindi creato l'entità Localizzazione: essa usa un identificatore composto dal codice EIDR del film e dal codice ISO della lingua (dove, ad esempio, l'italiano corrisponde a it).
2020-05-20 16:40:21 +00:00
### gerarchie
2020-05-21 16:13:35 +00:00
In quanto alle gerarchie, invece, ne abbiamo due.
2020-05-20 16:40:21 +00:00
2020-05-21 16:13:35 +00:00
### gerarchie - elemento
2020-05-20 16:40:21 +00:00
2020-05-21 16:13:35 +00:00
La prima sta alla base dell'intero sistema di Alexandria.
2020-05-20 16:40:21 +00:00
2020-05-21 16:13:35 +00:00
Essa rappresenta una specializzazione di ogni elemento esclusivamente in un tipo.
2020-05-20 16:40:21 +00:00
2020-05-21 16:13:35 +00:00
Utilizzando la gerarchia, possiamo avere attributi e relazioni generalizzati per ogni elemento, ma possiamo anche avere specializzazioni necessarie ad esempio a collegare ogni elemento al suo corrispettivo libro film o gioco.
2020-05-20 16:40:21 +00:00
### gerarchie - edizione
2020-05-21 16:13:35 +00:00
La seconda gerarchia invece riguarda la distinzione tra libri e audiolibri.
Entrambi, infatti, hanno relazioni in comune, ma anche attributi come "durata" o relazioni come "narrato da" che riguardano uno ma non l'altro.
2020-05-20 16:40:21 +00:00
2020-05-21 16:13:35 +00:00
Si viene a creare così una gerarchia totale ed esclusiva.
2020-05-20 16:40:21 +00:00
_____
*Chiara*
### dato derivato
In `alexandria` non sono presenti molti dati quantitativi. Un dato derivato aggiungibile, però, è il numero di libri, film o videogame presenti nella libreria multimediale di un utente.
2020-05-20 16:40:21 +00:00
2020-05-21 21:24:13 +00:00
Valuteremo il costo di due operazioni: l'Inserimento di un nuovo libro/film/videogame nella tabella, e la visualizzazione completa dei dati di un utente
2020-05-20 16:40:21 +00:00
2020-05-21 21:24:13 +00:00
La tabella dei volumi è stata creata in base a statistiche trovate su internet, mentre la tabella degli accessi non sarà ricavata.
2020-05-20 16:40:21 +00:00
2020-05-21 21:24:13 +00:00
Con il dato derivato, per eseguire l'operazione 1, inserisco una nuova tupla nella tabella Elemento, e poi aggiorno la tabella Utente, passando per Possiede. Occorreranno un write, un aggiornamento per Possiede e uno per Utente, quindi 3 write e 2 read. Per l'operazione 2 leggo semplicemente il dato dalla tabella Utente, quindi 1 read
2020-05-20 16:40:21 +00:00
2020-05-21 21:24:13 +00:00
Senza dato derivato, per l'Operazione 1 inserisco una nuova tupla senza aggiornare altro, quindi 1 write. Per l'Operazione 2 invece, passando per Possiede, devo calcolare la quantità di elementi del tipo desiderato. Occorre calcolare la cardinalità di passaggio fra Utente e Possiede, che risulta essere 96. Il costo sarà quindi di ben 96 read.
2020-05-20 16:40:21 +00:00
### Risultato finale
2020-05-21 21:24:13 +00:00
Abbiamo calcolato i costi singoli di ciascuna operazione, adesso calcoliamo quale rapporto devono avere perché convenga il dato derivato.
2020-05-20 16:40:21 +00:00
2020-05-21 21:24:13 +00:00
Confrontando i due costi in funzione delle operazioni, perché convenga tenere il dato derivato, le operazioni di inserimento devono essere al massimo 94/5 in più di quelle di visualizzazione (quindi circa 19 volte tanto).
___
*Steffo*
### Switchando verso il titolo
2020-05-21 21:24:13 +00:00
Bene, questo è tutto, grazie per la vostra attenzione, arrivederci.
2020-05-21 14:58:34 +00:00
___