progettazione database biblioteca personale
Post on 23-Feb-2016
48 Views
Preview:
DESCRIPTION
TRANSCRIPT
PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE
De Sario SimonaMatricola: 565581
ANALISI DEI REQUISITI Si vuole automatizzare la gestione di
una biblioteca personale. A tale scopo bisognerà memorizzare i
dati relativi a:• AMICI• LIBRI
Il fine ultimo è ricavare le informazioni relative al prestito e la loro data di restituzione prevista.
DOMINIO APPLICATIVO Nel nostro caso il dominio applicativo è
rappresentato dal tutte le biblioteche.
SISTEMA ENTITÀ-RELAZIONE
AMICI
LIBRI
PRESTITI
N :
1
1 : N
PROGETTAZIONE CONCETTUALE Nel nostro caso sono state individuate le
seguenti entità:• LIBRI• AMICI• PRESTITI
PROGETTAZIONE CONCETTUALE LIBRIPer l’entità Libri sono stati individuati i seguenti attributi:
• TitoloLibro: Che comprende i titoli dei libri presenti nella biblioteca.• AutoreLibro: che comprende gli autori dei libri presenti nella biblioteca (in realtà vi potrebbe essere anche una tabella Autori con relazione 1:N con Libri).• CasaEditriceLibro: che comprende le case editrici dei libri presenti in biblioteca (in realtà vi potrebbe essere una tabella Casa Editrice con relazione 1:n con Libri).
PROGETTAZIONE CONCETTUALE AMICI
Per l’entità Amici sono stati individuati i seguenti attributi:
NomeSoprannomeAmico: Contiene i nomi o i soprannomi degli amici del proprietario della biblioteca (in modo tale da essere univocamente individuati);IndirizzoAmico: contiene i campi indicanti la via e il numero civico di residenza dell’amico;CittaAmico: contiene i campi indicanti il paese di residenza dell’amico (in realtà è più corretto che ci sia un’altra tabella Città collegata con Amico con una relazione 1:N)
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE RELAZIONI
AMICILIBRI
PRESTITI
1 : N
1 : N
N : N
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE RELAZIONIDalla relazione N : N deriva una ulteriore
entità, PRESTITI, i cui attributi saranno i seguenti:• IdPrestito: codice univoco del prestito• Campo link alla tabella Amici (fkNomeSoprannomeAmico): definisce l’amico che ha preso il libro in prestito• Campo link alla tabella Libri (fkTitoloLibro): definisce il libro preso il prestito• DataPrestito: definisce la data del prestito• DataPrevistaRestituzione: definisce la data presunta di restituzione del libro preso in prestito.
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella
Amici
Nomecampo
Tipocampo
Dimensione Vincoli Note
NomeSoprannomeAmico Testo 50 Primary
Key
IndirizzoAmico Testo 100
CittaAmico Testo 40 Not null
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
Tabella Libri
Nomecampo
Tipocampo
Dimensione Vincoli Note
TitoloLibro Testo 40 Primary key
AutoreLibro Testo 50 Not null
CasaEditriceLibro Testo 20
PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Prestiti
Nomecampo
Tipocampo
Dimensione Vincoli Note
IdPrestito Contatore Intero Lungo
Primary
Key
FkNomeSoprannomeAmico Testo 50 Foreing
KeyLink alla tabella Amici
FkTitoloLibro Testo 40 Foreing Key
Link alla tabella Libri
DataPrestito Data Not nullRestituzionePresti
to Data Not null
SCHEMA LOGICO
ISTANZA LIBRI
ISTANZA PRESTITI
ISTANZA AMICI
VALORI NULLIImpostando come vincolo not null, non è possibile saltare la compilazione del campo che, chi ha progettato il DB, ha voluto che necessariamente sia inserito. Il vincolo not null quindi è importante per campi necessari senza dei quali la stessa istanza tabellare avrebbe poco senso. Il beneficio è che senza la compilazione di un determinato campo il soggetto non potrà andare avanti nell’immissione dei dati in tabella mentre lo svantaggio è che se una informazione anche se importante non è immediatamente disponibile non si riuscirà ad andare avanti nella compilazione della tabella e aggiungere l’informazione successivamente. Nel DB biblioteca ho posto come Not null l’Autore nella tabella Libro, in quanto informazione importante, come anche la data del prestito e la data prevista di restituzione contenute nella tabella Prestiti.
DATABASE OSPEDALE
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
Tabella Reparti
Nomecampo
Tipocampo
Dimensione Vincoli Note
CodReparto Testo 1 PrimaryKey
NomeReparto Testo 40 Unique, Not null
FkMedico Numerico Intero Lungo
Foreing Key
Link alla tabella Medici
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
Tabella Pazienti
Nomecampo
Tipocampo
Dimensione Vincoli Note
CodPaziente Testo 4 PrimaryKey
CognomePaziente Testo 40 Not null
NomePaziente Testo 40 Not null
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella
RicoveriNomecampo
Tipocampo
Dimensione
Vincoli Note
FkPaziente Testo 4 ForeingKey
Link alla tabella Pazienti
FkReparto Testo 1 ForeingKey
Link alla tabella Reparti
InizioRicovero Data Not null
FineRicovero Data
Superchiave (Chiave primaria
di Ricoveri)
DATABASE OSPEDALEDEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella
Medici
Nomecampo
Tipocampo
Dimensione
Vincoli Note
MatrMedico Numerico
Intero Lungo
PrimaryKey
NomeMedico Testo 40 Not null
CognomeMedico Testo 40 Not null
FkReparto Testo 1 ForeingKey
Link alla tabella Reparti
DATABASE OSPEDALE
L’unico attributo sul quale possa essere sensato ammettere valori nulli, è l’attributo FineRicovero della tabella Ricoveri.Infatti la data di fine ricovero non vieni immessa nel Data Base insieme alla registrazione del ricovero del paziente ma successivamente, ovvero al momento della sua dimissione. Le altre informazioni sono importanti, e quindi devono essere immesse necessariamente.
top related