Microsoft Access L’uso dei database in azienda Di certo, una delle innovazioni tecnologiche che ha influenzato maggiormente il mondo delle aziende e dei professionisti che gravitano attorno ad esse è rappresentata dal computer, inteso non soltanto come “pc”, ma come sistema di controllo di molti apparati, a partire da quelli più sofisticati e altamente scientifici, per arrivare fino ai quadri di comando delle automobili. E’ impossibile non notare che, negli uffici, nelle case, nei laboratori e nelle aziende sono presenti dei sistemi di elaborazione, tutti, nessuno escluso, strutturati nella stessa identica maniera a livello di architettura logica; ciò che differenzia uno dall’altro è la dimensione, il costo e, soprattutto, la potenzialità e la finalità per la quale sono stati costruiti. Questa precisazione, in apparenza fine a se stessa, consente di comprendere la versatilità del “sistema – computer” e quanti, di conseguenza, possano essere i suoi campi di applicazione. Risulta doveroso, però, aggiungere che un qualsiasi computer non può funzionare senza lo specifico programma per cui esso è preposto: così come la ben nota Playstation non può essere utilizzata senza il cd con il gioco, altrettanto un pc è completamente inutile senza il sistema operativo e senza un qualsiasi programma (Office o altro). Qualora ci ponessimo la domanda se sono stati i computer a imporre l’uso dei programmi nelle aziende oppure sia stato il software ad obbligare queste ultime ad utilizzare i sistemi di elaborazione, correremmo il rischio di ricadere nel noto dilemma dell’uovo e della gallina. Senza dover scomodare tali illustri precedenti, possiamo affermare che la risposta alla questione si posiziona a metà strada tra le due possibilità offerte: infatti, le possibilità offerte dalla tecnologia hanno sicuramente spinto i programmatori a generare software sempre più specializzati, i quali, a loro volta, hanno obbligato i produttori di hardware a potenziare sempre più le caratteristiche dei computer. Fino ad ora, tale duplice sviluppo ha proceduto di pari passo, affermando lo sviluppo, la crescita e, soprattutto, il bisogno dell’Information Tecnology nelle aziende di qualsiasi dimensione. E’ evidente, comunque, che le innovazioni in campo hardware e software da sole non sarebbero state sufficienti a convincere le sfere dirigenziali aziendali ad investire in IT senza la prospettiva di un ritorno economico. Ciò che ha spinto le aziende ad effettuare investimenti, anche ingenti, in questo campo è stato un software, più di altri in grado di consentire risparmi sui costi di gestione. Stiamo parlando dei DBMS (DataBase Management System), applicazioni specializzate nella gestione dei dati aziendali: la convinzione che questi software abbiano influito positivamente sulla crescita dell’IT nasce dal fatto che ogni azienda, così come ogni professionista, deve necessariamente utilizzare degli archivi, nei quali effettuare ricerche e dai quali estrarre prospetti e tabulati. Rispetto ad altre necessità, e ad altri programmi (come quelli di progettazione, di disegno e, addirittura, di videoscrittura), i database sono sicuramente quelli più utilizzati e, quindi, i più importanti per lo sviluppo dell’informatica. A parziale smentita di quanto fino ad ora affermato, possiamo notare però che Microsoft Access, fra i programmi della suite Office, è quello meno utilizzato. La logica spiegazione, che concilia questa realtà di fatto con quanto sopra esposto, sta nel fatto che l’uso di un database presuppone una conoscenza di alcune nozioni d’informatica e richiede una capacità di analizzare i problemi, ben superiore rispetto alle normali cognizioni che consentono l’utilizzo di un word processor o di un software per la presentazione. Prima di affrontare il problema di come creare un database, è necessario chiarire alcuni concetti fondamentali, la cui conoscenza si rivela essere conditio sine qua non per il proseguo della nostra disamina. I database Il termine database può essere tradotto con base di dati, e rappresenta l’insieme di tutte le informazioni che l’azienda intende gestire, correlate tra loro mediante relazioni logiche. In realtà in un database vengono memorizzate anche le regole, le proprietà, i vincoli, i collegamenti, le interrogazioni e le viste che è possibile applicare ai dati. I dati vengono memorizzati in tabelle e, più precisamente, all’interno di specifiche colonne, dette “campi”. Ogni riga delle tabelle di un database prende il nome di “record” e, nell’ambito della stessa tabella, presenta la medesima struttura e dimensione di tutte le altre. In altre parole, il record è l’insieme delle informazioni di ogni singolo elemento memorizzato nell’archivio, mentre i campi ne compongono le informazioni basilari. Un database può essere composto anche da più tabelle, all’interno delle quali non dovranno essere contenuti ovviamente gli stessi dati ma, al contrario, dati di natura diversa, seppur strettamente correlati gli uni agli altri in base ad un vincolo logico. I database management system Spesso i termini database e DBMS vengono confusi o utilizzati come sinonimi. Con DBMS, in realtà, si intende l’insieme delle procedure e delle applicazioni software che permettono di creare le tabelle, di modificare la struttura dei campi, di implementare le relazioni e di interrogare i dati; grazie ai DBMS è possibile interagire direttamente con i database utilizzando appositi strumenti visuali e tramite un linguaggio di manipolazione e di consultazione specifico per l’elaborazione dei dati (SQL). Quasi tutti i DBMS moderni archiviano e gestiscono informazioni usando il cosiddetto modello relazionale per la gestione dei dati. Il nome relazionale nasce dal fatto che ogni record in un database contiene informazioni in relazione a un singolo argomento e solo a quello. Inoltre, i dati su due classi di informazioni (per esempio clienti ed ordini) possono essere manipolati come un’unica entità basata su valori di dati che sono in relazione tra loro. Per esempio, sarebbe ridondante registrare nome e indirizzo del cliente su ogni ordine che abbiamo ricevuto da questi; perciò, in un sistema di database relazione, le informazioni relative ad un ordine, si prevede un campo che archivia un dato, per esempio il numero di identificazione del cliente, che si può usare per collegare ciascun ordine alle informazioni sul cliente. In un sistema per la gestione di database relazionali (RelationDBMS), tutti i dati vengono gestiti come tabelle. Queste, a loro volta, archiviano informazioni su un argomento e hanno colonne ciascuna delle quali contiene un certi tipo di informazione su quell’argomento e righe, ognuna delle quali riporta tutti gli attributi di una singola istanza di quell’argomento. Anche quando si usano le funzionalità del DBMS per ritrovare informazione contenute in una o più tabelle (operazione spesso chiamata query o interrogazione), il risultato è sempre qualcosa che assume la forma di un’altra tabella. E’ anche possibile connettere informazioni provenienti da varie tabelle o query in base a valori correlati. In gergo tecnico questo tipo di connessione prende il nome di join. Progettare un’applicazione database Si potrebbe cominciare a costruire un database in Access nello stesso modo in cui si affronta un problema con un foglio di lavoro in Excel: si organizzano i dati in righe e colonne e poi si inseriscono formule di calcolo dove servono. Chi ha familiarità con le applicazioni database o con i fogli elettronici sa già che questo approccio non pianificato funziona solo nelle situazioni più banali. Per risolvere problemi più seri occorre un’accurata pianificazione, altrimenti si rischia di dover rifare l’applicazione più e più volte. Il vantaggio di utilizzare sistemi per database relazionali come Access sta nel fatto che è molto più facile fare correzioni in corso d’opera, ma rimane pur sempre consigliabile dedicare un po’ di tempo in fase preliminare a progettare le attività che si vogliono realizzare, le strutture di dati che serviranno da sostegno per tali attività e il loro flusso all’interno dell’applicazione database. Ecco riportati brevemente i passi da compiere quando si costruisce una qualsiasi applicazione database: identificazione delle attività: per prima cosa, vale la pena fare un elenco di tutte le principali attività che vogliamo eseguire con l’applicazione, comprese quelle che al momento non servono, ma che potrebbero venire attivate in futuro. Parlando di attività principali intendiamo funzioni applicative che in fase operativa saranno rappresentate sotto forma di maschere o di report di un database Access. In questo senso, quella di immettere gli ordini dei clienti sarà un’attività principale che si vorrà eseguire con una maschera concepita appositamente, mentre quella di calcolare il prezzo fatturato con tutta probabilità è una sub-attività della precedente, che verrà eseguita nella stessa maschera. disegno del flusso delle attività: affinché l’applicazione operi in modo fluido e logico, tutte le attività principali vanno individuate e raggruppate per argomento e poi ordinate all’interno dei gruppi in base alla sequenza in cui devono essere eseguite. Così, ad esempio, potrebbe essere opportuno separare le attività che hanno a che fare con il personale da quelle correlate con le vendite. In questa fase ci si accorge che alcune attività sono correlate con più di un gruppo o che una determinata attività in un gruppo è un prerequisito per eseguire un’attività in un altro gruppo. Raggruppare le attività e tracciarne il flusso aiuta a scoprire il loro flusso “naturale”, che da ultimo si potrà riflettere nel modo in cui vengono concatenati fra loro maschere e report nell’applicazione finita. identificazione dei dati: per ciascuna attività si passa ad elencare i dati necessari per eseguirla e le modifiche che verranno apportate ai dati stessi. organizzazione dei dati: una volta stabiliti tutti i dati che servono per l’applicazione, bisogna organizzarli per argomento e far corrispondere gli argomenti a tabelle e query nel database. In un database relazionale, per progettare il modo più efficiente e flessibile per memorizzare i dati si ricorre ad un processo detto di normalizzazione. prototipo e progetto dell’interfaccia utente: quando le strutture delle tabelle sono pronte, è molto facile simulare il flusso dell’applicazione sotto forma di maschere, collegate fra loro con semplici macro o con routine evento in Visual Basic. costruzione dell’applicazione: nei casi più semplici, il prototipo finisce per coincidere con l’applicazione. Nella maggior parte dei casi, però, si sarà costretti a scrivere qualche codice di programma per automatizzare appieno tutte le attività identificate in fase di progetto. Sarà necessario anche creare alcune maschere di collegamento per facilitare il passaggio da un’attività all’altra. collaudo, revisione e messa a punto: dopo aver preparato i vari componenti dell’applicazione, è necessario collaudare tutte le opzioni che sono state predisposte. Se possibile, è opportuno mettere a disposizione degli utenti le sezioni dell’applicazione via via che sono disponibili, in modo che essi possano contribuire a collaudare il codice e diano un loro parere sul flusso dell’applicazione. Nonostante gli sforzi, è certo che gli utenti riusciranno a trovare modi nuovi e migliori per affrontare una particolare attività dopo che hanno visto come opera una nuova applicazione. Inoltre, il fatto che un’applicazione sia entrata in produzione non significa necessariamente che il processo di affinamento e di revisione si arresti: quasi tutti coloro che hanno sviluppo di software applicato, infatti, ammettono che, dopo aver concluso con una release, molto spesso devono ricominciare da capo a progettare e costruire arricchimenti per i loro software.