Cual motor de BD es recomendable para VFP?

700 views
Skip to first unread message

globalso...@yahoo.com.ar

unread,
Sep 19, 2017, 10:33:42 PM9/19/17
to Comunidad de Visual Foxpro en Español
Estimados, ando en la búsqueda de un motor de base de datos para migrar una aplicación desarrollada con el motor nativo de VFP. Las condiciones que debería cumplir es que sea seguro ante cortes de energía, simple de implementar, tanto la instalación como la migración, que sea free y en la medida de las posibilidades con encriptación de datos.

A quienes ya hicieron un cambio similar, que sugieren?

Gracias!!!!!!

Fabio Castro

HernanCano

unread,
Sep 19, 2017, 11:46:09 PM9/19/17
to Comunidad de Visual Foxpro en Español
Google te puede dar mejores recomendaciones que las mías, pero aquí van las mías:

- SQLite
- FireBird
- PostgreSQL
- MariaDB/MySQL
-----------------------------------

Carlos Miguel FARIAS

unread,
Sep 20, 2017, 7:05:27 AM9/20/17
to Grupo Fox
SQLite solo sirve para mono-usuario. Cuando modificas/insertas datos bloquea toda la base de datos. Por lo que si tienes mucha concurrencia estas en el horno. Por ello, salvo para datos para-métricos (o locales de uso en el puesto de trabajo) la descarto.
Firebird, postgreSQL y MariaDB, van, MySQL no, porque a vos como desarrollador puede que no te cueste, pero para una empresa si (además mariaDB tiene las mismas o mejores prestaciones).
SQLServer Express es gratis, pero tiene limitaciones en tamaño BD (10 GB entre todas las tablas, más espacio de índices, más áreas de trabajo) y si tienes mucha concurrencia no podes aprovechar la capacidad del servidor. Para comparar, una tabla VFP puede tener 2 GB de datos planos, más 2GB de datos en memo o blob más 2 GB de indices estructurales, más infinidad de indices no estructurales.
SQL Server, una vez que tienes que escalar a pago, se pone muy oneroso.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe

Francisco

unread,
Sep 20, 2017, 10:54:12 AM9/20/17
to Comunidad de Visual Foxpro en Español
Yo voto 100% por MariaDB totalmente compatible con MySQL y de gran soporte por todos los servidores web. Fácil de usar y con HeidiSQL como plataforma de gestión para mí de lo mejor. Y por si fuera poco FREE.

Patricio Muñoz

unread,
Sep 20, 2017, 11:00:58 AM9/20/17
to publice...@googlegroups.com
Fabio

La pregunta que realizas en el titulo es distinta a la que expones en el asunto

pregunta: Cual motor de BD es recomendable para VFP?
respuesta: Todos, pues VFP se maneja muy bien con todos los SGBD

Con respecto a tus exigencias de un SGBD, tienes MySql , mariaDB , postgreSQL ,firebird. De esas cuatro me inclino por MySql ya que es el mas usado y es compatible con muchos hosting del mercado (pensando en nuevas necesidades al futuro).

Bendiciones

--
Saludos

Patricio Muñoz
Pro&Tech
Analista en Sistemas

Antonio Meza

unread,
Sep 20, 2017, 1:26:52 PM9/20/17
to Comunidad de Visual Foxpro en Español
Por facilidad Firebird y MariaDb su instalación es muy sencilla, en cuanto al problema de energía creo que un buen UPS te seria mejor que tratar de confiarte en un servidor de base de datos.

En mi caso uso mas MariaDb pues es ahora mejor que Mysql y son totalmente compatibles y hay documentación en español por donde quiera de Mysql.

Algo que me gusta de Mariadb / Mysql y no se puede hacer en FireBird, es que puedes tener bases de datos distintas y llamarlas con solo indicar el nombre de la base de datos y tabla como se hace en VFP con DBF, algo así como DataBaseName.tablaName no se si se pueda en postgresql o sqlServer.

saludos
Antonio Meza

Edwin Duran

unread,
Sep 20, 2017, 2:26:37 PM9/20/17
to Comunidad de Visual Foxpro en Español
Buenas Antonio, en SQL server se puede

mapner

unread,
Sep 20, 2017, 4:33:54 PM9/20/17
to Comunidad de Visual Foxpro en Español
En Firebird se puede consultar otra BD desde un Store Procedure,un Trigger o un block (o sea, desde P/SQL)

Antonio Meza

unread,
Sep 20, 2017, 5:04:26 PM9/20/17
to Comunidad de Visual Foxpro en Español
Pero no puedes hacer Join entre tablas de diferentes bases ese es el detalle!!!

Realmente mas que necesidad es por comodidad, porque tengo un sistema multiempresa donde tengo una base de datos general y por cada empresa su base de datos, de esta forma hago consultas entre la base de datos principal y la base de datos de la empresa de una forma muy sencilla, así tengo separada las empresas físicamente y no una sola base de datos para todas las empresas.

La ventaja de esto es que el usuario puede abrir un formulario del programa y simplemente cambiarse de empresa sin tener que cerrar la empresa actual ni el formulario, no lo pude hacer con FIrebird, por eso me fui con MariaDb y SqlServer el problema es que cuesta un billetotototototote!!!! jajaja y la express pues esta muy limitada solo usa 1gb de ram y un Core del procesador por lo que si tienes una maquina muy potente pues de nada sirve.

saludos
Antonio Meza

Carlos Miguel FARIAS

unread,
Sep 20, 2017, 5:06:05 PM9/20/17
to Grupo Fox
Postgresql también. Posiblemente, la más fácil de instalar sea Firebird, la más mentada mariaDB, la más expansible postgresql.
Cuando elegís un motor, tienes que tener en cuenta que tipo de aplicación (y sus datos) vas a desarrollar.
Mysql desde la que compró oracle ya no es tan gratis como antaño. Si se sigue usando es porque los sitios tienen las aplicaciones corriendo, y funcionando y regla básica es que lo que funciona no se toca.
Usar algo por que es lo más mencionado o mas usado, para eso comamos KK, 50 mil trillones de moscas no pueden estar equivocadas.
Cada cual debe analizar las herramientas que tiene a disposición y hacer un analisis FODA (Fortalezas Oportunidades, Debilidades y Amenazas).
Por ejemplo la amenaza de VFP es que es 32 bits, los sistemas de 64 ya nos están rodeando, el proveedor no saca versiones nuevas. Y intempestivamente, "deja de correr"
Pero la fortaleza de fox es que cualquiera de nosotros tiene muchos años trabajando con la herramienta y el grado de experticia general es elevado. Y hasta con el avance en la conectividad, lo que antes parecía a solo solucionable con un entorno WEB (html, css, js, servidor) ahora un equipo al otro lado del mundo es como si estuviera en una red local.
La debilidad de VFP es que realmente somos pocos al menos por estos lados (habría que ver que dice el amigo Chen, que por algo se largo a trabajar con el compilador)
Como dicen por ahí, no digas "de este agua no has de beber".
Saludos: Miguel, La Pampa (RA)

mapner

unread,
Sep 20, 2017, 6:14:54 PM9/20/17
to Comunidad de Visual Foxpro en Español
Es verdad que el query mutil bd no está del todo desarrollado en Firebird, habría que ver si en MariaDB o MySQL da pleno uso a un query multi BD.
En Firebird he desarrollado multiempresa de una forma muy simple. Una sola BD y un campo en las tablas indicando la empresa referida. Luego en los querys se determina el parámetro empresa. Esto permite de igual manera cambiar de empresa sin necesidad de salir y reingresar al sistema.
Pero como siempre hablamos referido a este tema, cada una de las BD mencionadas tienen sus virtudes y defectos. 

mpulla

unread,
Sep 20, 2017, 6:23:27 PM9/20/17
to Comunidad de Visual Foxpro en Español
Hola Fabio.

Free Postgresql para mi mejor que Mysql
De pago Sql Server.

Saludos.
Mauricio

Hector Colman

unread,
Sep 20, 2017, 7:52:16 PM9/20/17
to Comunidad de Visual Foxpro en Español
Ante usaba mysql, después de la compra de Oracle migre a MariaDB, para mi MariaDB uso 5.0 para 32 y 10.0 para 64 bits con odbc 3.51 de mysql funciona de maravilla.

Antonio Meza

unread,
Sep 20, 2017, 10:39:18 PM9/20/17
to Comunidad de Visual Foxpro en Español
El problema de usar una sola DB para multiempresa es que una empresa puede tener cientos de miles de registros y otra solo unos cuantos miles (solo por citar un ejemplo) y las consultas a lo largo del tiempo empiezan a ponerse lentas, pues estas filtrando registros que no son de una empresa para obtener la consulta, a demas de que si una empresa se separa tienes que hacer un proceso a parte, en mi caso solo copio la Db General y la Db de la empresa y listo.

Y desde luego que se pueden hacer consultas entre diferentes bases de datos en MariaDb (Mysql) solo tienes que indicar el nombre de la base de datos con la tabla

Select 
         tabla1.campo1
       , tabla1.campo2
       , tabla2.campo1
       , tabla2.campo2 
    from db1.tabla1
      inner join db2.tabla2
          on tabla1.id = tabla2.id
    
saludos
Antonio Meza

Fabio Castro

unread,
Sep 20, 2017, 11:07:21 PM9/20/17
to publice...@googlegroups.com
Bueno, antes que nada gracias a todos los que opinaron al respecto. El sistema para el cual pretendo utilizar otro motor es un scada desarollado en VFP, monousuario y en el cual el problema más grande que se enfrenta son los daños de archivos por cortes de energía, de cualquiera de las formas que se pueda presentar, ya sea por falta de alimentación, resets voluntarios ó involuntarios, apagados, etc.

El volumen de datos que el sistema genera es bajo, e inclusive la información en las tablas se vá eliminando periódicamente ya que no se necesitan datos históricos.

El otro punto deseable es la posibilidad de encriptación de datos, ya que en alguna oportunidad se ha detectado que ciertos operadores devenidos en "investigadores" han intentado manipular los datos que el sistema adquiere, para cubrir errores en la operación de las máquinas.

Ya con la info que me han pasado, comienzo a investigar por cual me inclino.

Saludos, y gracias nuevamente!!

Fabio

HernanCano

unread,
Sep 21, 2017, 1:04:15 AM9/21/17
to Comunidad de Visual Foxpro en Español
Uy, Miguel: tú sólo ya habías analizado todo ésto.......

Estoy de acuerdo: cada uno debe seleccionar uno o dos motores (o más según lo determine el mismo análisis) y hacer un análisis suficiente y dar su conclusión... Y esa info compartirla al foro para que los preguntantes se den una idea.

Y como dice mapner: cada motor tiene sus virtudes y defectos.... que afectan los escenarios de los preguntantes de distinta manera. 

Incluso la encriptación no fue tratada en las respestas... pero es que si se trata, se pierde en sentido de la seguridad......
------------------
Listo, Fabio. Complacidos en ayudarte.
Seguimos en contacto.

Carlos Miguel FARIAS

unread,
Sep 21, 2017, 7:41:48 AM9/21/17
to Grupo Fox
Bueno acá con el tema de que un sistema pueda a acceder a diferentes bases de datos, salió el tema del sistema multi-empresa, y esto no es un problema técnico, si no, uno legal.
Suponiendo como comentan aquí que tienen un sistema multi-empresa, donde información común está cargada en una misma base de datos (o en una misma tabla, que es peor).
caso a) Cae el órgano de fiscalización tributaria (AFIP en Argentina) y por una investigación contra una empresa, te obligan a entregar la base de datos (es más, caen con sus expertos en tecnología y te bajan los archivos). Se llevan todo puesto, lo de la empresa investigada y los datos de las otras también. Entonces te ligas demanda de las otras empresas porque entregas información corporativa al órgano de control, sin orden judicial correspondiente.
caso b) Una de las empresas que le manejas dentro del multi-empresa se pelea con vos, te pide los datos (que son de ellos, no se los puedes negar), vos extraes la parte pertinente pero los "jodidos" creen que le omitís algo, te meten una orden judicial, te hacen entregar toda la bd (algo parecido a lo de la AFIP), y las otras empresas te denuncian porque entregaste datos secretos corporativos.
Si fuese auditor de la empresa A que maneja datos con tu sistema multi-empresa, y esas empresas son de distinta persona jurídica, establecería como un punto grave de seguridad el hecho de que los sistemas estén accediendo a base de datos con datos compartidos, por la sencilla razón que por acción u omisión (a propósito o por error de código), una empresa ajena pueda obtener datos propios.
Recuerdo que hace muchos años, una empresa que procesaba datos para bancos, por error del administrativo, entrego los datos de un banco a otro, la demanda hizo polvo a la empresa. Ahora eso te puede pasar por un sistema que comparte datos.
En el único caso de que compartiría datos serían de datos públicos (en bases separadas, si o si) como direcciones postales, nomencladores que se pueden descargar de la web, o son provistos para cámaras empresarias u organismos del estado, pero nunca en la misma base, datos generados por procesos de una misma empresa (por ejemplo padrón de clientes, de artículos, etc.)
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe, viene con orden judicial

josepi...@gmail.com

unread,
Sep 23, 2017, 12:11:14 AM9/23/17
to Comunidad de Visual Foxpro en Español

Carlos Miguel FARIAS

unread,
Sep 25, 2017, 7:56:18 AM9/25/17
to Grupo Fox
Es un informe interesante pero incompleto. De las 4 bd que compara, 3 dos son de Oracle (de pago) y mySQL, y la otra es una de las versiones de postgres semi priviada. Faltan otras importantes como Firebird, postgresql , sql server, etc.
Saludos: Miguel

Luis la Romana

unread,
Oct 6, 2017, 1:35:11 PM10/6/17
to Comunidad de Visual Foxpro en Español
La mejor será aquella que mejor conozcas. Un motor puede ser sencillo pero si lo sabes manejar puede hacer maravillas.

José Enrique Llopis

unread,
Oct 7, 2017, 3:38:45 AM10/7/17
to publice...@googlegroups.com

Totalmente de acuerdo.

 

 

 


Jesús

unread,
Oct 9, 2017, 3:44:00 AM10/9/17
to Comunidad de Visual Foxpro en Español
A lo ya comentado, y con ánimo de enriquecer el debate, ¿creen que se debe de tener en cuenta la integración de la BD en el software? Es decir, si desarrollo un aplicativo, no me gustaría tener que enviar a cada cliente un manual de cómo debe instalarse MySql, MaríaDB, etc., lo ideal es que sea algo transparente para el usuario y además, que nuestro software encapsule toda esa gestión de datos.

Me gustaría saber su opinión.

Saludos


El miércoles, 20 de septiembre de 2017, 4:33:42 (UTC+2), globalso...@yahoo.com.ar escribió:

Carlos Miguel FARIAS

unread,
Oct 9, 2017, 7:01:11 AM10/9/17
to Grupo Fox
Si tu aplicación utiliza un SGBD libre, en general no tienes problemas de licencia, si el motor no es libre, tienes que ver como se paga la licencia.
Tu aplicación si tiene que instalarla el usuario, deberá proveer todos los mecanismos (software e instructivos) como para que el usuario instale (y se haga responsable) el software y el SGBD. Y fundamental, que el usuario sea consciente de la importancia del resguardo de datos.
De alguna manera tienes que asegurarte de que el software tuyo y librerías u otro software complementario esté bien instalado. Hasta te debes preocupar de que quede bien claro los prerrequisitos de instalación (sistema operativo, actualizaciones de este, requerimientos de memoria, etc.)
Ten en cuenta que quien instale el software debe estar capacitado para hacerlo, para hacerse responsable, tiene que tener permisos de administración del/los equipo/s donde se instale, etc. 
En un sistema que funciona en una red, tu sistema va a estar interactuando con otros sistemas, con otros flujos de datos, con usuarios con permisos diversos. Eso crea situaciones de incompatibilidad, de seguridad de acceso, etc.
Todo eso tienes que informarlo a quien va a instalar el software. Porque después si no, van a achacar al sistema falencias en el mismo, por fallas ajenas, como dice el dicho "...las cuentas claras mantienen la amistad..."
Si todos esos procedimientos los quieres hacer que lo maneje tu software (muy probablemente eso implica acceso al S.O.) no estaría mal, pero debes prever igual. (Si el cliente en el mismo servidor, instala todos los servicios de la empresa, tu sistema, proxy de red, almacen de documentos, intranet de otros sistemas, extranet con clientes, página web, y anda, pasa me el teléfono, a mi no.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe

Jesús

unread,
Oct 9, 2017, 8:02:42 AM10/9/17
to Comunidad de Visual Foxpro en Español
Correcto Miguel, estoy de acuerdo en lo que indica, pero mi planteamiento es el de acompañar o más bien embeber la base de datos dentro de la aplicación sin recurrir a tener que instalar un SGBD.
Creo, y corrijanme si me equivoco, que un ejemplo de bases de datos embebidas serían SQLite o Firebird.

Saludos

HernanCano

unread,
Oct 9, 2017, 2:25:41 PM10/9/17
to Comunidad de Visual Foxpro en Español
Sí, Jesús. También pienso que el programa debería instalar automáticamente el motor de base de datos.

Y sí, tanto SQLite como FireBird son embebidas. Pero recuerda que SQLite es sólo embebido, mientras que FireBird puede manejar ambos mundos: cliente/servidor y embebido. Así como FireBird hay otras, aunque poco conocidas.

Carlos Miguel FARIAS

unread,
Oct 10, 2017, 9:55:03 AM10/10/17
to Grupo Fox
Salvo que sea un sistema monousuario, no usaría SQLite, SQLite cuando se graba algo bloquea la bd completa, por lo que no podes tener concurrencia sin tener grandes problemas. SQLite no tiene concepto de SGBD donde un único programa, el servidor, hace toda la gestión de datos. en SQLite, se carga un especie de driver que permite que una aplicación acceda a la bd, pero no coordina todos los que acceden a dicha bd.
Si no quieres instalar una bd por separado, creo que solo te queda firebird para utilizar.
Saludos: Miguel
Reply all
Reply to author
Forward
0 new messages