summaryrefslogtreecommitdiffstats
path: root/koffice-i18n-it/docs/koffice/kexi/database.docbook
blob: 5eec7d578d1d9f646896827ac16fd936ce72d192 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
<!--
  <!DOCTYPE appendix PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
-->

<appendix id="database">
<title
>Introduzione alle banche dati</title>

<sect1 id="what-is-a-database">
<title
>Che cos'è una banca dati?</title>
<para
>Una banca dati può essere definita come una collezione di dati su un argomento. È organizzata in modo tale da rendere semplice scorrere le informazioni, apportare delle modifiche oppure aggiungere nuovi elementi. </para>
<para
>Guarda il diagramma per uno degli esempi di sopra: una semplice rubrica telefonica. </para>
<screenshot>
  <screeninfo
>Diagramma di una banca dati di numeri telefonici</screeninfo>
    <mediaobject>
        <imageobject>
            <imagedata fileref="contact-example.png" format="PNG"/>
        </imageobject>
        <textobject>
            <phrase
>Diagramma di una banca dati di numeri telefonici</phrase>
        </textobject>
    </mediaobject>
</screenshot>
<para
>L'immagine di sopra mostra un insieme di contatti presentati su schede diverse. Sembra che tale scheda possa costituire una singola riga in una tabella: </para>

<para
><emphasis
>Tabella <guilabel
>Contatti</guilabel
></emphasis
></para>
<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry
><guilabel
>Nome</guilabel
></entry>
<entry
><guilabel
>N. tel.</guilabel
></entry>
</row>
<row>
<entry
>Joan</entry>
<entry
>699 23 43 12</entry>
</row>
<row>
<entry
>Adam</entry>
<entry
>711 19 77 21</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para
><emphasis
>Termini e definizioni</emphasis
>: un dato singolo che costituisce parte di una collezione più grande può essere chiamato <firstterm
>riga</firstterm
> o in maniera più professionale <firstterm
>record</firstterm
>. La collezione viene generalmente chiamata <firstterm
>tabella</firstterm
>. Inoltre, il nome più naturale per la tabella è quello che descrive i dati che offre/contiene, cioè <guilabel
>Contatti</guilabel
>. Ogni riga nella tabella è formata da <firstterm
>colonne</firstterm
>, spesso chiamate <firstterm
>campi</firstterm
>. Nella tabella <guilabel
>Contatti</guilabel
> ci sono due colonne (campi): <guilabel
>Nome</guilabel
> e <guilabel
>N. tel</guilabel
>. </para>
<para
>Per utilizzi più semplici una <firstterm
>banca dati</firstterm
> può essere costituita da una singola tabella. Molti le considerano equivalenti. Come vedrai, tipicamente avremo bisogno di più di una tabella nel caso di banche di dati reali. </para>
<para
>Per riassumere, hai appena visto una semplice banca dati con una tabella <guilabel
>Contatti</guilabel
>. </para>
</sect1>


<sect1 id="database-and-spreadsheet">
<title
>Banca dati e foglio di calcolo</title>
<para
>È molto probabile che tu abbia già usato applicazioni per fogli di calcolo come KSpread, OpenOffice.org Calc o Microsoft Excel. In tal caso, probabilmente ti starai chiedendo: visto che sia un foglio di calcolo che una banca dati hanno delle tabelle, perché dovrei usare l'ultimo? </para>
<para
>Confrontando i fogli di calcolo con le banche dati puoi incontrare i seguenti problemi, che verranno affrontati in maggior dettaglio in seguito: </para>
<itemizedlist>
<listitem
><para
><link linkend="referential-data-integrity"
>Integrità referenziale sui dati</link
></para
></listitem>
<listitem
><para
><link linkend="data-redundyncy"
>Ridondanza di dati</link>
</para
></listitem>
<listitem
><para
><link linkend="data-integrity-and-validity"
>Integrità e validità dei dati</link
></para
></listitem>
<listitem
><para
><link linkend="data-limiting"
>Limitare la visualizzazione dei dati</link
></para
></listitem>
<listitem
><para
><link linkend="performance-and-capacity"
>Prestazioni e capacità</link
></para
></listitem>
<listitem
><para
><link linkend="convenient-data-entry"
>Voci di dati convenienti</link
></para
></listitem>
<listitem
><para
><link linkend="reports"
>Rapporti</link
></para
></listitem>
<listitem
><para
><link linkend="programming"
>Programmazione</link
></para
></listitem>
<listitem
><para
><link linkend="multiuse"
>Utilizzo multiplo</link
></para
></listitem>
<listitem
><para
><link linkend="security"
>Sicurezza</link
></para
></listitem>
</itemizedlist>

<sect2 id="difference-database-and-spreadsheet">
<title
>In cosa una banca dati differisce da un foglio di calcolo?</title>

<para
>xxx, amplia la tua tabella <guilabel
>Contatti</guilabel
> aggiungendo una colonna (campo) <guilabel
>Indirizzo</guilabel
>. Aggiungi più numeri di telefono (ufficio, casa) per ogni persona ed aggiungi dei cognomi ai nomi. Per rendere il tutto più facile facciamo le seguenti assunzioni: </para>
<itemizedlist>
<listitem
><para
>la tabella è limitata a due persone (ovviamente ce ne potrebbero essere centinaia e migliaia in una vera banca dati)</para
></listitem>
<listitem
><para
>non esistono due persone con lo stesso nome e cognome</para>
</listitem>
</itemizedlist>
<para
><emphasis
>Tabella dei contatti</emphasis
></para>
<informaltable>
<tgroup cols="3">
<tbody>
<row>
<entry
><emphasis
>Nome e cognome</emphasis
></entry>
<entry
><emphasis
>Tel</emphasis
></entry>
<entry
><emphasis
>Indirizzo</emphasis
></entry>
</row>
<row>
<entry
>Joan Smith</entry>
<entry
>699 23 43 12</entry>
<entry
>Western Gate 1, Warsaw</entry>
</row>
<row>
<entry
>Adam Willson</entry>
<entry
>711 19 77 21</entry>
<entry
>London, Frogs Drive 5</entry>
</row>
<row>
<entry
>Joan Smith</entry>
<entry
>110 98 98 00</entry>
<entry
>Western Gate 1</entry>
</row>
<row>
<entry
>Smith Joan</entry>
<entry
>312 43 42 22</entry>
<entry
>Warsaw, Western Gate 1</entry>
</row>
<row>
<entry
>ADAM Willson</entry>
<entry
>231 83 02 04</entry>
<entry
>Frogs Drive 5, London</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para
>Una tabella di questo tipo può essere realizzata sia un foglio di calcolo che in una banca dati. Utilizzare un foglio di calcolo è sicuramente molto semplice. Quali problemi emergono a questo punto? </para>

<sect3 id="referential-data-integrity">
<title
>Integrità referenziale sui dati</title>
<para
>Supponi di utilizzare un foglio di calcolo e di avere la necessità di modificare l'indirizzo di almeno una persona. Nasce un piccolo problema: devi cambiare spesso l'indirizzo su diverse righe. Ad esempio, Joan appare su tre righe. Sorgerebbe un problema serio se dimenticassi di modificarne una - l'indirizzo associato a questa persona risulterebbe <emphasis
>ambiguo</emphasis
>, quindi <emphasis
>i tuoi dati perderebbero l'integrità</emphasis
>. </para>
<para
>Inoltre non c'è un modo semplice per cancellare una determinata persona dalla tabella dato che devi ricordarti di cancellare tutte le righe che la riguardano. </para>
</sect3>


<sect3 id="data-redundyncy">
<title
>Ridondanza dei dati</title>
<para
>È direttamente connesso al problema precedente. Nei campi <guilabel
>Nome e cognome</guilabel
> e <guilabel
>Indirizzo</guilabel
> vengono inseriti più volte gli stessi dati. È tipico del modo inefficiente con il quale un foglio di calcolo memorizza i dati, poiché la banca dati cresce inutilmente, il che richiede più risorse (dimensione più grande dei dati ed accesso più lento). </para>
<para
>Come puoi risolvere questi problemi con una banca dati? Puoi separare le informazioni in porzioni più piccole creando tabelle aggiuntive, come <emphasis
>Persone</emphasis
> con sole due colonne: <guilabel
>Nome e cognome</guilabel
> e <guilabel
>Indirizzo</guilabel
>: </para>

<para
><emphasis
>Tabella <guilabel
>Persone</guilabel
></emphasis
></para>
<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry
><emphasis
>Nome e cognome</emphasis
></entry>
<entry
><emphasis
>Indirizzo</emphasis
></entry>
</row>
<row>
<entry
>Joan Smith</entry>
<entry
>Western Gate 1, Warsaw</entry>
</row>
<row>
<entry
>Adam Willson</entry>
<entry
>Frogs Drive 5, London</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para
>Ogni riga della tabella <guilabel
>Persone</guilabel
> corrisponde ad una <emphasis
>singola persona</emphasis
>. La tabella <guilabel
>Contatti</guilabel
> è d'ora in poi in relazione con la tabella <guilabel
>Persone</guilabel
>. </para>

</sect3>

<sect3 id="data-integrity-and-validity">
<title
>Integrità e validità dei dati</title>
<para
>Fai attenzione al modo con il quale vengono inseriti i dati nei campi <guilabel
>Nome e cognome</guilabel
> e <guilabel
>Indirizzo</guilabel
>. Chi inserisce i dati potrebbe commettere degli errori, alcune volte potrebbe essere addirittura negligente. Tra i nostri dati campione abbiamo sia sequenze diverse di nome e cognome (Joan Smith e Smith Joan; Adam e ADAM) che molti altri modi di inserire lo stesso indirizzo. Puoi certamente immaginarne altri. </para>
<para
>Il problema suddetto mostra come, &eg;, quando si cerca un numero di telefono di una persona il cui indirizzo è "Western Gate 1, Warsaw" non si ottiene un risultato completo. Otterrai solo una riga invece di tre. Inoltre, non troverai neanche tutti i numeri di telefono cercando il valore "Joan Smith" nel campo <guilabel
>Nome e cognome</guilabel
>, poiché "Smith Joan" non coinciderà con "Joan Smith". </para>
<para
>Come puoi risolvere questi problemi usando una banca dati? Lo puoi fare modificando il progetto della tabella <guilabel
>Persone</guilabel
> attraverso: </para>
<orderedlist>
<listitem
><para
><emphasis
>Divisione dei dati</emphasis
> nei campi <guilabel
>Nome e cognome</guilabel
> in due campi separati: <guilabel
>Nome</guilabel
> e <guilabel
>Cognome</guilabel
>. </para
></listitem>
<listitem
><para
><emphasis
>Divisione dei dati</emphasis
> nel campo <guilabel
>Indirizzo</guilabel
> in tre campi diversi: <guilabel
>Via</guilabel
>, <guilabel
>Numero di casa</guilabel
> e <guilabel
>Città</guilabel
>. </para
></listitem>
<listitem
><para
><emphasis
>Garantendo la correttezza dei dati:</emphasis
> assicurando che nessun campo sia vuoto; &eg;, dovrai sempre inserire il numero di casa. </para
></listitem>
</orderedlist>

<para
>Una tabella modificata ha il seguente aspetto: </para>

<para
><emphasis
>Tabella Persone</emphasis
></para>
<informaltable>
<tgroup cols="5">
<colspec colnum="1" colname="c1"
></colspec>
<colspec colnum="2" colname="c2"
></colspec>
<colspec colnum="3" colname="c3"
></colspec>
<colspec colnum="4" colname="c4"
></colspec>
<colspec colnum="5" colname="c5"
></colspec>
<tbody>
<row>
<entry
><emphasis
>Nome</emphasis
></entry>
<entry
><emphasis
>Cognome</emphasis
></entry>
<entry
><emphasis
>Via</emphasis
></entry>
<entry
><emphasis
>Numero di casa</emphasis
></entry>
<entry
><emphasis
>Città</emphasis
></entry>
</row>
<row>
<entry
>Joan</entry>
<entry
>Smith</entry>
<entry
>Western Gate</entry>
<entry
>1</entry>
<entry
>Warsaw</entry>
</row>
<row>
<entry
>Adam</entry>
<entry
>Willson</entry>
<entry
>Frogs Drive</entry>
<entry
>5</entry>
<entry
>London</entry>
</row>
<row>
<entry namest="c1" nameend="c5"
><emphasis
>Vincoli</emphasis
></entry>
</row>
<row>
<entry
>campo obbligatorio</entry>
<entry
>campo obbligatorio</entry>
<entry
>campo obbligatorio</entry>
<entry
>campo obbligatorio</entry>
<entry
>campo obbligatorio</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para
>Grazie all'introduzione del vincolo di <guilabel
>campo obbligatorio</guilabel
> possiamo essere certi che il dato inserito sarà completo. In altri casi potresti ovviamente permettere l'omissione di alcuni campi quando si inseriscono i dati. </para>

</sect3>

<sect3 id="data-limiting">
<title
>Limitare la visualizzazione dei dati</title>
<para
>Un foglio di calcolo mostra tutte le righe e le colonne della tabella, il che risulta fastidioso con fogli di dati molto grandi. Puoi ovviamente filtrare ed ordinare le righe nei fogli di calcolo, tuttavia devi essere molto attento quando lo fai. Gli utenti dei fogli di calcolo rischiano di dimenticare che la visualizzazione dei dati è stata filtrata, situazione che può portare a commettere degli errori. Ad esempio, mentre si calcolano delle somme puoi pensare di avere 100 righe di dati mentre in realtà ce ne sono altre 20 nascoste. </para>
<para
>Se vuoi lavorare su un piccolo sottoinsieme dei dati,  &eg; per inviarlo ad altri affinché lo modifichino, puoi copiarlo ed incollarlo su un altro foglio di calcolo e, dopo aver apportato le modifiche, ricopiare i dati modificati su quello principale. Una modifica "manuale" di questo tipo potrebbe causare la perdita di dati o calcoli scorretti. </para>
<para
>Per limitare la <emphasis
>visualizzazione dei dati</emphasis
>, le applicazioni per banche dati offrono <emphasis
>interrogazioni</emphasis
>, <emphasis
>moduli</emphasis
> e <emphasis
>rapporti</emphasis
>. </para>
<para
>Un modo molto pratico per limitare la visualizzazione dei dati è la seguente versione estesa della tabella <guilabel
>Persone</guilabel
> descritta in precedenza: </para>

<para
><emphasis
>Tabella Persone</emphasis
></para>
<informaltable>
<tgroup cols="6">
<tbody>
<row>
<entry
><emphasis
>Nome</emphasis
></entry>
<entry
><emphasis
>Cognome</emphasis
></entry>
<entry
><emphasis
>Via</emphasis
></entry>
<entry
><emphasis
>Numero di casa</emphasis
></entry>
<entry
><emphasis
>Città</emphasis
></entry>
<entry
><emphasis
>Entrata</emphasis
></entry>
</row>
<row>
<entry
>Joan</entry>
<entry
>Smith</entry>
<entry
>Western Gate</entry>
<entry
>1</entry>
<entry
>Warsaw</entry>
<entry
>2300</entry>
</row>
<row>
<entry
>Adam</entry>
<entry
>Willson</entry>
<entry
>Frogs Drive</entry>
<entry
>5</entry>
<entry
>London</entry>
<entry
>1900</entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para
>Supponiamo che la colonna appena introdotta <guilabel
>Entrata</guilabel
> contenga dati confidenziali. Come puoi condividere, &eg;, i dettagli di un contatto con i tuoi colleghi senza <emphasis
>rivelare le loro entrare</emphasis
>? È possibile solo se <emphasis
>condividi un'interrogazione e non la tabella intera</emphasis
>. L'interrogazione potrebbe selezionare tutte le colonne eccetto quella <guilabel
>Entrata</guilabel
>. Nel gergo delle banche dati questo tipo di interrogazione viene spesso chiamata <guilabel
>vista</guilabel
>. </para>

</sect3>

<sect3 id="performance-and-capacity">
<title
>Prestazioni e capacità</title>
<para
>Probabilmente il tuo computer è abbastanza veloce, tuttavia potrai notare come questo non sia di aiuto con fogli di calcolo lenti e di grosse dimensioni. La loro bassa efficienza è per prima cosa dovuta alla mancanza di indici che accelerano il processo di ricerca dei dati (le banche dati spesso li offrono). Inoltre, se usi cose come gli appunti di sistema, addirittura la copia dei dati potrebbe diventare problematica con il passare del tempo. </para>
<para
>I fogli di calcolo che contengono grossi insiemi di dati potrebbero richiedere molto tempo per aprirsi. Un foglio di calcolo carica una grande quantità di dati sulla memoria del computer durante l'apertura. La maggior parte di essi sono probabilmente inutili/non necessari per il momento. Le banche dati, al contrario dei fogli di calcolo, caricano i dati dagli archivi solo quando necessario. </para>
<para
>Nella maggior parte dei casi non dovrai preoccuparti di come la banca dati memorizza i suoi dati. Ciò significa che, a differenza dei fogli di calcolo, le banche dati non si curano circa: </para>
<itemizedlist>
<listitem
><para
>La sequenza delle righe, visto che puoi ordinarle in base alle tue esigenze. Inoltre, puoi visualizzare gli stessi dati in maniere diverse con ordinamenti diversi. </para
></listitem>
<listitem
><para
>Lo stesso vale per le colonne (campi) della tabella. </para
></listitem>
</itemizedlist>

<para
>Insieme alla possibilità di <link linkend="data-limiting"
>limitare la visualizzazione dei dati</link
>, descritta nel paragrafo precedente, queste qualità costituiscono i vantaggi di una banca dati. </para>

</sect3>

<sect3 id="convenient-data-entry">
<title
>Voce di dato</title>
<para
>Le ultime edizione delle applicazioni per la creazione di fogli di calcolo ti permette di progettare moduli per voci di dato. Questi tipi di modulo sono per lo più utili se i tuoi dati non possono essere mostrati in maniera conveniente con una visualizzazione tabulare, &eg; se il testo occupa troppe righe oppure se tutte le colonne non entrano nello schermo. </para>
<para
>In questo caso il modo con il quale lavorano i fogli di calcolo è problematico. I campi per le voci di dato vengono collocati liberamente all'interno del foglio di calcolo e molto spesso non sono sicuri rispetto all'intervento (intenzionale od accidentale) dell'utente. </para>
</sect3>

<sect3 id="reports">
<title
>Rapporti</title>
<para
>Le banche dati permettono il raggruppamento, la limitazione e l'aggregazione di dati in un modulo o in un <emphasis
>rapporto</emphasis
>. I fogli di calcolo sono generalmente stampanti sotto forma di piccole tabelle senza un pieno controllo automatico sulla divisione delle pagine e sul layout dei campi. </para>
</sect3>

<sect3 id="programming">
<title
>Programmazione</title>
<para
>Le applicazioni per la creazione di banche dati contengono spesso linguaggi di programmazione completi. I fogli di calcolo più recenti hanno la stessa capacità, tuttavia i calcoli si limitano alla modifica dei campi del foglio di calcolo e alla mera copia dei dati, senza tener conto della rilevanza e dei vincoli di integrità, citati nei paragrafi precedenti. </para>
<para
>Il processamento dei dati all'interno di un foglio di calcolo è tipicamente eseguito attraverso una interfaccia utente di tipo grafico, cosa che potrebbe rallentarne la velocità. Le banche dati sono in grado di lavorare in background, al di fuori di interfacce grafiche. </para>
</sect3>

<sect3 id="multiuse">
<title
>Utilizzo multiplo</title>
<para
>È difficile immaginare un utilizzo multiplo di un singolo foglio di calcolo. Anche se tecnicamente possibile nell'ambito delle applicazioni più recenti, richiede molta disciplina, attenzione e conoscenza da parte degli utenti, e ciò non può essere garantito. </para>
<para
>Un modo classico per condividere i dati salvati in un foglio di calcolo con altre persone è di inviarlo come nella sua interezza come file (tipicamente utilizzando la posta elettronica) oppure rendendolo disponibile come file in una rete di computer. Questo modo di lavorare è porta vantaggi in un grosso gruppo di persone - i dati necessari in un particolare momento potrebbero essere bloccati da un'altra persona. </para>
<para
>D'altro canto, le banche dati sono state progettate principalmente con gli accessi multiutente in mente. È permesso il blocco a livello di una riga di una determinata tabella persino nelle versioni più semplici, rendendo semplice la condivisione dei dati. </para>
</sect3>

<sect3 id="security">
<title
>Sicurezza</title>
<para
>Rende sicuro un foglio di calcolo oppure le sue specifiche sezioni con una password è solamente un'azione simbolica. Dopo aver fornito un foglio di calcolo in una rete di computer, ogni persona in grado di copiarlo potrà provare ad eludere la protezione. A volte non è così difficile dato che la password è memorizzata all'interno del file stesso. </para>
<para
>È altrettanto facile eludere il blocco alle modifiche ed il blocco alla copia per un foglio di calcolo (o per una sua parte). </para>
<para
>Le banche dati (ad eccezione di quelle salvate in un file invece che su un server) non hanno bisogno di essere disponibili su un singolo file. Potrai accedere ad esse tramite una rete di calcolatori, tipicamente fornendo un nome utente ed una password. Otterrai l'accesso solamente a quelle aree (tabelle, moduli o addirittura specifiche righe e colonne) che ti sono state assegnate impostando appropriati diritti di accesso. </para>
<para
>I diritti di accesso possono influenzare la possibilità di modificare o di leggere i dati. Se non ti è reso disponibile alcun dato, non verrà neanche inviato al tuo computer in modo tale che non ci sia modo di crearne una copia così facilmente, come accade per i fogli di calcolo. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="database-design">
<title
>Progettazione di una banca dati</title>
<para
>La progettazione di una banca dati richiede una pianificazione attenta. Nota che la riprogettazione della tabella <guilabel
>Contatti</guilabel
> proposta nella sezione 1.2 può generare dei problemi quando la tabella viene riempita di dati. Ad esempio, rinominare un campo è un compito semplice, ma separare il campo <guilabel
>Indirizzo</guilabel
> in campi separati richiede attenzione e uno lavoro tedioso. </para>
<para
>Per evitare queste situazioni, <emphasis
>pensa di nuovo al progetto della tua banca dati</emphasis
> prima di crearla sul tuo computer, e prima che tu e gli altri comincino ad utilizzarla. In questo modo, investendo del tempo all'inizio, probabilmente risparmierai del tempo durante l'uso quotidiano. </para>
</sect1>

<sect1 id="who-needs-a-database">
<title
>Chi ha bisogno di una banca dati?</title>
<itemizedlist>
<title
>Rimani ai fogli di calcolo se:</title>
<listitem
><para
>Le tue esigenze sono limitate ed i tuoi dati non cresceranno mai così tanto (puoi realmente prevederlo?) </para
></listitem>
<listitem
><para
>Non riesci ad acquisire la metodologia necessaria alla costruzione di una banca dati. Tuttavia puoi considerare sia di delegare questa operazione a qualcun altro oppure di utilizzare strumenti più semplici. </para
></listitem>
<listitem
><para
>Utilizzi fogli di calcolo complicati e ti manca il tempo o il denaro per spostarti su una banca dati. Pensa, oppure chiedi a qualcuno, se questo non ti porti in un vicolo cieco. Non fare affidamento in strumenti "magici" (per quanto ben fatti) che convertono i tuoi fogli di calcolo in banche dati. </para
></listitem>
</itemizedlist>

<itemizedlist>
<title
>Considera l'utilizzo di banche dati se:</title>
<listitem
><para
>La tua collezione di dati si espande ogni settimana.</para
></listitem>
<listitem
><para
>Crei spesso nuovi fogli di calcolo, effettui delle operazioni di copia all'interno di essi e ti sembra che questo lavoro stia diventando sempre più noioso. In tal caso lo sforzo impiegato nella trasformazione in una banca dati ripaga facilmente. </para
></listitem>
<listitem
><para
>Crei dei rapporti per i quali la vista a tabelle di un foglio di calcolo non è sufficiente. Potresti allora pensare di utilizzare una banca dati con viste a modello. </para
></listitem>
</itemizedlist>
</sect1>

<sect1 id="database-software">
<title
>Software per la creazione di banche dati</title>
<para
>Finora hai imparato le caratteristiche generali delle banche dati senza aver visto in dettaglio le applicazioni specifiche per la loro progettazione. </para>
<para
>Le prime banche dati furono costruite all'interno di grandi computer mainframe negli anni 60, come  gli IBM S&eg;ystem/360. Non era ancora l'era dei PC e quindi queste banche dati avevano bisogno di personale altamente specializzato. Sebbene l'hardware dei vecchi computer fosse inaffidabile, fossero incredibilmente più lenti ed offrissero una capacità di memorizzazione minore, una caratteristica delle banche dati rimane ancora la più affascinante: l'accesso ai dati da parte di diversi utenti all'interno di una rete. </para>
<para
>Negli anni 70 alcuni scienziati crearono la teoria della banche dati relazionali (termini come <firstterm
>tabella</firstterm
>, <firstterm
>record</firstterm
>, <firstterm
>colonna (campo)</firstterm
> e <firstterm
>relazionalità</firstterm
> e molti altri). Sulla base di questa teoria vennero create le banche dati IBM DB2 ed Oracle, che sono state sviluppate ed utilizzate fino ai nostri giorni. Negli ultimi anni 70 vennero costruiti i primi PC. I loro utenti poterono (gradualmente) utilizzare differenti tipi di applicazioni, incluse quelle per la costruzione delle banche dati. </para>
<para
>Quando si tratta di grandi banche dati nelle aziende, la situazione cambia: richiedono ancora computer potenti o complessi chiamati <firstterm
>cluster</firstterm
>. Tutto questo va, però, oltre gli scopi del manuale. </para>
<para
>Nell'ambito delle banche dati "accessibili" con interfacce utenti grafiche per PC puoi scegliere tra i seguenti: </para>

<itemizedlist>
<listitem
><para
><ulink url="http://www.dbase.com/"
>DBase</ulink
> - uno strumento per operazioni su banche dati per DOS, diffuso negli anni 80. I file nel formato DBase vengono ancora utilizzati in alcuni casi specifici a causa della loro semplicità. </para
></listitem>
<listitem
><para
><ulink url="http://msdn.microsoft.com/vfoxpro/productinfo/overview/"
>FoxPro</ulink
> - un'applicazione simile a DBase (primi anni 90). Dopo essere stato acquisito da Microsoft vennero introdotte le interfacce utente grafiche e venne utilizzato quindi per creare banche dati sui PC. Questo prodotto viene ancora distribuito, anche se è ormai un po' obsoleto. </para
></listitem>
<listitem
><para
><ulink url="http://office.microsoft.com/access/"
>Microsoft Access</ulink
> - un'applicazione per banche dati (progettazione sui dati e attraverso l'interfaccia grafica) con molte semplificazioni, per questo adatta ai principianti, progettata nei tardi anni 80, basato su un'architettura a 16 bit. Questo prodotto viene offerto ed è ampiamente utilizzato ancora ora, specialmente nelle piccole aziende, dove l'efficienza ed i requisiti di utenza multipla non sono fortemente richiesti. </para
></listitem>
<listitem
><para
><ulink url="http://www.filemaker.com/"
>FileMaker</ulink
> - applicazione diffusa simile a MS Access per la semplicità, operativa sulle piattaforme Windows e Macintosh, distribuito sin dal 1985. </para
></listitem>
<listitem
><para
><ulink url="http://www.kexi.pl/"
>&kexi;</ulink
> - un'applicazione multipiattaforma (Unix/Linux, Windows, Mac OS X) progettata nel 2003, sviluppata nel rispetto dei principi OpenSource, parte del progetto globale <ulink url="http://www.kde.org/"
>KDE</ulink
>, &ie; un ambiente grafico per sistemi Unix/Linux. Un contributo significativo allo sviluppo di &kexi; è stato apportato dalla compagnia OpenOffice Poland. </para
></listitem>
</itemizedlist>

</sect1>

</appendix>