1.Progettare il seguente DataBase in relazione ai due esempi presenti in piattaforma, Modulo 4, esempi 1 e 2: Considerare le informazioni per la gestione dei prestiti di una biblioteca personale. Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso il nome o il soprannome (per evitare omonimie) e fa riferimento ai libri attraverso i titoli (non possiede libri con lo stesso titolo). Quando presta un libro prende nota della data prevista di restituzione. Definire uno schema di relazione per presentare queste informazioni, individuando opportuni domini per i vari attributi e mostrarne unistanza in forma tabellare; indicare la chiave (o le chiavi) della relazione. Valutare le eventuali esigenze di rappresentazione dei valori nulli, con i benefici e le difficoltà connesse.
ANALISI DEI REQUISITI Si vuol progettare un data base per la gestione dei prestiti di una biblioteca personale. La progettazione deve tenere conto di quanto emerso in fase di analisi : Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso il nome o il soprannome (per evitare omonimie) Egli fa riferimento ai libri attraverso i titoli (non possiede libri con lo stesso titolo). Quando presta un libro prende nota della data prevista di restituzione.
DOMINIO APPLICATIVO Il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema della biblioteca personale del proprietario, in particolare quelle coinvolte nel prestito e restituzione dei libri.
SCHEMA ENTITA-RELAZIONI LIBRI 1 N Prestito AMICI N 1
PROGETTAZIONE CONCETTUALE Le entità individuate sono: AMICI LIBRI
PROGETTAZIONE CONCETTUALE AMICI Per lentità Amici sono stati individuati i seguenti attributi: Id Amico Nome _SoprannomeAmico Indirizzo Amico Telefono Amico Amico
PROGETTAZIONE CONCETTUALE LIBRI Per lentità Libri sono stati individuati i seguenti attributi: Id Libro Titolo Libro Data restituzione Libro
PROGETTAZIONE LOGICA AMICILIBRI 1:N Un amico può prendere in prestito più libri Lo stesso libro può essere preso in prestito da più amici in periodi diversi dopo che è stato restituito DEFINIZIONE DELLE RELAZIONI N:1 N:N PRESTITI
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI Dalla relazione N : N deriva una ulteriore entità (PRESTITI) i cui attributi saranno i seguenti: IdPrestito Campo link alla Tabella Libri Campo link alla Tabella Amici DataConsegna Data prevista di restituzione
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA AMICI Nome campoTipo campo DimensioneVincoliNote Id AmicoNumericoInteroLungoPrimary Key Nome_Soprannome Amico Testo40Not null IndirizzoAmicoTesto30 TelefonoAmicoNumerico15 AmicoAlfanume rico 20
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA LIBRI Nome campoTipo campo DimensioniVincoliNote Id LibroNumericoInterolungoPrimary key TitoloLibroTesto50Not null
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA PRESTITI Nome campoTipo campo DimensioneVincoliNote IdPrestitoNumericoInterolungoPrimaryKey FkLibroNumericoInterolungoForeignKeyLink alla tabella Libri FkAmicoNumericoInterolungoForeignKeyLink alla tabella Amici DataConsegnaNumerico8Not Null DataPrevRestituzioneNumerico8Not null
Le Primary key sono lIdAmico,lIdLibro e lIdPrestito; le chiavi IdAmico e IdLibro fungono anche da Foreignkey nella tabella Prestiti poiché la tabella Prestiti è generata dal rapporto N:N tra lentità Libri e lentità Amici. I campi TelefonoAmico, IndirizzoAmico e Amico potrebbero essere nulli,poiché il proprietario potrebbe non essere in possesso di tali dati, il che potrebbe rendere più difficile poter reperire e contattare gli amici per eventuali comunicazioni.
2. Si faccia il download della base di dati (figura pdf) scaricabile al link "Base dati Ospedale" che è presente nella sezione "Compiti". Individuare le chiavi ed i vincoli di integrità referenziale che sussistono nella base di dati in figura e che è ragionevole assumere siano soddisfatti da tutte le basi di dati sullo stesso schema. Individuare anche gli attributi sui quali possa essere sensato ammettere valori nulli.
Le primary key sono: Il codice paziente per la Tabella Pazienti Il codice reparto per la Tabella Reparti La matricola dei medici per la Tabella Medici Cod paziente e data inizio per la Tabella Ricoveri Le foreign key invece sono: Il codice paziente nella Tabella Ricoveri Il codice reparto nella Tabella Ricoveri La matricola dei medici nella tabella Reparti Lattributo sul quale può essere sensato ammettere valori nulli è quello relativo alla data di fine ricovero nella Tabella Ricoveri.
I vincoli di integrità sono: Vincoli interrelazionali: Il campo paziente della tabella Ricoveri deve essere presente nella tabella Pazienti nel campo cod; il campo reparto della tabella Reparti deve essere presente nella tabella Ricoveri nel campo Reparto; Il campo primario della tabella Reparti deve essere presente nella tabella Medici nel campo matr. Vincoli intrarelazionali: Nella tabella Medici al campo Nome deve essere assegnato il nome del medico e al campo cognome deve essere inserito il cognome del medico Vincolo di dominio Il campo reparto non può essere nullo Vincolo di ennupla La data di inizio ricovero deve essere antecedente a quella di fine ricovero