Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

19
Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721

Transcript of Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Page 1: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione di database

Gestione della biblioteca personale

Pasquale de Tullio565721

Page 2: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Analisi dei requisiti

Si vuole progettare un DB per la gestione della biblioteca personale. È emerso che:

• Il proprietario presta libri ai suoi amici• quando presta un libro prende nota della data

prevista di restituzione• fa riferimento ai libri attraverso i titoli

Page 3: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Dominio applicativo

Nel nostro caso il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema Biblioteca personale in particolare quelle relative alla gestione del prestito dei libri ai propri amici

Page 4: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Schema entità - relazioni

Proprietari

Libri

Amici

Prestiti

1

1

1

n

n

n

n

n

Page 5: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione concettuale

Nel nostro caso sono state individuate le seguenti entità:

• Proprietari• Amici• Libri

Page 6: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione concettuale

Proprietari

Sono stati individuati i seguenti attributi:Id proprietarioNome proprietario

Page 7: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione concettuale

Amici

Sono stati individuati i seguenti attributi:Id amicoNome amicoSoprannome amicoTel amicoIndirizzo amico

Page 8: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione concettuale

Libri

Sono stati individuati i seguenti attributi:Id libroTitolo libroAutore libroGenere libroData restituzione

Page 9: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione logicadefinizione delle relazioni

Proprietari Amici1 n

• Un amico può avere un solo proprietario• Un proprietario può avere più amici

Page 10: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

• Più libri posso essere prestati ad un amico• Più amici possono avere in prestito un libro

Amici Librin n

Progettazione logicadefinizione delle relazioni

Page 11: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Libri Amici1 n

n 1

Prestiti

N : N

Progettazione logicadefinizione delle relazioni

Page 12: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Dalla relazione N:N deriva l’entità PRESTITI con i seguenti attributi:

Id prestitoCampo link a tabella Amici: definisce a chi è stato prestato il libroCampo link a tabella Libri: definisce che libro è stato prestatoData del prestito

Progettazione logicadefinizione delle relazioni

Page 13: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione logicadefinizione degli attributi

Nome campo Tipo campo dimensione vincoli note

Id Proprietario Numerico Intero Lungo PK

Nome Proprietario

testo 50 unique

Tabella Proprietari

Page 14: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione logicadefinizione degli attributi

Nome campo Tipo campo dimensione vincoli note

Id Amico Numerico Intero Lungo PK

Nome Amico testo 50 Not null

Soprannome Amico

testo 25 Può anche non esserci

Tel amico testo 15 Not null

Indirizzo amico testo 25 Not null

Fk id Proprietario

Numerico Intero Lungo FK Link a tabella proprietari

Tabella Amici

Page 15: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione logicadefinizione degli attributi

Nome campo Tipo campo dimensione vincoli note

Id Libro Numerico Intero Lungo PK

Titolo libro testo 40 unique

Autore libro testo 40 Not null

Genere libro testo 40 Not null

Data restituzione

data Not null

Tabella Libri

Page 16: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Progettazione logicadefinizione degli attributi

Nome campo Tipo campo dimensione vincoli note

Id prestito Numerico Intero Lungo PK

Fk Amici Numerico Intero Lungo FK Link a tabella amici

Fk Libri Numerico Intero Lungo FK Link a tabella libri

Data prestito data Not null

Tabella Prestiti

Page 17: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Caso Ospedale

Page 18: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Caso OspedaleChiavi:Tabella Ricoveri sono FK Pazienti : “Paziente”

FK Reparti: “Reparto”Manca Id Ricovero

Tabella Pazienti è PK: Cod

Tabella Reparti è PK: Cod

Tabella Medici è Pk: matrFk: reparto

Page 19: Progettazione di database Gestione della biblioteca personale Pasquale de Tullio 565721.

Caso OspedaleVincoli di integrità referenziale e gli attributi sui quali si possono ammettere valori nulli:

• non ci possono essere medici con stessa Matricola (matr di Medici: Unique)• un medico deve essre primario di un solo reparto (voce primario di Reparti deve essere not null e unique)• in un reparto ci possono essere più medici, non tutti i medici possono essere primari (voce reparto di medici not unique e not null, ciò nel caso in cui nella tabella medici ci siano altri record)• non ci possono essere pazienti con lo stesso codice (voce cod paziente unique)• manca id ricovero in ricoveri• non ci possono essere reparti con lo stesso nome (voce nome reparto deve essere unique)•Data fine ricovero deve essere successiva data inizio ricovero•Lo stesso paziente non può essere ricoverato nello stesso periodo in reparti diversi• data inizio e data fine devono essere not null• nome reparto deve essere not null