STUDENTE: Arianna Carucci matricola 567299 Corso di Laurea Magistrale in Economia e Management Corso di ABILITA’ INFORMATICHE AVANZATE Facoltà di Economia A.A. 2010/2011 Prog. Ing. Agostino Marengo 2 ° COMPITO: PROGETTAZIONE DI UN DATABASE
PARTE I
1) DATABASE di una BIBLIOTECA PERSONALE 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 un’istanza 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 vuole progettare un database per la gestione dei prestiti in una biblioteca personale. Dall’analisi preliminare emerge quanto segue: Il proprietario individua gli amici a cui presta i libri attraverso nome/soprannome; I libri vengono individuati secondo il titolo ( non esistono in biblioteca due libri con lo stesso titolo; Il proprietario annota per ciascun prestito data di restituzione.
Schema entità-relazioni: Amici 1 : N Prestiti N : 1 Libri
PROGETTAZIONE CONCETTUALE Inizialmente sono state individuate le seguenti entità: AMICI LIBRI
PROGETTAZIONE CONCETTUALE AMICI Per l’entità Amici sono stati individuati i seguenti attributi: Nome Amico/Soprannome Amico= CHIAVE della RELAZIONE
PROGETTAZIONE CONCETTUALE LIBRI Per l’entità LIBRI sono stati ipotizzati i seguenti attributi: Titolo Libro = CHIAVE della RELAZIONE
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI AMICI LIBRI N : N Un libro può essere prestato a più amici Un amico può prendere in prestito più libri La relazione N : N è caratterizzata dal fatto che ad ogni record dell’archivio A sono associati più record dell’archivio B e viceversa.
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI Dalla relazione N : N deriva una ulteriore entità (PRESTITI) i cui attributi saranno i seguenti: Data Prestito Data restituzione Prestito = CHIAVE della relazione Campo link alla tabella Amico: definisce l’amico che ha preso in prestito Campo link alla tabella Libro: individua il libro oggetto del prestito
DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Amici Nome Campo Tipo Campo Dimensione Vincoli Note Nome/ Soprannome Amico Alfanumerico 40 Primary Key
PROGETTAZIONE LOGICA: DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Libri Nome Campo Tipo Campo Dimensione Vincoli Note Titolo Libro Alfanumerico 50 Primary key
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Prestiti Nome Campo Tipo Campo Dimensione Vincoli Note Data Prestito DATA Data restituzione Prestito Primary key FkAmico Prestito Alfanumerico 40 Foreign Key Link alla tabella Amici FkLibro Prestito 50 Link alla tabella Libri
PARTE II
BASI DI DATI OSPEDALE Tabella Ricoveri Nome campo Tipo campo Dimensione Vincoli Note Inizio Data Primary Key Not Null Fine FK Paziente Numerico 20 Foreign Key Link alla tabella Paziente FK Reparto 30 Link alla tabella Reparto
BASI DI DATI OSPEDALE Tabella Pazienti Nome campo Tipo campo Dimensione Vincoli Note Cod Numerico 20 Primary Key Not Null, Unique Cognome Alfanumerico 30 Nome FK Medico Foreign Key Link alla tabella Medico
BASI DI DATI OSPEDALE Tabella REPARTO Nome campo Tipo campo Dimensione Vincoli Note Cod Numerico 20 Primary Key Not Null, Unique Nome Alfanumerico 30 Primario Not Null
BASI DI DATI OSPEDALE Tabella MEDICO Nome campo Tipo campo Dimensione Vincoli Note Matricola Numerico 20 Primary Key Not Null, Unique Nome Alfanumerico 30 Cognome Reparto Not Null
CHIAVI Le chiavi sono: per la relazione PAZIENTE: Cod e Medico per la relazione RICOVERO: Inizio, Paziente e Reparto per la relazione MEDICO: Matr per la relazione REPARTO: Cod
VINCOLI DI INTEGRITÁ REFERENZIALE Nel database esistono dei vincoli di integrità referenziale, che in questo caso sono: In RICOVERO: Paziente; e in PAZIENTE: Cod Nella relazione RICOVERO il vincolo è: Reparto e nella relazione REPARTO è: Cod In REPARTO il vincolo é: Primario e nella relazione MEDICO è: Matr In MEDICO il vincolo è: Reparto e in REPARTO è: Cod
VALORI NULLI I valori nulli possono essere ammessi negli attributi: Cognome e Nome nella relazione PAZIENTE, Fine nella relazione RICOVERO, Cognome e Nome nella relazione MEDICO Nome nella relazione REPARTO. Tutti questi attributi non sono chiavi e non hanno nessun vincolo di integrità referenziale.