Secondo Compito:Progettazione di un database Pinto Vincenzo
Dominio applicativo Tutte l’entità coinvolte nel sistema “Biblioteca”, in particolare quelle relative: amici a cui vengono prestati i libri; amici a cui vengono prestati i libri; libri oggetto dei prestito; libri oggetto dei prestito; data scadenza prestito. data scadenza prestito.
Schema Entità-relazioni Amici Prestiti Libri N 1N1 N N
Progettazione concettuale L’entità individuate sono state: AMICI Per l’entità amici sono stati individuati i seguenti attributi: Id Amico Id Amico Nome amico Nome amico Soprannome amico Soprannome amico Indirizzo Indirizzo N° telefono N° telefono LIBRI Per l’entità libri sono stati individuati i seguenti attributi Id libro Titolo
Progettazione logica Definizione delle relazioni: AmiciLibri 1 N N1 N : N Prestiti
Progettazione logica Relazione 1:N un amico può chiedere in prestito più libri Relazione 1:N un amico può chiedere in prestito più libri Relazione N:1 un libro può essere prestato a più amici Relazione N:1 un libro può essere prestato a più amici
Progettazione logica L’entità Amici e Libri hanno una relazione N:N, deriva un’ulteriore entità (Prestiti) i cui attributi saranno: Id prestito Id prestito Campo link alla tabella Amici: definisce l’amico che a cui è stato prestato il libro Campo link alla tabella Amici: definisce l’amico che a cui è stato prestato il libro Campo link alla tabella Libri: definisce il libro oggetto del prestito Campo link alla tabella Libri: definisce il libro oggetto del prestito Data scadenza del prestito Data scadenza del prestito
Progettazione logica Tabella Amici Nome campo Tipo campo DimensioneVincoliNote Id Amico Numerico Intero lungo Primary key Nome/Sopr.Testo40 IndirizzoTesto50 TelNumerico40
Progettazione logica Tabella Libri Nome campo Tipo campo DimensioneVincoliNote Id libro Numerico Intero lungo Primary Key TitoloTesto80
Progettazione logica Tabella Prestiti Nome campo Tipo campo DimensioneVincoliNote Id prestito Numerico Intero lungo Primary Key FkAmicoNumerico Intero lungo Foreign Key Link alla tabella Amici FkLibroNumercoIntero lungo Foreign Key Link alla tabella Libri Data scadenza prestito DataNot null
Valori nulli Potrebbero essere ammessi come valori nulli: Tabella amici: “indirizzo”, “telefono” Tabella amici: “indirizzo”, “telefono”
Database Ospedale Pazienti: codice (Primary Key) Pazienti: codice (Primary Key) Reparti: codice (Primary Key) Reparti: codice (Primary Key) Medici: matricola (Primary Key) Medici: matricola (Primary Key) Ricoveri: inizio (Primary Key) e codice paziente (Primary Key) Ricoveri: inizio (Primary Key) e codice paziente (Primary Key) Valori nulli che potrebbero essere ammessi: Tabella pazienti: “Cognome”, “Nome” Tabella pazienti: “Cognome”, “Nome” Tabella reparti “Nome reparto” Tabella reparti “Nome reparto” Tabella medici: “Cognome”, “Nome” Tabella medici: “Cognome”, “Nome” Tabella ricoveri: “Fine” Tabella ricoveri: “Fine”
Database Ospedale Vincoli d’integrità: Se esiste un codice “Paziente” nella tabella RICOVERI, lo stesso codice deve essere presente nella tabella PAZIENTI. Se esiste un codice “Paziente” nella tabella RICOVERI, lo stesso codice deve essere presente nella tabella PAZIENTI. Tra “Reparto” nella relazione RICOVERI e “Codice” nella relazione REPARTI. Tra Tra “Primario” in REPARTI e “Matr” nella relazione MEDICI. Tra “Reparto” in MEDICI e“Cod” in REPARTI.