PDA

Visualizza la versione completa : DBM o Testo ?


zamak
04-02-2004, 13:28
Ciao a tutti,

il fine di questo Post è quello di avere un'idea chiara per poter scegliere quale sistema di database adottare come soluzione in situazioni di diverso carattere, considerando solo due possibilità: files DBM o files di TESTO.

La mia sensazione è che i files DBM siano sempre la migliore soluzione, hanno un tempo d'accesso più basso e dovrebbero impegnare meno il systema, mentre i files di TESTO credo che impegnino di più il sistema con le varie operazioni che vanno fatte per estrarre i dati; cosa ne pensate?

Quello che più mi interessa però, riguarda i limiti dei due sistemi in relazione al volume di dati (e dei files) da trattare; domanda: vi è una dimensione oltre la quale un file di TESTO diventa troppo impegnativo rispetto ad un file DBM o viceversa?

Nella pratica io devo trattare circa 2MB di dati per volta ma non ho esigenza di alte prestazione in fatto di accesso al DB, posso usare uno dei due sistemi senza preferenze o uno è migliore dell'altro? Quale volume di dati credete possa dare problemi all'uno e all'altro?

Grazie, ciao ;-)

shishii
04-02-2004, 21:00
Ciao,

i DBM sono quasi sempre meglio.
Gli unici svantaggi sono che nel caso di DB costituiti da piccoli file occupano più spazio, infatti se non ricordo male un file DBM appena creato occupa già qualche Kbyte (forse 12), l'altro svantaggio e che devi avere accesso ai moduli appropriati e il codice è un pò più complesso.
Per il resto sono sicuramente meglio in tutto.

Comunque se si devono o si vogliono usare file di testo è bene imitare quanto più possibile il comportamento dei DBM, quindi evitare come la peste cose del genere:

open (FILE, "file.dat");
@file = <FILE>;
close FILE;

meglio:

open (FILE, "file.dat");
while (<FILE>) {
....
}
close FILE;

ancora meglio:

use Tie::File;

$o = tie @array, 'Tie::File', './file.dat' or die "Non posso aprire file.dat: $!\n";

...

undef $o;
untie @array;

Ciao.

Loading