Newsgroup: it.comp.lang.delphi
Titolo: Dubbio su data-base

Ciao a tutti,
volevo chiedere a voi che avete piu' esperienza....
In una serie di applicativi di uso solamente locale che tipo di 
data-base utilizzereste, tenendo conto che:
Il numero di record di un singolo data base supera abbondantemente i 500000
Il numero di data-base in relazione e' di 3-4
In numero di utenti in accesso al singolo e' di 1
Grazie.

 data-base utilizzereste, tenendo conto che:
<snip>
Firebird o PostgreSQL.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Ti ringrazio, gentile come sempre, un'ultima cosa... come mi consigli di 
interfacciarlo? MySQL, ADO, o altro?

Microges ha scritto:

Non dici quale versione di Delphi usi e quale sistema operativo e' il 
target.
IMO, Firebird e le librerie ZEOS sono una bella accoppiata a costo ZERO 
(leggi pero' le licenze per un eventuale uso commerciale).
Ciao
ACSH


Scusa mi ero dimenticato... uso Delphi 2005 e grazie per le info

 interfacciarlo? MySQL, ADO, o altro?
MySQL � un database e lo escluderei.
I componenti Zeos dovrebbero andare bene:
http://sourceforge.net/projects/zeoslib/


Mi sa che fai un po di confusione tra tabella e database...
Un database si compone di n tabelle, e ognuna di esse puo contenere un
numero imprecisato di record fermo restando i limiti del motore e
quelli architetturali.
Tu parli di 500.000 e passa record per TABELLA, presumo...
A.

 ha scritto nel messaggio 
news:he0bn0$ib$1...@nnrp-beta.newsland.it...

Io valuterei SQLExpress (gratuito) con ADO
Andrea 

 Io valuterei SQLExpress (gratuito) con ADO
Anche. Per� le applicazioni col tempo possono sempre scalare e con
SQLExpress questo costituirebbe un problema (esistono limiti esattamente
come per MSDE). A questo punto meglio scegliere un prodotto come Firebird
(al limite la versione Embedded) che � comunque un RDBMS illimitato e
completamente gratuito. Idem per PostgreSQL (non MySQL che ha bisogno di
licenza per usi commerciali).


 come per MSDE).
Sei troppo severo: i limiti di sqlexpress non sono poi cosi'
stringenti
da "costituire un problema" per applicazione medio-piccole.
Se la tua applicazione cresce fino ad avere problemi per via di quei
limiti allora vuol dire che e' una *signora applicazione*
ed a quel punto diventa credibile anche installare un sqlserver
completo (che puoi comunque sostituire senza modificare di una virgola
la tua applicazione e/o il tuo DB).
ciao
Giacomo

 la tua applicazione e/o il tuo DB).
Non sono troppo severo e ho specificato bene nel mio messaggio che cosa
intendo. I limiti della versione Express sono tali da costituire un
problema (eccome) anche se l'applicazione cresce solo un po'. Non va
sicuramente bene per applicazioni "medie" (che diventano gi� *signore
applicazioni* con questi tipi di db). Io non ho escluso l'uso per
applicazioni piccolissime (ma proprio "issime", leggi il mio "Anche"
iniziale), ma ho specificato che non appena l'applicazione comincia a
scalare (questo � possibilissimo) si andrebbe incontro a dei limiti. Se
Firebird e PostgreSQL sono database "veri", potenti, completi, illimitati
e gratuiti, perch� non usarli da subito a favore invece di un db che ha,
anche solo in potenza, dei limiti?...


Mi sono personalmente trovato nella situazione in cui msde inizia a
essere insufficente per la applicazione.
Magari mi serve un po di terapia per le mie tendenze paranoiche, ma io
tra una soluzione che *forse" prevede una sostituzione del motore
database e una che non prevede cio, la prima non la considero neppure,
a parita di tempi di costi, tempi di sviluppo e di deploy...
Facciamo una ipotesi... Se non erro msde ha un limite al numero di
connessioni.
Bene, Preparo il tutto, funziona, installo e il cliente e' contento...
N unita di tempo dopo il cliente mi chiama xche un da un pc non si
riesce a usare la mia applicazione...
Scopro che msde ne prevdede 10, ad esempio, e li ne servono 11...
Ergo:
1) devo andare li (tempo + carburante)
2) arrivato li devo mettere in linea un sqlserver (ore di lavoro)
3) devo farmi un giro veloce di prova per vedere se ci sono problemi
(altro tempo)
Ovviamente, in parte di questo tempo gli utenti *non potranno* usare
la applicazione.
Le domande, non ovvie ai piu', sono le seguenti:
1) chi paga?
2) entro quanto tempo dalla chiamata del cliente potro' intervenire?
In base alla legge di Murphy, il cliente chiamera' quando io sono
*veramente* nella merda e ovviamente questo lavoro gli servira' per
"ieri".
Sia PostGres che Firebird sono agratis.. Quindi, che senso ha
scegliere un prodotto "lite" come msde (che tra parentesi e'
obsoleto..) o SqlExpress?
Se ci sono dei vantaggi, ne vorrei essere messo al corrente xche cosi
su due piedi io non ne vedo...
La domanda cattiva, piu' generica e' "xche, a parita di costi,
scegliere A che *potrebbe* portarmi n problemi quando scegliendo B
questi n problemi non li avro'?"
Di casini ne abbiamo a iosa, e ritengo una buona politica partire col
piede giusto, cercando con buon senso e lungimiranza di evitare a
priori cio' che puo' essere evitato.
A.

 priori cio' che puo' essere evitato.
Quoto al 100%... In teoria! :)
In pratica, ogni scelta comporta n problemi diversi. Quando cominci il
tuo progetto hai un target in mente, se stai progettando un'astronave
allora tieniti lontano da MSSQL e usa oracle o db2, se stai progettando
un'onesta automobile, che ben difficilmente potra' diventare 
un'astronave, perche' porsi certi problemi?
Non sto mica dicendo che sqlexpress e' meglio di fb (non conosco pg
per cui lo tengo fuori dal discorso) dico solo che per progetti
medio piccoli va bene tanto quanto fb e non va scartato a priori.
ciao
G

 problema (eccome) anche se l'applicazione cresce solo un po'.
Fammi capire meglio: quali sono questi limiti che dici?
O meglio, quanto deve crescere un'applicazione per cominciare a vederli
all'opera questi limiti?
ciao
Giacomo

 dove nasca.
Non ho nessuna opinione "negativa". Ho gi� detto che SQLX va bene per gli
utilizzi a cui � destinato. Non si pu� avere un'opinione negativa di una
Panda se non ti porta da Catania a Copenhagen. Semplicemente, non �
studiata per quello. D'altronde, se � un db carente "sotto molti aspetti"
e se questo � "un dato di fatto", resta il mistero del perch� tu ne
consigli l'utilizzo. I limiti di SQLX sono sicuramente meno restrittivi di
quelli di MSDE e probabilmente per la maggiorparte delle applicazioni
piccole vanno pi� che bene (come ho affermato anch'io), ma gi� dal momento
in cui si comincia ad avere una multiutenza spinta (come per il caso di
applicazioni "medie", le hai citate tu), i suoi limiti possono farsi
sentire. Tanto per fare un esempio, ormai ci sono architetture server
multicore dappertutto, perch� usare un db che non � in grado di sfruttarle?
Bisogna stare molto attenti quando si fa una scelta progettuale, perch�
scegliendo da principio SQLX si corre il grosso rischio di dover, un
giorno, passare a SQL Server (i.e. grossa spesa di quattrini), perch� si
sviluppa, sviluppa, sviluppa, ci si sente a proprio agio con quel database
e non si vuol rischiare di rifattorizzare anche minime parti di
un'applicazione perfettamente funzionante in produzione dal cliente.
Questo accade nel mondo dell'informatica miliardi di volte. 
Ribadisco ancora una volta che per applicazioni piccole questo db va bene.
Per�, dal momento che esistono database completi, potenti e gratuiti,
migliori di questo db studiato per usi non enterprise, perch� non usarli
direttamente, considerato che non � escluso che un domani l'applicazione
possa scalare? perch� non mettersi, da subito, al riparo da questi
eventuali problemi? Spero di essere stato chiaro, non mi va di polemizzare
sulle sciocchezze.


 un'astronave, perche' porsi certi problemi?
Perch� nel mondo dell'informatica � molto facile che un'onesta automobile
debba trasformarsi in un'astronave e siccome queste cose le sappiamo tutti
(o quasi) molto bene, facciamo attenzione a consigliare di usare lo
strumento migliore da subito, tanto pi� se gratuito. C'� da sottolineare
un altro punto importante riguardo e la progettazione, e la scalabilit�:
molto spesso (quasi sempre in casi si applicazioni serie) i server vengono
progettati o scalano su architetture Unix/Linux, per cui la scelta di
SQLExpress � da scartare a priori in caso di progettazione e pu� diventare
un serio problema in caso di scalabilit�. Poi (tanto per farti capire che
non ce l'ho con MS, anzi, sono uno strenuo utilizzatore dei suoi prodotti)
non � affatto vero che MSSQL sia da scartare per progettare un'astronave.
Va pi� che bene invece e io l'ho visto all'opera con basi dati da decine e
decine di milioni di record senza fare grinze. Oracle � costosissimo e ha
bisogno di personale competente da pagare in organi corporei, mentre DB2
non credo venga pi� utilizzato ex novo ma solo come base dati legacy.


 sulle sciocchezze.
Chiarissimo, purtroppo devo dire che ribadire nuovamente la stessa cosa 
non mi ha di certo convinto!
Ad ogni modo ci tengo a dire che non c'e' nessuna polemica nemmeno da 
parte mia, solo un amichevole scambio di pareri, e possiamo 
tranquillamente restare di pareri diversi senza traumi! :)
ciao
Giacomo

 all'opera questi limiti?
SQL Server Express non scala. Il limite del database e` imposto a 4Gb,
puo` usare al massimo 1Gb di RAM e un processore. Tutti limiti che con
Firebird e con PostgreSQL non hai. Insomma, personalmente non sono
contro SQL Server, ma l'unico motivo per cui userei la Express e` per
sviluppare applicazioni che andranno in produzione su di un SQL Server
Standard o Enterprise. Per altri scopi, molto meglio usare Firebird (se
so che parto da qualcosa di veramente piccolo ed embedded) o PostgreSQL
(se so che devo supportare delle funzionalita` che in Firebird non sono
presenti)
Enrico

 puo` usare al massimo 1Gb di RAM e un processore. 
Si si, so quali sono i limiti della sqlexpress rispetto alla standard! :)
quello che intendevo dire con la mia domanda retorica e' che  a mio
parere prima di sbattere contro questi limiti c'e' spazio per un
bel po' di applicazioni medio-piccole per le quali sqlexpress e'
una alternativa possibile a firebird o postgres.
ciao
Giacomo

 non mi ha di certo convinto!
Ma nessuno qui, credo, ha la minima voglia di convincere *te*. A me sembra
che sia tu a fare l'evangelizzatore Microsoft. Ti piace SQLExpress? usalo.


 una alternativa possibile a firebird o postgres.
Con Fb e Pg la possibilit� di "sbattere" non ce l'hai proprio. Insomma,
ora so che se tu andassi da un concessionario e ti proponessero una
Ferrari o una Panda allo stesso prezzo, tu sceglieresti la Panda.


 che sia tu a fare l'evangelizzatore Microsoft. Ti piace SQLExpress? usalo.
Ma chi vuole evangelizzare? Non riusciamo proprio a capirci, 
evidentemente! Lasciamo perdere, che il 3d e' durato anche troppo!
Casomai lo continuiamo di persona alla prima occasione!
ciao
Giacomo

 quali la facilita' di reperire tool e personale qualificato
Personalmente non ho mai avuto bisogno di tool esoterici quando ho
lavorato con Firebird e Postgres. Sono ancora uno di quei pazzi che crede
nel "keep it simple stupid" anche in ambiti importanti. Se hai bisogno di
"personale qualificato" non stai sviluppando un'applicazione
medio-piccola. Personalmente, poi, diffido spesso dal "qualificato",
specie se porta la cravatta. Quasi sempre il loro lavoro � in grado di
farlo un bravo DBA che abbia voglia di studiare ed imparare. Il "personale
qualificato" � una delle migliori invenzioni commerciali, una delle
migliori sanguisughe per le tasche di un'azienda. Ma questo � un altro
discorso.


 medio piccoli va bene tanto quanto fb e non va scartato a priori.
Non ho mai detto che uno e' peggio e gli altri sono meglio...
Ammetto che come prodotto non mi piace e avendo budget, preferirei
Sybase che ho usato anni fa e mi aveva fatto una buona impressione.
Infine, se oggi mi chiedessero "oracle o db2", onestamente non saprei
rispondere...
Ho usato db2 e ora uso Oracle, ma ho la sensazione, e sottolineo
sensazione, che db2 sotto alcuni aspetti sia meglio.
Ma non avendo dati oggettivi non mi sbilancio... Lo faro se e quando
li avro'.
A.

 discorso.
Verissimo! :)
ciao
Giacomo

 medio piccoli va bene tanto quanto fb e non va scartato a priori.
Ciao Giacomo io vorrei portare il mio modesto contributo parlandoti di 
un lavoro in cui sono stato coinvolto in passato.
Un cliente ha voluto una web application per poter fare delle 
interrogazioni su un suo archivio. All'azienda che gli ha realizzato il 
software il cliente ovviamente ha chiesto una soluzione che costasse il 
meno possibile, e gli hanno venduto il pacchetto con database MSDE.
Dopo un anno di utilizzo, il database crescendo nel tempo ï¿œ diventato 
di circa 3.5 GB.. e sono incominciati i problemi. Problemi di timeout. 
Un'interrogazione che ritorna 1000 record andava in timeout per via del 
troppo tempo che ci metteva a recuperare il recordset e rispedirlo al 
client.
Ora, tralasciando i dettagli architetturali e quelli implementativi, il 
cliente pur di risparmiare soldi non ha esitato a scegliere un db 
obsoleto e limitato. Ma cosï¿œ facendo ha solo spostato il problema nel 
tempo. Ora quel cliente oltre che spendere soldi per pagare un 
intervento di quella societï¿œ che gli ha fatto il programma, dovrï¿œ 
probabilmente acquistare una licenza db. Oltretutto, il software 
produce statements DDL proprietari di M$, vale a dire che non ï¿œ 
compatibile con altri database.
Risultato: soldi spesi per una scelta DB errata.
Trai le tue conclusioni :-)
ciao
-- 
Morde

 Ma il kiss non deve diventare "facciamoci del male da soli"
Infatti usare Fb o Pg non significa questo.


 di circa 3.5 GB.. e sono incominciati i problemi.
Di queste situazioni io ne ho viste moltissime. E' per questo che
consiglio ci� che consiglio...


 consiglio ciò che consiglio...
Direi che mi avete quasi convinto! O almeno adesso ho parecchi nuovi
spunti su cui riflettere! :)
Grazie della chiaccherata molto stimolante!
Giacomo

 Grazie della chiaccherata molto stimolante!
Credi di essertela cavata cosï¿œ? La fattura ï¿œ di 600 euri, dottï¿œ...
:-P
-- 
Morde

 :-P
Se riduci la tua esosa parcella a qualcosa di piu'
abbordabile, tipo una bella birrozza, possiamo anche riparlarne! :P
ciao
Giacomo

 abbordabile, tipo una bella birrozza, possiamo anche riparlarne! :P
Quando ti capita di passare dalle parti di milano, fai un fischio :-)
-- 
Morde

Io userei FireBird (Free)