Esame scritto di: Fondamenti di Informatica

Corso di Basi di Dati I – Appello del 11 Febbraio 2011
Traccia A – Tempo a disposizione: 2 ore
Le manifestazioni di questi giorni che richiedono la caduta di dittatori sparsi per il mondo potrebbero essere ricordate
come le prime manifestazioni organizzate tramite le Social Network. Per tramandare questo evento così importante ai
posteri si è deciso di costruire un sistema informativo il cui database di supporto dovrà avere la seguente struttura:
NETWORK (CodiceN, Nome, Nazionalità, NumIscritti)
ORGANIZZA (CodiceN, CodiceM)
MANIFESTAZIONE (CodiceM, Nome, Ragione)
TENUTA_IN (CodiceM, CodiceC, DataInizio, DataFine, NumManifestanti)
CITTA’ (CodiceC, Nome, Nazione)
Nel sistema informativo che si vuole costruire si vogliono implementare le seguenti interrogazioni:
1. Selezionare il nome delle social network che hanno organizzato una manifestazione tenuta il 31 gennaio 2011
a Tunisi e non hanno organizzato una manifestazione tenuta il 2 febbraio 2011 nelle città di Marrakech e di
Alessandria d’Egitto.
2. Selezionare il nome delle social network americane che hanno organizzato tutte le manifestazioni per
richiedere le dimissioni di Mubarak che si sono tenute nel gennaio 2011 in Egitto.
3. Selezionare il nome delle social network algerine che hanno organizzato il massimo numero di manifestazioni
che si sono tenute lo stesso giorno sia al Cairo che ad Alessandria d’Egitto.
4. Selezionare il nome delle social network libiche che hanno organizzato manifestazioni ad Algeri tali che il
numero medio di partecipanti ad esse è maggiore del numero medio di partecipanti a manifestazioni tenute a
Tripoli e organizzate da social network algerine.
5. Selezionare, limitatamente alle manifestazioni che si sono tenute in almeno due città diverse e che sono state
promosse da almeno due social network differenti, quella che ha avuto il massimo numero di manifestanti
Scrivere tali interrogazioni in Algebra Relazionale e in SQL, ove possibile. Scrivere, inoltre, in SQL le seguenti
interrogazioni:
6. Creare le relazioni NETWORK e ORGANIZZA nel modo quanto più completo possibile, inserendo almeno una
tupla per ciascuna di esse.
7. Aumentare del 10% il numero di manifestanti per quelle manifestazioni che si sono tenute nello Yemen
Corso di Basi di Dati I – Appello del 25 Febbraio 2011
Traccia – Tempo a disposizione: 2 ore
I festival musicali sono tra gli eventi più importanti e più seguiti in tutto il mondo. Per tenere traccia degli artisti e dei
conduttori che hanno partecipato a questi eventi nel corso del tempo, si è deciso di costruire un sistema informativo il
cui database di supporto dovrà avere la seguente struttura:
ARTISTA (CodiceA, Nome, Età, Sesso, NumDischi)
PARTECIPA (CodiceA, CodiceF, Data)
FESTIVAL (CodiceF, Nome, Città, DataInizio, DataFine, NumSpettatori)
CONDOTTO_DA (CodiceP, CodiceF)
PRESENTATORE (CodiceP, Nome, età, Nazionalità)
Nel sistema informativo che si vuole costruire si vogliono implementare le seguenti interrogazioni:
1. Selezionare i nomi dei presentatori che hanno condotto un festival intitolato “Viva la Musica” tenutosi il 24
Dicembre 2009 a Berlino e non hanno condotto un festival tenutosi il 19 febbraio 2010 al quale hanno
partecipato un artista che ha realizzato meno di 2 dischi ed un artista di età inferiore ai 18 anni.
2. Selezionare i nomi degli artisti di sesso femminile che hanno partecipato a tutti i festival tenutisi nella città di
Londra e che sono stati condotti da presentatori di età superiore ai 70 anni.
3. Selezionare i nomi degli artisti che hanno partecipato a festival con più di 1000 spettatori che sono stati
condotti da presentatori lituani che hanno condotto festival nel maggio 2009 a cui hanno partecipati artisti
minorenni e non hanno condotto festival nell’aprile 2010 a cui hanno partecipato artisti maggiorenni.
4. Selezionare il nome degli artisti che hanno partecipato a festival tenutisi nella città di Verona tali che l’età
media dei loro presentatori è maggiore di 65 anni e non sono stati condotti da presentatori di nazionalità
argentina.
5. Scrivere la classifica degli artisti che hanno partecipato a festival il cui numero di spettatori è superiore alla
media degli spettatori a festival condotti da presentatori cinesi; la classifica dovrà essere per numero di
festival di cui sopra decrescente e, a parità, per numero di dischi decrescente.
Scrivere tali interrogazioni in Algebra Relazionale e in SQL, ove possibile. Scrivere, inoltre, in SQL le seguenti
interrogazioni:
6. Creare una vista degli “Artisti Fedeli”, ovvero quegli artisti che hanno partecipato ad almeno otto festival
condotti da “Pippo Baudo”.
Corso di Basi di Dati I – Appello del 7 Luglio 2011
Traccia – Tempo a disposizione: 2 ore
Ogni anno, con l’avvento dell’estate, i turisti organizzano dei viaggi presso le più belle località del mondo; a loro volta,
per favorire l’interesse dei visitatori, le varie località organizzano degli eventi per l’intrattenimento. Per tenere traccia
del flusso dei turisti nelle varie località e degli eventi che esse organizzano nel corso del tempo, si è deciso di costruire
un sistema informativo il cui database di supporto dovrà avere la seguente struttura:
TURISTA (CodiceT, Nome, Sesso, età, Nazionalità)
VISITA (CodiceT, CodiceL, Data)
LOCALITA’ (CodiceL, Nome, CoefficienteBellezza, LivelloOrganizzazione)
ORGANIZZA (CodiceL, CodiceE, Data)
EVENTO (CodiceE, Nome, LivelloGradimento)
Nel sistema informativo che si vuole costruire si vogliono implementare le seguenti interrogazioni:
1. Selezionare i turisti di età compresa fra i 29 e i 59 anni che hanno visitato la località turistica “Tropea” il 15
Giugno 2010 e non hanno mai visitato località con coefficienteBellezza maggiore di 6 che hanno organizzato
un evento dal nome “Festa del Ciao” e un evento con livello di gradimento maggiore di 8.
2. Selezione il nome degli eventi che sono stati organizzati da tutte le località con LivelloOrganizzazione pari a 6
e che sono state visitate da Turisti che hanno visitato anche “Londra”.
3. Selezionare il nome dei turisti di sesso maschile che hanno visitato almeno due località turistiche ciascuna
delle quali ha organizzato almeno un evento che si è anche tenuto fra il 15 Dicembre 2008 e l’1 Gennaio 2009
in una località che è stata visitata da turisti Giapponesi.
4. Selezionare gli eventi che si sono tenuti nel 2010 sia in una località che è stata visitata dal massimo numero di
turisti nel 2008 e sia in una località che ha organizzato in minimo numero di eventi nel 2007.
5. Selezionare le località che hanno organizzato un numero di eventi superiore al numerdo medio di eventi
organizzati dalle località con coefficiente di bellezza maggiore di 9 che sono state visitate da turisti
maggiorenni.
Scrivere tali interrogazioni in Algebra Relazionale e in SQL, ove possibile. Scrivere, inoltre, in SQL la seguente
interrogazione:
6. Creare una vista dei “Turisti Mondani”, ovvero quei turisti che hanno visitato tutte le località che hanno
organizzato almeno un evento.
Corso di Basi di Dati I – Appello del 15 Luglio 2011
Traccia – Tempo a disposizione: 2 ore
In questi giorni gli speculatori imperversano sulla borsa mettendo in difficoltà intere nazioni. Per combattere questo
fenomeno si è deciso di costruire un sistema informativo per la caccia agli speculatori. Il database di supporto a tale
sistema dovrà avere la seguente struttura:
SPECULATORE (CodiceS, Nome, Nazionalità)
ATTACCA (CodiceS, CodiceT)
TITOLO (CodiceT, NomeAziendaCorr, ValoreAziendaCorr, DataFondazioneAziendaCorr)
QUOTATO (CodiceT, CodiceB, Valore)
BORSA (CodiceB, CittaB, ValoreIndiceCorrispondente)
Nel Sistema Informativo che si intende costruire si vogliono implementare le seguenti interrogazioni:
1.
Selezionare i nomi degli speculatori cinesi che hanno attaccato un titolo di un’azienda con valore maggiore di 1
miliardo di euro e fondata prima del 1990 quotato alla borsa di Singapore, e non hanno attaccato alcun titolo di
un’azienda fondata dopo il 2000 e quotato alla borsa di Taiwan.
2.
Selezionare i nomi degli speculatori messicani che hanno attaccato un titolo di un’azienda fondata prima del 1940
che è stato quotato in tutte le borse in cui è stato quotato un titolo dell’azienda “Coca Cola”.
3.
Selezionare i nomi degli speculatori del Qatar che hanno attaccato un titolo di un’azienda del valore di 2 miliardi
di euro che è stato quotato: in una borsa dove è stato quotato un titolo della “BNL” attaccato da uno speculatore
brasiliano, in una borsa dove è stato quotato un titolo di un’azienda del valore superiore a 500000 euro attaccato
da uno speculatore finnico, e, infine, in una borsa in cui è stato quotato un titolo attaccato dallo speculatore “Jack
lo Squalo”.
4.
Selezionare i nomi degli speculatori che hanno attaccato coppie di titoli di cui uno è quotato alla borsa di
Katmandu e un altro è quotato alla borsa di Ulan Bator.
5.
Selezionare, per ogni speculatore, il numero medio di borse in cui sono quotati i titoli da lui attaccati. Se lo si
ritiene opportuno, è possibile utilizzare una vista di supporto.
Scrivere tali interrogazioni in Algebra Relazionale ed SQL, ove possibile. Scrivere, inoltre, in SQL le seguenti
interrogazioni:
6.
Creare le Relazioni SPECULATORE e ATTACCA, inserendo almeno una tupla per ciascuna di esse.
7.
Rimuovere gli speculatori che hanno attaccato un titolo quotato alla borsa di Londra che è stato attaccato dallo
speculatore “Bill Senza Cuore”.
Corso di Basi di Dati I – Appello del 09 Settembre 2011
Traccia – Tempo a disposizione: 2 ore
Nel corso della sua storia il genere umano ha assistito a numerosissime rivolte che si sono tenute nei paesi più diparati
del mondo. Per tenere traccia sia delle rivolte che dei danni che esse hanno causato, si è deciso di costruire un sistema
informativo. Il database di supporto a tale sistema dovrà avere la seguente struttura:
PAESE (CodiceP, Nome, PosizioneGeografica, NumAbitanti)
ORGANIZZA (CodiceP, CodiceR, DataInizio)
RIVOLTA (CodiceR, Slogan, Durata)
PROVOCA (CodiceR, CodiceD)
DANNO (CodiceD, Costo, LivelloPericolosità)
Nel Sistema Informativo che si intende costruire si vogliono implementare le seguenti interrogazioni:
1.
Selezionare i paesi africani che hanno organizzato almeno una rivolta iniziata nell’anno 2010 che ha provocato un
danno dal costo di 10 miliardi di euro, e non hanno organizzato rivolte il cui slogan è “No ai tiranni” con durata
maggiore di 360 giorni che hanno provocato danni con livello di pericolosità maggiore di 5.
2.
Selezionare i nomi dei paesi con un numero di abitanti maggiore di 75 milioni che hanno organizzato tutte le
rivolte della durata di 200 giorni che hanno provocato almeno due danni dal costo superiore a 20 miliardi di euro.
3.
Selezionare i nomi dei paesi americani con numero di abitanti maggiore di 40 milioni che hanno organizzato
rivolte fra il 2008 e il 2010 ciascuna delle quali ha provocato almeno 3 danni con livello di pericolosità maggiore di
7.
4.
Selezionare i paesi europei che hanno organizzato un numero di rivolte pari a 10 ciascuna delle quali ha provocato
un coppia di danni <d1,d2> tali che d1 ha un costo pari a 20 miliardi di euro e d2 ha un costo minore di quello di
d1 e un livello di pericolosità pari a 9.
5.
Stilare la classifica dei paesi più rivoltosi; per essere inserito in tale classifica un paese deve aver organizzato un
numero di rivolte maggiore di 10 che hanno provocato danni con un costo totale (dato dalla somma dei costi dei
singoli danni) maggiore di 1000 milardi di euro. La classifica dovrà essere ordinata per numero di rivolte.
Scrivere tali interrogazioni in Algebra Relazionale ed SQL, ove possibile. Scrivere, inoltre, in SQL le seguenti
interrogazioni:
6.
Creare le Relazioni PAESE e ORGANIZZA, inserendo almeno una tupla per ciascuna di esse.
7.
Aggiornare la tabella DANNO aumentando del 10% il livello pericolosità dei danni aventi un costo maggiore di 5
milioni di euro
Corso di Basi di Dati I – Appello del 23 Settembre 2011
Traccia – Tempo a disposizione: 2 ore
Si vuole costruire un Sistema Informativo capace di supportare la Magistratura nella caccia alle aziende che hanno
effettuato illeciti ambientali. Il database di supporto a tale sistema dovrà avere la seguente struttura:
AZIENDA (CodiceA, Nome, Città, AnnoFondazione, NumDipendenti)
EFFETTUA (CodiceA, CodiceI)
ILLECITO (CodiceI, Descrizione, CifraSpesa, MilioniGuadagnati)
SUBISCE (CodiceA, CodiceP, CodiceI)
PENA (CodiceP, EuroMulta)
Nel Sistema Informativo che si intende costruire si vogliono implementare le seguenti interrogazioni:
1.
Selezionare le aziende nate prima del 1930 che hanno effettuato un illecito che ha consentito loro di guadagnare
25 milioni e hanno subito come pena per quell’illecito 3000 euro di multa e non hanno mai effettuato un illecito
che ha portato a spendere più di 100000 euro e ad avere come pena 15 milioni di euro di multa.
2.
Selezionare le aziende che hanno più di 1000 dipendenti e che hanno effettuato tutti gli illeciti effettuati dalle
aziende della città di Firenze e, contemporaneamente, hanno subito 2 milioni di euro di multa.
3.
Selezionare l’azienda più “efficiente”, ovvero l’azienda che ha commesso l’illecito con il massimo valore di milioni
guadagnati e al contempo non ha mai subito pene.
4.
Selezionare l’azienda che ha effettuato il massimo numero di illeciti e, contemporaneamente, ha subito la
massima quantità complessiva di euro di multa.
5.
Selezionare le coppie di aziende che hanno commesso lo stesso illecito, che hanno guadagnato la stessa cifra e
hanno pagato la stessa multa.
Scrivere tali interrogazioni in Algebra Relazionale ed SQL, ove possibile. Scrivere, inoltre, in SQL la seguente
interrogazione:
6.
Creare una vista delle aziende corrotte, ordinando le aziende per numero di illeciti commessi decrescenti e, a
parità del numero di illeciti, per somma delle cifre spese decrescente.