Abilità informatiche avanzate
description
Transcript of Abilità informatiche avanzate
Abilità informatiche avanzate
Francesco M. G. DesantisMatricola 565853
PARTE 1: PROGETTAZIONE LOGICA
AMICILIBRI1 : N
N : 1
PRESTITI
N : N
PROGETTAZIONE CONCETTUALENel seguente caso sono state rilevate le seguenti entità:
AMICI LIBRI PRESTITIId Amico Nome amicoCognome amicoIndirizzo amicoTelefono amicoEmail amico
Id LibroTitolo libroAutore libroGenere libro
Id prestitoData prestitoData restituzione
NOME CAMPO
TIPO CAMPO
DIMENSIONE VINCOLO NOTE
IdLibro Numerico
Intero lungo Primary key
TitoloLibro Testo 30 Unique
AutoreLibro testo 30 Not null
Genere Libro testo
PROGETTAZIONE LOGICATabella LIBRI
NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI NOTE
IdAmico Numerico Intero lungo Primary key
NomeAmico testo 30 Not null
SoprannomeAmico
testo 30
IndirizzoAmico testo 40 Not null
TelefonoAmico testo 15 Not null
EmailAmico Testo 50
Tabella AMICI
NOME CAMPO TIPO CAMPO
DESCRIZIONE
VINCOLO NOTE
IdPrestito numerico Intero lungo Primary key
FkLibroPrestito Numerico Intero lungo Foreign key Link alla tabella Libri
FkAmicoPrestito numerico Intero lungo Foreign Key Link alla tabella Amici
DataPrestito data Not null
DataRestituzione data Not null
Tabella PRESTITI
Nome campo Tipo campo
Dimensione Vincolo note
IdPaziente Numerico Intero lungo Primary key
NomePaziente testo 30 Not null
CognomePaziente testo 30 Not null
CodicePaziente testo 30 unique
Tabella PAZIENTI
Nome campo Tipo campo
Dimensione Vincolo note
IdReparto numerico
Intero lungo Primary key
Nome Reparto testo 40 Not null
CodiceReparto testo 40 unique
PrimarioReparto testo 30 Not null
Tabella REPARTI
Tabella RICOVERI
Nome campo Tipo campo Dimensione Vincolo note
IdRicovero numerico Intero lungo Primary key
DataInizioRicovero
data Not null
DataFineRicovero
data Not null
FkPaziente numerico Intero lungo Foreign key Link alla tabella pazienti
FkReparto numerico Intero lungo Foreign key Link alla tabella reparti
Nome Campo Tipo campo dimensione Vincolo note
IdMedico numerico Intero lungo Primary key
NomeMedico Testo 30 Not null
CognomeMedico testo 30 Not null
MatrMedico testo 30 unique
FkRicovero numerico Intero lungo Foreign key Link 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