• Non ci sono risultati.

Compito di Basi di dati 12 giugno 2017 Esercizio 1:

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di dati 12 giugno 2017 Esercizio 1:"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di dati

12 giugno 2017

Esercizio 1:

Sia dato il seguente schema relazionale relativo alle filiali di una data banca presenti sul territorio nazionale:

F iliale(CodiceF iliale, Citt`a, Direttore, T otaleDepositi);

SiT rovaIn(Citt`a, Regione);

CCclienti(CodiceF iscale, F iliale, N umeroCC).

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 complessivo di denaro depositato presso di essa (attributo TotaleDepositi ). Si assuma che filiali diverse abbiano direttori diversi. Si assuma anche che la banca possa avere pi`u di una filiale in una data citt`a. Ogni citt`a sia identificata univocamente dal suo nome. Ogni cliente sia identificato unicamente dal suo codice fiscale e possa possedere uno o pi`u conti correnti presso una o pi`u filiali.

Ogni conto corrente sia identificato univocamente dal suo numero, sia associato ad una sola filiale e abbia un unico proprietario.

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) i clienti che possiedono conti correnti solo in filiali della banca con sede in citt`a della regione Veneto;

(b) per ogni citt`a con almeno 3 filiali, il numero di filiali con un valore dell’attributo TotaleDepositi maggiore di 50000000 di euro;

(c) i clienti che hanno un conto corrente in tutte le filiali in cui ha un conto corrente il cliente MLNGVN11S11H333P.

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 un insieme di rappresentanti di una certa azienda che opera sul territorio nazionale sulla base del seguente insieme di requisiti.

• Ogni rappresentante sia identificato univocamente dal suo codice fiscale e sia caratterizzato da un recapito telefonico, un indirizzo email, un’anzianit`a di servizio (espressa in anni) e una fascia stipendiale (espressa mediante una lettera dell’alfabeto).

• Ogni prodotto sia identificato univocamente da un codice aziendale e sia caratterizzato da un nome e da un prezzo di listino.

• Ogni rappresentante sia incaricato delle vendite in una o pi`u regioni e in ogni regione operino uno o pi`u rappresentati.

• Ogni rappresentante sia responsabile della vendita di uno o pi`u prodotti e ogni prodotto abbia uno o pi`u rappresentanti incaricati delle vendite.

• Ogni prodotto sia venduto in ogni regione, ma sia esclusa la possibilit`a che due rappresentanti diversi siano incaricati della vendita dello stesso prodotto nella stessa regione.

• Ogni rappresentante venda lo stesso insieme di prodotti in ogni regione in cui opera.

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:

Si considerino le due transazioni seguenti:

start transaction; -- T1

select qta from Articolo where id = 123;

select qta from Articolo where id = 123;

commit;

start transaction; -- T2

update Articolo set qta = qta - 1 where id = 123;

commit;

Si supponga che T1 e T2 siano sottomesse al sistema simultaneamente. Si spieghi, giustificando la risposta, quali risultati possono produrre le due select, nei casi in cui le due transazioni siano eseguite:

1. nel livello serializable;

2. nel livello repeatable read;

3. nel livello read committed;

4. nel livello read uncommitted.

Esercizio 5:

Esercizio 5:

Dato il seguente insieme di chiavi:

2, 1, 18, 17, 21, 14, 13, 7, 6, 15, 12, 11, 3, 19, 5, 4, 16,

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

Successivamente, si identifichino i nodi del B-albero visitati nella ricerca di rispettivamente: (i) il record contrad- distinto dal valore 9 e (ii) il record contraddistinto dal valore 6.

Riferimenti

Documenti correlati

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

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, infine, che ogni atleta presente nella base di dati abbia partecipato ad almeno un’edizione dei giochi olimpici e che ad ogni edizione dei giochi olimpici presente nella

Si assuma, infine, che ogni atleta presente nella base di dati abbia partecipato ad almeno un’edizione dei giochi olimpici e che ad ogni edizione dei giochi olimpici presente nella