EsameSIBDAprile2006

annuncio pubblicitario
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Gestionale
Esame di Sistemi Informativi e Basi di Dati – 6 crediti
19 Aprile 2006
Esercizio 1: Progettazione di una base di dati (40 min)
Si progetti una base di dati di supporto alla gestione delle operazioni di prelievo e di versamento su
conto corrente per un circuito bancario. Lo studente produca un modello E/R e la corrispondente
traduzione in un modello relazionale in accordo alle seguenti specifiche:
Ogni istituto bancario è caratterizzato da un codice (identificativo) e dal nome, e può avere più sedi. Per ogni
sede di banca occorre tenere traccia della città e dell’indirizzo in cui essa è ubicata. Non possono esistere due
sedi di una stessa banca situate nello stesso indirizzo della stessa città.
Ciascuna sede bancaria può ospitare più sportelli attraverso i quali i clienti possono eseguire operazioni sui
propri conti correnti. Ciascuno sportello è caratterizzato da un numero progressivo. Si osservi che gli
sportelli in una stessa sede devono essere associati a numeri progressivi diversi, e che sportelli presenti in
sedi bancarie diverse possono avere numero progressivo uguale.
I clienti del circuito possono effettuare operazioni sui propri conti correnti presso un qualunque sportello di
qualunque banca. Ogni cliente (di cui occorre tenere traccia dei dati anagrafici) può essere titolare di più
conti correnti. Ciascun conto corrente viene aperto presso una sede bancaria. Per ogni conto corrente si deve
memorizzare la data di apertura e la tipologia (conto giovani, conto pensione, ecc.). Uno stesso cliente non
può essere titolare di due conti correnti della stessa tipologia aperti presso la stessa sede bancaria.
Le operazioni eseguite negli sportelli del circuito possono essere di due tipi: prelievo e versamento. I
versamenti possono essere eseguiti presso tutti gli sportelli, mentre i prelievi possono essere eseguiti solo
presso particolari sportelli (denominati sportelli abilitati).
Per ogni operazione (sia essa un prelievo o un versamento) occorre tenere traccia dell’importo versato o
prelevato, della data e dell’ora in cui è avvenuta, dello sportello e del conto corrente su cui è stata effettuata.
Non è possibile effettuare più di una operazione sullo stesso conto corrente nella stessa data alla stessa ora.
Esercizio 2: Progettazione logica e dipendenze funzionali (20 min)
Si consideri il seguente schema di relazione:
<R(A,B,C,D,E,F,G), F>
dove F è il seguente insieme di dipendenze funzionali:
ABG
C
D
DB
B
F
E
→
→
→
→
→
→
→
CD
DEG
A
E
F
G
B
Definire:
1. una copertura minimale per F;
2. le chiavi di R;
3. una decomposizione in 3NF di R che sia senza perdita di informazione e senza perdita di dipendenze
funzionali.
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Gestionale
Esame di Sistemi Informativi e Basi di Dati – 6 crediti
19 Aprile 2006
Esercizio 3: Interrogazioni (70 min)
Si consideri il seguente schema relazionale:
Cliente (Codice_Fiscale, Nome, Città)
ContoCorrente(Codice, Cliente, Data_Apertura)
Operazione(ContoCorrente, Data, Ora, Tipo, Importo)
Ciscuna tupla nella relazione Operazione rappresenta un’operazione effettuata sul conto corrente
specificato dal titolare del conto stesso nella data e nell’ora indicate; l’attributo Tipo può assumere
il valore “prelievo” o “versamento”, e l’attributo Importo indica la quantità di denaro prelevata o
versata nell’operazione.
Risolvere in SQL e, dove possibile, in Algebra Relazionale le seguenti query:
1. Restituire l’elenco dei nomi dei clienti che sono titolari di un conto corrente sul quale è stata
effettuata una coppia di operazioni di tipo diverso e di importo superiore a 1000€.
2. Restituire l’elenco dei nomi dei clienti che hanno effettuato meno di 2 operazioni di tipo
“versamento” nell’anno 2005.
3. Restituire l’elenco dei clienti che hanno effettuato almeno un’operazione di prelievo da ogni
conto corrente di cui sono titolari.
4. Per ogni conto corrente dei clienti di Cosenza si restituisca il “saldo attuale” (NB: per “saldo
attuale” si intende la somma di tutti gli importi versati meno la somma di tutti gli importi
prelevati).
5. Restituire il titolare del conto corrente su cui è stato effettuato il maggior numero di
operazioni di versamento.
6. Per ogni cliente titolare del numero massimo di conti correnti, restituire l’importo
complessivo delle operazioni di versamento da lui effettuate (prendendo in considerazione
tutti i suoi conti correnti).
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Gestionale
Esame di Sistemi Informativi e Basi di Dati – 6 crediti
19 Aprile 2006 – 20 min
Esercizio 4:
Le seguenti affermazioni si riferiscono al modello relazionale. Indicare quali di esse sono vere e
quali non lo sono (si inserisca un segno di spunta nella casella che si ritiene essere corretta).
V
F
1) Per ogni attributo di una relazione, esiste almeno una superchiave che lo contiene.
2)
Se un attributo A di una relazione appartiene a tutte le possibili superchiavi della
relazione stessa, allora A è una chiave della relazione.
3)
Se una relazione ha una chiave composta da due attributi, allora tutte le superchiavi
composte da più di due attributi non sono minimali.
4)
Se una relazione ammette un’unica superchiave, allora questa comprende tutti gli
attributi della relazione.
5) Se una relazione ammette almeno due superchiavi, allora ammette almeno due chiavi.
6)
Se un attributo A di una relazione è superchiave per la relazione stessa, allora A è
anche chiave
7)
Se due superchiavi hanno un attributo in comune, allora almeno una di esse non è
minimale
Esercizio 5:
Indicare quali delle seguenti affermazioni sono vere e quali sono false (si inserisca un segno di
spunta nella casella che si ritiene essere corretta).
V
F
Il potere espressivo dell’algebra relazionale differisce dal potere espressivo di SQL, in
quanto l’algebra relazionale è un linguaggio procedurale mentre SQL è dichiarativo.
Data una relazione r con cardinalità n, la relazione r’= r r, qualunque sia la
F
2) condizione F, non può contenere più di n2 tuple.
1)
3) I vincoli di chiave e chiave esterna sono esprimibili mediante dipendenze funzionali.
4) Una dipendenza funzionale può essere espressa da un vincolo di chiave.
5)
Si consideri lo schema relazionale R(A,B,C,D). Sia X un sottoinsieme non vuoto degli
attributi di R. La dipendenza funzionale XABCD è vera solo se X è chiave per R.
Il problema della chiusura transitiva non è esprimibile in algebra relazionale, ma è
esprimibile in SQL con aggregati.
Dato lo schema relazionale R(A, B) ed una sua istanza r con cardinalità n, la relazione
7) r’= r
r contiene esattamente n(n-1) tuple.
$1$1
6)
Scarica