|
INTRODUZIONE L'argomento trattato in questa tesi è scaturito da una esperienza personale di stage svolta presso il Consultorio Familiare della U.L.S.S. N°5 "OVEST VICENTINO" di Arzignano che ha avuto come scopo lo svolgimento di un lavoro proposto dal Dott. Mauro Gonzo, psicologo presso il suddetto Consultorio (1). In particolare l'obbiettivo dello stage è stata la progettazione e realizzazione di una base di dati per l'immissione e la visualizzazione dei dati raccolti tramite un questionario/intervista preparato dal dott. M. Gonzo nell'ambito del "Progetto Benessere Donna Straniera" e proposto a tutte le donne extracomunitarie che si rivolgono al Consultorio Familiare con la richiesta di interruzione volontaria di gravidanza. Una descrizione più particolareggiata del problema e di come esso sia stato trattato è presentata nella seconda parte di questo elaborato.La prima parte illustra invece quelli che sono, più in generale, gli obbiettivi, le caratteristiche e le metodologie di progettazione di una base di dati.Nella terza ed ultima parte è presentato, con l'aiuto di alcune schermate di esempio, il software realizzato per lo scopo e le operazioni da esso svolte.
CAPITOLO 1
1. SISTEMI PER LA GESTIONE DI BASI DI DATI
Le basi di dati sono sorte verso la fine degli anni sessanta per far fronte ad una esigenza concreta: prima dell'avvento dei DBMS (Data Base Management System) infatti, i sistemi informativi (insiemi di risorse di uomini e strumenti per la raccolta, la memorizzazione, l'elaborazione e lo scambio di informazioni, nonché di regole organizzative per la gestione delle informazioni stesse) erano basati sull'uso di file separati (fig.1), una situazione in cui ciascun programma opera su file diversi e che può provocare i seguenti problemi:
I DBMS nascono per ovviare alle difficoltà esposte in precedenza, in maniera tale che tutte le azioni siano svolte sotto il controllo di un programma specificatamente progettato per gestire dati (fig.2). Un DBMS ha infatti il controllo sull'intero insieme di dati che caratterizzano un particolare ambiente applicativo evitando così la ridondanza e l'inconsistenza, disciplina l'accesso alla base di dati con modalità di utilizzo definite per ciascun utente, dà la possibilità di definire regole per la correttezza verificate automaticamente ed esegue operazioni che permettono la mutua esclusione dei programmi contemporaneamente attivi.
Un DBMS fornisce ai suoi utilizzatori una visione astratta della base di dati. In particolare si possono distinguere tre livelli di astrazione:
I tre livelli di rappresentazione consentono di introdurre i concetti di indipendenza fisica e logica dei dati:
I linguaggi messi a disposizione da un DBMS servono essenzialmente a due scopi distinti: definire la base di dati e manipolarla per ottenere informazioni da essa, pertanto prendono il nome di Data Definition Language (DDL) e Data Manipulation Language (DML).
E' una figura particolare che ha il compito di determinare quella struttura che consente di svolgere tutte le operazioni sui dati con prestazioni adeguate. In particolare l'amministratore deve:
Vi sono diversi tipi di utenti di una base di dati, ciò che li distingue è il diverso modo di interagire con essa. In particolare abbiamo le seguenti classi di utenza:
E' possibile ora individuare le componenti software che compongono il DBMS. I dati memorizzati in memoria di massa sono di tre tipi:
Le componenti funzionali che si trovano all'interno del DBMS sono:
2. MODELLI PER LA GESTIONE DEI DATI
2.1 TIPI DI MODELLI DEI DATI Un modello dei dati è definito come una collezione di concetti atti a rappresentare la realtà. Si distinguono due categorie di modelli di dati:
Un modello concettuale utilizza costrutti astratti per rappresentare una particolare realtà di interesse la cui descrizione prende il nome di schema concettuale. Per ciò che riguarda i dati, nello schema vengono solitamente rappresentate le classi di dati di interesse dell'applicazione che sono descritte con un ricco insieme di strutture di rappresentazione, cioè un insieme di strutture linguistiche tramite le quali si descrive il frammento di realtà che si desidera gestire tramite la base di dati. Accanto alle classi di dati devono essere rappresentate nello schema anche le proprietà (vincoli di integrità) che devono sempre essere valide per tali classi. Una caratteristica comune dei modelli concettuali è la presenza nelle strutture di rappresentazione di meccanismi linguistici per descrivere astrazioni, cioè procedimenti mentali che permettono di evidenziare alcune proprietà significative degli oggetti osservati, escludendone altre non rilevanti. Comuni esempi di astrazione sono:
Un modello concettuale, in quanto rappresentazione astratta e di facile comprensione della realtà dei dati di interesse, può essere utilizzato come linguaggio comune comprensibile sia dal progettista della base di dati che dall'utente, creando così la possibilità di una migliore collaborazione. L'utilità dei modelli concettuali è data anche dalla possibilità di rappresentare, in maniera indipendente dai diversi linguaggi utilizzati per la realizzazione della base di dati, il contenuto informativo della stessa, e dalla maggiore facilità di modificare l'applicazione, nel caso le esigenze dei suoi utilizzatori cambiassero, o eventualmente anche il linguaggio di programmazione.
Il modello entità-relazione adotta per i concetti la seguente rappresentazione grafica:
Una entità rappresenta una classe di oggetti del mondo reale (istanze) aventi proprietà omogenee ai fini dell'applicazione. Queste proprietà, nel caso non siano ulteriormente scomponibili in proprietà più atomiche, vengono chiamate attributi semplici dell'entità, e l'insieme dei valori assumibili da ogni attributo è detto dominio. Un attributo può essere costituito da aggregazioni di attributi semplici, ed in questo caso prende il nome di attributo composto. Le relazioni possono essere definite come classi di fatti significative ai fini dell'applicazione in quanto creano una corrispondenza tra istanze di due o più entità. Una relazione può essere definita fra due o più entità (si pensi, ad esempio, alla relazione < risiede a > che lega le entità Persona e Città) o anche su una sola (come potrebbe essere la relazione < genitore di > che collega le istanze dell'entità Persona). Una astrazione di generalizzazione che mette in relazione un insieme di entità (entità figlie) con una nuova entità (entità padre) è detta appunto generalizzazione. Ogni proprietà (attributi, relazioni e generalizzazioni) della entità padre è anche proprietà delle entità figlie. Quando una generalizzazione avviene fra una entità padre ed una sola entità figlia siamo nell'ambito di una caso particolare che prende il nome di sottoinsieme. L'insieme di regole che gli oggetti del modello concettuale devono rispettare per la correttezza della base di dati sono i vincolo di integrità: un tipo di vincolo è rappresentato dalle cardinalità massime e minime cioè il numero (rispettivamente massimo e minimo) di volte che ogni occorrenza (istanza) della entità può essere coinvolta in una occorrenza della relazione. Un altro tipo di vincolo è l'identificabilità: un identificatore di una entità è definibile come l'insieme degli attributi ed entità di uno schema che identificano univocamente ogni occorrenza della entità stessa.
Il modello relazionale ha fatto la sua comparsa nel mondo dei DBMS commerciali solo agli inizi degli anni ottanta, con lo scopo di affrontare e superare gli aspetti critici che avevano evidenziato i modelli gerarchico e reticolare, come la necessità di personale veramente esperto per progettare basi di dati efficienti, la rigidità del sistema informatico ed i conseguentemente elevati costi di modifica e la dipendenza delle applicazioni dai percorsi di accesso. Un altro importante motivo che ha portato allo sviluppo del modello relazionale è la possibilità di descrivere i dati tramite una struttura semplice, raggiungendo un buon grado di indipendenza tra i programmi e la rappresentazione fisica. Questo tipo di modello logico basa la sua forza sul fatto di muoversi in ambito prettamente matematico, svincolato da considerazioni di carattere fisico e senza alcuna gerarchia di partenza.
I concetti che stanno alla base del modello relazionale sono quelli di relazione e tabella; in particolare si definisce relazione R su una sequenza D1,D2, ,Dn di insiemi, un sottoinsieme finito del prodotto cartesiano D1xD2x xDn. In maniera più semplice si può identificare una relazione con una tabella bidimensionale, che può descrivere una entità, che ha come colonne i domini (D1,D2, ,Dn), a ciascuno dei quali è associato un attributo, cioè un nome, che lo identifica univocamente. Il numero di domini definisce il grado della relazione e la relazione è caratterizzata da un nome e dall'elenco dei suoi attributi, che costituiscono lo schema della relazione. Un esempio di rappresentazione di una relazione è il seguente:
La prima riga della tabella costituisce l'intensione o interpretazione, le rimanenti sono le estensioni o istanze della relazione.
Quando un singolo attributo della relazione concorre alla determinazione univoca di una istanza della relazione stessa diremo che esso è chiave, mentre se lo stesso concorre solamente alla descrizione dell'entità di interesse diremo che è un attributo non chiave. Una chiave della relazione è quindi definita come un insieme non vuoto di attributi elementari che gode delle seguenti proprietà:
2.3.3 Relazioni in forma normale
La normalizzazione delle relazioni viene fatta allo scopo di ottenere strutture dei dati che siano non ridondanti e non soggette ad anomalie conseguenti ad azioni sui dati. In particolare le anomalie si possono verificare:
3. PROGETTAZIONE DI UNA BASE DI DATI
3.1 DATI DI INGRESSO E PRODOTTI DI USCITA
Per poter svolgere l'attività di progettazione di una base di dati è necessario specificare i seguenti dati di ingresso:
Alla fine dell'attività di progettazione avremo i seguenti prodotti di uscita:
3.2 FASI DELLA PROGETTAZIONE Ciò che la progettazione della base di dati deve garantire è una rappresentazione completa e corretta della realtà di interesse ed una rappresentazione efficiente della base di dati stessa tramite le strutture del sistema di gestione scelto. Una metodologia di progetto adatta allo scopo è suddivisa in tre fasi:
3.3 PROGETTAZIONE CONCETTUALE 3.3.1 Strategie di progettazione Le strategie che si possono utilizzare per ottenere una rappresentazione di un insieme di specifiche di una applicazione tramite uno schema concettuale sono le seguenti:
La strategia top-down ha il vantaggio di lavorare per raffinamenti sempre sull'insieme delle specifiche considerato nella sua globalità, ma è di difficile applicazione in molte situazioni reali. La strategia bottom-up è caratterizzata da una maggiore semplicità di applicazione ma necessita di possibili frequenti ristrutturazioni e revisioni di scelte fatte in precedenza. Potrebbe di conseguenza essere spesso opportuna una metodologia mista di progetto che segua ove possibile un approccio di tipo top-down e che comunque, anche in caso di utilizzo di una strategia bottom-up, cerchi di mantenere una visione unitaria dello schema.
Una metodologia di progettazione concettuale deve garantire il raggiungimento di uno schema di elevata qualità. In particolare le qualità di uno schema concettuale sono:
Una metodologia complessiva per la progettazione concettuale può essere la seguente:
3.4 PROGETTAZIONE LOGICA Lo scopo della progettazione logica è quello di tradurre lo schema concettuale in uno schema che sia coerente con il modello logico adottato dal sistema di gestione di basi di dati scelto, in modo da ottimizzare quanto possibile gli indici di prestazione del progetto Una metodologia generale di progettazione logica può essere suddivisa in due passi: il primo è la fase di ristrutturazione dello schema concettuale che da' luogo ad uno schema concettuale semplificato che utilizza solo concetti "vicini" ai modelli logici. Il secondo passo produce una traduzione e una definitiva ottimizzazione nel modello logico scelto.
Questa fase avviene direttamente nel modello Entità-Relazione e si compone a sua volta di cinque fasi:
Considerando come modello logico scelto quello relazionale, una volta terminata la prima fase ciò che resta da fare è rappresentare le entità e le er-relazioni per mezzo dell'unico concetto di r-relazione, seguendo alcune regole generali che prevedono che ogni entità sia tradotta in r-relazione, mentre le er-relazioni che le collegano siano tradotte o meno in nuove r-relazioni a seconda delle circostanze.
La progettazione fisica deve tener conto principalmente del sistema di gestione di basi di dati che verrà utilizzato per realizzare l'applicazione. In questa fase si decidono le caratteristiche fisiche degli archivi, cioè l'insieme dei parametri fisici necessari per la memorizzazione e la gestione degli archivi su memoria di massa. (1) RINGRAZIAMENTO Desidero ringraziare il dott. Mauro Gonzo del Consultorio Familiare presso la sede di Arzignano della ULSS N°5 per avermi dato la possibilità di svolgere un periodo di stage presso l'ente suddetto e per la disponibilità dimostrata durante lo sviluppo di questo mio lavoro.
|