• Non ci sono risultati.

Compito di Basi di dati 1 luglio 2019 Esercizio 1:

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di dati 1 luglio 2019 Esercizio 1:"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di dati

1 luglio 2019

Esercizio 1:

Sia dato il seguente schema relazionale relativo a film e attori:

F ILM (CodiceF ilm, T itolo, Regista, Anno);

AT T ORI(CodiceAttore, N ome, Cognome, Sesso, DataN ascita, N azionalit`a);

IN T ERP REAT AZION E(F ilm, Attore, Ruolo).

Si assuma che ogni film sia identificato univocamente da un codice e sia caratterizzato da titolo, regista e anno di uscita. Per semplicit`a, si assuma che ogni film sia diretto da un unico regista e ogni regista sia identificato univocamente dal suo cognome. Si ammetta la possibilit`a che vi siano film diversi con lo stesso titolo (questo `e il caso, ad esempio, dei remake). Ogni attore sia identificato univocamente da un codice e sia caratterizzato da nome, cognome, sesso, data di nascita e nazionalit`a. Si assuma che pi`u attori possano recitare in un dato film e che un attore possa recitare in pi`u film. Per semplicit`a, si assuma che, in ogni film, un attore possa svolgere un solo ruolo.

Definire preliminarmente le chiavi primarie, le eventuali altre chiavi candidate e, se ve ne sono, le chiavi esterne delle relazioni date. Successivamente, formulare opportune interrogazioni in algebra relazionale che permettano di determinare (senza usare l’operatore di divisione e usando solo se necessario le funzioni aggregate):

(a) gli attori che hanno recitato solo in film di Kurosawa;

(b) gli attori che hanno recitato in tutti i film di Kurosawa;

(c) gli attori che hanno recitato in tutti e soli i film di Kurosawa.

Esercizio 2:

Con riferimento all’Esercizio 1, formulare opportune interrogazioni in SQL che permettano di determinare quanto richiesto (senza usare l’operatore CONTAINS e usando solo se e quando necessario le funzioni aggregate).

Esercizio 3:

Si vuole realizzare una base di dati per la gestione di informazioni circa l’organizzazione di viaggi sulla base del seguente insieme di requisiti.

• Ogni persona sia identificata univocamente dal suo codice fiscale e sia caratterizzata da un nome, un cognome e una data di nascita. Se una persona `e sposata con un’altra persona registrata nella base di dati, si tenga traccia del coniuge e della data del matrimonio.

• Ogni citt`a abbia un nome e si collochi in uno stato. Ogni stato sia identificato univocamente dal suo nome e sia caratterizzato da popolazione, capitale, moneta e lingua nazionale. Ogni citt`a sia identificata univocamente dal suo nome all’interno dello stato in cui si trova, ossia, non vi siano due citt`a con lo stesso nome nello stesso stato, ma non si escluda la possibilit`a che vi siano due citt`a con lo stesso nome in due stati diversi. Di ogni citt`a, si tenga traccia del numero di abitanti, della superficie e del sindaco.

• Ogni anno le persone formino dei gruppi per visitare insieme una data citt`a. Ogni gruppo sia identificato univocamente dal suo nome e sia caratterizzato dal numero dei suoi membri. Una persona possa appartenere allo stesso gruppo o a gruppi differenti in anni diversi, ma ogni anno possa appartenere ad al pi`u un gruppo.

• Un gruppo visiti una stessa citt`a o citt`a diverse in anni diversi, ma ogni anno visiti una e una sola citt`a.

1

(2)

Si definisca uno schema Entit`a-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte. Lo schema dovr`a essere completato con attributi ragionevoli per ciascuna entit`a (iden- tificando le possibili chiavi) e relazione. Vanno specificati accuratamente i vincoli di cardinalit`a e partecipazione di ciascuna relazione. Si definiscano anche eventuali regole di gestione (regole di derivazione e vincoli di integrit`a) necessarie per codificare alcuni dei requisiti attesi del sistema.

Esercizio 4:

1. Si illustri il problema della perdita d’aggiornamento, che pu`o verificarsi in una base di dati nel caso di una gestione non controllata della concorrenza. Si fornisca, inoltre, un esempio di esecuzione concorrente di due transazioni che porti al verificarsi di una tale anomalia.

2. Si consideri la seguente situazione, relativa ad un conflitto di tipo scrittura-scrittura sulla tabella dipendente(codice, stipendio),

nei casi in cui IST = commit e IST = rollback:

T1 T2

start transaction;

insert into dipendente values (‘D02’, ‘1800’);

start transaction;

insert into dipendente values (‘D02’, ‘1900’);

IST;

commit;

Che comportamento `e lecito attendersi dall’esecuzione concorrente delle due transazioni nei due casi con- siderati?

Esercizio 5:

Dato il seguente insieme di chiavi:

1, 2, 4, 6, 8, 10, 11, 12, 15, 17, 18,

mostrare il B-albero di ordine 4 ottenuto inserendo un elemento dopo l’altro nell’ordine dato (riportando la sequenza di alberi generata dal processo di inserimento).

Riferimenti

Documenti correlati

Ogni giocatore sia identificato univocamente da un codice e sia caratterizzato da un nome, un cognome, un sesso, un anno di nascita, una nazionalit` a (per semplicit` a,

(b) Ricerca basata su un B-albero, con campo di ricerca il campo chiave primaria V , puntatore ai dati di dimensione pari a 7 byte e puntatore ausiliario di dimensione pari a 6

Si assuma, infine, che il fornitore possa fornire pi` u prodotti ad uno stesso cliente e che uno stesso prodotto possa essere fornito a pi` u clienti.. Non si escluda la possibilit`

Si assuma che ogni insegnamento sia identificato univocamente da un codice e sia caratterizzato dal codice del docente che lo tiene, dall’area disciplinare in cui si colloca

Si assuma, infine, che ogni dottorando possa frequentare pi` u corsi e che ogni corso possa essere frequentato da pi` u dottorandi.. Non si escluda la possibilit` a che vi siano

Si assuma che ogni filiale sia identificata univocamente dal suo codice e sia caratterizzata dalla citt` a in cui si trova, dal codice fiscale del direttore e dall’ammontare

(fc Si determinino dimensione e struttura di un B-albero, con campo di ricerca il campo chiave primaria V , puntatore ai dati di dimensione pari a 7 byte e puntatore ausiliario

• Per ogni impiegato, il codice dell’impiegato, il numero del progetto cui sta attualmente lavorando, il numero dell’ufficio e il numero del telefono a lui assegnato (si assuma che