Sistema di prestiti di una biblioteca.

Si desidera automatizzare il sistema di prestiti di una biblioteca.

I lettori che frequentano la biblioteca hanno una tessera su cui è scritto il nome e l’indirizzo ed effettuano richieste di prestito per i libri che sono catalogati nella biblioteca. I libri hanno un titolo, una lista di autori e possono esistere in diverse copie. Tutti i libri contenuti nella biblioteca sono identificati da un codice. A seguito di una richiesta viene dapprima consultato l’archivio dei libri disponibili (cioè non in prestito). Se il libro è disponibile, si procede alla ricerca del volume negli scaffali; il testo viene poi classificato come in prestito. Acquisito il volume, viene consegnato al lettore, che procede alla consultazione. Terminata la consultazione, il libro viene restituito, reinserito in biblioteca e nuovamente classificato come disponibile. Per un prestito si tiene nota  degli orari e delle date di acquisizione e di riconsegna.

Modello concettuale

Dal testo si evidenziano le seguenti entità:

Lettore identificato dal codice della tessera dal cognome e nome dall’indirizzo e telefono.

Libro identificato da un codice  da un titolo dall’anno 

Copia rappresenta la copia del libro che va in prestito identificata dalla sua posizione nello scaffale e da un flag che ci dice se è disponibile o no.

Prestito identificato da un codice e dalle date di consegna e restituzione

Autore con i dati degli autori del libro.

  Associazioni

Tra Lettore e Prestito (Richiede) 1:N 

Regola di Lettura

Considerando che esistono lettori che hanno richiesto una tessera ma poi non hanno richiesto nessun prestito

Ogni lettore può richiedere uno o più prestiti. 

Ogni prestito deve essere richiesto da un solo lettore

Tra  Copia Prestito (Prestato) 1:N Supponendo che possa essere preso in prestito un libro per volta

Regola di Lettura

Ogni Copia può essere Prestata in uno o più prestiti. 

In ogni prestito deve essere Prestata una sola copia

Tra Libro e Copia (Possiede) 1:N 

Regola di Lettura

Ogni lettore deve Possedere una o più copie. 

Ogni Copia deve essere Posseduta da un solo libro

Tra Autore i Libro (Scrivere) N:N

Regola di Lettura

Ogni autore deve scrivere uno o più libri . 

Ogni deve essere scritto da uno o più autori

Modello relazionale

Ogni entità si trasforma in una relazione 

Lettori(codice(PK),cognome,nome,via,civico,città,telefono)

Autori(codice(PK),cognome,nome)

Copie(posizione(PK),disponibile)

Libri(codice(PK),titolo,anno)

Prestiti(Id(PK),dataInizio,DataFine)

Passiamo alle associazioni:

L’associazione Scrive tra Autore e Libro diventa N:M diventa una relazione con chiavi le chiavi primarie di Autore e Libro

Scrive(autore(PK),libro(pk))

Le associazioni Richiede e Prestato sono due associazioni uno a molti tra Lettori e Prestiti e tra Copie e Prestiti le chiavi primarie di Lettori e di Copie diventano chiavi esterno di Prestiti  

Prestiti(Id(PK),dataInizio,DataFine,lettore(FK),copia(FK))

Tra Libri  e Copie esiste una associazione uno a molti la chiave di Libri diventa chiave esterna di Copie

Quindi abbiamo il seguente Schema

Relazione Attributi Chiave Formato Dim Null Vincolo  
Lettori codice pk numerico auto incremento   no di chiave  
cognome   testo 20 no    
nome   testo 20 no    
via   testo 20 no    
numero   Numerico        
citta   testo 20 no    
telefono   testo 10 no    
Scrive autore PK numero   no Autori.codice  
libro PK numero   no Libri.codice  
Libri codice PK numero auto incremento     chiave  
titolo   testo 20 no    
anno   string 4      
Prestiti id pk numero auto incremento   no chiave  
dataInizio   data   no default data attuale  
dataFine   data   no maggiore di dataInizio  
lettore FK numero   no Lettore.codice  
copia FK testo 20 no Copie.posizione  
Autori codice PK numero   no Cassette.codice  
nome   testo 20 no    
cognome   testo 20 no    
Copie posizione PK Testo 20 no    
disponibile   testo 1 no default s  

 

 

 

Please follow and like us:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Commenti recenti

Working Hours

  • Monday9am - 6pm
  • Tuesday9am - 6pm
  • Wednesday9am - 6pm
  • Thursday9am - 6pm
  • Friday9am - 6pm
  • SaturdayClosed
  • SundayClosed
Latest Posts

Teachers

Facebook
Twitter
LinkedIn
Contatti

Commenti recenti

Wordpress Social Share Plugin powered by Ultimatelysocial
error

Enjoy this blog? Please spread the word :)

%d blogger hanno fatto clic su Mi Piace per questo: