Oggetto compito:Progettazione di un Data Base
Studente:Sasso Marco Roberto
Magistrale Marketing Matricola: 565734
Prima Parte:Progettazione di un Data Base
Si vuole automatizzare la gestione dei prestiti di una biblioteca personale.
A tale scopo bisognerà memorizzare i dati relativi a:ProprietariAmiciLibri
Analisi dei requisiti:
Il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema di gestione dei prestiti della biblioteca personale
Dominio applicativo:
Schema ENTITA’- RELAZIONI:
PROPRIETARI AMICI
LIBRI
PRESTITI
1 : N
N
N
1 :
N
N : 1
Progettazione concettuale:
Nel nostro caso sono state individuate le seguenti entità:ProprietariAmiciLibri
Progettazione concettuale:
Per l’entità “Proprietari” sono stati individuati i seguenti attributi: Id Proprietario: codice univoco del
ProprietarioNome Proprietario
PROPRIETARI
Progettazione concettuale:
Per l’entità “Amici” sono stati individuati i seguenti attributi: Id Amico: insieme degli identificativi di tutti gli amiciNome Amico: insieme di tutti i nomi degli amiciSoprannome Amico: insieme di tutti i soprannomi
degli amiciTelefono Amico: insieme dei numeri di telefono di
tutti gli amici Indirizzo Amico: insieme di tutti gli indirizzi degli
amiciProprietario: proprietario di appartenenza
AMICI
Progettazione concettuale:
Per l’entità “Libri” sono stati individuati i seguenti attributi: Id Libro: codice univoco dei libriTitolo Libro: insieme di tutti i titoli dei libriAutore Libro: insieme di tutti gli autori dei
libriData di restituzione: insieme delle date di
restituzione dei libri
LIBRI
Progettazione logica: definizione delle relazioni
Un amico può servirsi da un solo proprietario Un proprietario può avere più amici
AMICIPROPRIETARI1 : N
Progettazione logica: definizione delle relazioni
LIBRIAMICI
1 : N
N : 1
PRESTITI
N : N
Un amico può scegliere più libri Un libro può essere scelto da più amici
Progettazione logica: definizione delle relazioni
Dalla relazione N : N deriva un’ulteriore entità (PRESTITI) i cui attributi saranno i seguenti : Codice prestito: codice univoco del prestitoCampo link alla tabella Amici: definisce
l’amico che ha preso in prestito il libroCampo link alla tabella Libri: definisce il libro
prestatoData del prestito: definisce la data in cui è
stato effettuato il prestito
PRESTITI
Progettazione logica: definizione delle caratteristiche degli attributi
TABELLAPROPRIETARI
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
TABELLAAMICI
Nome Campo Tipo Campo Dimensione Vincoli Note
Id Amico Numerico Intero lungo Primary Key
Nome Amico Testo 25 Not null
Soprannome Testo 30 Può essere anche assente e quindi nullo
Telefono Amico Numerico Intero lungo
Indirizzo Amico Testo 40
Fk Proprietario Numerico Intero lungo Foreign key
Link alla tabella Proprietari
Progettazione logica: definizione delle caratteristiche degli attributi
TABELLALIBRI
Nome Campo Tipo Campo
Dimensione Vincoli Note
Id Libro Numerico Intero lungo Primary Key
Titolo libro Testo 40 Unique
Autore Libro Testo 40
Data restituzione Data Not Null
Progettazione logica: definizione delle caratteristiche degli attributi
TABELLAPRESTITI
Nome Campo Tipo Campo
Dimensione Vincoli Note
Codice prestito Numerico Intero lungo Primary Key
Fk Tabella Amici Numerico Intero lungo Foreign Key
Link alla tabella Amici
Fk Tabella Libri Numerico Intero lungo Foreign Key
Link alla tabella Libri
Data del prestito Data
Schema logico
Seconda Parte:Individuazione di chiavi, vincoli
e valori nulli
Individuazione Chiavi
MEDICI
PAZIENTI
RICOVERI
N : 1
N
N
1 :
N
N : 1
REPARTI
Chiave primaria: CODICE
Chiavi esterne: Fk pazienti (PAZIENTE)Fk reparti (REPARTO)
?? Manca chiave primaria ??
Chiave primaria: CODICE
Chiave primaria: MATRICOLAChiave esterna: Fk reparti (REPARTO)
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
PAZIENTI
Non possono esserci codici uguali (codice unique)
Individuazione Vincoli e Valori Nulli
RICOVERI
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