Page 1 of 1

Client / Server

Posted: Sun Mar 04, 2007 9:47 pm
by Jeff Barnes
Hi Everybody,

I am starting to look into client / server solutions for my app.
I know that ADS will work but it's very expensive.


Are there any opensource database servers out there?


Thanks,

Jeff

Posted: Mon Mar 05, 2007 1:16 am
by hua

Posted: Mon Mar 05, 2007 5:50 am
by R.F.
Jeff:

In my personal experience you have to take in account several issues regarding moving to client / server.

During the last 10 years I've done over 100 installations of ADS, and I also have developed some SQL based applications, all with FiveWin since version 1.92.

Both, SQL based databases and ADS have their advantages and disadvantages.

I personally advice to my customers to use ADS if they already have a huge ammount of information in DBF format, believe or not, for economical reasons.

SQL databases may be less expensive, even free, but you always get what you pay for, personally I've done some applications with MySQL, SQL Server, Informix and Oracle, from my point of view, the best databases are not the free ones, but the ones that have a cost, my choice: Informix, if you want something "payable" SQL Server would be a good choice.

Why ADS could be less expensive ? well in terms of time, giving your application client / server technology, is almost inmediatly, just install ADS, make some adaptation to your code, and done !, you can make a basic migration to client / server in one or two days, the most of my customers do it in a weekend, so they can be back to work the very next monday.

ADS have a bunch of features, transactions, Optimized filters, Internet Access, it takes some extra time to be "full" up and running with ADS but not more than a month, in the meantime you can keep working without stoping your business.

SQLs Databases are a good choice if you are starting a new project, they can be Open Source, free or you have to pay for them, but please notice that beside of the economic issues, there's a big investment you have to do in time.

Frist of all, you have to make a complete redesign of your database in order to get the most of the new sql based database, the BIGGEST mistake programmers do when moving to SQL is to copy the DBF data structures into the SQL tables, please notice that the SQL model is quite different to the DBF model, SQL model has ENOURMOUS advantages over the DBF model such security, referential integrity, relations, triggers, stored procedures, etc so you have to invest at least one month or two just designing the database, also you have to have tools for designing, again, some are free, some you have to pay for them, but trying to go SQL without a good Entity relation diagram or a data design tool, can be a suicide in long time.

Once you have your database designed, you have to invest time reprogramming all your data access inside your program.

Forget about RDD based tools, the Xbase model for accesing data is very defective, you will notice it once you have discover the SQL world with all its features. Sorry to say guys but it's true, using USE... REPLACE or stuff like that having a SQL behind, is like to kill pigeons with cannonballs.

The best choice is to use ADO for accesing data, the ADO model is very similar to Xbase model, you will feel very comfotable with it, but the sucess using ADO is based in a good database design. My best advice: you are making a CLIENT / SERVER application, so let the SERVER work !!!!!, the best approach in order to minimize the programming changes is to use Stored Procedures.

It will take about two months more to do the reprogramming for data access.

And finally, you have to make the migration of the current data to the new SQL database, setting up it and fine tunning it may take you another month.

In terms of money, you have to spend between 5 to 7 months (not less) to have ready your application running under SQL client / server.

Remember... the sucess here is all based on the database design, I have customers that didn't make a good database design from the begining, they never tested the "server" part, and took them more than two years to move to SQL client / server, they finally made it, but they still have problems of speed and performance due to a defective database design and because they never tested the application with a real server, never tested the internet access, they let the client make the dirty job, not the server, and never made test with big ammounts of data.

Posted: Mon Mar 05, 2007 2:12 pm
by Maurilio Viana
My point of view:

I use Firebird for 2 or 3 years with Delphi and Fivewin.
About FW, I used it with a modified FW ODBC class and I never had problem. Since last year I use FW + xHB comercial + SQLRDD and work perfect.

Regards,
Maurilio

Posted: Mon Mar 05, 2007 8:57 pm
by Ari
Eu estou usando MySQL por mais de 3 anos e o unico problema que tenho quando uso WinXP, se o usuario desligar o Servidor ..corrompe as tabelas.

O FireBird acontece isso ?

Posted: Tue Mar 06, 2007 11:12 am
by Maurilio Viana
Ari,

Existem muitas situações em que se corrompe bancos de dados, com o Firebird não é diferente, entretanto é mais seguro que os DBFs (não sei comparar com relação ao MySQL...).
No guia de referência do FB, há uma lista de coisas que *podem* corromper o BD, como desligar o servidor no meio de uma transação, copiar o arquivo com ele em uso, dentre outras situações...
Felizmente nunca tive o desprazer de ver um arquivo FB corrompido, pois é um problema recuperar qualquer DB relacional corrompido. Quando ocorre de desligar o servidor por um motivo ou outro (queda de energia, por exemplo, e o mesmo não tenha nobreak), eu sempre passo um utilitário pra verificar se esta tudo OK...
Mas há casos em que nem fico sabendo e o BD continua lá funcionando. Mas seguro morreu de velho.

[ ]'s
Maurilio