PROGETTAZIONE DI UN DATABASE
description
Transcript of PROGETTAZIONE DI UN DATABASE
PROGETTAZIONE DI UN DATABASE
Docente: Prof. Marengo Agostino Studente: La Croix Claudio
Secondo Compito – Abilità Informatiche (4CFU)
Gestione prestiti biblioteca personale
• 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 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.
Schema di relazione
La relazione che lega il libro agli amici è di 1:N in quanto un libro può essere scelto da più amici.
La relazione che lega l’amico ai libri è di N:1 in quanto un amico può scegliere più libri.
Questo comporta che tra libri ed amici c’è una relazione N:N che genera la tabella PRESTITI
Definizione delle caratteristiche degli attributi
TABELLA AMICI
Nome Campo Tipo Campo Dimensione Vincoli Note
IdAmico Numerico Intero lungo primary key
NomeAmico Testo 20 not null
SoprannomeAmico Testo 20
CognomeAmico Testo 30 not null
MailAmico Testo 50
TelefonoAmico Testo 20
Definizione delle caratteristiche degli attributi(2)
TABELLA LIBRI
Nome Campo Tipo Campo Dimensione Vincoli Note
TitoloLibro Testo 40 primary key
AutoreLibro Testo 30 not null
EditoreLibro Testo 40
PagineLibro Numerico 4
Definizione delle caratteristiche degli attributi(3)
TABELLA PRESTITINome Campo Tipo Campo Dimensione Vincoli Note
IdPrestito Numerico Intero lungo primary key
FkAmicoPrestito Numerico Intero lungo foreign key link tabella amici
FkTitoloLibroPrestito Testo 40 foreign key link tabella libri
Data prestito Data not null Data restituzione prevista Data not null
Data restituzione effettiva Data
Benefici e difficoltà valori nulli• I valori nulli possono essere ammessi sull’attributo
DataRestituzione, perché è possibile prestare un libro senza aver fissato una precisa data di restituzione.
• Sarebbe difficile accettare valori nulli sull’attributo “Nome”, perché di solito è necessario sapere chi ha il libro.
• L’attributo “Libro” è la chiave e quindi non può avere valori nulli.
Base dati ospedale
• 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.
Definizione delle caratteristiche degli attributi
TABELLA PAZIENTI
Nome Campo Tipo Campo Dimensione Vincoli Note
IdPaziente Numerico Intero lungo primary key
CognomePaziente Testo 30 not null
NomePaziente Testo 20 not null
DataNascitaPaziente Data not null
Definizione delle caratteristiche degli attributi(2)
TABELLA REPARTI
Nome Campo Tipo Campo Dimensione Vincoli Note
IdReparto Numerico Intero lungo primary key
NomeReparto Testo 30 not null
FkPrimarioReparto Numerico Intero lungo foreign key link tabella medici
Definizione delle caratteristiche degli attributi(3)
TABELLA MEDICI
Nome Campo Tipo Campo Dimensione Vincoli Note
IdMedico Numerico Intero lungo primary key
CognomeMedico Testo 30 not null
NomeMedico Testo 20 not null
FkMedicoReparto Numerico Intero lungo foreign key link tabella reparti
Definizione delle caratteristiche degli attributi(4)
TABELLA RICOVERI
Nome Campo Tipo Campo Dimensione Vincoli Note
IdRicovero Numerico Intero lungo primary key
FkRicoveroPaziente Numerico Intero lungo foreign key link tabella pazienti
FkRicoveroReparto Numerico Intero lungo foreign key link tabella reparto
InizioRicovero Data not null
FineRicovero Data