2 Prova Intermedia

Transcript

2 Prova Intermedia
Basi di Dati
Soluzione della seconda prova intermedia del 13 Giugno 2003
Esercizio 1 (6 punti)
Mostrare uno schema E-R che rappresenti una realtà bancaria così definita.
Vogliamo rappresentare i dati di una banca. La banca opera nel territorio attraverso una rete di filiali da
ciascuna della quale dipendono una o più agenzie. Vogliamo rappresentare tutte le persone che hanno
rapporti con la banca, siano esse dipendenti o titolari di conto corrente. Rappresentiamo inoltre i dati
relativi ai conti correnti aperti presso la banca. In particolare:
• Per le filiali rappresentiamo il codice e la città. Ciascuna filiale ha un direttore.
• Per le agenzie rappresentiamo il numero che identifica l’agenzia all’interno della filiale, e l’indirizzo.
Ciascuna agenzia ha un responsabile e dipende da una sola filiale
• Per le persone, dipendenti della banca e titolari di conto corrente, rappresentiamo il codice fiscale, il
nome, il cognome, la data di nascita, l’indirizzo e un numero di telefono
• I dipendenti possono essere impiegati o funzionari e dipendono da un’unica filiale. Gli impiegati
possono essere responsabili di agenzia. I funzionari possono essere direttori di filiale
• Per i conti correnti rappresentiamo il numero. Ciascun conto corrente è domiciliato presso una
agenzia e può avere uno o più titolari.
Data di
Nascita Indirizzo
Cognome
Telefono
Nome
Persona
CF
Titolare CC
(1,N)
Dipendenza
(1,1)
Dipendente
Numero
Titolarità
(1,N)
Conto
Corrente
(1,N)
Funzionario
Impiegato
(0,N)
(0,N)
Direttore
Responsabilità
(1,1)
Filiale
(1,1)
Domiciliazione
Indirizzo
(1,1)
(1,N)
(1,N)
Agenzia
(1,1)
Numero
Composizione
Città
Codice
Nota: Il direttore di filiale e il responsabile di agenzia potevano essere rappresentati come generalizzazioni
parziali rispettivamente della entità Funzionario e della entità Impiegato
Esercizio 2 (4 punti)
Ristrutturare lo schema concettuale ottenuto neIl’esercizio precedente ipotizzando che le operazioni più
frequenti per la base di dati siano relative all’apertura/chiusura di conti correnti.
Soluzione
In questo caso l’unica fase della ristrutturazione da effettuare è relativa alla eliminazione delle
generalizzazioni. La generalizzazione relativa ai Dipendenti può essere eliminata accorpando le figlie della
generalizzazione nel padre: In questo modo dobbiamo aggiungere all’entità Dipendente un attributo Qualifica
che serva a distinguere fra Impiegati e Funzionari. Per quanto riguarda la generalizzazione parziale fra
Persone e Dipendenti, può essere eliminata sostituendo alla generalizzazione una associazione.
L’accorpamento di Dipendenti con l’entità persone genererebbe valori nulli inutili. Invece la figlia della
generalizzazione di Persone relativa ai Titolari di CC può essere accorpata a Persona perché chiunque
potrebbe essere titolare di CC. Pertanto lo schema ristrutturato risulta essere il seguente.
1
Data di
Nascita Indirizzo
Cognome
Telefono
Nome
Persona
CF
(0,1)
(0,N)
Dipendenza
Qualifica
Numero
(1,1)
Dipendenza
(1,1)
Titolarità
(1,N)
Conto
Corrente
Dipendente
(1,N)
(1,1)
Domiciliazione
Indirizzo
(0,N)
(1,N)
(0,N)
Direttore
Responsabilità
(1,1)
Filiale
(1,1)
(1,N)
Agenzia
(1,1)
Numero
Composizione
Città
Codice
Esercizio 3 (3 punti)
Tradurre lo schema concettuale ristrutturato in uno schema logico, indicando quali attributi possano
assumere valori nulli.
PERSONE(CodiceFiscale,Cognome,Nome,DataDiNascita)
DIPENDENTI (CodiceFiscale,Filiale,Qualifica)
con vincolo di integrità referenziale fra “CodiceFiscale” e la relazione PERSONE e fra “Filiale” e la
relazione FILIALI
FILIALE (Codice,Città,Direttore)
con vincolo di integrità referenziale fra “Direttore” e la relazione DIPENDENTI
AGENZIA (Numero,Filiale,Indirizzo,Reggente)
con vincoli di integrità referenziale fra “Filiale” e la relazione FILIALI, e fra “Reggente” e la relazione
DIPENDENTI
CONTICORRENTI (Numero,Agenzia,Filiale)
con vincolo di integrità referenziale fra “Agenzia,Filiale” e la relazione AGENZIA
TITOLARITA-CC (Conto,Titolare)
con vincoli di integrità referenziale fra “Conto” e la relazione CONTICORRENTI e fra “Titolare” e la
relazione PERSONE
Nella soluzione proposta non sono ammessi valori nulli
Esercizio 4 (3 punti)
Si consideri la seguente relazione
TESIDILAUREA(Studente,Relatore,CorsoDiLaurea,Dipartimento)
che contiene i dati relativi alle tesi di laurea.
1. Individuare le dipendenze funzionali presenti nella relazione
2. Verificare se la relazione è in 3NF. Se non lo è, proporre una decomposizione in 3NF.
3. Verificare se il risultato della decomposizione è anche in BCNF
Soluzione
Le dipendenze funzionali presenti nella relazione sono le seguenti
Studente → CorsoDiLaurea
Studente → Relatore
Relatore → Dipartimento
La relazione non è in 3NF perché la terza FD viola la 3NF. Una decomposizione in 3NF (e anche BCNF) è la
seguente:
TESIDILAUREA(Studente,Relatore,CorsoDiLaurea)
RELATORE(Nome,Dipartimento)
Esercizio 5 (3 punti)
Illustrare chiaramente e sinteticamente le principali differenze fra una “multibase” di dati (realizzata tramite
mediatori) e un data warehouse.
2