|
A questo punto prendiamo in mano un database relazionale e creiamo non una ma tre tabelle:
|
Cassette |
| CodCass |
Titolo |
CodReg |
CodAtt1 |
CodAtt2 |
Anno |
Supp orto |
Cod Prest |
Genere |
VM18 |
trama |
| 1 |
là dove scorre il fiume |
1 |
2 |
3 |
85 |
DVD |
0 |
dramma |
no |
xxx |
| 2 |
Proposta indecente |
4 |
1 |
5 |
85 |
VHS |
1 |
Sexy |
SI |
yyy |
|
Personaggi del cinema |
| CodPers |
Cognome |
Nome |
VintoOscar |
| 1 |
Redford |
Robert |
si |
| 2 |
DeNiro |
Robert |
si |
| 3 |
Stone |
Sharon |
no |
| 4 |
Spielberg |
Stephen |
si |
| 5 |
Pfeiffer |
Michelle |
no |
|
Amici |
| CodAmico |
Cognome |
Nome |
Telefono |
Indirizzo |
| 0 |
non prestata |
|
|
|
| 1 |
Salvioli |
Gigi |
0547778899 |
via Garibaldi 5 |
| 2 |
Persiceto |
Gennaro |
0547558877 |
via Mazzini 6 |
In questo modo, oltre ad inserire molti più dati abbiamo già risolto due dei problemi citati sopra: inseriremo una sola volta Robert de Niro per tutte le volte che vorremo usarlo in punti differenti del nostro database ed avremo sempre la certezza di chiamarlo Redford, Robert e non r.redford,robertredford, Robert Redford ecc...
In compenso abbiamo un problema : come faccio a capire che la cassetta di proposta indecente l' ho prestata a Gigi Salvioli e non ad un fantomatico signor 1 ? risposta: tramite delle relazioni
una delle cose che dovrebbe saltare immediatamente all' occhio guardando le tabelle dell' esempio e' il fatto che ogni record ha un suo codice univoco (spesso chiamato "chiave primaria" ) che identifica lui e solo lui (non ci sono ne' possono essere due personaggi del cinema con CodPers=1) e che tali codici vengono richiamati all' interno della tabella delle cassette: si può quindi dire che ho stabilito una relazione tra i campi della tabella cassette CodReg, CodAtt1 e CodAtt2 e il campo CodPers della tabella personaggi del cinema, così come ho stabilito una relazione tra CodAmico della tabella Amici e CodPrest (risolvendo peraltro il fastidio di avere caselle vuote per indicare che la cassetta e' in mio possesso). in questo modo tramite un apposito sistema di definizione delle relazioni si possono creare database estremamente complessi ma di consultazione abbastanza semplice. con una appropriata gestione degli indici sulle tabelle inoltre si può ottenere un tempo di accesso ai dati decisamente soddisfacente
di
|