De Sario Simona Matricola: 565581 Si vuole automatizzare la gestione di una biblioteca personale. A tale scopo bisognerà memorizzare i dati relativi a: • • Il AMICI LIBRI fine ultimo è ricavare le informazioni relative al prestito e la loro data di restituzione prevista. Nel nostro caso il dominio applicativo è rappresentato dal tutte le biblioteche. AMICI PRESTITI LIBRI Nel nostro caso sono state individuate le seguenti entità: • • • LIBRI AMICI PRESTITI LIBRI Per l’entità Libri sono stati individuati i seguenti attributi: • TitoloLibro: Che comprende i titoli dei libri presenti nella biblioteca. • AutoreLibro: che comprende gli autori dei libri presenti nella biblioteca (in realtà vi potrebbe essere anche una tabella Autori con relazione 1:N con Libri). • CasaEditriceLibro: che comprende le case editrici dei libri presenti in biblioteca (in realtà vi potrebbe essere una tabella Casa Editrice con relazione 1:n con Libri). AMICI Per l’entità Amici sono stati individuati i seguenti attributi: NomeSoprannomeAmico: Contiene i nomi o i soprannomi degli amici del proprietario della biblioteca (in modo tale da essere univocamente individuati); IndirizzoAmico: contiene i campi indicanti la via e il numero civico di residenza dell’amico; CittaAmico: contiene i campi indicanti il paese di residenza dell’amico (in realtà è più corretto che ci sia un’altra tabella Città collegata con Amico con una relazione 1:N) DEFINIZIONE DELLE RELAZIONI 1 : N AMICI LIBRI 1 : N N : PRESTITI N DEFINIZIONE DELLE RELAZIONI Dalla relazione N : N deriva una ulteriore entità, PRESTITI, i cui attributi saranno i seguenti: • IdPrestito: codice univoco del prestito • Campo link alla tabella Amici (fkNomeSoprannomeAmico): definisce l’amico che ha preso il libro in prestito • Campo link alla tabella Libri (fkTitoloLibro): definisce il libro preso il prestito • DataPrestito: definisce la data del prestito • DataPrevistaRestituzione: definisce la data presunta di restituzione del libro preso in prestito. DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Amici Nome campo Tipo campo Dimensione Vincoli NomeSoprannome Amico Testo 50 Primary Key Testo 100 Testo 40 IndirizzoAmico CittaAmico Not null Note DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Libri Nome campo Tipo campo Dimensione Vincoli TitoloLibro Testo 40 Primary key AutoreLibro Testo 50 Not null CasaEditriceLibro Testo 20 Note DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Prestiti Nome campo Tipo campo Dimensione Vincoli IdPrestito Contatore Intero Lungo Primary Key FkNomeSoprannom eAmico Testo 50 Foreing Key Link alla tabella Amici FkTitoloLibro Testo 40 Foreing Key Link alla tabella Libri DataPrestito Data Not null RestituzionePrestito Data Not null Note Impostando come vincolo not null, non è possibile saltare la compilazione del campo che, chi ha progettato il DB, ha voluto che necessariamente sia inserito. Il vincolo not null quindi è importante per campi necessari senza dei quali la stessa istanza tabellare avrebbe poco senso. Il beneficio è che senza la compilazione di un determinato campo il soggetto non potrà andare avanti nell’immissione dei dati in tabella mentre lo svantaggio è che se una informazione anche se importante non è immediatamente disponibile non si riuscirà ad andare avanti nella compilazione della tabella e aggiungere l’informazione successivamente. Nel DB biblioteca ho posto come Not null l’Autore nella tabella Libro, in quanto informazione importante, come anche la data del prestito e la data prevista di restituzione contenute nella tabella Prestiti. DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Reparti Nome campo Tipo campo Dimensione Vincoli CodReparto Testo 1 Primary Key NomeReparto Testo 40 Unique, Not null Intero Lungo Foreing Key FkMedico Numerico Note Link alla tabella Medici DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Pazienti Nome campo Tipo campo Dimensione Vincoli CodPaziente Testo 4 Primary Key CognomePaziente Testo 40 Not null NomePaziente Testo 40 Not null Note DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Ricoveri Nome campo FkPaziente Tipo campo Testo FkReparto Testo InizioRicovero Data FineRicovero Data Dimensione Vincoli Note 4 Foreing Key Link alla tabella Pazienti Foreing Key Link alla tabella Reparti 1 Not null Superchiave (Chiave primaria di Ricoveri) DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Medici Nome campo Tipo campo Dimensione Vincoli MatrMedico Numerico Intero Lungo Primary Key NomeMedico Testo 40 Not null CognomeMedico Testo 40 Not null 1 Foreing Key FkReparto Testo Note Link alla tabella Reparti L’unico attributo sul quale possa essere sensato ammettere valori nulli, è l’attributo FineRicovero della tabella Ricoveri. Infatti la data di fine ricovero non vieni immessa nel Data Base insieme alla registrazione del ricovero del paziente ma successivamente, ovvero al momento della sua dimissione. Le altre informazioni sono importanti, e quindi devono essere immesse necessariamente.