Sei sulla pagina 1di 11

puntata 7

basi di dati: primi passi

-------------------------------------------
modulo 1 - primi passi con le basi di dati
-------------------------------------------

spot motivazionale - l'amico consiglia a vanilla di trasferire su un


database elettronico le schede informative della sua grande collezione di film
in videocassetta.

in questo modulo imparerete:


1. come aprire un database esistente
2. come svolgere semplici operazioni con le maschere
3. cosa sono record e tabelle
4. come aprire una tabella e identificare gli elementi che la compongono

1. come aprire un database esistente


------------------------------------

istruttore: povera vanilla! tenere aggiornato un archivio con centinaia di


titoli usando un blocco note � certamente possibile, ma � proprio faticoso e -
come abbiamo visto - davvero poco funzionale. per fortuna abbiamo oggi a
disposizione degli strumenti informatici molto potenti, che ci consentono di
gestire con facilit� archivi di informazioni ben pi� grandi e complessi di una
collezione di film in videocassetta.
il programma che utilizzeremo in questo modulo e nei successivi � Access
della microsoft. � importante per� precisare che tutte le operazioni che
effettueremo sugli archivi elettronici - o basi di dati - sono realizzabili con
qualsiasi altro programma di tipo analogo.
parleremo indifferentemente di database o di "basi di dati". non
preoccupatevi: sono esattamente la stessa cosa. ci� detto, cominciamo con
l'avviare il nostro programma.

operatore: se l'icona di access non � gi� presente sul vostro desktop,


potete avviare il programma cliccando su start, spostando poi in questo modo il
mouse su programmi e cliccando infine sulla scritta microsoft access. ed ecco
aprirsi la finestra principale dell'applicazione.

istruttore: per cominciare a familiarizzarci con l'interfaccia di questo


programma - ormai sapete bene cos'� un'interfaccia - apriamo un database gi�
esistente.

operatore: per aprire un file di access possiamo sia fare clic su questa
cartellina gialla sulla barra degli strumenti sia fare clic sul menu "file" e
scegliere il comando "apri".

istruttore: a questo punto vi trovate di fronte la classica finestra di


dialogo, che consente di navigare tra i file e le cartelle archiviati sulle
unit� di memoria collegate al vostro computer.

operatore: per impostazione predefinita, viene visualizzato il contenuto


della cartella "documenti". evidenziamo ora il file luoghi.mdb e clicchiamo sul
pulsante "apri".

istruttore: notate che l'estensione tipica dei file generati da access �


mdb. tuttavia � possibile aprire e modificare con questo programma - cos� come
con altri programmi dotati di funzionalit� analoghe - anche basi di dati
generate da altre applicazioni. ci�, evidentemente, rende pi� semplice
l'interscambio dei dati e la collaborazione tra persone che utilizzano sistemi
differenti.

2. come svolgere semplici operazioni con le maschere


----------------------------------------------------

istruttore: eccoci ora davanti alla finestra di controllo, dalla quale


possiamo gestire tutti i parametri e i dati del nostro database di prova
"luoghi.mdb".

operatore: s�. come vedete, la finestra � suddivisa sostanzialmente in due


parti. quella di sinistra consente di scegliere tra differenti modalit� di
gestione dei dati: "tabelle", "query", "maschere", "report", ecc. quella di
destra, invece, permette di accedere ai contenuti, se presenti, di ognuna delle
modalit� di gestione disponibili.
se ad esempio attivo con un clic del mouse la modalit� "maschere", ecco che
viene visualizzato nella parte destra della finestra l'elenco delle maschere
disponibili in questo database. ve ne sono due, denominate "arezzo" e
"citta_della_pieve".

istruttore: quel che vogliamo fare ora � aprire una delle due maschere di
immissione dati e mostrarne praticamente il funzionamento, che - come vedrete -
� davvero molto semplice.

operatore: con un doppio clic apriamo la maschera denominata "arezzo".


compare sullo schermo una finestra contenente una serie di campi - quelli su
sfondo bianco - che contengono del testo. ogni campo � identificato da
un'etichetta. nel nostro caso le etichette utilizzate sono: "file", "titolo",
"didascalia", "data".

istruttore: le etichette ci aiutano a comprendere che tipo di informazioni


va inserito in ciascuno dei campi della maschera. nel nostro database di
esempio, questa maschera serve per aggiornare una tabella che mette in relazione
dei file grafici aventi estensione jpg con un titolo, una descrizione ed una
data. i file grafici in questione sono infatti delle fotografie e la maschera ha
la funzione di aggiornare un archivio che fornisce informazioni su una
collezione di foto. un archivio nel quale a ciascuna fotografia sono associati
il titolo, la data e la descrizione corrispondenti.

operatore: � molto semplice modificare un'informazione presente in archivio.


se, ad esempio, ci accorgiamo di aver sbagliato la data della foto numero 4,
clicchiamo alcune volte su questa freccina, fino a che visualizziamo il
contenuto del quarto record. poi inseriamo il cursore nel campo "data" e quindi
modifichiamo la data esistente, inserendone al suo posto un'altra, ad esempio
questa (inserisce un'altra data). ora, se vado avanti o indietro e poi ritorno
al record numero 4, trover� che nel campo "data" � ormai presente la data che ho
appena immesso e non c'� pi� traccia della precedente.
a questo punto non mi resta che chiudere la maschera cliccando sul pulsante
"x" in alto a destra.

3. cosa sono record e tabelle


-----------------------------

istruttore: come avete visto si tratta di operazioni davvero intuitive. ma


voglio ora attirare la vostra attenzione su un termine fondamentale del mondo
dei database. mi riferisco al termine record, che � stato appena adoperato per
indicare l'insieme delle informazioni, presenti in una singola schermata della
maschera che abbiamo utilizzato poco fa.
un record � appunto questo: un insieme di informazioni omogenee intorno ad
un medesimo oggetto. ogni base di dati ha come suo elemento centrale una o pi�
serie organizzate di record. ad esempio il record-tipo di un database di
indirizzi potrebbe contenere i seguenti dati: nome e cognome della persona, via,
citt�, codice postale e numero di telefono. il record-tipo di un archivio di
videocassette potrebbe invece contenere questi altri dati: titolo del film, data
di registrazione, data di produzione, genere, attori principali, regista.
come potete immaginare, gli esempi possono moltiplicarsi all'infinito. quel
che occorre mettere bene in luce � la struttura che rende un insieme di record
omogeneo. questa struttura � la tabella.
per capire cos'� una tabella, possiamo rifarci ai due esempi che ho citato
poco fa. un record che contiene i recapiti di un amico non presenta alcuna
omogeneit� con un record che contiene i dati di un film in videocassetta. da una
parte abbiamo nome, cognome, indirizzo, numero di telefono, ecc.; dall'altra
parte abbiamo invece titolo, data, attori, regista, e cos� via. ci rendiamo
conto intuitivamente che il record con i recapiti dell'amico antonio rossi ed il
record del film terminator non possono stare insieme. perch� dei record possano
essere archiviati ordinatamente devono essere inseriti in una struttura
omogenea, adatta a tenerli insieme. questa struttura � appunto la tabella,
elemento caratterizzante di qualsiasi modello di database.
vediamo ora appunto come appare fisicamente una tabella all'interno del
nostro database di esempio.

4. come aprire una tabella e identificare gli elementi che la compongono


------------------------------------------------------------------------

operatore: con un clic sinistro del mouse attiviamo la modalit� "tabella"


nel menu di sinistra della nostra finestra-database. ricordiamo che il file su
cui stiamo lavorando � lo stesso "luoghi.mdb", del quale abbiamo esaminato una
maschera poco fa. nella parte destra della finestra compare l'elenco delle
tabelle attualmente disponibili. come vedete, sono due e i loro nomi richiamano
i nomi delle due maschere di immissione, presenti nell'apposita sezione
esaminata in precedenza.
con un doppio clic apriamo ora la tabella "arezzo". compare sullo schermo
una griglia di righe e colonne, che richiama l'analoga griglia di cui sono
composti i fogli di calcolo di excel. il principio di funzionamento � infatti
analogo. la differenza, rispetto, ai fogli di excel, � che in una tabella di
access le righe non sono etichettate da numeri visibili, mentre le colonne sono
identificate da nomi significativi piuttosto che da lettere dell'alfabeto.

istruttore: esatto. potete notare che i nomi che identificano le colonne


sono gli stessi nomi delle etichette presenti nella maschera di immissione. le
tabelle, in effetti, rappresentano un altro modo, rispetto alle maschere, per
visualizzare i dati contenuti in un archivio. certamente la visualizzazione in
modalit� tabella non � pratica come la visualizzazione in modalit� maschera, per
quanto riguarda l'immissione, la modifica e la cancellazione di dati. tuttavia
la visualizzazione tabellare � l'unica in grado di mostrarci a colpo d'occhio la
struttura di un archivio di dati e l'omogeneit� delle informazioni contenute nei
vari record che compongono una tabella.

operatore: vediamo dunque quali sono gli elementi costitutivi di questa


tabella. le righe orizzontali rappresentano i record: ogni riga raccoglie
infatti tutte le informazioni necessarie a catalogare un singolo oggetto, in
questo caso una delle foto della nostra serie sulla citt� di arezzo.
le colonne rappresentano invece i campi. ogni campo, corrispondente ad
un'etichetta della maschera di immissione esaminata in precedenza, rappresenta
un tipo di informazione. come vedete il campo "data" del quarto record riflette
il cambiamento di data effettuato poco fa per mezzo dell'apposita maschera di
immissione.
l'intersezione tra un record ed un campo si definisce cella e rappresenta
l'elemento minimo di una base di dati. ciascuna informazione viene archiviata in
un database come contenuto di una cella, all'interno di una tabella: sono
contenuti di cella, nel nostro caso, i nomi dei singoli file jpg, i titoli delle
foto, le didascalie e le date.

istruttore: a conclusione di questa breve carrellata introduttiva ai


database, meritano un accenno altri due termini che in seguito incontreremo
spesso: query e report.

operatore: s�. le query - o interrogazioni - sono dei metodi per estrarre


informazioni da una base di dati. attiviamo la modalit� query con un clic
sull'apposito pulsante nella parte sinistra della finestra principale. i report
sono invece modi di organizzare i dati di un archivio in vista della stampa. per
creare un report o per visualizzare quelli esistenti, facciamo clic sul pulsante
report nella parte sinistra della finestra-database.

con access o con un altro programma di tipo analogo:


- aprite un file di database esistente (possibilmente uno di quelli forniti
insieme con la documentazione del programma)
- scoprite se vi sono maschere gi� preparate e, se s�, apritene una,
modificate alcuni dati a vostra scelta e poi chiudetela
- aprite, infine, la tabella corrispondente alla maschera che avete
utilizzato prima, e identificate i dati modificati per mezzo della maschera.

in questo modulo avete imparato:


1. come aprire un database esistente
2. come svolgere semplici operazioni con le maschere
3. cosa sono record e tabelle
4. come aprire una tabella e identificare gli elementi che la compongono

---------------------------------------------
modulo 2 - creare un database ed una tabella
---------------------------------------------

spot motivazionale - l'amico ha convinto vanilla a creare un database


elettronico dedicato ai film, ma vanilla non ha capito bene con quale criterio
occorra definire i campi della prima tabella.

in questo modulo imparerete:


1. come creare un database vuoto
2. come creare una tabella in visualizzazione struttura
3. come scegliere il tipo di dati corretto
4. come impostare il formato dei dati e salvare la tabella

1. come creare un database vuoto


--------------------------------

istruttore: ora che ci siamo familiarizzati con la terminologia essenziale


del mondo dei database, passiamo alla creazione del nostro primo archivio
elettronico con access.

operatore: la prima operazione da compiere �, naturalmente, l'apertura del


programma. eseguiamo quindi la procedura start -> programmi -> microsoft access,
che abbiamo gi� visto in precedenza.
una volta avviata l'applicazione, clicchiamo sull'icona del foglio bianco,
la prima a sinistra nella barra degli strumenti. con questo pulsante si comincia
la creazione di un nuovo documento.
scegliamo ora la voce "database vuoto". ci� genera l'apertura di questa
finestra, che ha lo scopo di permetterci di attribuire un nome ed una posizione
su disco al nuovo file di database che stiamo creando.

istruttore: questa � una particolarit� di access. a differenza di quanto


accade con le altre applicazioni del pacchetto office, access ci obbliga a
salvare un nuovo file prima di poterlo utilizzare.

operatore: accettiamo quindi la cartella "documenti" come locazione


predefinita in cui sar� salvato il nuovo file. attribuiamo il nome "prova" al
database vuoto che stiamo generando e clicchiamo infine sul pulsante crea.
l'estensione mdb, tipica di access, verr� aggiunta automaticamente dal
programma.

2. come creare una tabella in visualizzazione struttura


-------------------------------------------------------

istruttore: in genere, prima di procedere alla costruzione di un archivio


elettronico, � necessaria una fase di accurata progettazione, in cui si
pianifica la struttura dei dati, sia in base alla loro natura sia in vista del
tipo di utilizzo che si prevede di farne. si cerca ad esempio di strutturare le
tabelle in modo che contengano informazioni omogenee e si cerca di evitare, per
quanto possibile, di creare duplicati di una stessa informazione.
nel nostro caso, procederemo in modo molto semplice e diretto. il nostro
database conterr� un'unica tabella. vogliamo provare infatti a costruire un
archivio di videocassette e la tabella che ci accingiamo a strutturare conterr�
tutte le informazioni necessarie per catalogare per un uso domestico una serie
di film. procediamo dunque alla generazione della nostra tabella.

operatore: vediamo che la finestra di controllo-database - la stessa che


abbiamo gi� utilizzato per aprire maschere e tabelle di un database esistente -
si apre con il pulsante "tabelle" gi� selezionato (indica la voce "tabelle"
nella parte sinistra della finestra). nel database vuoto appena creato non vi
sono naturalmente tabelle gi� esistenti. vi sono per� gli strumenti per crearne
di nuove. abbiamo - come vedete - la possibilit� di scegliere fra tre differenti
modalit�:
1. crea una tabella in visualizzazione struttura
2. crea una tabella mediante una creazione guidata
3. crea una tabella mediante l'immissione di dati

istruttore: per questo esempio sceglieremo la prima opzione, cio� "crea una
tabella in visualizzazione struttura". e' questo infatti il modo migliore per
prendere confidenza con i numerosi parametri che occorre definire, affinch� la
tabella con cui lavoreremo svolga in modo corretto ed efficace il proprio
lavoro.

operatore: facciamo dunque un doppio clic sulla prima voce. questa azione
genera l'apertura di una grande finestra, contenente nella parte superiore una
serie di righe orizzontali vuote, suddivise in tre colonne: "nome campo", "tipo
dati" e "descrizione".

istruttore: la prima cosa da fare � definire i nomi dei campi della nostra
tabella. ricordiamo che stiamo costruendo un archivio di film in videocassetta.
le voci da inserire nella colonna "nome campo" dovranno essere perci�
informazioni utili per catalogare dei film.
operatore: nella prima riga inseriamo la voce "titolo". il contenuto di
questo campo sar�, per ogni record che archivieremo, il titolo di un film.
confermiamo il nome del campo e ci spostiamo alla riga successiva con un'unica
operazione: una pressione del tasto freccia in giu'.
allo stesso modo proseguiamo nella definizione dei campi successivi,
ricordando che un nome di campo pu� essere lungo al massimo 64 caratteri, spazi
compresi. nella seconda riga digitiamo la voce "genere"; nella terza riga la
voce "regista", nella quarta "protagonisti", nella quinta "durata", nella sesta
"anno", nella settima "data registrazione".

3. come scegliere il tipo di dati corretto


------------------------------------------

istruttore: come avrete notato, non appena ci si sposta alla riga


successiva, compare automaticamente la voce testo nella colonna tipo dati,
accanto al nome del campo appena inserito. access, in altre parole, considera
per impostazione predefinita come testuali tutti i nuovi campi generati.
come potete immaginare, � molto importante associare ad ogni nome di campo
immesso un tipo di dati corrispondente alla sua natura. infatti associare ad un
campo un tipo di dati errato, pu� pregiudicare seriamente le funzionalit� di una
base di dati, impedendo ad esempio di impostare adeguati criteri di ricerca. il
campo anno, per citarne uno, conterr� delle date espresse in numeri ed � perci�
errato associarlo al tipo di dati testo. il tipo testo va associato piuttosto
alle informazioni effettivamente testuali come, ad esempio, i nomi degli attori
e dei registi. occorre quindi esaminare con attenzione ciascuno dei nomi di
campo che abbiamo inserito e valutare se e dove occorra sostituire il tipo
testo, attivato per impostazione predefinita, con un altro tipo di dati, adatto
al caso.

operatore: scorrendo l'elenco dei nomi di campo che abbiamo inserito,


notiamo che titolo, genere, regista e protagonisti sono sicuramente informazioni
testuali. il tipo dati testo � perci� adeguato a questi campi. il campo durata
conterr�, invece, dei numeri, che rappresenteranno la durata espressa in minuti
dei vari film catalogati. occorre dunque cambiare il tipo testo in qualcosa di
pi� adatto. per fare ci�, posiziono il cursore sulla parola testo accanto alla
voce durata, in modo da far comparire questa freccina sulla destra. cliccando
sulla freccina, si apre un menu a discesa contenente l'elenco di tutti i
possibili tipi di dati. scelgo dall'elenco il tipo dati numerico, che va cos� a
sostituire il precedente tipo testo.
procedo quindi in modo analogo per i campi anno e data registrazione,
scegliendo per entrambi dall'elenco il tipo data/ora, che � il pi� adatto a
rappresentare i valori che verranno immessi in questi due campi della tabella.

istruttore: poich� la scelta del tipo di dati corretto � molto importante,


esaminiamo ora quali sono i tipi di dati che access ci mette a disposizione. il
tipo di dati predefinito, lo abbiamo visto, � il tipo testo. un campo testo pu�
contenere fino ad un massimo di 255 caratteri alfanumerici, cio� lettere,
numeri, spazi ed eventuali caratteri speciali.
se 255 caratteri ci sembrano pochi, possiamo scegliere il tipo dati memo. un
campo memo pu� contenere infatti fino a 65.535 caratteri alfanumerici, cio� 257
volte esatte la grandezza di un campo testo.

operatore: se invece un campo deve contenere numeri e se, soprattutto, su


quei numeri devono potersi eseguire delle operazioni matematiche, allora occorre
scegliere il tipo dati numerico.
se, poi, un campo � destinato a memorizzare date, allora la categoria giusta
� Data/ora. in un campo di questo tipo � possibile archiviare qualsiasi data
dall'anno 100 fino all'anno 9999.

istruttore: restando in ambito numerico, se i valori che dobbiamo archiviare


sono valori monetari, allora il tipo dati che fa al caso nostro � Valuta.
un particolare tipo di dati numerico � il tipo contatore. un campo contatore
assegna in modo automatico un numero univoco, e perci� non riutilizzabile, ad
ogni nuovo record creato. viene utilizzato per facilitare la catalogazione e la
ricerca.
abbiamo ancora il tipo dati si'/no. un campo di questo tipo accetta solo
valori binari, quali appunto "s�" o "no" oppure "vero" o "falso". se pensate che
un campo della vostra tabella possa contenere anche il valore "forse", allora
non attribuitegli il tipo dati si'/no.

operatore: vi sono infine altri tre tipi di dati, di utilizzo un po' pi�
specialistico. sono i tipi ole, collegamento ipertestuale e ricerca guidata. il
primo si usa quando un campo deve contenere oggetti generati e controllati da
altre applicazioni. i campi ole vanno usati con grande attenzione, perch�
possono esaurire facilmente le risorse di elaborazione di un computer. i campi
collegamento ipertestuale servono per memorizzare tutte le informazioni atte a
consentire il collegamento ad una risorsa su internet. i campi ricerca guidata,
per concludere, consentono di recuperare, per mezzo di caselle di testo o menu a
discesa, il contenuto di altre tabelle diverse da quella su cui si sta
lavorando.

4. come impostare il formato dei dati e salvare la tabella


----------------------------------------------------------

istruttore: dopo questa lunga digressione sui tipi di dati, concludiamo la


procedura di creazione della nostra tabella, dando una rapida occhiata alla
parte inferiore della finestra di visualizzazione struttura.

operatore: la caratteristica saliente di questa parte della finestra � che


il suo contenuto varia a seconda del tipo di dati selezionato. si tratta di una
serie di opzioni che servono a definire nel dettaglio il comportamento di un
campo, una volta che sia stato scelto il tipo di dati adatto ad esso. nel caso,
ad esempio, di un campo testo, possiamo impostare numerose opzioni. non abbiamo
il tempo di elencarle tutte. citiamo perci� solo le principali:
* dimensione campo
* valore predefinito
* richiesto
* consenti lunghezza zero
* indicizzato
se desiderate conoscere il significato di queste e delle altre opzioni,
potete utilizzare i comodi suggerimenti contestuali, che vengono visualizzati
nella parte inferiore destra di questa finestra.

istruttore: ogni tipo di dati ha naturalmente le sue opzioni specifiche. ai


fini del nostro esempio � sufficiente conservare le impostazioni predefinite di
access. non ci resta ora che dare un nome alla tabella e salvarla.

operatore: clicchiamo quindi sulla x in alto a destra nella finestra


visualizzazione struttura. compare ora una finestra di salvataggio, che ci
chiede di attribuire un nome alla tabella appena creata. sostituiamo al nome
suggerito da access il nome "videoteca" e clicchiamo su "ok".

istruttore: l'applicazione ci chieder� ora di impostare una chiave primaria.


ma di questo ci occuperemo nel prossimo modulo.
con access o con un altro programma di tipo analogo:
- avviate il programma e create un database vuoto
- create una tabella in visualizzazione struttura
- create un certo numero di campi, attribuendo loro un nome significativo e
il tipo di dati corretto, progettando di costruire un database contenente nomi e
indirizzi dei vostri amici.

in questo modulo avete imparato:


1. come creare un database vuoto
2. come creare una tabella in visualizzazione struttura
3. come scegliere il tipo di dati corretto
4. come impostare il formato dei dati e salvare la tabella

------------------------------
modulo 3 - definire le chiavi
------------------------------

spot motivazionale - vanilla ha ancora problemi con il suo nuovo db. l'amico
le spiega che ogni problema sarebbe risolto se lavorasse con un database
relazionale.

in questo modulo imparerete:


1. cos'� e a cosa serve una chiave primaria
2. come definire una chiave primaria in una tabella
3. come istituire una relazione tra due tabelle
4. cosa sono i database relazionali

1. cos'� e a cosa serve una chiave primaria


-------------------------------------------

istruttore: e' tempo di fare ora un importante passo in avanti nella nostra
comprensione delle basi di dati. parleremo infatti di chiavi primarie e del
concetto di database relazionale. riprendiamo a questo scopo la tabella chiamata
"videoteca", che avevamo realizzato in precedenza.

operatore: per aprire un file gi� esistente, archiviato nella cartella


documenti, possiamo adoperare una scorciatoia. doppio clic (parla mentre esegue
la procedura) sull'icona "documenti" posta sul desktop e doppio clic sul file
"prova.mdb", che contiene la tabella "videoteca". doppio clic, infine, sul nome
della tabella, per visualizzarne il contenuto. come potete vedere, la tabella,
che prima era vuota, contiene adesso sei record. li abbiamo inseriti a scopo
dimostrativo, per facilitare la comprensione delle procedure che illustreremo.

istruttore: osserviamo innanzitutto la struttura di questa tabella. come �


facile comprendere, campi quali genere, regista, attori, durata del film, anno
di produzione possono contenere informazioni duplicate. nella nostra tabella
illustrativa, vediamo ad esempio che il genere "drammatico" ed il genere
"fantascienza" si ripetono due volte. e cos� anche anno e data di registrazione
si ripetono uguali in pi� record. e persino i campi "regista" e "protagonisti"
potrebbero contenere pi� volte i medesimi nomi, se solo avessimo inserito pi�
titoli di film nella nostra tabella.

operatore: l'unico campo che non si presta facilmente a duplicati � il campo


titolo. e' tuttavia possibile che vi siano due film con lo stesso titolo, ad
esempio e.t. nella versione originale ed in quella recentemente restaurata.
insomma, nessuno dei campi della nostra tabella pu� essere una vera e
propria chiave primaria. ma che cosa intendiamo precisamente con questa
espressione? cerchiamo di capirlo grazie all'aiuto di una breve scheda.

istruttore: una chiave primaria � un campo di una tabella dotato di


particolari propriet�:
1. in nessun record pu� essere vuoto, cio� avere valore nullo: il suo valore
deve essere sempre espresso.
2. non pu� avere lo stesso valore in due record differenti della stessa
tabella. se ad esempio la chiave primaria � un numero, deve trattarsi di un
numero diverso per ogni record.
3. deve valere per tutti i record di una medesima tabella.
ma a cosa serve definire una chiave primaria?

operatore: essenzialmente a due scopi, di cui il primo � funzionale al


raggiungimento del secondo:
1. a rendere assolutamente unico, e perci� riconoscibile, ciascun record di
una tabella;
2. a consentire di mettere in relazione tra loro tabelle differenti.
come ci� possa avvenire, lo vedremo in seguito. per ora basti sapere che in
una tabella i campi definiti come chiavi primarie possono essere anche pi� di
uno.

2. come definire una chiave primaria in una tabella


---------------------------------------------------

istruttore: ora che sappiamo cos'� e a cosa serve una chiave primaria,
poich� vogliamo che i record della nostra tabella possano essere messi in
relazione con i record di altre tabelle, procediamo con il definire una chiave
primaria.

operatore: la tabella "videoteca" � aperta attualmente in visualizzazione


"foglio dati", una modalit� nella quale si possono inserire, cambiare o
cancellare dati, ma nella quale non � possibile effettuare modifiche strutturali
ai campi o al formato dei dati. per definire una chiave primaria, occorre
attivare la modalit� visualizzazione struttura. possiamo farlo cliccando
sull'icona con la squadra e la matita, la prima a sinistra sulla barra degli
strumenti. (esegue l'operazione)

istruttore: eccoci dunque in visualizzazione struttura. come � stato appena


detto, nessuno dei campi della tabella si presta a divenire una chiave primaria,
perch� nessuno di essi contiene informazioni veramente univoche. dobbiamo allora
inserire un nuovo campo, dotato delle caratteristiche giuste.

operatore: per fare ci�, posizioniamo il puntatore sulla freccina alla


sinistra del campo "titolo", il primo della lista, e clicchiamo il tasto destro
del mouse, in modo da far comparire il menu contestuale. scegliamo poi la voce
"inserisci righe", che crea una riga vuota - cio� lo spazio per un nuovo campo -
al di sopra del campo "titolo". e attribuiamo il nome "film id" - cio�
identificativo dei film - al nuovo campo appena generato. nell'elenco dei tipi
di dati, scegliamo la voce "contatore".

istruttore: notate che, tra le opzioni di formato, in basso nella finestra


(indica l'ultima voce), abbiamo accanto a indicizzato il valore si' e tra
parentesi l'indicazione che i duplicati sono ammessi.

operatore: a questo punto clicchiamo con il tasto destro sulla scritta "film
id" e, dal menu contestuale, scegliamo la prima voce, cio� "chiave primaria".
nella colonna di sinistra accanto al nome del campo, compare l'iconcina di una
chiave, a ricordare che questo campo � adesso una chiave primaria.
istruttore: e' importante osservare che, non appena abbiamo trasformato il
contatore in una chiave primaria, il valore dell'opzione di formato esaminata
prima - cio� Indicizzato - � cambiato. indica adesso che i duplicati non sono
pi� ammessi. ci� perch�, come abbiamo spiegato, tutti i valori di un campo che �
chiave primaria devono essere unici ed irripetibili.

operatore: per concludere la procedura di definizione della chiave primaria,


clicchiamo sulla solita x in alto a destra della finestra visualizzazione
struttura e rispondiamo si' alla domanda se vogliamo salvare i cambiamenti di
struttura apportati. aprendo ora la tabella "videoteca" in modalit� foglio dati
(esegue l'operazione), possiamo vedere che � presente sulla sinistra il nuovo
campo filmid, e che questo campo identifica univocamente, mediante numeri
progressivi da 1 a 6, tutti i record della tabella.

3. come istituire una relazione tra due tabelle


-----------------------------------------------

istruttore: abbiamo detto che una delle ragioni per definire delle chiavi
primarie � la necessit� di mettere pi� tabelle in comunicazione reciproca.
abbiamo preparato un piccolo esempio che mostra come stabilire una relazione fra
due tabelle.

operatore: apriamo il file "prova2.mdb". come potete vedere (mostra la


finestra di controllo-database selezionata su tabelle), abbiamo qui due tabelle:
"videoteca", che gi� conoscete, ed una nuova tabella denominata "film
spielberg". aprendola con un doppio clic (esegue l'operazione), notiamo che
contiene un elenco con alcuni dei principali film realizzati dal regista steven
spielberg. la prima colonna, "filmid", � la chiave primaria. contiene un elenco
di numeri identificativi, analogo a quello presente nell'altra tabella.
chiudiamo momentaneamente questa tabella e attiviamo il comando relazioni dal
menu strumenti. compare questa finestra (la indica), nella quale sono presenti
due altre piccole finestre che rappresentano le due tabelle esistenti
attualmente nel database, ciascuna con i relativi campi.

istruttore: vogliamo istituire una relazione tra i rispettivi campi filmid,


in modo che gli stessi numeri identificativi dei film valgano per entrambe le
tabelle. per ottenere questo risultato, premiamo il tasto sinistro del mouse in
corrispondenza della scritta "filmid" nella tabella videoteca e, sempre tenendo
premuto il pulsante, trasciniamo il puntatore fin sopra l'analoga scritta filmid
nell'altra tabella. si apre a questo punto una finestra di dialogo che consente
di definire meglio le caratteristiche della relazione che vogliamo istituire.
lasciamo invariati i parametri predefiniti e premiamo il pulsante crea. il
risultato positivo dell'operazione � testimoniato dalla doppia freccia nera che
collega le due tabelle.

operatore: se ora apriamo la tabella "film spielberg" (la apre con un doppio
clic), possiamo vedere che alla sinistra del primo campo � comparso in ogni riga
un segno +. cliccando su questo segno, si apre il record corrispondente
dell'altra tabella, cio� il record definito dal medesimo valore di filmid.
cliccando ad esempio sul segno + nel record contenente il film e.t. (esegue
l'operazione), visualizziamo tutte le informazioni su questo film presenti nella
tabella videoteca.

4. cosa sono i database relazionali


-----------------------------------

istruttore: due parole, per finire, sui database cosiddetti relazionali.


come suggerisce l'aggettivo, la loro caratteristica principale � di stabilire
relazioni complesse tra tabelle. le basi di dati pi� elementari, come pu�
esserlo una semplice agendina di indirizzi e numeri di telefono, esauriscono il
loro compito con il fornire all'utilizzatore i mezzi per archiviare i dati in
tabelle singole e per estrarli in seguito dalle stesse.

operatore: viceversa i programmi come access permettono di creare complesse


ramificazioni di rapporti tra tabelle, allargando enormemente le possibilit� di
impiego delle informazioni. se, ad esempio, le tabelle contenenti gli elenchi
telefonici di citt� diverse sono, per un database non relazionale, entit�
indipendenti e non confrontabili, per un database relazionale, queste tabelle
sono invece in grado di interagire in vari modi. predisponendo correttamente le
relazioni tra le tabelle, si pu� ad esempio garantire che ciascun nuovo numero
di telefono attribuito non sia il duplicato di qualche numero gi� attivo in
un'altra citt�.

istruttore: perch� questo complicato meccanismo funzioni correttamente, le


basi di dati relazionali devono rispettare le cosiddette regole di integrita'
referenziale.
l'applicazione di tali regole garantisce che i dati conservati in tabelle
collegate siano sempre coerenti tra loro. se ad esempio si cancella l'abbonato
rossi dalla tabella a, perch� ha cambiato citt� o fornitore, un programma come
access � in grado di cancellare automaticamente tutti i suoi numeri di telefono,
archiviati nella tabella b. il non applicare queste regole creerebbe
evidentemente un problema di coerenza, perch� continuerebbero a risultare
impegnati dei numeri di telefono a cui non corrisponde pi� un titolare.

operatore: in certi casi, per�, un errore di cancellazione pu� causare, in


virt� dei collegamenti a cascata tra tabelle, disastrose perdite di dati. per
evitare ci�, oltre ad un'accurata progettazione delle relazioni tra le tabelle,
� indispensabile effettuare periodicamente copie di sicurezza di tutti i propri
archivi elettronici.

con access o con un altro programma di tipo analogo:


- create due tabelle e definitene i campi e il tipo di dati
- definite la medesima chiave primaria in ciascuna delle due tabelle
- istituite una relazione tra le due tabelle, basata sulla chiave primaria
che avete definito

in questo modulo avete imparato:


1. cos'� e a cosa serve una chiave primaria
2. come definire una chiave primaria in una tabella
3. come istituire una relazione tra due tabelle
4. cosa sono i database relazionali

vogliamo istituire una relazione tra i rispettivi campi filmid,


in modo che gli stessi numeri identificativi dei film valgano per entrambe le
tabelle. per ottenere questo risultato, premiamo il tasto sinistro del mouse in
corrispo