ROCCANOVA DONATO ECONOMIA E MANAGEMENT A.A. 2010/ 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: Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso il nome o il soprannome (per evitare omonimie); Il proprietario fa riferimento ai libri attraverso i titoli (non possiede libri con lo stesso titolo); Quando il proprietario 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 riguardanti la gestione dei prestiti.
SCHEMA ENTITA-RELAZIONI LIBRI 1 N Prestito AMICI N 1 N N
PROGETTAZIONE CONCETTUALE Nel nostro caso sono state individuate le seguenti entità: AMICI LIBRI
PROGETTAZIONE CONCETTUALE AMICI Per lentità Amici sono stati individuati i seguenti attributi: IdAmico NomeSoprannomeAmico IndirizzoAmico TelefonoAmico Amico
PROGETTAZIONE CONCETTUALE LIBRI Per lentità Libri sono stati individuati i seguenti attributi: IdLibro TitoloLibro NomeAutoreLibro CasaEditriceLibro
PROGETTAZIONE LOGICA AMICI LIBRI 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 DataInizioPrestito DataPrevistaRestituzionePrestito
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA AMICI Nome campoTipo campo DimensioneVincoliNote IdAmicoNumericoIntero lungoPrimary Key NomeSoprannomeA mico Testo25Not null IndirizzoAmicoTesto40 TelefonoAmicoTesto15 AmicoTesto50
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA LIBRI Nome campoTipo campo DimensioniVincoliNote IdLibroNumericoIntero lungoPrimary key TitoloLibroTesto40Unique NomeAutoreLibroTesto30Not Null CasaEditriceLibroTesto30Not Null
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA PRESTITI Nome campoTipo campo DimensioneVincoliNote IdPrestitoNumericoIntero lungoPrimaryKey FkLibroPrestitoNumericoIntero lungoForeignKeyLink alla tabella Libri FkAmicoPrestitoNumericoIntero lungoForeignKeyLink alla tabella Amici DataInizioPrestitoDataNot Null DataPrevistaRestituzio nePrestito DataNot Null
Le Primary key sono: IdAmico IdLibro IdPrestito Le chiavi IdAmico e IdLibro fungono anche da Foreignkey nella tabella Prestiti in quanto la tabella Prestiti è generata dal rapporto N:N tra lentità Libri e lentità Amici. I campi IndirizzoAmico, TelefonoAmico e Amico potrebbero essere nulli, poiché il proprietario potrebbe anche fare a meno di questi dati.
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 Cod 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.