Progettazione di un Data Base Daraio Andrea
Si vuole progettare un database per la gestione di una biblioteca personale, dove il proprietario: Presta i libri ai suoi amici, annotati con nomi e soprannomi (per evitare omonimie); Si riferisce ai libri mediante i titoli (assenza di libri con titoli identici); Annota il prestito con la prevista data di restituzione
Nel nostro caso il dominio applicativo è rappresentato da tutte le entità presenti nel sistema biblioteca, in particolare quelle relative alla gestione dei prestiti.
Biblioteca Prestito 1 : N Libri Amici 1 : N N : 1 N N
Nel nostro caso sono state individuate le seguenti entità: BIBLIOTECA LIBRI AMICI
BIBLIOTECA Per lEntità Biblioteca abbiamo individuato gli attributi: Biblioteca: nome Proprietario: nome e cognome Indirizzo biblioteca Telefono proprietario proprietario BIBLIOTECA Per lEntità Biblioteca abbiamo individuato gli attributi: Biblioteca: nome Proprietario: nome e cognome Indirizzo biblioteca Telefono proprietario proprietario
LIBRI Per lEntità Libri abbiamo individuato gli attributi: Titolo Codice ISBN: codice identificativo di ogni libro Autore Genere LIBRI Per lEntità Libri abbiamo individuato gli attributi: Titolo Codice ISBN: codice identificativo di ogni libro Autore Genere
AMICI Per lEntità Amici abbiamo individuato gli attributi: Nome e Cognome Amico Soprannome Amico Telefono Amico Amico AMICI Per lEntità Amici abbiamo individuato gli attributi: Nome e Cognome Amico Soprannome Amico Telefono Amico Amico
Biblioteca 1 : N Libri Esiste una sola biblioteca La biblioteca può fornire più libri
Amici N : N Libri Un amico può prendere in prestito più libri Un libro può essere prestato a più amici
Amici N : 1 Libri 1 : N N : N Prestito
Dalla relazione N : N abbiamo unaltra entità, Prestito, la quale presenta i seguenti attributi : Id Prestito Campo link alla tabella Libri: definisce il libro prestato Campo link alla tabella Amici: definisce a chi è stato prestato il libro Data restituzione Dalla relazione N : N abbiamo unaltra entità, Prestito, la quale presenta i seguenti attributi : Id Prestito Campo link alla tabella Libri: definisce il libro prestato Campo link alla tabella Amici: definisce a chi è stato prestato il libro Data restituzione
Libri Nome campoTipo campoDimensioneVincoliNote TitoloTesto40Primary Key Codice ISBNNumericoIntero lungoNot null AutoreTesto40 GenereTesto40 FkBibliotecaNumericoForeign KeyLink alla tabella Biblioteca
Biblioteca Nome campoTipo campoDimensioneVincoliNote BibliotecaTesto30Primary Key ProprietarioTesto40Not null Indirizzo Biblioteca Testo40Not null Telefono Proprietario Testo15Not null Proprietario Testo50
Amici Nome campoTipo campoDimensioneVincoliNote Cognome Amico Testo30Not null Nome AmicoTesto30Not null Soprannome Amico Testo40Primary Key Telefono Amico Testo15Not null AmicoTesto50
Prestito Nome campoTipo campoDimensioneVincoliNote Id PrestitoNumericoIntero lungoPrimary Key FkLibriPrestit o NumericoIntero lungoForeign KeyLink alla tabella Libri FkAmiciPrest ito NumericoIntero lungoForeign KeyLink alla tabella Amici Data restituzione DataNot null
PAZIENTI Key: COD REPARTI Key: Matricola RICOVER I Key: Codice Nome Codice Nome MEDICI Key: Paziente Inizio Fine Paziente Inizio Paziente Fine
Possiamo individuare vincoli di integrità referenziale tra: lattributo COD della relazione PAZIENTI e la relazione RICOVERI lattributo REPARTO della relazione RICOVERI e le relazioni REPARTI e MEDICI gli attributi COD e PRIMARIO della relazione REPARTI e la relazione MEDICI
Può essere sensato ammettere valori nulli sugli attributi: COGNOME e NOME nellistanza PAZIENTI REPARTO nellistanza RICOVERI NOME e COGNOME nellistanza MEDICI