Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Cambio de motor de BD (https://www.clubdelphi.com/foros/showthread.php?t=22037)

adlfv 04-06-2005 18:40:48

Cambio de motor de BD
 
Hola a todos.

Estoy haciendo un programa, que comencé con MySQL (usando una librería especial)... La aplicación maneja muuuuchos datos, la BD tiene como 80 tablas, y hay del orden de 10.000 transacciones mensuales facilmente... No sé si MySQL soportará eso y con que tan bien funcinará.

Hace algún tiempo me plantee el hacer la aplicación de forma genérica para cualquier motor de base de datos mediante OleDB o bien ODBC (dichos controladores, dicho sea de paso NO FUNCIONAN BIEN para MySQL :mad:). Lo que hice para hacer la aplicación generica fue hacer 3 data modules (no tenía claro cómo hacerlo y seguro hay una forma mejor), uno para MySQL con la librería de componentes, uno para OleDB (ADO) usando dbGo en Delphi 2005 y otro para BDE usando los componentes de siempre. El cambio de data module... lo hago por código, y la asignación de los data sources a los controles también.

Ahora bien, me gustaría saber cómo puedo hacer para hacer el cambio de un motor de BD a otro, y así... para ir probando la eficiencia, y la robustez de todo el sistema, si que me afecte al programa... Quiero minimizar las modificaciones cuando cambie de uno a otro, y que funcione todo bien. Según entendí esto se logra con ADO (OleDB), haciendo un cambio de la conexión, y teniendo el driver adecuado instalado. El driver de MySQL para ADO, es sumamente deficiente... no reconoce bien los campos. Existe un diver para ADO de MySQL que funcione bien?

Estoy pensando en cambiar concretamente a Oracle 8i (para probar primero), qué versión de Oracle me recomiendan? Qué motor de BD me recomiendan?

Estoy un poco confundido con todo esto, puesto que siempre había hecho aplicaciones con BDE normalitas, y esta es grande y debo hacerla lo mejor posible desde un principio.

Por otro lado... la eterna controversia... ODBC o ADO? Qué uso? Si alguien me puede orientar un poquito en todo esto, le estaré muy agradecido.

Muchas gracias de antemano.

Y un cordial saludo a todos :)

axelbb 06-06-2005 20:01:04

Veamos...
 
Hola.

Preguntas:
"la BD tiene como 80 tablas, y hay del orden de 10.000 transacciones mensuales facilmente... No sé si MySQL soportará eso ..."

¡Si no soportara eso no merecería llamarse Motor de Base de Datos!!. En serio, si implica que alguna tabla llegue a los 120.000 registros en un año, en 10 llegaría a 1.200.000 ¡¡No es nada para un servidor de bases de datos!! Por experiencia, hasta los manejadores de "escritorio" (Clipper, dBase, Fox...) trabajaban cómodamente con ese volumen. No uso MySQL, pero creo que Google la usa para su buscador (más de 8.000.000.000 de páginas web).

Personalmente, no uso ni ADO ni ODBC, que al final son lo mismo. Prefiero usar componentes nativos mientras los haya. Hay uno llamado ZEOS que soporta el protocolo MySQL en Delphi y es gratuito. No es muy rápido, pero anda bien. Supongo que accede al API del servidor nativamente, antes que por ODBC.

Sobre programar para cualquier servidor... No es tan simple. En ese caso sí, tienta usar ADO para poder cambiar más fácilmente, pero desgraciadamente cada motor tiene su SQL propio. Si bien deberían parecerse mucho, verás que tienen pequeñas diferencias que hacen que de todas formas tengas que retocar las sentencias en tu programa. Y si entramos dentro del servidor, con procedimientos almacenados, triggers, y otros detalles (tipos de datos...), hay que decir que se parecen bien poco unos y otros.

Sobre Oracle, yo lo pensaría si el volumen de datos es el que comentaste arriba. ¿Has probado de instalar Oracle? Es monstruoso, con cientos de opciones de configuración. Tiene sentido en sistemas grandes de verdad, y con ganas de tomarse el tiempo de aprender y configurarlo como corresponde para sacarle la enorme diferencia que puede hacer sobre los demás motores. Además... ¿qué pensás hacer con el precio de las licencias? Es más bien caro, porque no estamos hablando de instalaciones ilegales, desde luego. Tendrás que encontrar clientes que paguen y le encuentren realmente utilidad a esa inversión. Si no vas a guardar ingentes cantidades de registros, yo no lo pensaría, me quedo con FireBird o PostgreSQL. Hay otras gratuitas excelentes, pero esas las tengo bien probadas, y andan en serio. La instalación que le hagas a tu cliente será legal sin pagar licencias, y ese ahorro facilitará hacerle un precio conveniente para ambos. Si vas a insistir con Oracle, podrías bajarte la 10g del site de Oracle. Y que te diviertas! Yo la instalé, la probé dos semanas, y la borré totalmente de mi PC. Por ahora, quiero una vida simple :D

Saludos


La franja horaria es GMT +2. Ahora son las 04:57:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi