Newsgroup: it.comp.software.database
Titolo: grande database

Ciao, vorrei gentilmente avere qualche dritta da qualcuno più esperto di 
me su un progetto. 
Un signore mi ha chiesto di realizzare un database per gestire alcune 
chiavi date ai dipendenti di una società. Il territorio nazionale è 
diviso in 25 regioni, ognuna delle quali contiene a sua volta 125 
"province". Per ogni provincia bisogna poter memorizzare almeno 350 
chiavi (ovvero record con numero della chiave e nominativo di chi la 
possiede). Il database dovrà essere installato e utilizzato su di un solo 
computer, presumibilmente con Windows Nt. 
Che database posso utilizzare? Inizialmente avevo pensato ad Access 
perchè poco costoso (e cmq di solito installato negli uffici) e di 
semplice utilizzo, ma fatti due calcoli sulle dimensioni delle tabelle...
Forse è meglio MySql? Che linguaggio mi consigliate di utilizzare per 
interfacciare il db: C, Java o interfaccia web(con Php o Perl)? Come 
posso organizzare le tabelle (una sola con 25x125x350 record o 25 tabelle 
con 125x350)?
Ringrazio anticipatamente chi potrà aiutarmi e saluto tutto il newsgroup.
Ciao

>Che database posso utilizzare? Inizialmente avevo pensato ad Access 
Tutto dipende da quanti accessi e operazioni devi fare. La mia
idiosincrasia contro Access mi spinge a sconsigliartelo, ma forse
potrebbe gia andare bene :-) (o meglio, sotto i 10000 record forse...
non so cosa succeda con 1.093.750 record... per me esplode...)
Io comunque direi SQLServer, Interbase (gratuito) o MySQL.
Quanto alla struttura, penso che la cosa piu' semplice sia un'unica
tabella 
chiavi(<idChiave>,Nominativo,regione,provincia) 
con un controllo sull'assegnazione provincia->regione hard-coded (a
meno che le province non cambino spesso).
Se lo fai in PHP o Perl la manutenzione e' veramente facile.
Inoltre, quante persone accederanno in scrittura al database? In quel
caso devi pensare ad una race-condition, e quindi utilizzare le
transazioni.
Ciao,
Marco

, 
ma...@cucinato.com
 says...

Ciao, innanzitutto grazie mille per la celerità con cui hai risposto. 
Allora, al database accederà solo una persona da una sola macchina che 
farà un massiccio lavoro iniziale di data-entry e poi ogni tanto qualche 
modifica. 
Avendo già realizzato un sito in php+mysql quindi mi consigli di 
installargli Php, Apache, MySql o Interbase e realizzare un front-end 
(giusto?) via browser?
Infine essendo dati piuttosto importanti con un database server quali 
sono i rischi? Mi sembra che c'è la possibilità di criptare il tutto, o 
no? 
Ciao, Gaetano.

lascia stare io provendo da un'esperienza disastrosa con access, ora
usiamo db2 di ibm e va tutto molto meglio, access verso un milione di
record esplode... con db2 ne gestisco ben 9milioni e tutto fila liscio
come l'olio...
calogero

record esplode... 
bah, parliamone.  la mia esperienza e' completamente diversa...  torno
a dire, non sara' il massimo dell'efficienza e della celerita' ma
tutte queste "esplosioni" in circa un paio d'anni di attivita' in cui
mi spazzolavo decine di milioni di record alla volta non le ho
viste...
voi mi direte: e perche' non usavi uno strumento piu' adatto per
spazzolare decine di milioni di record?  e io vi diro': perche' le
specifiche con cui spazzolare quei record cambiavano dalla sera alla
mattina tutti i giorni piu' volte al giorno.
ora, e' vero che access e' lento, ma i tempi di sviluppo sono veloci.
quando le procedure access si consolidavano, venivano passate ad un
gruppo di oracolisti che si prendeva le sue tre, quattro, cinque
*settimane* per il *porting* (cioe' per copiare) del nostro prototipo
access buttato li' in due o tre *giorni*.  spesso, ovviamente, nel
frattempo la cosa non serviva piu'...
del resto neanche siamo in molti a lavorare per il tipo di azienda per
il quale lavoravo io, che aveva esigenze (e soprattutto un reparto di
marketing) molto particolari.

non so cosa succeda con 1.093.750 record... per me esplode...)
a esplodere non esplode, se gli dai la ram giusta... semmai non sara'
il massimo della velocita'...
esperienza personale: io ci gestivo decine di milioni di record.


mi pare che comunque un file .mdb non può superare il giga.. o sbaglio?

mi pare che comunque un file .mdb non può superare il giga.. o sbaglio?
vero, con access 2000 si arriva a 2 giga, ma il concetto e' quello.
pero' puoi allegare quante tabelle esterne vuoi ad un file access
(front end e back end).  per chiarire: puoi avere 500 file che
contengono una tabella sola grossi un giga e allegare tutte e 500 le
tabelle ad un file di access che quindi vede i dati di tutte e 500.
torno a dire: i tempi saranno quelli che saranno.
solo non sminuiamo troppo access per partito preso o per la puzzetta
sotto al naso che certi dba hanno.