Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
- Modulo 5 Database Prof. Lorenzo Cassarisi Cap. 1: Nozioni Preliminari - Dalla carta al database Se si ha bisogno di archiviare i propri dischi, oppure di gestire entrate e uscite di un magazzino, o ancora di catalogare i libri di una biblioteca, o di gestire l'elenco docenti per ottenere consigli di classe, cattedre e quant'altro, allora si ha bisogno di un DATABASE. 22/05/2017 Modulo 5: Database 2 Cap. 1: Nozioni Preliminari - Dalla carta al database Un Database è un insieme ordinato di archivi, strutture e procedure che consentono la gestione (inserimento, modifica, ricerca e cancellazione) di una serie di informazioni. 22/05/2017 Modulo 5: Database 3 Cap. 1: Nozioni Preliminari - Dalla carta al database La progettazione di un database dovrà essere effettuata in modo che non si presentino problemi di reperimento delle informazioni, di ampliamento della base dati e di ristrutturazione dello schema. 22/05/2017 Modulo 5: Database 4 Cap. 1: Nozioni Preliminari - Dalla carta al database Lo scopo è ottenuto disegnando con oculatezza i vari archivi che compongono il database e studiando i legami fra di essi in modo da ottimizzare le successive procedure di gestione. 22/05/2017 Modulo 5: Database 5 Cap. 1: Nozioni Preliminari - Dalla carta al database Esistono due metodologie che supportano tale processo: 1. modello relazionale (sviluppato nel 1969 dal matematico Codd); 2. modello Entità/Relazione (E/R); 22/05/2017 Modulo 5: Database 6 Cap. 1: Nozioni Preliminari - Database relazionale Il database può essere pensato come una serie di tabelle, ognuna delle quali contiene informazioni omogenee. 22/05/2017 Modulo 5: Database 7 Cap. 1: Nozioni Preliminari - Database relazionale Un database si dice RELAZIONALE se i dati non sono memorizzati in un’unica grande tabella, ma in più tabelle tutte in relazione tra di loro. Le informazioni di diverse tabelle possono essere unite ed è possibile eseguire ricerche in più tabelle contemporaneamente. 22/05/2017 Modulo 5: Database 8 Cap. 1: Nozioni Preliminari - Database relazionale Excel spesso viene usato anche per gestire elenchi, ma in molte situazioni non è all’altezza del compito. In questi casi bisogna utilizzare un vero database. 22/05/2017 Modulo 5: Database 9 Cap. 1: Nozioni Preliminari - Database relazionale I database sono più sicuri: excel, per esempio, lavora interamente in memoria. In caso di blocco del computer, tutti i dati non salvati andrebbero persi; I database possono gestire una maggiore quantità di dati. Excel può gestire in teoria 65.000 righe ma, una quantità di dati di questo tipo potrebbe rendere lentissimo anche il computer più potente; Nei database si possono utilizzare le relazioni tra tabelle. 22/05/2017 Modulo 5: Database 10 Cap. 1: Nozioni Preliminari - Database relazionale Access è composto da oggetti che consentono di inserire, modificare, gestire e stampare i dati: Tabelle Query Maschere Report Macro Modulo 22/05/2017 Modulo 5: Database 11 Cap. 1: Nozioni Preliminari - Le tabelle Le tabelle sono strutture fondamentali in un database di access perché memorizzano i dati che si devono gestire. All’interno di una tabella, i dati sono organizzati in campi (colonne) e record (righe): In una tabella è possibile inserire, modificare, memorizzare e ricercare informazioni. 22/05/2017 Modulo 5: Database 12 Cap. 1: Nozioni Preliminari - Le tabelle Campi Un campo è uno spazio nel database che contiene un'unità di informazione, come un nome, un numero di telefono, una data. Quando si crea un database è necessario includere un campo per ogni categoria di dati a cui si è interessati. Per esempio campo cognome; in esso nella colonna verranno messi tutti i cognomi. 22/05/2017 Modulo 5: Database 13 Cap. 1: Nozioni Preliminari - Le tabelle Record Un record è costituito da un insieme di campi riferiti a un singolo soggetto. In un database che raccoglie i dati dei clienti, per esempio, tutte le informazioni relative a uno stesso cliente sono registrate in un record. Per esempio cognome, nome, indirizzo, città etc. dello stesso individuo sono tutti i campi che costituiscono un record. 22/05/2017 Modulo 5: Database 14 Cap. 1: Nozioni Preliminari - Le tabelle I campi comuni alle diverse tabelle sono definiti campi chiave. Essi possono essere definiti elementi di intersezione tra i diversi insiemi di dati, che consentono all’utente di creare sottoinsiemi sempre diversi, rispondenti alle proprie esigenze di ricerca e assemblaggio dei dati. Tutti i campi chiave sono dotati di una ulteriore proprietà: sono campi indicizzati. 22/05/2017 Modulo 5: Database 15 Cap. 1: Nozioni Preliminari - Le maschere Le maschere consentono di visualizzare e immettere dati secondo un formato conveniente, simile a quello dei moduli di compilazione su carta. Le maschere consentono di introdurre, visualizzare e modificare dati. E’ possibile utilizzare una maschera come alternativa alla visualizzazione dei dati in righe e colonne. 22/05/2017 Modulo 5: Database 16 Cap. 1: Nozioni Preliminari - Le query La query è uno strumento con il quale si possono “interrogare” i dati contenuti nelle tabelle e eseguire azioni specifiche sui dati stessi. Le query possono, inoltre, consentire di modificare, eliminare o aggiungere consistenti quantità di dati in un solo passo. Quando si esegue una query, appare un insieme selezionato di record: Recordset. 22/05/2017 Modulo 5: Database 17 Cap. 1: Nozioni Preliminari - I Report I report consentono di stampare o visualizzare in anteprima, dati secondo un formato specifico. Essi possono presentare anche i risultati delle query in un formato facilmente comprensibile. 22/05/2017 Modulo 5: Database 18 Cap. 1: Nozioni Preliminari - Macro La macro è un insieme di comandi Access che può essere ripetuto per automatizzare alcune funzioni del database. 22/05/2017 Modulo 5: Database 19 Cap. 1: Nozioni Preliminari - Modulo I moduli, come le macro, consentono di automatizzare alcune funzioni di Access. Diversamente dalle macro, essi forniscono un controllo più preciso sulle azioni da eseguire e richiedono un’esperienza di programmazione. 22/05/2017 Modulo 5: Database 20 Cap. 2: Normalizzare un database - Progettazione L’utilizzo di un insieme di tabelle mal disegnate ha come effetto indesiderato il fenomeno della ridondanza: la memorizzazione ripetuta della medesima informazione nella stessa tabella ed in tabelle differenti. Tale fenomeno, oltre ad incrementare lo spazio occupato complessivamente dal database, è causa di una serie di anomalie nell’esecuzione delle operazioni di: 1. Inserimento 2. Cancellazione 3. Modifica dei record. 22/05/2017 Modulo 5: Database 21 Cap. 2: Normalizzare un database - Schema relazionale Il processo di normalizzazione di uno schema relazionale è la trasformazione di uno schema generico in uno schema in cui la ridondanza sia ridotta al minimo ed in ogni caso gestita in modo controllato. La normalizzazione nel modello relazionale consiste in una serie di raffinamenti successivi dello schema del database. 22/05/2017 Modulo 5: Database 22 Cap. 2: Normalizzare un database - Forma normale L’obiettivo di ognuno di tali raffinamenti è il raggiungimento di una “forma normale”, ossia un disegno dello schema che, sottostando ad una serie di vincoli, riduca o elimini la possibilità di anomalie. Le forme normali sono ordinate gerarchicamente a partire dalla prima fino alla quinta forma normale. Ogni forma normale è ottenuta imponendo vincoli aggiuntivi alla forma normale precedente. Ciò significa che, ad esempio, la terza forma normale è ottenuta a partire da uno schema in seconda forma normale al quale è imposto un vincolo aggiuntivo. 22/05/2017 Modulo 5: Database 23 Cap. 2: Normalizzare un database - Forma normale Affinché un DB risulti normalizzato è necessario che tutte le sue relazioni siano: in prima forma normale; in seconda forma normale; in terza forma normale. (devono, cioè, soddisfare ai requisiti che tali forme richiedono) 22/05/2017 Modulo 5: Database 24 Cap. 2: Normalizzare un database - Prima Forma normale “Una relazione è in Prima Forma Normale (1NF) se tutti i suoi campi contengono i valori atomici” cioè non scomponibili in elementi più semplici. 22/05/2017 Modulo 5: Database 25 Cap. 2: Normalizzare un database - Prima Forma normale Problema 1 Consideriamo il campo Telefono della tabella Fornitori; esso potrà contenere anche più numeri telefonici relativi all’azienda considerata. Il valore contenuto in tale campo non è dunque atomico e la tabella non è in 1NF. Nome Società Indirizzo Telefono Fax Baudo spa C.so Italia 095 123456 095 654321 095 121212 Fiat spa Via Roma 011 454545 011 454544 22/05/2017srl Aria Modulo 5: Database Via del Lavoro 02 12123434 02 123456726 Cap. 2: Normalizzare un database - Prima Forma normale Soluzione (errata) al problema 1 Nome Società Indirizzo Telefono 1 Telefono 2 Fax 095 654321 095 121212 Baudo spa C.so Italia 095 123456 Fiat spa Via Roma 011 454545 011 454544 Aria srl Via del Lavoro 02 12123434 02 1234567 22/05/2017 Modulo 5: Database 27 Cap. 2: Normalizzare un database - Prima Forma normale Soluzione (errata) al problema 1 Nome Società Indirizzo Telefono Fax Baudo spa C.so Italia 095 123456 095 121212 Baudo spa C.so Italia 095 654321 095 121212 Fiat spa Via Roma 011 454545 011 454544 Aria srl Via del Lavoro 02 12123434 22/05/2017 Modulo 5: Database 02 1234567 28 Cap. 2: Normalizzare un database - Prima Forma normale Soluzione corretta La soluzione corretta è quella di creare una nuova tabella Telefono in relazione uno a molti con la tabella Fornitori. In tal modo, viene garantita: la possibilità di inserire nuovi numeri telefonici; 2. viene evitata la duplicazione delle informazioni. 1. 22/05/2017 Modulo 5: Database 29 Cap. 2: Normalizzare un database - Prima Forma normale Soluzione corretta Il procedimento che “risolve” le tabelle che non si trovano in 1NF è il seguente: eliminare il campo non atomico dalla relazione di origine; 2. creare una nuova tabella con il nome del campo eliminato; 3. inserire in questa nuova tabella, una nuova colonna per ospitare la chiave esterna legata alla tabella originale. 1. 22/05/2017 Modulo 5: Database 30 Cap. 2: Normalizzare un database - Prima Forma normale Soluzione – traduzione in tabelle Nome Società Indirizzo Fax Baudo spa C.so Italia 095 121212 Fiat spa Via Roma 011 454544 Aria srl Via del Lavoro 02 1234567 Id telefono Telefono 1 095 123456 Baudo spa 2 095 654321 Baudo spa 3 011 454545 Fiat spa 4 22/05/2017 Nome Società 5: Database 02 12123434Modulo Aria srl 31 Cap. 2: Normalizzare un database - Seconda Forma normale Dipendenza funzionale Y dipende funzionalmente da X se, ogni volta che si ripetono dei valori in X, si hanno valori ripetuti anche in Y. Esempio: Tabella con attributi Città e Regione. Regione dipende funzionalmente da Città Nome Società Indirizzo Città Regione Baudo spa C.so Italia Catania Sicilia Fiat spa Via Roma Torino Piemonte 22/05/2017srl Aria Modulo 5: Database Milano Via del Lavoro Lombardia 32 Cap. 2: Normalizzare un database - Seconda Forma normale Dipendenza funzionale Per eliminare le dipendenze funzionali, si deve creare una nuova tabella con tutti gli attributi che sono in rapporto di dipendenza funzionale. Nome Società Indirizzo Città Baudo spa C.so Italia Città Regione Catania Catania Sicilia Fiat spa Via Roma Torino Torino Piemonte Aria srl Via del Lavoro Milano Milano Lombardia 22/05/2017 Modulo 5: Database 33 Cap. 2: Normalizzare un database - Normalizzazione L’effetto più evidente della normalizzazione è quello di ottenere molte tabelle “piccole” (contenenti cioè pochi campi) partendo da poche tabelle “grandi”. L’effetto pratico è quello di eliminare le anomalie di: aggiornamento; inserimento; cancellazione. L’output della normalizzazione consiste in una serie di relazioni che sono finalmente “pronte” per essere implementate all’interno di Access. 22/05/2017 Modulo 5: Database 34 Cap. 3: Le Tabelle - Tipi di dati TESTO Può contenere una qualunque combinazione di lettere, numeri, segni di punteggiatura e spazi. L’ampiezza standard è 50 caratteri e la lunghezza massima è 255. 22/05/2017 Modulo 5: Database 35 Cap. 3: Le Tabelle - Tipi di dati MEMO E’ simile ad un campo Testo, tranne nel fatto che un campo Memo può contenere fino a 65535 caratteri. Possiamo utilizzare i campi Memo nel database per le note o le descrizioni lunghe. 22/05/2017 Modulo 5: Database 36 Cap. 3: Le Tabelle - Tipi di dati NUMERICO Si utilizza il campo Numerico solo quando si vogliono eseguire calcoli utilizzando i valori dei campi. Per esempio, anche se codici postali e numeri telefonici sono composti da caratteri numerici, non vengono utilizzati per calcoli, perciò, non dovrebbero essere campi Numerici. Può contenere: caratteri numerici, un punto (migliaia), una virgola (decimali), trattino (numeri negativi). 22/05/2017 Modulo 5: Database 37 Cap. 3: Le Tabelle - Tipi di dati DATA/ORA Contiene una data e/o un’ora. Access esegue una convalida del dato, verificando che si tratti di una data/ora valida. I campi Data/Ora sono utili per eseguire calcoli su date e ore. 22/05/2017 Modulo 5: Database 38 Cap. 3: Le Tabelle - Tipi di dati VALUTA Simile ad un campo Numerico. I valori possono avere solo quattro cifre decimali. Viene inserito automaticamente il simbolo della valuta ed il separatore delle migliaia. 22/05/2017 Modulo 5: Database 39 Cap. 3: Le Tabelle - Tipi di dati CONTATORE Access assegna automaticamente, ad ogni record, un numero univoco progressivo a partire da 1. I valori non si possono aggiungere o modificare manualmente. 22/05/2017 Modulo 5: Database 40 Cap. 3: Le Tabelle - Tipi di dati SI/NO Si usa se il campo in questione può assumere solo due possibilità. 22/05/2017 Modulo 5: Database 41 Cap. 3: Le Tabelle - Tipi di dati OGGETTO OLE E’ un collegamento ad un’altra applicazione Windows. Si utilizza per inserire un oggetto grafico, fogli elettronici, file sonori,….. 22/05/2017 Modulo 5: Database 42 Cap. 3: Le Tabelle - Tipi di dati COLLEGAMENTO IPERTESTUALE Un campo di questo tipo, contiene un collegamento a qualunque documento o a una maschera all’interno del DB. 22/05/2017 Modulo 5: Database 43 Cap. 3: Le Tabelle - Tipi di dati AUTOCOMPOSIZIONE RICERCA Contiene una lista di valori selezionati da un’altra tabella o una lista di valori forniti da noi. Successivamente, durante l’inserimento, sarà possibile scegliere i valori della lista per ridurre l’introduzione dati ripetitiva. 22/05/2017 Modulo 5: Database 44 Cap. 3: Le Tabelle - Chiave primaria Access lavora in maniera più efficiente se si specifica una chiave primaria per la tabella. La chiave primaria è un campo che identifica in maniera univoca ogni record; La chiave primaria è indicizzata in maniera automatica in modo da velocizzare la ricerca dei record; Quando si apre una tabella, i record sono ordinati secondo la chiave primaria; La chiave primaria impedisce l’inserimento di dati duplicati (non può ammettere valori Null). 22/05/2017 Modulo 5: Database 45 Cap. 3: Le Tabelle - Come creare una tabella Esempio Supponiamo di voler creare un semplice database per gestire un magazzino per il solo carico e scarico degli articoli. Il database deve contenere l'elenco degli articoli immagazzinati con i dettagli di nome, prezzo, fornitore etc., l'elenco dei fornitori con i dettagli di nome, indirizzo, città etc., infine la tabella più importante sarà quella che contiene le operazioni quotidiane di carico o scarico di una serie di articoli con la data e tutti i riferimenti necessari. 22/05/2017 Modulo 5: Database 46 Cap. 3: Le Tabelle - Come creare una tabella Esempio Progettazione: 1. 2. 3. quante e quali tabelle creare? quali campi devono contenere? quali devono essere le relazioni fra loro in modo da rendere automatica la gestione? 22/05/2017 Modulo 5: Database 47 Cap. 3: Le Tabelle - Come creare una tabella Esempio Possibile soluzione: 2. tabella che contiene le operazioni (la chiameremo Operazioni); tabella degli articoli (la chiameremo Articoli); 3. tabella dei fornitori (la chiameremo Fornitori). 1. 22/05/2017 Modulo 5: Database 48 Cap. 3: Le Tabelle - Come creare una tabella Esempio Possibile soluzione: Nelle tabelle metteremo i campi essenziali e quelli indispensabili per le relazioni, cioè i campi che collegano l'elenco articoli di una operazione alla operazione relativa e i campi che collegano gli articoli alle tabelle articoli e fornitori. 22/05/2017 Modulo 5: Database 49 Cap. 3: Le Tabelle - Come creare una tabella Esempio Tabella Operazioni 22/05/2017 Campi Descrizione Collegamenti ID Op Chiave primaria contatore Collegato a ID Op della tabella Articoli dell'operazione. Data Data dell'operazione ID Articolo Codice numerico articolo Quantità Quantità Carico Campo logico Scarico Campo logico Presso Testo Modulo 5: Database Collegato alla tabella articoli 50 Cap. 3: Le Tabelle - Come creare una tabella Esempio Tabella Campi Descrizione Collegamenti ID Articolo Contatore articoli Collegato alla tabella Chiave primaria delle operazioni Nome Testo ID Fornitore Numero fornitore primaria Prezzo Numero Articoli 22/05/2017 Modulo 5: Database Codice Collegato alla tabella Chiave fornitori 51 Cap. 3: Le Tabelle - Come creare una tabella Esempio Tabella Fornitori 22/05/2017 Campi Descrizione ID Fornitore Contatore primaria Nome Testo Indirizzo Testo Città Testo Telefono Testo Modulo 5: Database Collegamenti Chiave Collegato a Codice Articolo 52 Cap. 3: Le Tabelle - Uso dei caratteri jolly per la ricerca Carattere Significato Esempio * Qualunque numero di caratteri Prov* consente di trovare tutti i valori che cominciano con Prov *Prov* consente la ricerca di tutti i valori che contengono la parola Prov ? Solo un carattere C?ibo consente di trovare: Cibo, cubo, … [] Qualunque carattere Pr[io]va consente di trovare: Prova, compreso nell’insieme Priva. ! Ogni carattere eccetto Ros[!ou] consente di trovare: Rosi, quelli specificati Rosa, Rose dell’insieme. - Ogni carattere in un intervallo definito 22/05/2017 # Doci[l-n]e consente di trovare: Docile, Docime, Docine. Modulo 5: Database Solo una cifra 197# trova 1971, 1972, 1973, … 53 Cap. 3: Le Tabelle - Le Relazioni Cosa sono ? Access permette di creare database relazionali…è importante che: i dati siano suddivisi tra più tabelle; 2. le tabelle siano collegate in modo opportuno. 1. Si definisce Relazione tra tabelle, l’associazione stabilita tra campi comuni in due tabelle che devono contenere lo stesso tipo di dati. 22/05/2017 Modulo 5: Database 54 Cap. 3: Le Tabelle - Le Relazioni Cosa serve ? Una relazione funziona facendo corrispondere i dati nei campi chiave, in genere un campo con lo stesso nome per entrambe le tabelle. Si definisce Chiave esterna, uno o più campi (colonne) di tabella che si riferiscono al campo o ai campi chiave primaria di un’altra tabella. Essa indica il modo in cui le tabelle sono collegate. 22/05/2017 Modulo 5: Database 55 Cap. 3: Le Tabelle - Le Relazioni Benefici Quando le tabelle sono messe in relazione, si può accedere a tutti i campi delle tabelle messe in relazione. Si possono, perciò, creare oggetti (report, maschere, query) per gestire i dati. Esse ci consentono di creare tabelle più piccole e più efficienti che saranno messe in relazione quando avremo bisogno di accedere ai dati. 22/05/2017 Modulo 5: Database 56 Cap. 3: Le Tabelle - Le Relazioni Attenzione!!! Le relazioni tra le tabelle devono essere definite durante le fasi iniziali di pianificazione del DB. Le tabelle devono avere campi comuni che contengono lo stesso tipo di dati (nel caso di campi numerici, devono avere lo stesso formato). 22/05/2017 Modulo 5: Database 57 Cap. 3: Le Tabelle - Le Relazioni Tipi: UNO A MOLTI Si presenta quando un record della tabella A può avere molti record corrispondenti nella tabella B, ma un record della tabella B ha più di un record corrispondente nella tabella A (es.: un cliente con molti animali). 22/05/2017 Modulo 5: Database 58 Cap. 3: Le Tabelle - Le Relazioni Tipi: UNO A UNO Si presenta quando ogni record della tabella A può avere solo un record corrispondente nella tabella B e viceversa. E’ possibile utilizzare una relazione uno-auno per dividere una tabella con molti campi, per isolare parte di una tabella per ragioni di protezione (es.: un codice_paziente con descrizione_cliente). 22/05/2017 Modulo 5: Database 59 Cap. 3: Le Tabelle - L’Integrità Referenziale Cos’è ? E’ un insieme predefinito di regole che Access utilizza per: 1. essere sicuro che la relazione sia valida; 2. prevenire modifiche o cancellazioni accidentali dei dati. 22/05/2017 Modulo 5: Database 60 Cap. 3: Le Tabelle - L’Integrità Referenziale Cosa serve ? 1. Il campo correlato nella tabella primaria è la CHIAVE PRIMARIA; 2. I campi correlati delle due tabelle hanno lo STESSO TIPO DI DATI; 3. Entrambe le tabelle appartengono allo STESSO DATABASE. 22/05/2017 Modulo 5: Database 61 Cap. 3: Le Tabelle - L’Integrità Referenziale Regola 1 Non è possibile inserire dati nel campo collegato della tabella messa in relazione se questi non vengono trovati nel campo legato della tabella primaria. Es.: Non possiamo inserire nuovi codici clienti nella tabella ANIMALI se non li mettiamo anche nella tabella CLIENTI. 22/05/2017 Modulo 5: Database 62 Cap. 3: Le Tabelle - L’Integrità Referenziale Regola 2 Non è possibile cancellare record della tabella primaria se questi sono legati a record della tabella messa in relazione. Es.: Non possiamo cancellare clienti che hanno animali. 22/05/2017 Modulo 5: Database 63 Cap. 3: Le Tabelle - L’Integrità Referenziale Regola 3 Non è possibile modificare valori della chiave primaria della tabella primaria se esistono record correlati. Es.: Non possiamo modificare il codice di un cliente se egli ha animali. 22/05/2017 Modulo 5: Database 64 Cap. 4: Le Query - Concetti essenziali sulle query Cosa sono ? Il termine query in senso stretto ha il significato di interrogazione o, comunque, di estrazione di dati da una o più tabelle del database. Esse consentono una grande flessibilità nella gestione dei dati delle tabelle e costituiscono le fondamenta su cui si costruiscono maschere e report. 22/05/2017 Modulo 5: Database 65 Cap. 4: Le Query - Concetti essenziali sulle query Come crearli ? In Access è possibile interrogare il database in due modi: 1. mediante interfaccia grafica; 2. mediante linguaggio programmazione Query Language). 22/05/2017 di (SQL=Structured Modulo 5: Database 66 Cap. 4: Le Query - Concetti essenziali sulle query Quali tipi ? In Access è possibile realizzare i seguenti tipi di query: 1. di selezione; 2. di creazione tabella; 3. di aggiornamento; 4. di accodamento; 5. di eliminazione. 22/05/2017 Modulo 5: Database 67 Cap. 4: Le Query - Concetti essenziali sulle query Quali tipi ? Oltre alle precedenti query, se ne possono costruire altre più complesse con l’ausilio della creazione guidata: 1. a campi incrociati; 2. ricerca di dati non corrispondenti; 3. ricerca duplicati. 22/05/2017 Modulo 5: Database 68 Cap. 4: Le Query - La query di selezione Costituisce il tipo di query maggiormente utilizzata nelle applicazioni sviluppate con Access: può essere utilizzata per estrarre tutti o alcuni campi di record di tabelle, oppure la combinazione di campi e record selezionati da più tabelle, relazionate o meno. 22/05/2017 Modulo 5: Database 69 Cap. 4: Le Query - La query di selezione Il risultato è rappresentato dal recordset = insieme di record strutturato secondo colonne (campi) e righe (record). Può essere considerata anche come un filtro più avanzato perchè si possono impostare dei criteri per l’estrazione dei dati che interessano. 22/05/2017 Modulo 5: Database 70 Cap. 4: Le Query - I campi calcolati La potenzialità delle query si esprime anche e soprattutto nella creazione di campi calcolati che si aggiornano dinamicamente. Vi sono alcuni dati, infatti, che non corretto, e neanche utile, memorizzare permanentemente in una tabella, ma viceversa, possono essere calcolati all’occorrenza. 22/05/2017 Modulo 5: Database 71 Cap. 4: Le Query - I campi calcolati Una volta ottenuto il recordset, se modifichiamo il valore di un record nel campo PREZZO, verrà aggiornato automaticamente anche il valore corrispondente nel campo IVA. 22/05/2017 Modulo 5: Database 72 Cap. 4: Le Query - La query di creazione tabella Il risultato rappresentato dal recordset può diventare a sua volta una tabella, se viene utilizzato il comando di query di creazione tabella. 22/05/2017 Modulo 5: Database 73 Cap. 4: Le Query - La query di aggiornamento Permette di modificare i valori dei campi in modo automatico. Es.: praticare uno sconto del 10% sui prodotti del fornitore 2 22/05/2017 Modulo 5: Database 74 Cap. 4: Le Query - La query di eliminazione Se occorre eliminare record che soddisfino alcune condizioni, è necessario affidarsi ad una query di questo tipo. Es.: cancellare tutti i carichi del prodotto 1 22/05/2017 Modulo 5: Database 75 Cap. 4: Le Query - La query a campi incrociati Consente di rappresentare i dati di una tabella in una forma riepilogativa simile a un foglio di calcolo. Il riepilogo viene mostrato su una griglia, in cui i campi della tabella possono essere rappresentati indifferentemente come etichette di riga o di colonna. 22/05/2017 Modulo 5: Database 76 Cap. 4: Le Query - Query ricerca duplicati Elenca i record di una tabella che rappresentano valori duplicati almeno in un campo. L’utilità di questo tipo di query si apprezza particolarmente quando la ricerca deve essere fatta su elenchi molto corposi. In questi casi, controllare i record uno per uno è un’operazione improba, che porta oltretutto a sicuri errori. 22/05/2017 Modulo 5: Database 77 Cap. 5: Le Maschere - Cosa sono Le maschere servono fondamentalmente per vedere (eventualmente modificare, immettere, ecc.) i dati di una o più tabelle o query in formato diverso da quello tabellare, ad esempio un record alla volta: 22/05/2017 Modulo 5: Database 78 Cap. 5: Le Maschere - Creare una maschera Quando si inseriscono dati in una maschera, i dati sono in realtà introdotti nella tabella o nelle tabelle che supportano la maschera; se invece si utilizza una maschera per visualizzare delle informazioni, esse vengono tratte da una o più tabelle del database. 22/05/2017 Modulo 5: Database 79 Cap. 5: Le Maschere - Creare una maschera mediante VS E’ possibile modificare e creare ex novo una maschera direttamente da Visualizzazione Struttura. Questa opzione ci dà maggiore autonomia nella creazione ma è molto meno immediata dell’autocomposizione. 22/05/2017 Modulo 5: Database 80 Cap. 5: Le Maschere - Creare una maschera mediante VS In una maschera le informazioni sono contenute nei CONTROLLI. Essi sono oggetti di una maschera che visualizzano dati, eseguono operazioni o hanno una funzione decorativa. 22/05/2017 Modulo 5: Database 81 Cap. 5: Le Maschere - Modificare una maschera Una volta costruita una maschera, qualunque sia stata la modalità, essa può sempre essere modificata a piacimento sia per quanto riguarda la sua struttura che per la formattazione. 22/05/2017 Modulo 5: Database 82 Cap. 5: Le Maschere - Modificare una maschera Una maschera ha tre sezioni fondamentali: Intestazione/Piè pagina Maschera: titoli o istruzioni che si vogliono visibili sulla maschera in ogni momento. Se si stampa la maschera, esse appaiono all’inizio della prima pagina e alla fine dell’ultima pagina. CORPO: può contenere le informazioni provenienti da tabelle o da Query Intestazione/Piè Pagina: vengono 22/05/2017 pagina visualizzate sopra e sotto la maschera. Se si stampa la maschera, esse Modulo 5: Database 83 appaiono sopra e sotto ogni pagina. Cap. 5: Le Maschere - Modificare una maschera Abbiamo detto In una maschera le informazioni sono contenute nei CONTROLLI. Access dispone di vari tipi di controlli: Associati Non Associati Calcolati 22/05/2017 Modulo 5: Database 84 Cap. 5: Le Maschere - Modificare una maschera Controlli ASSOCIATI Consentono di visualizzare, immettere e aggiornare i valori derivanti dai campi del DataBase. 22/05/2017 Modulo 5: Database 85 Cap. 5: Le Maschere - Modificare una maschera Controlli NON ASSOCIATI Non dispongono di un’origine dati essi consentono di visualizzare informazioni non legate al DataBase. Esempio: linee, rettangoli, immagini 22/05/2017 Modulo 5: Database 86 Cap. 5: Le Maschere - Modificare una maschera Controlli CALCOLATI Usano come origine dati di un’espressione. Esempio: conversione da £ a € 22/05/2017 Modulo 5: Database 87 Cap. 5: Le Maschere - Modificare una maschera La lista completa dei controlli è disponibile nella CASELLA DEGLI STRUMENTI 22/05/2017 Modulo 5: Database 88 Cap. 5: Le Maschere - Modificare una maschera Casella Combinata Ci fornisce una lista di valori tra i quali poter scegliere (si evitano errori di digitazione). Può essere legata ad un campo quando si seleziona o si inserisce un valore, il valore viene inserito in quel campo nella tabella corrispondente. Può essere anche NON legata quando si seleziona o si specifica un valore, questo viene tenuto in memoria per essere usato in un altro controllo o in qualche calcolo. 22/05/2017 Modulo 5: Database 89 Cap. 5: Le Maschere - Modificare una maschera Casella di riepilogo Ci fornisce una lista di valori tra i quali poter scegliere (si evitano errori di digitazione). A differenza dalla casella combinata, si uò solamente scegliere un valore dalla lista; i valori non presenti in lista non possono essere inseriti in tabella. Può essere legata oppure NON legata ad un campo (come prima). 22/05/2017 Modulo 5: Database 90 Cap. 5: Le Maschere - Modificare una maschera Gruppo di opzioni E’ un insieme limitato di valori tra i quali si può effettuare una scelta (è più veloce e più preciso) A differenza dalla casella combinata, si uò solamente scegliere un valore dalla lista; i valori non presenti in lista non possono essere inseriti in tabella. Può essere legata oppure NON legata ad un campo (come prima). 22/05/2017 Modulo 5: Database 91 Cap. 5: Le Maschere - Le sottomaschere Servono per “riunire” in una maschera, dati provenienti da varie tabelle o query E’ possibile creare una maschera principale nella quale incorporare una sottomaschera. 22/05/2017 Modulo 5: Database 92 Cap. 5: Le Maschere - Le sottomaschere Requisiti da soddisfare 1. 2. La maschera principale deve essere basata su una tabella o una query provvista di una chiave primaria La sottomaschera deve essere basata su una tabella contenente un campo con lo stesso nome del campo chiave primaria della maschera principale. 22/05/2017 Modulo 5: Database 93 Cap. 6: I Report - Definizione I Report permettono di visualizzare e/o stampare le informazioni opportunatamente reperite e organizzate. Oltre alla visualizzazione delle specifiche informazioni, è possibile arricchire i report con particolari grafici tali da facilitare la lettura e il significato dei dati. I report possono ottenere i dati da una singola tabella o da tabelle correlate o da query. 22/05/2017 Modulo 5: Database 94 Cap. 6: I Report - Definizione Ci sono tre tipi principali di report: a colonne tabulari giustificato 22/05/2017 Modulo 5: Database 95 Cap. 6: I Report - Definizione Report a COLONNE I nomi dei campi sono listati sul lato sinistro del report, con il valore del campo listato sulla destra. 22/05/2017 Modulo 5: Database 96 Cap. 6: I Report - Definizione Report TABULARE I nomi dei campi sono listati affiancati il alto nel report, mentre i valori dei campi sono collocati sotto di essi nelle colonne appropriate. 22/05/2017 Modulo 5: Database 97 Cap. 6: I Report - Definizione Report GIUSTIFICATO Possiamo scegliere la disposizione dei campi e dei valori. 22/05/2017 Modulo 5: Database 98 Cap. 6: I Report - Stampa Quando abbiamo finito di creare il REPORT, Access lo visualizza in anteprima di stampa. Questo ci consente di vedere il REPORT prima di stamparlo. 22/05/2017 Modulo 5: Database 99 Cap. 6: I Report - Modifica Dopo che il report è stato creato, è possibile personalizzarlo in base alle proprie esigenze semplicemente aprendolo in Visualizzazione struttura e utilizzando la casella degli strumenti così come le maschere. 22/05/2017 Modulo 5: Database 100 Cap. 6: I Report - Modifica Un report ha tre sezioni fondamentali: Intestazione/Piè pagina Maschera: titoli o istruzioni che si vogliono visibili sul report in ogni momento. Se si stampa il report, esse appaiono all’inizio della prima pagina e alla fine dell’ultima pagina. CORPO: può contenere le informazioni provenienti da tabelle o da Query Intestazione/Piè pagina Pagina: vengono visualizzate sopra e sotto il report. Se si stampa il report, esse appaiono sopra e sotto ogni pagina. 22/05/2017 Modulo 5: Database 101