Sistemi Informativi
Transcript
Sistemi Informativi
Cognome Nome Matricola Sistemi Informativi 09-06-2015 1 (7pt) 2 (8pt) 3 (5pt) 4 (7pt) 5 (7pt) Somma (34pt) Il compito ha la durata di 3 ore, per la compilazione attenersi alle seguenti istruzioni: • LEGGERE le regole prima di iniziare il compito. • Scrivere in maniera chiara. Nome e cognome devono essere scritti in stampatello. • Non sono ammessi appunti o altro materiale, a chiunque copia verrà ritirato l’esame. • Gli esercizi possono essere eseguiti in qualsiasi ordine. L’esame si ritiene superato se si raggiunge il punteggio di 18. La lode si ottiene con punteggio ≥ 31. • Qualsiasi soluzione ragionevole è accettata ma verranno premiate soluzioni complete in termini di sintassi e valutate positivamente la padronanza dei concetti presentati durante il corso. • Sono ammesse le seguenti abbreviazioni nell’XML schema e nel DTD: – <e ...> = <!ELEMENT ... > e <xs:element ... – <a ...> = <!ATTLIST ... > e <xs:attribute ... – <ct ...> = <xs:complexType ... – <st ...> = <xs:simpleType ... 1 > > > > Sia dato il seguente scenario. Si vuole costruire un sistema informativo per gestire tornei per il gioco di ruolo online “Foo Fighters”. La piattaforma gestisce multipli profili utente composti da nome cognome e data di iscrizione e identificati da un numero di tessera progressivo. L’utente può scegliere se specificare nome e cognome. In un torneo sono presenti più team di utenti che si sfidano tra di loro. Il torneo avviene in una determinata data e luogo e ha un id associato. Un team è un gruppo di 2-5 utenti con un nome univoco per il torneo stesso e deve contenere un utente con ruolo di difesa e uno di attacco. I ruoli sono sacerdote e paladino di difesa e guerriero, ladro e mago di attacco. Un utente non può partecipare a più gruppi nello stesso torneo. Le sfide avvengono in una precisa ora del giorno e nessuna squadra può affrontare la stessa squadra due volte. Una sfida ha un vincitore e un punteggio intero da 0 a 5. Esercizio 1 (7 punti). Per lo scenario presentato si progetti un documento XML per il formato di descrizione del gioco. Verranno penalizzate soluzioni che presentano ridondanza e premiato l’utilizzo chiavi esportate, restrizioni, estensioni etc. 1. (2pt) Proporre uno spezzone di XML che rappresenti le informazioni necessarie 2. (2pt) Disegnare il DTD 3. (3pt) Modellare XML schema dei seguenti elementi (e relative chiavi esportate): • L’elemento che identifica i gruppi • L’elemento che identifica le sfide • Le chiavi primarie ed esportate di tutti gli elementi. Esercizio 2 (8 punti). Sullo schema definito precedentemente, scrivere le seguenti interrogazioni XQuery. 1. (1pt) Restituire il torneo con il maggior numero di iscritti. 2. (2pt) Per ogni torneo restituire le sfide che avvengono contemporaneamente. 3. (2pt) Restituire la lista dei gruppi con la media dei punteggi ottenuti nei diversi tornei. 2 4. (3pt) Restituire la lista degli utenti con la media dei punteggi ottenuti nei diversi tornei. Esercizio 3 (7 punti). Si supponga che ogni torneo sia dotato di un sito web e che si abbiano n tornei che linkano al sito della federazione e il sito della federazione a sua volta connesso con il sito dei giochi di ruolo ed esso stesso connesso al sito della federazione. 1. (1pt) Senza fare i conti discutere il PageRank dei siti quando β = 1. 2. (1pt) Fornire la matrice di adiacenza e il PageRank con β = 0.2 e teleport set i siti dei tornei. 3. (3pt) Ora si supponga che, a partire dallo scenario precedente, uno spammer sia in grado di modificare il codice di l < n pagine con lo scopo di inserire link ad una pagina di spam gamexxx.com. Quali pagine gli converrebbe modificare e come? Discutere la migliore strategia con e senza un dumping factor e fornire una spiegazione esaustiva delle motivazioni. 4. (2pt) Si supponga che ad ogni sito sia associato una serie di topic da un insieme di topic conosciuti. Discutere una strategia per trasformare il PageRank in topic sensitive. Fornire una forma analitica del PageRank che giustifichi la scelta (ogni soluzione ragionevole è accettata). Esercizio 4 (5 punti). I tornei venivano inizialmente gestiti separatamente da due federazioni e perciò i dati sono rappresentati in modo diverso. Federazione 1: Torneo(id, nome, data, partecipanti), Team(id, torneo, nome) Federazione 2: Competizione(id, data), GruppoIscritto(id competizione, id gruppo), Gruppo(id, nome, numero membri) 1. (2pt) Supponendo che le federazioni vogliano aggiornare i propri database con le informazioni dell’altra federazione, scrivere le query SQL di insert dall’una all’altra. (nel caso del numero di membri del gruppo della federazione 2 si calcoli un valore medio dalla Federazione 1) 3 2. (1pt) Scrivere lo schema di un mediatore M che unisca i dati di tutte le tabelle 3. (2pt) Scrivere i template per i wrapper per le query seguenti (ove possibile): i. Restituire il torneo con più partecipanti ii. Trovare il gruppo che si è iscritto a più competizioni Esercizio 5 (7 punti). Sia dato un piccolo database di utenti Nome John Mike John Jack Cognome Doe Johnson Doe Defoe Telefono 555-333 444-222 555-333 123-456 DataIscr 7/04/2015 8/05/2015 8/04/2015 8/05/2015 1. (1pt) Restituire il risultato di un algoritmo di entity resolution che rimuova duplicati assumendo come simili le tuple aventi intersezione tra valori non vuota (uguali valori nello stesso campo) e come funzione di merge l’unione tra valore. 2. (3pt) Supponiamo che le funzione di merge prenda il più lungo prefisso comune ad ogni valore (per esempio tra “abc” e “abd” il prefisso comune più lungo è “ab”). Questa funzione rispetta le proprietà di idempotenza, commutatività e transitività? Dimostrare le proprietà in caso positivo, in caso contrario mostrare un contro-esempio. 3. (2pt) Applicare clustering agglomerativo utilizzando 1 - Jaccard tra i campi delle tuple come funzione di distanza. Mostrare i passaggi di calcolo e i cluster finali. 4. (1pt) Supponi di voler rappresentare nome e cognome (nome e cognome vengono uniti insieme) con insiemi di lettere. Calcolare i valori di min-hash date le seguenti permutazioni 1: d,e,a,c,i,f,j,o,h,n 2: f,a,h,j,d,e,i,o,c,n 4