Download - PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

Transcript
Page 1: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

De Sario SimonaMatricola: 565581

Page 2: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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.

Page 3: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

DOMINIO APPLICATIVO Nel nostro caso il dominio applicativo è

rappresentato dal tutte le biblioteche.

Page 4: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

SISTEMA ENTITÀ-RELAZIONE

AMICI

LIBRI

PRESTITI

N :

1

1 : N

Page 5: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

PROGETTAZIONE CONCETTUALE Nel nostro caso sono state individuate le

seguenti entità:• LIBRI• AMICI• PRESTITI

Page 6: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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).

Page 7: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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)

Page 8: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

PROGETTAZIONE CONCETTUALEDEFINIZIONE DELLE RELAZIONI

AMICILIBRI

PRESTITI

1 : N

1 : N

N : N

Page 9: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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.

Page 10: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 11: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 12: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 13: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

SCHEMA LOGICO

Page 14: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

ISTANZA LIBRI

ISTANZA PRESTITI

ISTANZA AMICI

Page 15: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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.

Page 16: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

DATABASE OSPEDALE

Page 17: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 18: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 19: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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)

Page 20: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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

Page 21: PROGETTAZIONE DATABASE BIBLIOTECA PERSONALE

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.