FLORIANA CAMERINO (matr ) ABILITA INFORMATICHE – II COMPITO: PROGETTAZIONE DI UN DATABASE 1.PROGETTAZIONE Realizzazione di un DataBase per la gestione dei prestiti di una biblioteca personale. Lobiettivo è quello di ricavare tutte le informazioni relative ai libri prestati dal proprietario ai suoi amici. a) ANALISI DEI REQUISITI: Per la progettazione del DataBase occorre necessariamente tener conto delle seguenti informazioni: il proprietario presta ai suoi amici (che indica con il nome o soprannome); i libri vengono distinti attraverso il titolo; non esistono libri con lo stesso titolo (non esistono copie di uno stesso libro); quando presta un libro prende nota della data prevista di restituzione. Attraverso il DataBase il proprietario vuole sapere quale libro ha prestato, a chi ha prestato il libro e quando si prevede la restituzione.
b ) PROGETTAZIONE CONCETTUALE: Per la gestione dei prestiti di una biblioteca personale sulla base delle informazioni acquisite sono state individuate le seguenti entità: LIBRI: contiene tutte le informazioni relative ai libri posseduti dal proprietario della biblioteca. lentità LIBRI contiene i seguenti «attributi»: Id_Libro: codice univoco dei libri posseduti in biblioteca; TitoloLibro: insieme di tutti i titoli dei libri posseduti; PRESTITI: contiene tutte le informazioni sui prestiti dei libri agli amici. lentità PRESTITI contiene i seguenti «attributi»: Id_Prestito: codice univo dei prestiti; NomeAmico: insieme degli amici che hanno preso in prestito; Amico: insieme degli indirizzi degli amici; NtelefonoAmico: insieme dei recapiti telefonici; DataRestituzione: insieme data prevista di restituzione.
c) PROGETTAZIONE LOGICA: Definizione delle Relazioni: La relazione esistente tra le i due archivi del DataBase è di tipo UNO-A- MOLTI. PRESTITI AMICI LIBRI 1 :N Un amico può prendere in prestito contemporaneamente più libri dalla biblioteca, mentre un libro può essere dato in prestito solo ad un amico non essendoci copie dello stesso libro. La relazione comporta linserimento nella tabella libri di una FOREIGN KEY o chiave esterna, che diventa campo link con larchivio selezionato (PRESTITI AMICI).
Definizione delle caratteristiche degli attributi: Tabella PRESTITIAMICI NOME CAMPOTIPO CAMPODIMENSIONEVINCOLINOTE Id_PrestitoContatoreIntero LungoPrimary Key NomeAmicoTesto30NotNull AmicoAlfanumerico20NotNull NtelefonoAmicoNumericoIntero Lungo DataRestituzioneDataNotNull
Tabella LIBRI NOME CAMPO TIPO CAMPO DIMENSIONEVINCOLINOTE Id_LibroNumericoIntero LungoPrimary Key TitoloLibroTesto50NotNull Fk_PrestitiNumericoIntero LungoForeign KeyLink alla tabella PrestitiAmici Esistenza di Valori NULLI: Nella progettazione del DataBase per la gestione dei prestiti della biblioteca personale sono necessarie due entità, Libri e PrestitiAmici, con i rispettivi attributi. Per ogni attributo è stato indicato il vincolo di integrità, oltre alla chiave primaria ed esterna importante è il vincolo NotNull assegnato a tutti quei campi obbligatori che non possono assumere valore nullo, vincolo che facilita la raccolta di informazioni tra le diverse tabelle sulla base delle relazioni esistenti. Tuttavia, questo vincolo non può essere assegnato al campo FkPrestiti della tabella Libri, poiché non tutti i libri della biblioteca risulteranno prestati in un determinato momento, quindi il campo può assumere valore nullo per tutti quei libri presenti in biblioteca e non prestati. La presenza di valori Nulli però, potrà ostacolare i riferimenti da altre relazioni.
2. DATA BASE OSPEDALE PAZIENTI MEDICI RICOVERI REPARTI 1 : N Entità necessarie per la gestione dei ricoveri in un ospedale.
Tabella PAZIENTI NOME CAMPO TIPO CAMPO DIMENSIONEVINCOLINOTE Id_CodNumericoIntero lungoPrimary Key CognomeTesto40NotNull NomeTesto40NotNull Tabella REPARTI NOME CAMPO TIPO CAMPO DIMENSIONEVINCOLINOTE Id_CodNumericoIntero LungoPrimary Key NomeTesto30NotNull
Tabella RICOVERI NOME CAMPO TIPO CAMPO DIMENSION E VINCOLINOTE Id_CodNumericoIntero LungoPrimary Key Fk_PazienteNumericoIntero LungoForeign KeyLink alla tabella PAZIENTI InizioDataNotNull FineData Fk_RepartoNumericoIntero LungoForeign KeyLink alla tabella REPARTI
Tabella MEDICI NOME CAMPO TIPO CAMPO DIMENSIONEVINCOLINOTE Id_MatrNumericoIntero LungoPrimary Key NomeTesto40NotNull CognomeTesto40NotNull RepartoNumerico40ForeignKeyLink alla tabella REPARTI