PROGETTAZIONE DATABASE BIBLIOTECA
PERSONALE
PIOMBINO GIANLUIGI
MATRICOLA: 565577
CONSULENZA PROFESSIONALE
PER LE AZIENDE
2
ANALISI DEI REQUISITI
Si vuole automatizzare la gestione di una biblioteca personale.
A tale scopo bisognerà memorizzare i dati relativi a:• AMICI• LIBRI• AUTORI• CASE EDITRICI
Il fine ultimo è ricavare le informazioni relative ai libri dati in prestito e alla loro data di restituzione prevista.
3
DOMINIO APPLICATIVO
Nel nostro caso il dominio applicativo è rappresentato dal tutte le biblioteche.
4
SISTEMA ENTITÀ-RELAZIONE
AMICI
LIBRI
PRESTITI
N :
1
1 : N
AUTORI
N :
1
CASE EDITRICI
N : 1
5
PROGETTAZIONE CONCETTUALE Nel nostro caso sono state individuate le
seguenti entità:• AMICI• LIBRI• AUTORI• CASE EDITRICI• PRESTITI
6
PROGETTAZIONE CONCETTUALE
AMICI
Per l’entità Amici sono stati individuati i seguenti attributi:
• Id Amico: codice univoco dell’entità Amici;• Soprannome Amico: insieme di tutti i nomi e/o soprannomi degli amici del proprietario della biblioteca che prendono in prestito i suoi libri.
7
PROGETTAZIONE CONCETTUALEAUTO
RI
Per l’entità Autori sono stati individuati i seguenti attributi:
• Id Autore: codice univoco dell’entità Autori;• Cognome Autore: insieme di tutti i cognomi degli autori dei libri presenti in biblioteca;• Nome Autore: insieme di tutti i nomi degli autori dei libri presenti in biblioteca.
8
PROGETTAZIONE CONCETTUALE
CASE EDITRICI
Per l’entità Case Editrici sono stati individuati i seguenti attributi:
• Id Casa Editrice: codice univoco dell’entità Case Editrici;• Denominazione Casa Editrice: insieme di tutte le denominazioni delle case editrici dei libri presenti in biblioteca.
9
PROGETTAZIONE CONCETTUALELIBRI
Per l’entità Libri sono stati individuati i seguenti attributi:• Id Libro: codice univoco dell’entità Libri;• Titolo Libro: insieme di tutti i titoli dei libri presenti nella biblioteca;• Campo link alla tabella Autore: definisce l’autore del libro presente nella biblioteca (posto che ogni libro ha un solo autore);• Campo link alla tabella Casa Editrice: definisce la casa editrice del libro presente nella biblioteca.
10
PROGETTAZIONE LOGICADEFINIZIONE DELLE RELAZIONI
AMICILIBRI
PRESTITI
N : 1
1 : N
N : N
11
PROGETTAZIONE LOGICADEFINIZIONE DELLE RELAZIONI
Tra le tabelle LIBRI e AMICI esiste una relazione N : N, infatti un amico del proprietario della biblioteca può prendere in prestito più libri.Mente uno stesso libro può essere preso in prestito, in momenti diversi, da più amici del proprietario della biblioteca.
12
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE RELAZIONI
Dalla relazione N : N deriva una ulteriore entità, PRESTITI, i cui attributi saranno i seguenti:• Id Prestito: codice univoco dell’entità Prestiti;• Campo link alla tabella Amici: definisce l’amico che ha preso il libro in prestito;• Campo link alla tabella Libri: definisce il libro preso il prestito;• Data del prestito: definisce la data in cui viene dato il libro in prestito ;• Data di restituzione: definisce la data prevista di restituzione del libro preso in prestito.
13
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Amici
Nomecampo
Tipocampo
Dimensione
Vincoli Note
IdAmico Contatore Intero Lungo PrimaryKey
SoprannomeAmico Testo 50 Unique,
Not null
14
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Autori
Nomecampo
Tipocampo
Dimensione
Vincoli Note
IdAutore Contatore Intero Lungo PrimaryKey
CognomeAutore Testo 40 Not null
NomeAutore Testo 40 Not null
15
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Case Editrici
Nomecampo
Tipocampo
Dimensione
Vincoli
Note
IdCasaEditrice Contatore Intero Lungo PrimaryKey
DenominazioneCasaEditrice Testo 60
Unique, Not null
16
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Libri
Nomecampo
Tipocampo
Dimensione Vincoli Note
IdLibro Contatore Intero LungoPrimary
Key
TitoloLibro Testo 50Unique, Not null
FkAutore Numerico Intero LungoForeing
Key
Link alla tabella Autori
FkCasaEditrice
Numerico Intero LungoForeing
Key
Link alla tabella
CasaEditrice
17
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella
PrestitiNomecampo
Tipocampo
Dimensione
Vincoli Note
IdPrestito Contatore Intero Lungo PrimaryKey
FkAmici Numerico Intero Lungo Foreing Key
Link alla tabella Amici
FkLibri Numerico Intero Lungo Foreing Key
Link alla tabella Libri
DataPrestito Data Not null
RestituzionePrestito Data Not null
18
ESEMPIO ISTANZA TABELLAREAmici
IdAmico SoprannomeAmico
1 Benny
2 Marilena
3 Gigi
IdAutoreCognomeAutor
e NomeAutore
1 Brown Dan
2 Vassallo Nicla
3 Borgna Eugenio
Autori
19
ESEMPIO ISTANZA TABELLARE
IdCasaEditrice
DenominazioneCasaEditrice
1 Mondadori
2 Il Mulino
3 Feltrinelli
IdLibro TitoloLibro FkAutore
FkCasaEditrice
1 La solitudine dell’anima 3 3
2 Il simbolo perduto 1 1
3 Per sentito dire 2 3
Case Editrici
Libri
20
ESEMPIO ISTANZA TABELLARE
IdPrestito FkAmici
FkLibri
DataPrestito
RestituzionePrestito
1 2 3 09/07/2010 09/08/2010
2 1 2 25/09/2010 25/10/2010
3 1 1 16/10/2010 16/11/2010
4 3 3 17/10/2010 17/11/2010
5 2 2 01/02/2011 01/03/2011
6 1 3 15/02/2011 15/03/2011
Prestiti
21
CONSIDERAZIONI FINALI
I campi all’interno dei quali non è possibile inserire valore nullo portano sicuramente dei vantaggi all’utilizzatore del Data Base, soprattutto se inesperto, dato che egli non avrà la possibilità di inserire all’interno dei Data Base record incompleti che potrebbero andare ad inficiare sulla efficienza della Base di Dati; ma allo stesso tempo non permettendo all’utente di lasciare alcuni campo di un record incompleti (per una successivo aggiornamento) potrebbero costringerlo a non inserire un’istanza all’interno del Data Base, se non dopo che ha ottenuto tutte le informazioni da inserire in modo da causare un spreco di risorse, in alcuni casi eccessivo.
BENEFICI E SVANTAGGI VALORI NULLI
22DATABASE OSPEDALE
23
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Reparti
Nomecampo
Tipocampo
Dimensione
Vincoli Note
CodReparto Testo 1 PrimaryKey
NomeReparto Testo 40 Unique, Not null
FkMedici Numerico Intero Lungo Foreing Key
Link alla tabella Medici
24
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Pazienti
Nomecampo
Tipocampo
Dimensione
Vincoli Note
CodPaziente Testo 4 PrimaryKey
CognomePaziente Testo 50 Not null
NomePaziente Testo 50 Not null
25
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Medici
Nomecampo
Tipocampo
Dimensione Vincoli Note
MatrMedico Numerico Intero Lungo PrimaryKey
CognomeMedico Testo 50 Not null
NomeMedico Testo 50 Not null
FkReparti Testo 1 ForeingKey
Link alla tabella Reparti
26
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
Tabella Ricoveri
Nomecampo
Tipocampo
Dimensione
Vincoli Note
FkPazienti Testo 4 ForeingKey
Link alla
tabella Pazient
i
Primary Key
(Super Chiave)
FkReparti Testo 1 ForeingKey
Link alla
tabella Reparti
InizioRicovero Data Not
null
FineRicovero Data
27
DATABASE OSPEDALE
L’unico attributo sul quale possa essere sensato ammettere valori nulli, secondo me, è l’attributo FineRicovero della tabella Ricoveri.Infatti la data di fine ricovero non viene immessa nel Data Base insieme alla registrazione del ricovero del paziente ma solo in un memento successivo, ovvero al momento della sua dimissione dall’ospedale.