Abilità informatiche avanzate Francesco M. G. Desantis Matricola
PARTE 1: PROGETTAZIONE LOGICA AMICILIBRI 1 : N N : 1 PRESTITI N : N
PROGETTAZIONE CONCETTUALE Nel seguente caso sono state rilevate le seguenti entità: AMICI LIBRI PRESTITI Id Amico Nome amico Cognome amico Indirizzo amico Telefono amico amico Id Libro Titolo libro Autore libro Genere libro Id prestito Data prestito Data restituzione
NOME CAMPO TIPO CAMPO DIMENSIONEVINCOLONOTE IdLibroNumeric o Intero lungoPrimary key TitoloLibroTesto30Unique AutoreLibrotesto30Not null Genere Librotesto PROGETTAZIONE LOGICA Tabella LIBRI
NOME CAMPOTIPO CAMPODIMENSIONEVINCOLINOTE IdAmicoNumericoIntero lungoPrimary key NomeAmicotesto30Not null SoprannomeAmi co testo30 IndirizzoAmicotesto40Not null TelefonoAmicotesto15Not null AmicoTesto50 Tabella AMICI
NOME CAMPOTIPO CAMPO DESCRIZIO NE VINCOLONOTE IdPrestitonumericoIntero lungoPrimary key FkLibroPrestitoNumericoIntero lungoForeign keyLink alla tabella Libri FkAmicoPrestitonumericoIntero lungoForeign KeyLink alla tabella Amici DataPrestitodataNot null DataRestituzionedataNot null Tabella PRESTITI
Nome campoTipo campo DimensioneVincolonote IdPazienteNumericoIntero lungoPrimary key NomePazientetesto30Not null CognomePazientetesto30Not null CodicePazientetesto30unique Tabella PAZIENTI
Nome campoTipo campo DimensioneVincolonote IdRepartonumeric o Intero lungoPrimary key Nome Repartotesto40Not null CodiceRepartotesto40unique PrimarioRepartotesto30Not null Tabella REPARTI
Tabella RICOVERI Nome campoTipo campoDimensioneVincolonote IdRicoveronumericoIntero lungoPrimary key DataInizioRico vero dataNot null DataFineRico vero dataNot null FkPazientenumericoIntero lungoForeign keyLink alla tabella pazienti FkRepartonumericoIntero lungoForeign keyLink alla tabella reparti
Nome CampoTipo campodimensioneVincolonote IdMediconumericoIntero lungoPrimary key NomeMedicoTesto30Not null CognomeMedicotesto30Not null MatrMedicotesto30unique FkRicoveronumericoIntero lungoForeign keyLink alla tabella Ricoveri Tabella Medici
PARTE 2 Nel caso in esame le chiavi relative sono “Cod” per la relazione PAZIENTI “Paziente” e “Inizio” per la relazione RICOVERI “Matr” per la relazione MEDICI “Cod” per la relazione REPARTI
La scelta sulla relazione RICOVERI suppone che un paziente possa essere ricoverato solo una volta nello stesso giorno. Se questa ipotesi non viene soddisfatta, e un paziente possa essere ammesso due o più volte nello stesso giorno, la relazione non sarebbe corretta. Infatti due o più ricoveri nello stesso giorno e nello stesso reparto dovrebbero avere anche la stessa data di dimissione, e così si rappresenterebbe nella stessa riga nella relazione.
I vincoli di integrità che esistono nel database sono tra l’attributo “Paziente” in RICOVERI e “Cod” in PAZIENTI, tra “Reparto” nella relazione RICOVERI e “Cod” nella relazione REPARTI, tra “Primario” in REPARTI e “Matr” nella relazione MEDICI e infine tra “Reparto” in MEDICI e “Cod” in REPARTI.
I valori nulli possono essere ammessi negli attributi “Cognome” e “Nome” nella relazione PAZIENTI, “Fine” nella relazione RICOVERI, “Cognome” e “Nome” nella relazione MEDICI e “Nome” nella relazione REPARTI. Tutti questi attributi non sono chiavi e non hanno vincolo di integrità referenziale