FLORIANA CAMERINO (matr. 570406) ABILITA’ INFORMATICHE – II COMPITO: PROGETTAZIONE DI UN DATABASE 1. PROGETTAZIONE Realizzazione di un DataBase per la gestione dei prestiti di una biblioteca personale. L’obiettivo è 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. l’entità 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. l’entità PRESTITI contiene i seguenti «attributi»: Id_Prestito: codice univo dei prestiti; NomeAmico: insieme degli amici che hanno preso in prestito; E-mailAmico: insieme degli indirizzi e-mail 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 1 :N LIBRI 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 l’inserimento nella tabella libri di una FOREIGN KEY o chiave esterna, che diventa campo link con l’archivio selezionato (PRESTITI AMICI). Definizione delle caratteristiche degli attributi: Tabella PRESTITIAMICI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI Id_Prestito Contatore Intero Lungo Primary Key NomeAmico Testo 30 NotNull E-mailAmico Alfanumerico 20 NotNull NtelefonoAmico Numerico Intero Lungo DataRestituzione Data NotNull NOTE Tabella LIBRI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI Id_Libro Numerico Intero Lungo Primary Key TitoloLibro Testo 50 NotNull Fk_Prestiti Numerico Intero Lungo Foreign Key NOTE Link 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 REPARTI PAZIENTI 1 :N 1:N RICOVERI 1 :N MEDICI Entità necessarie per la gestione dei ricoveri in un ospedale. Tabella PAZIENTI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI Id_Cod Numerico Intero lungo Primary Key Cognome Testo 40 NotNull Nome Testo 40 NotNull NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI Id_Cod Numerico Intero Lungo Primary Key Nome Testo 30 NotNull NOTE Tabella REPARTI NOTE Tabella RICOVERI NOME CAMPO TIPO CAMPO DIMENSION E VINCOLI Id_Cod Numerico Intero Lungo Primary Key Fk_Paziente Numerico Intero Lungo Foreign Key Inizio Data Fine Data Fk_Reparto Numerico Intero Lungo NOTE Link alla tabella PAZIENTI NotNull Foreign Key Link alla tabella REPARTI Tabella MEDICI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI Id_Matr Numerico Intero Lungo Primary Key Nome Testo 40 NotNull Cognome Testo 40 NotNull Reparto Numerico 40 ForeignKey NOTE Link alla tabella REPARTI