Ms. Access: corso pratico di utilizzo dello strumento www.smauro.it Le basi di dati • Una base di dati (DataBase) raccoglie grandi quantita’ di dati e ne facilita l’accesso all’utente. • Esso rappresenta il cuore della maggior parte dei programmi che vengono utilizzati nelle aziende. Fogli elettronici • Sono strumenti software che mimano il lavoro di contabilita’ normalmente svolto normalmente su carta. • Il loro compito e’ quello di generare I tabulati, effettuando contemporaneamente I conti necessari. • Il foglio elettronico piu’ comune e’ EXCEL Fogli Elettronici (II) • Un foglio elettronico puo’ fare cose simili ad un DataBase, e vice versa ma: – Un foglio elettronico ha problemi a trattare grosse quantita’ di dati. – Difficolta’ nel trattare dati non numerici. – Difficolta’ a interrogare I dati. Tipi di DataBase • Data Base relazionali • Data Base gerarchici • Data Base ad oggetti. – Access e’ un DataBase relazionale ! Le tabelle • Il luoghi dove il DataBase memorizza I dati vengono chiamati tabelle. • In una singola base di dati, vi sono generalmente numerose tabelle. • Ogni tabella raccoglie dati simili, aventi cioe’ tutti la medesima struttura. Le Query • Una volta memorizzati I dati, occorre in qualche modo poterli analizzare. • L’analisi viene fatta effettuando delle domande a cui il DataBase produce delle risposte. • Queste risposte vengono dette interrogazioni o Query. Le Query (II) • Le domande che si possono esprimere nelle query possono essere domande di ricerca, ordinamento, calcolo, modifica, cancellazione … • Le risposte a queste domande sono nuove tabelle, eventualmente anche vuote o contententi una unica riga. Le Query (III) • Le Query vengono espresse attraverso appositi linguaggi, detti linguaggi d’interrogazione. • SQL e’ I linguaggio d’interrogazione piu’ comune. • Access permette di esprimere le query anche in modo grafico. Le maschere • Le tabelle definiscono le strutture capaci di contenere I dati… • Ma come si inseriscono I dati nelle tabelle ? • Le maschere disegnano le interfacce utenti con cui interagire con I dati archiviati! Le maschere (II) • Maschere di immissione, per popolare la base di dati • Maschere di interrogazione, per velocizzare il processo di esecuzione di una Query. • Maschere di stampa, per inviare I dati ad una stampante. • Maschere di comando, per collegare le varie maschere tra di loro. I report • Non basta avere le risposte a video! Bisogna anche poterle stampare! • I report costituiscono il modo con cui I risultati calcolati dalle Query possono essere formattati in modo da poter essere stampati in modo leggibile. I report (II) • I report possono essere mostrati a video, inviati ad una stampane, importati in un altro programma (I.e. Word), spediti per mail… • La costruzione di un report e’ vicina a quella di una maschera, anche se presenta carateristiche diversi determinate dal differente supporto a cui e’ destinato. Access • Access mette a disposizione funzionalita’ per creare tabelle, query, maschere, report ed altro ancora. • Vedremo in dettaglio solamente queste 4 parti! Access (II) Le tabelle • Le tabelle sono I luoghi dove venogno custoditi I dati. • Sono chiamate cosi’ per l’analogia con le tabelle stampate • Le righe delle tabelle vengono chiamate record. I record • I record ragruppano tutte le informazioni relative ad un particolare oggetto (entita’). • Tutti I record di una tabella contengono le stesse tipologie di informazioni per tutte le entita’ inserite nell’archivio. • Le informazioni sono contenute nelle colonne delle tabelle. I campi • Ogni cella della tabella prende il nome di campo. • Tutti I campi di una colonna rappresentano la stessa informazione per record differenti. • I campi sono contraddistinti dal tipo di dato che essi possono contenere. • Tutte le colonne contengono dati dello stesso tipo. I tipi di dato • • • • • • Stringhe (testi brevi) Numeri (con o senza la virgola) Date ed orari Booleani (informazioni si/no) Testi Immagini, pagine web, suoni… I sottotipi di dato • Alcuni tipi di dati hanno bisogno di ulteriori specifiche. • Un numero puo’ essere con o senza la virgola. • Una stringa puo’ essere piu’ o meno lunga. • Queste informazioni rappresentano il sottotipo di un dato. Nomi di campi e tabelle • Ogni tabella ha un nome. Il nome viene utilizzato nelle Query e nei programmi per indicare la tabella da cui attingere i dati • Ogni campo ha un nome. Serve per specificare in una Query o in un programma quale campo considerare. Creare una tabella • Creare una tabella, vuole dire definirne la struttura. • Definire la struttura di una tabella corrisponde a specificare quali colonne abbia la tabella, e che tipo di dati esse ospitino. • In pratica vuole dire definire i tipi dei campi che costituiscono un record. Le tabelle interne • Risiedono nel DataBase che si sta modificando. • Si creano specificando nome del campo, tipo di dato, piu’ un eventuale commento. • Il commento serve solo per ricordare al programmatore a cosa servono i dati contenuti in quel campo. Le tabelle interne (II) Le stringhe • Le stringhe servono a contenere informazioni testuali. • Si selezionano mettendo la parola “Testo” nella colonna “tipo dati” • Bisogna specificarne una lunghezza. I numeri • I campi numerici raccolgono appunto numeri. • Sono caratterizzati dal tipo e dalla precisione dei numeri che contengono: – Intero (Byte = 8 bit, Intero = 16 bit, Intero Lungo 32bit) – Con la virgola (Precisione singola = 32 bit, Precisione doppia = 64 bit) – Lunghezza arbitraria (Decimale: in questo caso occorre anche specificare quante cifre vogliamo memorizzare prima e dopo la virgola) Le date • Sono campi che consentono di memorizzare informazioni temporali. • Sono capaci di contenere date, orari o combinazioni delle due. • Come vedremo piu’ avanti, attraverso il formato si puo’ decidere di inserire una data o un orario. I booleani • Sono informazioni di tipo Si / No • Vengono generalmente utilizzati per memorizzare negli archivi scelte fatte attraverso caselle con il simbolo di spunta. I testi • Una stringa puo’ contenere al massimo 255 caratteri. • Per informazioni piu’ lunghe (esempio dei testi o delle note) occorre utilizzare i campi di tipo memo. • I campi memo non hanno limiti alla lunghezza del testo che possono contenere, ma rallentano le operazioni di ricerca. Gli oggetti collegati • A volte e’ necessario inserire in un archivio immagini, suoni, filmati, pagine web… • Questi dati vengono inserti nell’archivio attraverso il meccanismo degli oggetti collegati. • Sono i tipi Oggetti OLE e Collegamenti ipertestuali. Il formato di visualizzazione • Per i dati numerici possiamo scegliere di visualizzarli con un numero fisso di decimali, con un numero variabile, come percentuali. • Un informazione temporale possiamo visualizzarla come data breve, data lunga, ora, ora + data, etc… • Il formato di visualizzazione stabilisce come un dato viene rappresentato. I valori di default • Alcuni campi hanno un valore praticamente standard, a cui difficilmente occorre apportare dei cambiamenti. • In questi casi si puo’ assegnare al campo un valore di default. • Tale valore viene assegnato automaticamente al campo, ma puo’ essere modificato dall’utente quando necessario. Le maschere di input • In certi casi l’informazione che si vuole inserire in un campo ha una struttura ben definita (es. codice fiscale). • Una maschera di input forza l’utente ad immettere solamente dati conformi alla struttura del dato. I criteri di validita’ • Alcuni dati per essere validi devono rispettare alcune regole: ad esempio l’ora di fine di una lezione deve essere maggiore dell’ora di inizio. • I criteri di validita’ sono delle formule che verificano la conformita’ del dato inserito. • Vengono scritte nel linguaggio di programmazione di Access. I campi indicizzati • L’operazione piu’ comune che si effettua su un DB e’ quella di ricerca. • Tale operazione e’ generalmente lenta in quanto richiede di analizzare tutto l’archivio. • Un campo indicizzato e’ un campo su cui l’operazione di ricerca e’ ottimizzata. • Un campo indicizzato occupa piu’ spazio rispetto ad un campo tradizionale, richiede piu’ tempo per essere aggiornato, ma accelera notevolmente le operazioni di ricerca. Le chiavi • Una chiave e’ un campo che contiene una informazione che identifica univocamente un record. • La chiave puo’ identificare il record a cui appartiene, oppure un record contenuto in un’altra tabella. Le chiavi (II) • Se la chiave identifica il record a cui il campo appartiene, allora si parla di chiave interna. • Se il record identificato da una chiave e’ quello di un’altra tabella, si parla di chiave esterna. • Per ogni record generalmente si assegna un chiave interna prioritaria, detta chiave primaria Le chiavi (III) • Una chiave puo’ essere costituita da un unico campo, o dalla combinazione di piu’ campi. • Due record diversi non possono avere esattamente gli stessi valori nei campi che costituiscono una loro chiave interna. I contatori • Per semplificare l’operazione di creazione delle chiavi e garantirne l’unicita’ esistono dei particolari tipi di dati chiamati contatori. • I contatori sono dei dati numerici il cui valore viene automaticamente assegnato dal programma, in maniera progressiva, in modo da garantire l’unicita’ del valore. • Solitamente le chiavi primarie sono dei campi contatori. Le tabelle collegate • Una tabella collegata e’ una tabella che risiede su un altro file. • Una volta collegate, vengono gestite da Access come se fossero tabelle interne. • Ogni modifica effettuata sulla tabella originale, viene immediatamente vista sulla tabella collegata. • Ogni modifica fatta da access sulla tabella collegata, si ripercuote sulla tabella originale. Le tabelle importate • Una tabella importata, e’ una tabella interna di Access che pero’ viene creata a partire da una tabella presente su un file esterno. • Al momento della creazione della tabella, vengono letti i dati della tabella originale, e copiati in una tabella interna al DB Access. • Ogni modifica apportata dopo alla tabella originale non influenzera’ la tabella importata. • Ogni modifica effettuata sulla tabella importata, non influenzera’ la tabella orginale. Vantaggi e svantaggi di collegamenti ed importazioni • Le tabelle collegate sono molto piu’ lente da gestire, ma permettono la condivisione di dati immediata con altre sorgenti. • Le tabelle importate sono decisamente piu’ veloci e flessibili da gestire, ma richiedono un processo di importazione / esportazione che deve essere ripetuto ogni qual volta sia necessario sincronizzare i dati. Le relazioni • Un DataBase contiene generalmente piu’ tabelle. • Alcuni record possono essere in relazione con record di altre tabelle. • Le relazioni servono a legare dati insieme, in modo da permettere l’archiviazione di quantita’ variabili di dati. Le relazioni (II) • Esistono 4 tipi di relazioni: – 1 a 1. – 1 a molti. – Molti a 1. – Molti a molti. Le relazioni 1 a 1 • Legano in modo biunivoco i record in due tabelle. • Ad ogni record di una tabella, corrisponde al piu’ un record in un’altra. • Servono ad esempio a memorizzare parti “opzionali” di un record, o a legare tabelle concettualmente distinte. • Esempio: persone – impiegati • Una persona puo’ svolgere un lavoro o essere disoccupato. Se svolge un lavoro, una tabella apposta puo’ contenere dati relativi al suo contratto, alla sua partita iva... Le relazioni 1 a molti • Esprimono relazioni in cui ad un record di una tabella ne corrispondono molti altri in un’altra. • Esempio: ordine – articoli acquistati – Un ordine puo’ essere costituito da piu’ articoli che vengono acquistati. – Uno stesso acquisto pero’ non puo’ appartenere a due ordini distinti. Le relazioni molti a 1 • Molti record di una tabella, fanno capo ad un unico record in un’altra. • Esempio: anagrafica – citta’ – Ogni persona ha la residenza in una citta’, ma in un citta’ possono vivere piu’ persone. – Una persona non puo’ avere la residenza in due citta’ distinte. • Una relazione M-1 vista al contrario, diventa una relazione 1-M ! Le relazinoni molti a molti • A piu’ record di una tabella, posso corrispondere piu’ record in un’altra. • Esempio: studenti – corsi seguiti – Ogni studente frequenta piu’ corsi contemporaneamente. – Ogni corso pero’ e’ frequentato da piu’ di uno studente. Importanza delle relazioni • Le relazioni permettono di: – Archiviare dati complessi, la cui dimensione non e’ nota a priori. – Risparmiare spazio di memorizzazione. – Limitare i danna causabili da errori di immissione. – Facilitare alcuni tipi di Query. Tabelle normalizzate • Quando invece che ripetere piu’ volte un dato con un medesimo valore in una tabella, si utilizza una seconda tabella ed una relazione con essa, si dice che la tabella e’ normalizzata. • Normalizzare le tabelle aiuta a salvare spazio e rendere piu’ efficienti le Query. • Esistono vari tipi di normalizzazioni. Le chiavi e le relazioni • Le relazioni 1-1, 1-M, M-1 e M-M si implementano in un DataBase utilizzando le chiavi interne ed esterne. • I collegamenti avvengono mettendo in un record un campo contenente il valore della chiave primaria del record con cui e’ in relazione. • Questo campo e’ appunto un chiave esterna. • In access le chiavi esterne, quando si riferiscono ad una chiave primaria contenuta in un campo di tipo contatore, devono essere di tipo intero lungo. Realizzare relazioni 1-1 • Le relazioni 1-1 si implementano inserendo nel record di una delle due tabelle (o eventualmente anche in entrambe) un campo capace di contenere la chiave primaria del record dell’altra tabella. • L’unicita’ del collegamento deve essere garantita in altro modo. Realizzare relazioni 1-M o M-1 • Le relazioni 1-M o M-1 si effettuano aggiungendo ai record della tabella M, un campo in cui inserire la chiave primaria della tabella 1 a cui sono collegate. • Es: nella tabella dell’anagrafica, si aggiunge un campo in cui inserire la chiave primaria dei record della tabella delle citta’. Realizzare relazioni M-M • Per realizzare una relazione M-M tra due tabelle, occorre utilizzare una terza tabella, detta tabella di appoggio. • I record della tabella di appoggio contengono le chiavi primarie dei record delle due tabelle che vogliono mettere in relazione. Le relazioni in Access • Access permette di stabilire graficamente le relazioni tra due tabelle. • Questa visione grafica rappresenta uno strumento utile per visualizzare la struttura di un archivio. Le relazioni in Access (II)