|
"Modulo Cinque"
5.1.1 – Concetti fondamentali
[ 5.1.1.1 ] MS Access, a differenza
degli altri applicativi del pacchetto Office, è un programma che
necessita di alcune conoscenze di base specifiche, per essere
utilizzato in modo efficace.
Le funzionalità presenti in questo programma possono essere
suddivise in due grandi categorie. Da un lato, hai a disposizione
gli strumenti che ti permettono di progettare la struttura del
database e di realizzare l'interfaccia grafica, destinata all'utente
finale. Dall'altro, sono presenti le funzioni che consentono
l'utilizzo del database, per l'immissione dei dati e
l'interrogazione degli archivi.
Risulta, pertanto, importante trattare i concetti teorici di base,
che riguardano un database. Essi ti mettono nella condizione di
affrontare ogni singolo tema e ti rendono consapevole degli
obiettivi da raggiungere. Non ti spaventare se, alla prima lettura,
alcuni concetti ti sembreranno un po' ostici. Il mio consiglio è di
tenere sempre presente questo primo tema e di tornare a sfogliarne i
contenuti durante tutto il corso, per comprendere meglio tutte le
funzioni che verranno descritte.
La definizione di database è semplice e precisa: un database è un
archivio elettronico, dotato di un programma di interfaccia, che
facilita la registrazione e la ricerca dei dati.
Per meglio comprendere queste poche parole, facciamo un esempio. Un
database che viene regolarmente usato, se non in formato elettronico
almeno in formato cartaceo, è la rubrica del telefono. Essa contiene
un insieme di dati, omogenei a gruppi, cioè facenti parte di
categorie diverse e organizzati secondo uno schema ben preciso. Nel
corso del tema, descriveremo questa struttura e ne evidenzieremo le
particolarità.
[ 5.1.1.2 ] Attualmente, il tipo di
database più diffuso è quello relazionale, che è oggetto della
nostra analisi. L’oggetto principale di un database relazionale, il
cuore della sua struttura, è la Tabella. Una tabella o più tabelle,
collegate tra loro, ne costituiscono l’organizzazione.
In una tabella, le colonne rappresentano la tipologia di un dato,
ossia cosa il dato rappresenta.
Nell’esempio che abbiamo citato prima, la rubrica del telefono, in
una colonna verranno registrati tutti i dati Nome e cognome, in
un’altra colonna tutti gli Indirizzi, in una terza tutti in Numeri
di telefono e così via, fino ad arricchire la struttura con diverse
tipologie di dati. In un database, ogni colonna di una tabella viene
indicata con il nome di Campo.
Ogni riga della tabella rappresenta, invece, l’insieme dei dati, che
si riferiscono a un unico soggetto. Sempre facendo riferimento alla
rubrica del telefono, ciascun contatto è contenuto su una riga della
tabella ed è composto dall’insieme dei dati presenti in ciascun
campo. Chiamiamo tale elemento, la riga della colonna, Record.
Ogni campo di una tabella viene generato per contenere un tipo
specifico di dato. In una tabella, dunque, ogni campo dovrà essere
riconoscibile dagli altri attraverso un nome, la sua Etichetta.
Inoltre, il campo dovrà essere un “contenitore” adatto ad accogliere
un certo tipo di dato. Questa caratteristica di ciascun campo viene
controllata attraverso l’impostazione di parametri come il Tipo di
dato e gli Attributi del campo.
Analizzeremo in dettaglio entrambi i controlli, nel corso di questo
tema.
[ 5.1.1.3 ] All’interno di una tabella,
come abbiamo visto, ogni riga rappresenta un record. È opportuno che
ogni record della tabella possa essere perfettamente distinto da
qualsiasi altro. Per questo, ogni record conterrà un valore in un
campo, o una combinazione di più valori in più campi, che permettano
la sua identificazione univoca. Tale valore prende il nome di Chiave
primaria. Nella fase di realizzazione della tabella, dovrai indicare
quale campo, o quale combinazione di campi, avranno il ruolo di
Chiave di ricerca primaria. Perché la chiave primaria possa svolgere
il ruolo di elemento di identificazione univoco del record, è
necessario che il suo valore non abbia duplicati all’interno della
tabella.
Esistono delle situazione nelle quali è difficile individuare uno o
più campi che abbiano le caratteristiche adatte a svolgere il ruolo
di chiave di ricerca primaria. In questi casi, puoi generare un
campo aggiuntivo, fatto apposta per svolgere tale compito. Esempi di
codici identificativi aggiuntivi sono: il Numero di matricola di uno
studente universitario e il Codice personale del dipendente di
un’azienda.
L’eventuale operazione di assegnazione di un identificativo può
essere fatta in automatico dal sistema, qualora, durante la
generazione di una tabella, non venga indicata nessuna chiave di
ricerca primaria. In questo caso, al momento della chiusura e del
salvataggio della maschera, il programma ti avverte della mancanza
di un campo di questo tipo e ti chiede l’autorizzazione a inserirne
uno ad hoc. Il campo che viene inserito nella tabella è di tipo
contatore, cioè al suo interno viene inserito un numero progressivo
per ogni nuovo record, che viene registrato in archivio.
[ 5.1.1.4 ] Oltre alla non
duplicabilità dei dati, cioè la caratteristica di contenere valori
unici all’interno di una tabella, un campo deve essere associato a
un Indice, per essere Chiave di ricerca primaria.
Questa seconda proprietà ti permette una ricerca random dei dati,
ossia la loro individuazione immediata, quando li richiedi. La
ricerca Random viene anche indicata con il termine ricerca Casuale,
in quanto permette di individuare velocemente un record, scelto a
caso.
Per i campi non associati a indici, al contrario, è possibile solo
la ricerca di tipo Sequenziale, che allunga i tempi di risposta del
sistema, perché si arrivi al record voluto scorrendo tutti quelli
che lo precedono.
Un esempio di facile comprensione può essere la differenza tra un CD
e una musicassetta. Il primo ti permette di selezionare la traccia
desiderata, operando una ricerca di tipo random. Nella cassetta,
invece, dovrai scorrere il nastro, fino ad arrivare al punto di
inizio della canzone che vuoi ascoltare; operando una ricerca di
tipo sequenziale. È chiaro che questo tipo di ricerca risulta meno
veloce.
L’attributo di associazione a un indice non riguarda, però, solo il
campo chiave primaria. Puoi impostare tale parametro per tutti i
campi, che presupponi vengano interrogati con maggiore frequenza,
rendendone più veloce la ricerca.
Fai, comunque, attenzione perché l’associazione a un indice, se da
un lato migliora la modalità di ricerca dei dati, dall’altro
complica notevolmente la struttura dal database, riducendone le
prestazioni globali. In tal senso, durante la fase di progettazione,
l’associazione agli indici dei singoli campi è una delle fasi più
importanti e più delicate.
[ 5.1.1.5 ] Il database relazionale è
quello attualmente più diffuso, grazie alla sua flessibilità e alla
maggiore facilità d’uso. Come abbiamo già detto, un database
relazionale è costituito da un insieme di tabelle, due o più,
correlate tra loro attraverso Relazioni tra campi.
Le relazioni consentono di costruire insiemi di dati, Record logici,
aggregando campi appartenenti a tabelle diverse. Una struttura di
questo tipo è finalizzata a evitare che debbano essere inseriti più
volte gli stessi dati.
Le ridondanze, cioè le ripetizioni dei dati, non solo rappresentano
un onere di registrazione aggiuntivo, ma costituiscono anche un
serio problema, nel caso tu abbia la necessità di effettuare
aggiornamenti.
Facciamo un esempio per chiarire al meglio come funziona la
struttura appena descritta. Abbiamo citato l’elenco telefonico, come
esempio di database, e abbiamo individuato la struttura della
tabella che lo compone. Ora aggiungiamo una seconda tabella, per
registrare, ad esempio, ogni telefonata effettuata.
Questa seconda tabella conterrà una serie di informazioni,
riguardanti la singola telefonata (data, ora, durata, argomento
della conversazione) e un campo in cui verrà registrato il nome
dell’interlocutore. Tutti i dati, che riguardano l’interlocutore
stesso, sono già presenti nella prima tabella ed è quindi inutile
inserirli di nuovo in questa nuova struttura. Ogni volta che
registriamo una telefonata, possiamo automaticamente
collegare i dati della telefonata a quelli dell’interlocutore, senza
doverli riscrivere.
Inoltre, nel momento in cui un interlocutore cambia indirizzo, se
sei interessato solo al dato aggiornato, ti basta modificare il dato
nella prima tabella, per aggiornare tutto l’archivio.
Esistono tre tipi di relazione, in base alla modalità con la quale
sono collegate tra loro le tabelle.
• Relazione uno a uno: a un record di una tabella corrisponde, al
massimo, un solo record di un’altra tabella. Questo tipo di
relazione può essere sostituita, inserendo i dati della seconda
tabella direttamente nella prima. Non esiste, infatti, il problema
della ridondanza dei dati, essendo la relazione biunivoca. In
realtà, la relazione uno a uno viene usata per gestire dati
particolari, per un numero particolare di record, o dati che hanno
una rilevanza limitata nel tempo, e che possono essere eliminati, in
un secondo tempo.
• Relazione uno a molti: a un record di una tabella corrispondono
più record di un’altra tabella, non è vero il contrario. Questo è il
tipo di relazione più comune e viene utilizzata per risolvere i
problemi di ridondanza, come nell’esempio citato in precedenza.
• Relazione molti a molti: a un record della prima tabella
corrispondono più record della seconda tabella ed è vero il
contrario. Questo tipo di relazione non è gestibile direttamente, ma
occorre scinderla in due relazioni uno a molti, utilizzando una
tabella intermedia.
Nell’esempio precedente si dovrebbe utilizzare questo terzo tipo di
relazione, nel caso di telefonate, effettuate in teleconferenza a
più persone. In un database relazionale, è importante che venga
mantenuta l’integrità dei dati, che viene garantita dall’integrità
delle relazioni.
[ 5.1.1.6 ] Potresti, ad esempio,
volerti assicurare: che non venga registrata nessuna telefonata a
interlocutori che non sono registrati in archivio; oppure che non
possa essere cancellato un interlocutore al quale fanno riferimento
delle telefonate. Puoi attivare questa serie di controlli, indicando
al sistema di mantenere un’Integrità referenziale. L’integrità
referenziale ti consente di avere dei controlli automatici
sull’effettiva possibilità di collegamento tra due tabelle, nelle
fasi di registrazione, cancellazione e aggiornamento dei record.
Anche in questo caso, l’attivazione o meno dell’integrità
referenziale in una relazione deve essere valutata al meglio, in
fase di progettazione. Se, da un lato, questi controlli
salvaguardano il tuo database da una serie di inconvenienti,
dall’altro ti impongono una serie di vincoli, che potrebbero mettere
in crisi la gestione dell’archivio.
Clicca qui per continuare le lezioni col Modulo
Cinque
In libreria: - Alcuni libri di buona utilità
- © MAProject 2004 - Windows XP alla massima
potenza, Mondadori Informatica, 224 pagine, euro 12,80
- Microsoft
Office System 2003, Mondadori Informatica, pagine 432, euro 22,80
- Dizionario di Internet e delle reti, Mondadori Informatica,
320 pagine, euro 10,70
- Visual Basic NET, Apogeo, 588 pagine, euro 40,00
|
Stanno lavorando su nuovi algoritmi in grado di riconoscere i propri malfunzionamenti e riparare gli errori al volo. Un software in grado di autoripararsi in caso di errore! Lo scopo è quello di realizzare sistemi che siano in grado di restituire sempre dati corretti anche dopo un errore. L'algoritmo riconosce l'errore, trova la soluzione e, quindi, restituisce il dato corretto. Ci riusciranno? Vedremo!
Lo Sniffer è un programma che viene messo in ascolto su un dispositivo di rete.
Ogni volta che su un dispositivo di rete (cavo Ethernet, linea telefonica, cavo USB) transitano dati lo Sniffer li intercetta e li memorizza. Tali dati poi vengono visualizzati o scritti in dei files da chi ha creato lo Sniffer.
- I tuoi dati viaggiano sicuri?
- Qualcuno ti ha spiato?
- Il tuo Nome Utente e la tua Password sono veramente al sicuro?
- Come si realizza uno Sniffer?
Prossimamente, metteremo un articolo completo in questa pagina.
|