De Sario Simona Matricola: 565581. Si vuole automatizzare la gestione di una biblioteca personale. A...

Post on 02-May-2015

213 views 0 download

Transcript of De Sario Simona Matricola: 565581. Si vuole automatizzare la gestione di una biblioteca personale. A...

PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

De Sario Simona

Matricola: 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 LIBRI

Per 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 RELAZIONI

Dalla 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

PrimaryKey

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 CONCETTUALE

DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella Prestiti

Nomecampo

Tipocampo

Dimensione Vincoli Note

IdPrestito Contatore Intero Lungo

Primary

Key

FkNomeSoprannomeAmico Testo 50 Foreing

Key

Link alla tabella Amici

FkTitoloLibro Testo 40 Foreing Key

Link alla tabella Libri

DataPrestito Data Not null

RestituzionePrestito 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 Ricoveri

Nomecampo

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.