Università degli Studi di Napoli “Federico II” Facoltà di Medicina e Chirurgia Corso di Laurea in Infermieristica Corso di “Sistemi di Elaborazione delle Informazioni” A.A. 2011/2012 Prof. Ing. Ivan Giammona [email protected] 11 Modulo 3 Sistemi Informativi e Database 22 Il Sistema Informativo aziendale Un Sistema Informativo aziendale è costituito: dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda durante l'esecuzione dei processi aziendali; dalle modalità in cui esse sono gestite e dalle risorse, sia umane, sia tecnologiche, coinvolte Il sistema informativo può sfruttare i vantaggi offerti dal Sistema Informatico 3 Il Sistema Informatico aziendale Il Sistema Informatico aziendale rappresenta: quella porzione del sistema informativo che fa uso di tecnologie informatiche e automazione considerata la mole di dati aziendali che bisogna archiviare e gestire, il sistema informatico utilizza software specifici per la gestione di Database, cioè DBMS 4 La progettazione del Database La progettazione del database aziendale (database design) è il processo decisionale su come organizzare i dati in record e su come ciascun tipo di record si relaziona con gli altri (informazioni correlate). 5 Uso di DBMS nel Sistema Informativo Il DBMS dovrebbe rispecchiare la struttura dei dati dell'organizzazione e gestire in maniera efficiente le varie transazioni. Quando si usa un DBMS i sistemi informativi possono essere adeguati molto facilmente al cambiamento delle richieste informative dell'organizzazione. Possono essere aggiunte al database nuove categorie di dati senza dover stravolgere il sistema esistente. 6 Che cos’è un DBMS Un DBMS, cioè Data Base Management System è un programma per la gestione di Database, quindi: Database = Insieme dei dati e metadati; DBMS = Software per la gestione del Database; Il pacchetto software Microsoft Access è un DBMS, quindi permette di creare e gestire Database. 7 Esempi di DBMS Ecco alcuni esempi di DBMS: Access (della Microsoft); SQL Server (della Microsoft); Oracle (della Oracle Corporation); Informix (della IBM); Mysql (è un prodotto Open Source); DB2 (della IBM); 8 Prima dell’arrivo dei DBMS Venivano utilizzate Applicazioni diverse per gestire i vari File System. 9 Problemi degli archivi separati La gestione software degli archivi separati porta ad una serie di problemi, quali: 1. Inconsistenza e ridondanza dei dati Vi possono essere differenze tra i valori relativi ad una stessa entità ma riportati in archivi diversi. La duplicazione di dati crea spreco di memoria 2. Riservatezza dei dati Non vi è garanzia che ai dati abbiano accesso esclusivamente le persone autorizzate, ciascuno per le proprie competenze. I file sono a disposizione di tutti che possono quindi appropriarsi di informazioni riservate. 10 Problemi degli archivi separati 3. Integrità dei dati L'integrità dei dati viene assicurata dai vincoli di consistenza Ad esempio un campo non può assumere valore negativo. Con archivi separati, l'integrità dei dati viene affidata a programmi applicativi (soggetti ad errori) 4. Concorrenza Gestire gli accessi contemporanei alla stessa informazione. 11 Con l’arrivo dei DBMS Abbiamo diverse applicazioni che attraverso il DBMS agiscono sullo stesso Database. 12 Vantaggi dell’utilizzo di un DBMS 1. 2. 3. 4. I dati non sono duplicati L'accesso ai dati avviene in base a privilegi fissati dal DBMS (garanzia di sicurezza e riservatezza) I vincoli di consistenza possono essere fissati all'interno del DBMS L'accesso concorrente ai dati è controllato dal DBMS che gestisce la mutua esclusione dei programmi 13 I Modelli logici di Dati Gerarchico 1. Basato sugli alberi Reticolare 2. Basato sui grafi Relazionale 3. Basato sugli insiemi, dati strutturati in tabelle Ad oggetti 4. Basato sulle proprietà degli oggetti 14 Linguaggi di gestione/manipolazione Dati DDL (Data Definition Language) Per definire lo schema della base di dati Le definizioni dello schema costituiscono il 'Dizionario dei dati' DML (Data Manipulation Language) Per inserire, cancellare, modificare i dati Per effettuare query 15 I Linguaggi per la gestione dei Dati SQL (Structured Query Language) Si pronuncia SEQUEL E’ un linguaggio che racchiude sia le funzionalità proprie di un DDL, sia quelle di un DML. E’ diventato uno standard tra i linguaggi utilizzati dai DBMS (basati sul modello relazionale) per interagire con i Database. Oltre alle funzionalità dei DDL e DML, SQL racchiude anche quelle di Data Control Language (DCL) grazie alle quali è possibile stabilire chi sono gli utenti del Database e quali permessi hanno relativamente alla gestione dei dati. 16 Il Modello Relazionale Il modello relazionale fu introdotto da Codd (1970) e si basa su una semplice ed uniforme struttura dati chiamata relazione, ed ha una solida base teorica La relazione del modello relazionale NON è la relazione degli schemi E/R Si introduce tale modello in quanto la maggior parte dei DBMS sono relazionali (tipo Oracle, Access, MySQL) 17 Il Modello Relazionale Una base di dati relazionale è una collezione di relazioni Una relazione è una tabella costituita da: un numero fisso di colonne (dette attributi) un numero variabile di righe (dette tuple) Ciascuna colonna assume valori estratti da uno stesso dominio (insieme di valori) Il numero di colonne di una relazione si chiama grado, il numero di righe cardinalità 18 Schema di una Relazione E' la descrizione della struttura della relazione. Consiste del nome della relazione e dell’elenco degli attributi che la caratterizzano. La forma è la seguente: Nome relazione (attributo1, attributo2, ….., attributo n) 19 Esempio della relazione Dipendente Esempio: Dipendente (codice fiscale, cognome, nome, indirizzo, telefono) Esempio Codice fiscale Cognome Nome Indirizzo Telefono CFFLAN Cioffi Lamberto Via Veneto 16 0811238904 RSSGDU Rossi Guido Via Marini 74 0812349075 RNZMCI Renzi Michele Via Monza 93 0814342367 DNTFRA Donati Franco Via Bellini 11 0816784563 MNNCRI Manna Ciro Via Verdi 65 0812484657 BNCMRA Bianchi Mario Via Roma 24 0815241688 20 Istanza di una Relazione Insieme delle tuple presenti nella base di dati in un certo istante. Nella definizione formale del modello relazionale è richiesto che le tuple siano tutte distinte. 21 Restrizione di una Tupla La restrizione di una tupla sugli attributi A della relazione R (indicata con t[A]), è data dalla lista dei valori assunti da t sugli attributi A Esempio Considerata la tupla t=(BNCMRA, Bianchi, Mario, v. Roma 24, 081/5241688) Allora una possibile restrizione è: t[Codice fiscale, Nome]=(BNCMRA, Mario) 22 Chiave di una Relazione E’ un sottoinsieme K degli attributi che soddisfa le proprietà: Unicità (in qualunque istanza di R, non possono esistere due tuple distinte la cui restrizione su K sia uguale) Minimalità (non è possibile sottrarre a K un attributo senza violare la condizione di unicità) In generale una relazione può avere più di una chiave, in questo caso si parla di chiavi candidate. 23 Chiave di una Relazione Esempio Codice fiscale Cognome Nome Indirizzo Telefono BNCMRA Bianchi Mario Via Roma 24 081/5241688 Codice fiscale è una chiave Nome non è una chiave (Nome, Indirizzo) non è una chiave (Codice fiscale, Nome) non è una chiave Telefono è una chiave 24 Chiave primaria Tra le possibili chiavi candidate, quella usata più frequentemente per accedere ai dati prende il nome di chiave primaria Le restanti chiavi vengono dette secondarie In genere si indica sottolineando gli attributi che la costituiscono: Esempio: Dipendente (codice fiscale, cognome, nome, indirizzo, telefono) Indica gli attributi chiave 25 Un esempio di Progettazione: Il database Clinica Prendiamo in esame l’ambiente costituito da una clinica e dai suoi pazienti. L’idea è quella di progettare e realizzare un Database che ci permetta di conservare tutte le informazioni necessarie, che riguardano i soggetti coinvolti nel mondo di una clinica. Il primo passo da svolgere è quello di analizzare l’ambiente della clinica al fine di individuare le entità che vi operano. 26 Esempio: Il database Clinica Dall’analisi del mondo reale, rileviamo le seguenti entità: Paziente Ricovero Reparto Esame Medico Dirigente 27 Esempio: Il database Clinica Per ciascuna entità decidiamo di memorizzare le seguenti informazioni: Paziente Dirigente Codice reparto, Denominazione, Edificio, Piano Esame Codice fiscale, Cognome, Nome, Indirizzo, Telefono Reparto Codice fiscale, Cognome, Nome, Indirizzo, Telefono Medico Codice fiscale, Cognome, Nome, Indirizzo, Telefono Codice esame, Tipo, Nome, Data, Valore Ricovero Codice ricovero, Data inizio, Data fine 28 Esempio: Il database Clinica Esaminiamo ora le associazioni che esistono tra le entità individuate: Esegue Accetta E’ l’associazione uno-a-molti che lega le entità Paziente e Ricovero, dato che un paziente può essere ricoverato più volte. Dirige E’ l’associazione uno-a-molti che lega le entità Reparto e Ricovero, dato che ad un reparto corrispondono uno o più ricoveri. Effettua E’ l’associazione uno-a-molti che lega le entità Ricovero ed Esame, dato che in occasione di un ricovero verranno svolti uno o più esami. E’ l’associazione uno-a-uno che lega le entità Dirigente e Reparto, dato che ciascun reparto ha un solo dirigente e viceversa. Lavora E’ l’associazione molti-a-molti che lega le entità Medico e Reparto, dato che un medico può lavorare in uno o più reparti ed in un reparto possono lavorare uno o più medici. 29 Esempio: Il database Clinica E’ possibile mostrare il risultato della nostra analisi mediante una rappresentazione grafica chiamata Modello Entità-Relazione. 30 Regole di Progettazione Vediamo le regole da applicare per ottenere la struttura definitiva delle Tabelle partendo dal modello E-R: Prima regola: Seconda regola: Per le associazioni uno-a-uno si include in una Tabella la chiave primaria dell’altra o viceversa; Terza regola: Si crea una Tabella per ogni Entità con i campi specifici; Per le associazioni uno-a-molti si include nella Tabella coinvolta con cardinalità molti la chiave primaria dell’altra; Quarta regola: Per le associazioni molti-a-molti si crea una nuova Tabella col nome dell’associazione inserendo come campi le chiavi primarie di entrambe le Tabelle coinvolte; 31 Esempio: Il database Clinica Dall’applicazione delle regole di progettazione otteniamo le seguenti tabelle per il Database Clinica: Paziente Ricovero Codice reparto, Denominazione, Edificio, Piano Esame Codice fiscale, Cognome, Nome, Indirizzo, Telefono Reparto Codice fiscale, Cognome, Nome, Indirizzo, Telefono, Codice reparto Medico Codice ricovero, Data inizio, Data fine, Codice paziente, Codice reparto Dirigente Codice fiscale, Cognome, Nome, Indirizzo, Telefono Codice esame, Tipo, Nome, Data, Valore, Codice ricovero Lavora Codice fiscale medico, Codice reparto 32 Esempio: Il database Clinica Avendo ottenuto la struttura definitiva delle tabelle del nostro Database Clinica, possiamo procedere con le seguenti fasi: 1. Creare un nuovo Database Clinica con Access; 2. Creare le nuove Tabelle con le relative strutture del record ottenute dalla fase di progettazione; 3. Creare le relazioni/associazioni tra le tabelle create; 4. Inserire i dati iniziali nel Database Clinica; 5. Creare le maschere per l’inserimento dati nel Database; 6. Creare le query per le interrogazioni/operazioni da svolgere sul Database; 7. Creare i report per l’estrazione dei dati e la visualizzazione su carta; 33 Un altro esempio di Progettazione: Il database Scuola Prendiamo in esame l’ambiente scolastico. L’idea è quella di progettare e realizzare un Database che ci permetta di conservare tutte (o almeno quelle di nostro interesse) le informazioni che riguardano gli aspetti didattici di una scuola. Il primo passo da svolgere è quello di analizzare l’ambiente scuola e individuare le entità che vi operano. 34 Esempio: Il database Scuola (2) Dall’analisi rileviamo le seguenti entità: Alunno Docente Classe Materia Assenza 35 Esempio: Il database Scuola (3) Per ciascuna di esse decidiamo di memorizzare le seguenti informazioni: Alunno Docente Anno, Sezione, Num_alunni Materia Codice fiscale, Cognome, Nome, Indirizzo, Telefono Classe Codice fiscale, Cognome, Nome, Indirizzo, Telefono Descrizione, Indirizzo Assenza Data 36 Esempio: Il database Scuola (4) Esaminiamo ora le associazioni che esistono tra le entità individuate: Insegna_materia Insegna_nella_classe E’ l’associazione che lega le entità Docente e Classe con una cardinalità del tipo “molti-a-molti”. Compie E’ l’associazione che lega le entità Docente e Materia con una cardinalità del tipo “molti-a-molti”, cioè ad un docente corrispondono più materie insegnate e ad una materia corrispondono più docenti che la insegnano. E’ l’associazione che lega le entità Alunno e Assenza con una cardinalità del tipo “uno-a-molti”. Frequenta E’ l’associazione che lega le entità Classe e Alunno con una cardinalità del tipo “uno-a-molti”. 37 Esempio: Il database Scuola (5) E’ possibile mostrare il risultato della nostra analisi mediante una rappresentazione grafica chiamata Modello Entità-Associazione (in inglese Entity-Relationship ovvero Modello E-R) ALUNNO 1 N Compie ASSENZA N DOCENTE Frequenta N Insegna nella classe 1 N CLASSE N Insegna materia N MATERIA 38 Esempio: Il database Scuola (6) Vediamo come si ricava la struttura delle Tabelle dal modello E-R: Prima regola: Seconda regola: Per le associazioni uno-a-uno si include in una Tabella la chiave primaria dell’altra o viceversa; Terza regola: Si crea una Tabella per ogni Entità con i campi specifici; Per le associazioni uno-a-molti si include nella Tabella coinvolta con cardinalità molti la chiave primaria dell’altra; Quarta regola: Per le associazioni molti-a-molti si crea una nuova Tabella col nome dell’associazione inserendo come campi le chiavi primarie di entrambe le Tabelle coinvolte; 39 Esempio: Il database Scuola (7) Applicando le 4 regole al nostro modello E-R otteniamo le seguenti Tabelle per il nostro Database: Alunno Docente Data, Cod_fisc_alunno Insegna_nella_classe Descrizione, Indirizzo Assenza Anno, Sezione, Num_alunni Materia Codice fiscale, Cognome, Nome, Indirizzo, Telefono Classe Codice fiscale, Cognome, Nome, Indirizzo, Telefono, Anno, Sezione Cod_fisc_docente, Anno, Sezione Insegna_materia Cod_fisc_docente, Descrizione, Indirizzo 40 Esempio: Il database Scuola (8) E’ possibile procedere con la creazione di un Database Access composto dalle Tabelle appena viste. In questo modo abbiamo definito la struttura dei dati. Poi bisogna procedere stabilendo le associazioni tra le Tabelle. Premendo l’apposito tasto Relazioni 41 Esempio: Il database Scuola (9) Dalla scheda Relazioni è possibile stabilire le Associazioni tra Tabelle. 42 Esempio: Il database Scuola (10) E’ importante notare che le Tabelle nate dalle associazioni molti-amolti, si trovano adesso correlate verso le Tabelle da cui derivano con una associazione del tipo molti-a-uno. Esempio: N N 1 1 Tabella nata dalla associazione molti-a-molti. 43 La Normalizzazione La normalizzazione è quel procedimento volto a minimizzare la ridondanza dei dati e quindi a prevenire le possibili anomalie legate alla loro memorizzazione. Il processo di normalizzazione si fonda sulla applicazione delle regole stabilite dalle varie forme normali. 44 Dipendenza funzionale Consideriamo il seguente esempio di dipendenza funzionale: AB La scrittura sopra significa che un valore per l’insieme di attributi A determina un singolo valore per l’insieme di attributi B. Si dice A determina B o anche che B dipende funzionalmente da A Per esempio, possiamo prendere in considerazione la tabella Giacenza: GIACENZA Prodotto Magazzino Quantità T-Shirt Palermo 18 Polo Messina 26 Nella tabella Giacenza, abbiamo che la chiave, costitutita dall’insieme di attributi { Prodotto, Magazzino }, determina funzionalmente l’attributo Quantità. Per indicare ciò si usa la scrittura: { Prodotto, Magazzino } Quantità 45 1NF – Prima forma normale Si dice che una Tabella (relazione) è in 1NF (prima forma normale) se: Tutte le righe della tabella contengono lo stesso numero di colonne; I campi (attributi) rappresentano informazioni elementari (atomiche); I valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio; Ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne; 46 Esempio di violazione della 1NF Nell’ esempio seguente, abbiamo la tabella Dipendente che viola la 1NF, perché pur esistendo una chiave primaria Matricola, l'attributo Familiari_a_carico non è atomico. DIPENDENTE Matricola Nome Indirizzo Familiari_a_carico M001 Mario Via Roma 101 Anna, Lino, Stella M002 Carlo Via Milano 89 Elena, Franco M003 Luigi Via Firenze 51 Maria, Roberta 47 Soluzione alla violazione della 1NF In questo caso, è necessario ristrutturare la tabella e suddividerla in due tabelle come segue: FAMILIARE Codice familiare DIPENDENTE Matricola Nome Indirizzo M001 Mario Via Roma 10 M002 Carlo Via Lazio 89 M003 Luigi Via Fani 51 Nome Matricola F001 Anna M001 F002 Lino M001 F003 Stella M001 F004 Elena M002 F005 Franco M002 F006 Maria M003 F007 Roberta M003 Si vede chiaramente che tra le due tabelle nate dalla scomposizione, esiste una associazione uno-a-molti, in quanto per ogni record presente nella tabella Dipendente, vi sono tanti record nella tabella Familiari per quanti sono i familiari a carico. Il campo Matricola della tabella Familiari prende il nome di chiave esterna verso la tabella Dipendente, in quanto permette di sapere, partendo da un certo familiare, chi sia il dipendente che lo tiene a carico. 48 2NF – Seconda forma normale Si dice che una Tabella (relazione) è in 2NF (seconda forma normale) se: E’ in prima forma normale; Tutti i suoi attributi non chiave dipendono dall’intera chiave, cioè non dipendono soltanto da una parte della chiave; 49 Esempio di violazione della 2NF La tabella Inventario definita dallo schema: Inventario (Prodotto, Magazzino, Quantità, Indirizzo_magazzino) Non è in seconda forma normale perché l’attributo Indirizzo_magazzino dipende funzionalmente dall’attributo Magazzino, che risulta essere solo una parte della chiave. INVENTARIO Prodotto Magazzino Quantità Indirizzo_magazzino Pantaloni Palermo 25 Via Roma 36 T-Shirt Trapani 42 Via Napoli 72 Polo Palermo 13 Via Roma 36 Camicie Trapani 30 Via Napoli 72 50 Soluzione alla violazione della 2NF Anche in questo caso, è necessario intervenire sulla Tabella suddividendola in due tabelle come segue: SEDE Magazzino Indirizzo_magazzino Palermo Via Roma 36 Trapani Via Napoli 72 INVENTARIO Prodotto Magazzino Quantità Pantaloni Palermo 25 T-Shirt Trapani 42 Polo Palermo 13 Camicie Trapani 30 Si vede chiaramente che tra le due tabelle nate dalla scomposizione, esiste una associazione uno-a-molti, in quanto per ogni record presente nella tabella Sede, vi sono tanti record nella tabella Inventario per quanti sono i prodotti presenti in quel magazzino. Il campo Magazzino della tabella Inventario rappresenta la chiave esterna verso la tabella Sede, in quanto permette di sapere, partendo da un certo prodotto, l’indirizzo del magazzino in cui è depositato. 51 3NF – Terza forma normale Si dice che una Tabella (relazione) è in 3NF (terza forma normale) se: E’ in seconda forma normale; Tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non vi sono attributi non-chiave che dipendono da altri attributi non-chiave; 52 Esempio di violazione della 3NF Consideriamo per esempio, l’anagrafica di una associazione di studenti appartenenti a diverse scuole. La tabella potrebbe essere strutturata nel modo seguente: Studenti (Nome, Scuola, Telefono_scuola) Non è in terza forma normale, perché c’è un attributo non-chiave (Telefono_scuola) che dipende da un altro attributo non-chiave (Scuola). STUDENTI Nome Scuola Telefono_scuola Rossi ITC Levi 0225457842 Bianchi ITIS Barsanti 0612894658 Verdi ITC Levi 0225457842 Lanza ITIS Fermi 01134567890 Giorgi ITIS Barsanti 0612894658 53 Soluzione alla violazione della 3NF Ancora una volta, procediamo scomponendo la tabella Studenti in due tabelle come segue: STUDENTI Nome Scuola Rossi ITC Levi Bianchi ITIS Barsanti Verdi ISTITUTI Scuola Telefono_scuola ITC Levi 0225457842 ITC Levi ITIS Barsanti 0612894658 Lanza ITIS Fermi ITIS Fermi 01134567890 Giorgi ITIS Barsanti In questo caso tra le tabelle nate dalla scomposizione, esiste una associazione uno-a-molti da Istituti verso Studenti, in quanto per ogni record presente nella tabella Istituti, vi sono tanti record nella tabella Studenti per quanti sono gli di quella scuola che fanno parte dell’associazione. Il campo Scuola della tabella Studenti rappresenta la chiave esterna verso la tabella Istituti, in quanto permette di sapere, partendo da un certo studente, il telefono della scuola cui appartiene. 54 Conseguenze della Normalizzazione Attraverso l’applicazione delle regole corrispondenti alle tre forme normali esaminate, abbiamo la garanzia di: 1. Evitare problemi di ridondanza e inconsistenza dei dati 2. Le tabelle generate dalla scomposizione, contengono le stesse informazioni di partenza e mantengono le dipendenze tra gli attributi 55 I DataBase in Access Un Database in Access risulta composto da un unico file su disco con estensione .MDB (Microsoft DataBase). Un Database Access è composto da diversi oggetti: tabelle query maschere report macro moduli Tanti oggetti messi in costituiscono il Database. relazione tra loro 56 Le Tabelle in Access Una tabella in Access rappresenta una relazione nel modello Relazionale. Una tabella è caratterizzata dalla struttura, cioè dal nome è dal tipo dei campi che compongono il record. I campi corrispondono agli attributi, mentre i record alle tuple. Quindi una relazione nel modello relazionale è fatta di tuple. Una tabella in Access è fatta di record. 57 Le Tabelle in Access Per creare una Tabella in Access è possibile utilizzare diverse modalità. Quella più usata è Crea una Tabella in visualizzazione struttura. 58 Le Tabelle in Access Utilizzando questa modalità è possibile specificare il formato del record. Specificare il formato del record significa fissare i nomi dei campi ed il tipo di dato che possono contenere. 59 Le Tabelle in Access Una volta creata la tabella in modalità visualizzazione struttura, è possibile inserire i dati al suo interno. Nel caso della tabella prodotti l’aspetto sarà il seguente: 60 Le Query in Access Una query di Access può rappresentare: Query che non modificano il Database: un comando (apporta modifiche al Database); una vista (non modifica il Database); Query di Selezione; Query che modificano il Database: Query di Creazione Tabella; Query di Aggiornamento; Query di Accodamento; Query di Eliminazione; 61 Le Query in Access Anche per la creazione di una Query è possibile utilizzare diverse modalità. Quella più usata è Crea una Query in visualizzazione struttura. 62 Le Query di Creazione Tabella Le query di creazione tabella consentono di creare una nuova tabella con i record estratti da altre tabelle. La nuova tabella creata può essere aggiunta allo stesso oppure ad un altro Database. Per creare una query di creazione tabella bisogna scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura. 63 Le Query di Aggiornamento Tabella Le query di aggiornamento tabella consentono di effettuare automaticamente l’aggiornamento dei valori di uno o più campi della tabella. Formula di aggiornamento Per creare una query di aggiornamento tabella bisogna scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nel campo “Aggiorna a” la variazione da apportare al campo da aggiornare. 64 Le Query di Accodamento Le query di accodamento consentono di effettuare un accodamento automatico dei record prelevati da un’altra tabella. Campo in cui accodare Per creare una query di accodamento, basta scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nei campi “Accoda a”, i campi ai quali devono essere accodati quelli risultanti dal prelievo. 65 Le Query di Eliminazione Le query di eliminazione consentono di rimuovere automaticamente da una tabella tutti i record che rispondono ad un determinato criterio. Criterio di selezione Per creare una query di eliminazione, basta scegliere tale opzione dal menù Query quando si è in modalità Crea Query in Visualizzazione Struttura, inoltre bisogna specificare nei campi “Criteri”, i valori che devono avere i campi dei record da eliminare. 66 Le Query di Selezione Le query di selezione, a differenza delle precedenti, non apportano modifiche al database, ma servono solo per effettuare ricerche sui dati sulla base di criteri specificati. Criterio di selezione Per creare una query di eliminazione, basta andare in modalità Crea Query in Visualizzazione Struttura, dato che per default Access crea query di selezione. Poi bisogna specificare nei campi “Criteri”, i valori che devono avere i campi dei record da estrarre e visualizzare. 67 Le Maschere in Access Per facilitare il lavoro dell’utente finale nella gestione dei dati di un Database è possibile realizzare maschere per l’aggiornamento dei dati. Le maschere offrono un metodo di rappresentazione che semplifica la leggibilità dei dati contenuti nelle tabelle. Le maschere servono quindi a creare una interfaccia amichevole per l’utente del database. 68 Le Maschere in Access La modalità più semplice per creare una maschere è attraverso la Creazione guidata. In questo modo è possibile attraverso poche domande, creare velocemente la maschera desiderata. 69 Le Maschere in Access Durante la creazione guidata maschere, verrà chiesto quali tabelle e quali campi far visualizzare nella maschera. Inoltre è possibile specificare il tipo di layout della maschera, oltre che uno stile di colori e caratteri tra diversi modelli predefiniti. Esempio di maschera E’ importante notare che oltre a visualizzare i campi, la maschera permette anche di modificarli. 70 Le Maschere in Access Una volta creata una maschera con la creazione guidata, è possibile modificarne la struttura. Basta cliccare col tasto destro del mouse sul nome della maschera e scegliere dal menù l’opzione visualizza struttura. Comparirà una schermata tipo quella in figura, attraverso la quale potrete apportare tutte le modifiche desiderate. Modifica struttra maschera Qui a fianco c’è la casella degli strumenti utilizzabili per creare ogni tipo di maschera a seconda delle esigenze. 71 I Report in Access Molto spesso per presentare i dati su stampa è opportuno ricorrere all’utilizzo di un Report, in pratica un tabulato. La riproduzione su carta delle tabelle risulta troppo rigida e scarsamente leggibile all’utente finale. I report risultano più adeguati alla necessità di presentare, in modo ordinato ed elegante, i dati estratti dal database. 72 I Report in Access Anche per la creazione dei Report è possibile usufruire della funzione “Creazione Guidata Report”, che ci semplifica notevolmente il lavoro. Come nel caso delle maschere, anche stavolta basterà rispondere ad alcune domande, per avere subito pronto il nostro report personalizzato. 73 I Report in Access Durante la creazione guidata report, viene chiesto quali tabelle e quali campi far visualizzare nel report. E’ possibile inoltre, specificare la struttura del report, l’ordinamento su uno o più campi, lo stile ed altre opzioni. Esempio di report Il report presenta i dati estratti dal Database in un formato chiaro ed elegante. 74 I Report in Access Una volta creato un report con la creazione guidata, è possibile modificarne la struttura. Basta cliccare col tasto destro del mouse sul nome del report e scegliere dal menù l’opzione visualizza struttura, comparirà una schermata come quella in figura, attraverso la quale possiamo apportare tutte le modifiche desiderate alla struttura del report. 75 Conclusioni In conclusione possiamo dire che è possibile approfondire i contenuti esposti nella seguente unità didattica consultando i testi riportati nella bibliografia. 76 Bibliografia 1. 2. “Le Basi di Dati e Il linguaggio SQL” A. Lorenzi, D. Rossi Editore Atlas “Database Systems” Elmasri, Navathe Editore Addison-Wesley 77