Secondo compito “Progettazione di un DataBase” - Progettazione di un database: gestione dei prestiti di una biblioteca personale - Chiavi, attributi nulli e vincoli referenziali della Base dati OSPEDALE Gestione prestiti di una biblioteca personale Entità ● LIBRI ● AMICI La relazione tra le due è di n:n Ad ogni amico posso prestare uno o più libri; Ogni libro posso prestarlo ad uno o più amici. Da cui: ● PRESTITI Gestione prestiti di una biblioteca personale Schema Entità-Relazioni LIBRI 1:N PRESTIT I N:1 AMICI Gestione prestiti di una biblioteca personale Tabella LIBRI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLO TITOLO TESTO 20 CHIAVE PRIMARIA AUTORE TESTO 20 SCAFFALE NUMERICO 3 Gestione prestiti di una biblioteca personale Tabella AMICI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI NOME TESTO 30 CHIAVE PRIMARIA INDIRIZZO TESTO 30 TELEFONO NUMERICO 10 Gestione prestiti di una biblioteca personale Tabella PRESTITI NOME CAMPO TIPO CAMPO DIMENSIONE VINCOLI TITOLO TESTO 20 CHIAVE ESTERNA NOME TESTO 20 CHIAVE ESTERNA DATA PRESTITO DATA DATA RESTITUZIONE DATA NOTE NOT NULL CHECK IF > (DATA PRESTITO) Gestione prestiti di una biblioteca personale Considerazioni conclusive .Non sono accettabili valori nulli per le Chiavi primarie (Titolo, Soprannome) perchè ho necessità di identificare quale libro ho prestato e a quale dei miei amici, elementi fondamentali del prestito. .Nella tabella AMICI il soprannome individua univocamente l'amico; nella tabella LIBRI il titolo individua univocamente ogni libro. .Nella tabella PRESTITI "impongo" all'utente di indicare "Data restituzione" posteriore alla data del prestito. "Base dati Ospedale" Chiavi ● ● ● Tra le tabelle PAZIENTI e REPARTI esiste una relazione n:n : la si scompone in RICOVERI. Le chiavi primarie sono “Cod” per PAZIENTI, "Cod" per REPARTI – entrambe chiavi esterne nella tabella RICOVERI - e "Matr" per MEDICI; chiave esterna in REPARTI(Primario). Nella tabella RICOVERI chiave primaria può essere quella composta dai campi Paziente, Inizio e Reparto "Base dati Ospedale" Attributi nulli e vincoli referenziali Gli attributi che possiamo ammettere nulli sono tutti quelli che non siano chiavi primarie – se ad esempio non disponessimo del cognome di un paziente, comunque sarebbe sufficiente PAZIENTI(COD) per identificarlo unificamente. Per cui ATTRIBUTI NULLI: REPARTI(Nome) PAZIENTI(Cognome, Nome) MEDICI(Nome,Cognome)