1. CASO BIBLIOTECA ANALISI DEI REQUISITI Si vuole automatizzare la gestione prestiti dei libri di una biblioteca personale. La progettazione deve tener conto di quanto emerso in fase di analisi: Il proprietario presta libri ai suoi amici; Gli amici sono indicati attraverso il nome o il soprannome; Il proprietario non possiede libri con lo stesso titolo; Il proprietario quando presta un libro prende nota della data prevista di restituzione. Il fine ultimo è ricavare le informazioni relative ai libri prestati ai diversi amici.
DOMINIO APPLICATIVO Lo scopo dell'analisi del dominio applicativo è quello di comprendere a fondo i concetti, le dinamiche, le regole generali in cui il sistema dovrà essere impiegato, ovvero il contesto in cui il software dovrà agire. In questo caso, il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema Biblioteca, in particolare quelle relative alla gestione dei prestiti.
SCHEMA ENTITÁ-RELAZIONI LIBRIAMICI 1 : N
PROGETTAZIONE CONCETTUALE La progettazione di un data base prevede una fase in cui occorre definire lo schema concettuale dei dati, la specifica delle classi di dati necessarie e le relazioni esistenti tra loro. In questo caso sono state individuate le seguenti entità: AMICI LIBRI Ogni entità è descrivibile mediante gli attributi che la compongono. Ogni attributo è individuato da un nome, dal tipo e dalla dimensione che assume quella particolare entità. L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo.
PROGETTAZIONE CONCETTUALE AMICI Per l’entità Amici sono stati individuati i seguenti attributi: IdAmico NomeSoprannomeAmico TelefonoAmico Amico
PROGETTAZIONE CONCETTUALE LIBRI Per l’entità Libri sono stati individuati i seguenti attributi: IdLibro TitoloLibro DataRestituzioneLibro Campo link alla tabella Amici
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI Una relazione è un’associazione che può essere stabilita tra archivi distinti di un database. Una relazione esiste già nell’ambito di un singolo archivio; infatti tra i campi di un record si stabilisce una relazione in quanto questi sono legati tra loro dal fatto di riferirsi al medesimo oggetto.
PROGETTAZIONE LOGICA La relazione uno-a-molti è caratterizzata dal fatto che ad un record del primo archivio (Amici) sono associati più record nel secondo archivio (Libri), mentre ad un record di Libri è associato un record di Amici. Un libro può essere prestato ad un solo amico; Un amico può ricevere in prestito più libri. LIBRI AMICI 1 : N
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA AMICI Nome CampoTipo Campo Dimension e VincoliNote IdAmicoNumericoIntero lungo Primary Key NomeSoprannomeAmicoTesto40Not Null TelefonoAmicoNumericoInterolungo AmicoTesto40
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA LIBRI Nome CampoTipo Campo DimensioneVincoliNote IdLibroNumericoIntero lungoPrimary Key TitoloLibroTesto40Unique DataRestituzioneLibroDataNot Null FKAmicoNumericoIntero lungoForeign Key Link alla tabella Amici
2. CASO OSPEDALE Le entità che si distinguono sono: Pazienti Reparti Medici PAZIENTIREPARTI N : N RICOVERI Un paziente, durante il corso degli anni, può essere ricoverato più volte in reparti diversi; Un reparto può ospitare più pazienti e più medici; Un medico può operare in un solo reparto. MEDICI 1:N1:N
VINCOLO DI INTEGRITÀ REFERENZIALE L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la Foreign Key: queste regole servono per rendere valide le associazioni tra entità e per eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro. L’integrità referenziale viene rispettata quando, per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria della tabella associata. Infatti: Nell’entità Ricoveri sono presenti le due chiavi esterne associate alle chiavi primarie delle entità Pazienti e Reparti. Vi è, però, un’irregolarità: non è presente la chiave primaria dell’entità Ricoveri; Nell’entità Medici è presente la chiave esterna associata alla chiave primaria dell’entità Reparti. L’unico attributo sul quale può essere sensato ammettere valori nulli è Fine nell’entità Ricoveri poiché il paziente potrebbe ancora essere ricoverato.