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