UNIVERSITÀ DELLA CALABRIA Facoltà di SS.MM.FF.NN. Corso di Laurea in Informatica A.A. 2010/2011 PROGETTO PER IL CORSO DI BASI DI DATI RELAZIONALI DOCENTE: PROF. P. RULLO Gruppo A (laboratorio cubo 31B): ing. G. Laboccetta , dott.ssa V.Policicchio GESTIONE DI UNA FARMACIA Gruppo <N> <Matricola, Cognome, Nome> <Matricola, Cognome, Nome> <Matricola, Cognome, Nome> 1 Introduzione Le fasi di progettazione di una base di dati sono le seguenti: Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica Schema logico Progettazione fisica Schema fisico 2 Tematica Progettuale Descrizione dell’ambito tematico oggetto della progettazione. 3 Raccolta e Analisi dei Requisiti L’attività che precede la progettazione vera e propria è la raccolta e l’analisi dei requisiti, che consiste nell’individuare i problemi che l’applicazione intende risolvere e le caratteristiche che tale applicazione dovrà avere. 3.1 Raccolta dei requisiti In questa fase il progettista deve stabilire “quali dati il sistema informativo deve contenere e cosa deve fare il sistema per gestire questi dati”. Questa attività viene realizzata tramite le seguenti attività: 1) interviste agli utenti del sistema 2) visione di documentazione interna 3) analisi di prodotti sw e base dati preesistenti che si intendono rimpiazzare e/o integrare. Il risultato finale di questa attività consiste in un documento che descrive senza ambiguità e/o fraintendimenti ciò che l’applicazione deve risolvere. L’obiettivo finale consiste, dunque, in una descrizione “precisa” delle specifiche del problema in esame, in termini di dati del problema e operazioni di manipolazione su di essi. Requisiti Richiesti 1 2 3 4 5 6 Si vuole rappresentare una base dati per la gestione dei prodotti disponibili in una farmacia tenendo conto delle seguenti informazioni: • Ciascun prodotto è caratterizzato da un nome e una descrizione. I prodotti presenti nella farmacia possono essere farmaci oppure prodotti di profumeria. • I prodotti di profumeria sono di diverso tipo: cosmetici, prodotti per l’igiene e prodotti per la cura del bambino. • Ogni farmaco è individuato univocamente dal proprio nome e dall’informazione relativa alla casa farmaceutica che lo produce, identificata univocamente da nome e recapito. • I farmaci possono essere prescrivibili o non prescrivibili. • I farmaci possono essere coperti da brevetto per un certo numero di anni; in tal caso si parla di farmaci brevettati o di marca. Inoltre la farmacia vende i farmaci generici. Un farmaco generico è un farmaco senza marca equivalente a un farmaco brevettato. Ogni farmaco brevettato può avere uno o più farmaci generici equivalenti. • La farmacia vuole memorizzare le prescrizioni ricevute. Una prescrizione contiene una lista di farmaci prescrivibili, è effettuata da un medico ed è intestata a un paziente. 3.2 Analisi dei requisiti Il documento di raccolta dei requisiti potrebbe presentare delle ambiguità e delle imprecisioni essendo stato scritto in un linguaggio non formale. Il linguaggio naturale, infatti, è ambiguo, essendo soggetto ad interpretazioni personali. L’obiettivo è quello di individuare tutte le ambiguità, i sinonimi e/o gli omonimi presenti, in modo da filtrare tutte le inesattezze derivanti da una strutturazione dei requisiti scritti in un linguaggio naturale. Le attività presenti in questa fase sono difficilmente standardizzabili; tuttavia esistono alcune regole pratiche che si possono seguire: SCEGLIERE IL CORRETTO LIVELLO DI ASTRAZIONE: Non usare termini troppo generici o troppo specifici. STANDARDIZZARE LA STRUTTURA DELLE FRASI: Usare sempre lo stesso stile sintattico. EVITARE FRASI CONTORTE: Usare definizioni semplici e chiare. INDIVIDUARE SINONIMI/OMONIMI E UNIFICARE I TERMINI: Sinonimi: termini diversi con lo stesso significato unificare i termini. Omonimi: termini uguali con significato diverso termini diversi. RENDERE ESPLICITO IL RIFERIMENTO TRA TERMINI: Esplicitare il riferimento (collegamento) tra termini. COSTRUIRE UN GLOSSARIO DEI TERMINI: Per ogni termine una breve descrizione e possibili sinonimi. 3.2.1 Eliminazione delle Ambiguità LINEA TERMINE 1 NUOVO TERMINE MOTIVAZIONE CORREZIONE Sinonimo 3.2.2 Ristrutturazione dei Requisiti Richiesti SPECIFICHE RISTRUTTURATE 1 2 3 4 ………. 3.2.3 Standardizzazione delle Frasi Nella specifica dei requisiti è preferibile usare uno stile sintattico più formale rispetto al linguaggio naturale. Si riportano, a tale scopo, le informazioni chiave, sotto forma di frasi semplici, da cui il modello E-R sarà ricavato. o Inserire qui l’elenco delle specifiche riscritte in modo più formale o … o … 3.2.4 Glossario dei Termini TERMINE DESCRIZIONE SINONIMO COLLEGAMENTI 3.2.5 Raffinamento delle Specifiche e Individuazione dei Concetti di Base Dopo aver eliminato tutte le fonti di ambiguità presenti nel testo, si può eseguire un’analisi più approfondita dei requisiti al fine di individuare i concetti di base, ossia le entità coinvolte nella realtà di interesse. I requisiti del sistema vengono, pertanto, suddivisi in ulteriori sottoparti ognuna delle quali raggruppa le informazioni relative ad una specifico concetto. FRASI DI CARATTERE GENERALE ………………………. FRASI RELATIVE AI …………………………….. FRASI RELATIVE A…. …………………………….. 3.3 Specifica delle Operazioni sui dati previste Accanto alle specifiche sui dati vanno raccolte le specifiche sulle operazioni di manipolazione degli stessi. Sulla base delle richieste del committente, si individuano un insieme di interrogazioni puntuali, ovvero operazioni per l’estrazione di informazioni relative alle singole istanze, e un insieme di operazioni aggregate, effettuate per ottenere informazioni aggregate sulla base di un gruppo istanze di una o più entità. Analisi puntuali Entità1 1. ….. 2. ….. 3. ….. Entità2 4. ….. 5. ….. 6. …. Entità2 7. ….. 8. ….. 9. …. Analisi aggregate 10. ….. 11. ….. 12. …. 4 Progettazione Concettuale 4.1 Schemi E-R FIGURA 1 - SCHEMA E-R 4.2 Documentazione dello Schema E-R 4.2.1 Dizionario dei Dati ENTITÀ DESCRIZIONE ATTRIBUTI IDENTIFICATORE 4.2.2 Descrizione Entità Inserire, per ogni entità dello schema, una tabella descrittiva come quella riportata sotto. Ogni riga della tabella descrive un particolare attributo dell’entità (vengono riportati nome, tipologia, vincoli esistenti, e una breve descrizione). Viene riportata, inoltre, una descrizione dell’entità Entità Persona Descrizione Rappresenta l’insieme delle Persone di interesse nel sistema “Farmacia”. Si suddivide nei due insiemi: “Medico” e “Paziente” Attributo Tipo di dato Vincolo Descrizione CF Stringa Deve essere sempre definito. Rappresenta univocamente un’istanza di Persona Ha dimensione fissa, pari a 16 caratteri 4.2.3 Descrizione Relazioni Inserire, per ogni relazione dello schema, una tabella descrittiva come quella riportata. Ogni riga della tabella descrive un particolare attributo dell’entità (vengono riportati nome, tipologia, vincoli esistenti, e una breve descrizione). Relazione Prescrizione Medica Descrizione Rappresenta l’insieme delle Prescrizioni Mediche consegnate presso la farmacia Entità Coinvolte Nome Entità Cardinalità Descrizione Paziente (1,N) La cardinalità minima è 1 perché i pazienti vengono memorizzati solo se hanno presentato una prescrizione. La cardinalità massima è N perché un paziente può presentare più di una prescrizione Medico …. ……. Farmaco ….. …… Attributi Nome Attributo Vincolo Descrizione Data E’ sempre presente Rappresenta la data di emissione della prescrizione medica …. …. ….. ….. …… …….. 4.2.4 Vincoli non espressi dallo schema E/R Regole di Vincolo Vincolo 1 Il <Concetto> deve/non deve …. <Regola del Vincolo> Vincolo 2 Non può esistere un farmaco generico equivalente a uno di marca, se non è passato il numero di anni di copertura del brevetto. 4.3 Analisi delle Prestazioni dello Schema E-R Analizzando alcuni indici di prestazione del progetto in esame, è possibile modificare lo schema E-R, ottenuto nella fase di progettazione concettuale, al fine di ottenere une versione ottimizzata dello stesso. I parametri o indici di prestazione che generalmente regolano le prestazioni dei sistemi software sono i seguenti: Costo di una operazione: in termini di occorrenze di entità e relazioni che vengono mediamente visitate per rispondere ad una operazione fatta sulla base di dati; Occupazione di memoria: in termini di spazio di memoria necessario per memorizzare i dati descritti dallo schema. Risulta necessario, quindi, conoscere le seguenti informazioni: Volume dei Dati o Numero di occorrenze di ogni entità ed associazioni dello schema; o Dimensioni di ciascun attributo. Caratteristiche delle Operazioni o Tipo di operazione (Interattiva I oppure Batch B); o Frequenza delle operazioni; o Dati coinvolti (entità e/o associazioni). Il risultato di tali operazioni si traduce nella generazione di due tabelle, quella dei dati e quella delle frequenze. 4.3.1 Tavola dei Dati CONCETTO NELLO TIPO SCHEMA E-R (Entità/Relazione) VOLUME ……….. ……… ……. ……….. ……… ……. 4.3.2 Tavola delle Frequenze OPERAZIONE FREQUENZA TIPO (Interattiva o Batch) O… X richieste/giorno = al giorno ….. O… ….. O… Y accessi/giorno x Z = K al giorno ….. O… ….. O… J all’anno O… Q al mese 4.4 Analisi delle ridondanze ….. 4.4.1 Tavola degli accessi in presenza di ridondanza OPERAZIONE1 Concetto ConcettoA Costrutto Accesso Tipo E/R NUM L/R …. OPERAZIONE_N Concetto ConcettoX Costrutto Accesso Tipo E/R NUM L/R 4.4.2 Tavola degli accessi in assenza di ridondanza OPERAZIONE1 Concetto Costrutto Accesso Tipo ConcettoA E/R NUM L/R …. OPERAZIONE_N Concetto ConcettoX Costrutto Accesso Tipo E/R 4.4.3 Valutazioni Conclusive NUM L/R