Progettazione di un Data Base Magistrale Marketing Matricola: 565734 Oggetto compito: Progettazione di un Data Base Studente: Sasso Marco Roberto Magistrale Marketing Matricola: 565734
Progettazione di un Data Base Prima Parte: Progettazione di un Data Base
Analisi dei requisiti: Si vuole automatizzare la gestione dei prestiti di una biblioteca personale. A tale scopo bisognerà memorizzare i dati relativi a: Proprietari Amici Libri
Dominio applicativo: Il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema di gestione dei prestiti della biblioteca personale
Schema ENTITA’- RELAZIONI: PROPRIETARI AMICI N : 1 N PRESTITI 1 : N LIBRI N
Progettazione concettuale: Nel nostro caso sono state individuate le seguenti entità: Proprietari Amici Libri
Progettazione concettuale: PROPRIETARI Per l’entità “Proprietari” sono stati individuati i seguenti attributi: Id Proprietario: codice univoco del Proprietario Nome Proprietario
Progettazione concettuale: AMICI Per l’entità “Amici” sono stati individuati i seguenti attributi: Id Amico: insieme degli identificativi di tutti gli amici Nome Amico: insieme di tutti i nomi degli amici Soprannome Amico: insieme di tutti i soprannomi degli amici Telefono Amico: insieme dei numeri di telefono di tutti gli amici Indirizzo Amico: insieme di tutti gli indirizzi degli amici Proprietario: proprietario di appartenenza
Progettazione concettuale: LIBRI Per l’entità “Libri” sono stati individuati i seguenti attributi: Id Libro: codice univoco dei libri Titolo Libro: insieme di tutti i titoli dei libri Autore Libro: insieme di tutti gli autori dei libri Data di restituzione: insieme delle date di restituzione dei libri
Progettazione logica: definizione delle relazioni PROPRIETARI AMICI 1 : N Un amico può servirsi da un solo proprietario Un proprietario può avere più amici
Progettazione logica: definizione delle relazioni AMICI LIBRI N : 1 N : N PRESTITI Un amico può scegliere più libri Un libro può essere scelto da più amici
Progettazione logica: definizione delle relazioni PRESTITI Dalla relazione N : N deriva un’ulteriore entità (PRESTITI) i cui attributi saranno i seguenti : Codice prestito: codice univoco del prestito Campo link alla tabella Amici: definisce l’amico che ha preso in prestito il libro Campo link alla tabella Libri: definisce il libro prestato Data del prestito: definisce la data in cui è stato effettuato il prestito
Progettazione logica: definizione delle caratteristiche degli attributi TABELLA PROPRIETARI Nome Campo Tipo Campo Dimensione Vincoli Note Id Proprietario Numerico Intero lungo Primary Key Nome Proprietario Testo 50 Unique
Progettazione logica: definizione delle caratteristiche degli attributi TABELLA AMICI Nome Campo Tipo Campo Dimensione Vincoli Note Id Amico Numerico Intero lungo Primary Key Nome Amico Testo 25 Not null Soprannome 30 Può essere anche assente e quindi nullo Telefono Amico Indirizzo Amico 40 Fk Proprietario Foreign key Link alla tabella Proprietari
Progettazione logica: definizione delle caratteristiche degli attributi TABELLA LIBRI Nome Campo Tipo Campo Dimensione Vincoli Note Id Libro Numerico Intero lungo Primary Key Titolo libro Testo 40 Unique Autore Libro Data restituzione Data Not Null
Progettazione logica: definizione delle caratteristiche degli attributi TABELLA PRESTITI Nome Campo Tipo Campo Dimensione Vincoli Note Codice prestito Numerico Intero lungo Primary Key Fk Tabella Amici Foreign Key Link alla tabella Amici Fk Tabella Libri Link alla tabella Libri Data del prestito Data
Schema logico
Individuazione di chiavi, vincoli e valori nulli Seconda Parte: Individuazione di chiavi, vincoli e valori nulli
Individuazione Chiavi Chiave primaria: MATRICOLA Chiave esterna: Fk reparti (REPARTO) Chiave primaria: CODICE N : 1 MEDICI REPARTI N : 1 N RICOVERI Chiavi esterne: Fk pazienti (PAZIENTE) Fk reparti (REPARTO) ?? Manca chiave primaria ?? 1 : N PAZIENTI N Chiave primaria: CODICE
Individuazione Vincoli e Valori Nulli MEDICI Non ci devono essere medici con la stessa matricola (MATRICOLA UNIQUE) In un reparto ci possono lavorare più medici (la voce Reparto in Medici non è unique e non è null) Non tutti i medici possono essere primari REPARTI Campo primario= not null e unique (un medico deve essere primario di un solo reparto) Il campo Nome Reparto deve essere unique Non possono esserci codici uguali (codice unique) PAZIENTI
Individuazione Vincoli e Valori Nulli Manca la chiave primaria Il campo Fine deve essere “successivo” temporalmente al campo Inizio Uno stesso paziente non può essere ricoverato nello stesso periodo in 2 reparti diversi Il campo Inizio e il campo Fine devono essere non nulli Il campo Reparto deve essere not null RICOVERI