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