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)
-   -   Firebird vs PostgreSQL... (https://www.clubdelphi.com/foros/showthread.php?t=67027)

jorosmtz 24-03-2010 21:27:00

Firebird vs PostgreSQL...
 
Buen día muchachos, tengo esta inquietud que les hago saber en el título del tema...

Verán, la verdad no soy un experto en programación, me defiendo y me tropiezo a cada rato, y, aunque ya programo más o menos en Bases de datos Access (no me regañen), quisiera incursionar en un RDBMS. Después de leer sobre algunos, seleccione estos dos (no se si es lo mejor), por ser software libre (amplio soporte), open source (me gusta este tipo de licencia), gratis (esta licencia me gusta más) y multiplataforma (por si se me ocurre migrar).

Bueno, la pregunta sería: ¿FireBird o PostgreSQL y porqué? ¿Cual es más potente, rápido y confiable?

Gracias muchachos.

P.D. Román, te sigo debiendo unas pruebas con tu código para evitar dobles instancias.

Casimiro Notevi 24-03-2010 21:37:34

En tu caso me quedaría con... ¡espera, voy a echar una moneda a cara o cruz!, cara: firebird y cruz: postgresql :D

Ya en serio, la que quieras, las dos son estupendas, rápidas, ocupan poquito, multiplataformas, escalables, libres y gratis :)

Firebird es más simple de instalar, no necesita configurar nada, ni tampoco necesita mantenimiento.
Postgresql tiene quizás más facilidad para replicación y puede trabajar en clusters.
Pero básicamente, si no vas a necesitar nada así, ambas son formidables.

Yo llevo 12 años trabajando con firebird (antes con interbase) y hoy en día para un proyecto nuevo me gustaría empezar con postgresql, sólo por conocerla más a fondo, pero me parece tan segura como firebird.

movorack 24-03-2010 22:40:29

Cualquiera de los dos es válido y muy versatiles...

Tengo 10 años desarrollando en delphi y los en los ultimos tres he trabajo fenomenalmente con PostgreSQL... muy estable, rapido, seguro, confiable.

al contrario de casimiro, en estos momentos quiero hacer un software de punto de venta y retomaré firebird para las microempresas.

la cuestión final es que la elección del motor de base de datos como el lenguaje son cuestiones de necesidades puntuales... naturaleza del proyecto, población objetivo, tecnologias, etc...

jorosmtz 26-03-2010 16:56:10

Casimiro, Movorack, gracias por compartir sus experiencias con estos dos RDBMS, y aunque los dos se ven muy robustos y completos, me decidiré por Firebird, por haber nacido de Interbase, creado por el mismo Borland y esto conlleva (según leí) una gran compatibilidad con Delphi.

¿Me podrían recomendar un manual o algo por el estilo? Para no estarlos molestando tanto (notese que dije tanto, o sea que si los voy a molestar de vez en cuando).

Bajé la version lite de EMS SQL Manager como administrador de Firebird, la verdad se ve muy sencillo de manejar, ¿me recomiendan algún otro administrador o ese está bien?

Gracias.

rretamar 26-03-2010 17:11:53

Herramientas de administración de Firebird: Uso Flamerobin, que es software libre y si bien necesita más conocimientos que otros administradores, tiene una interfase gráfica multiventana muy cómoda, y es multiplataforma (lo uso en Linux y se ve idéntico a la versión de Windows). Consume muy pocos recursos y (esto para mí es muy valioso) se puede usar en forma "portable" (por ejemplo dentro de un Pendrive).

Otro administrador muy potente para Firebird es IBExpert (hay una edición gratuita muy potente). Eso sí, este es software privativo y funciona sólo en Windows.

¿ Documentación ? En el sitio oficial hay bastante. También hay en español, dentro del sitio http://www.firebird.com.mx .Otra fuente de documentación puede ser el libro de Apress "Firebird Book - A Reference for Database Developers". Es un libro muy completo que además de venderse en papel (en inglés) está dando vueltas por redes P2P.

Luego tenés otra fuente de información que es el libro "La Cara Oculta de Delphi 4" que si bien está desactualizado, te da los conceptos básicos de Interbase que son perfectamente aplicables a Firebird. Este libro se puede descargar desde Club Delphi.

Saludos !

Casimiro Notevi 26-03-2010 17:56:55

La cara oculta de delphi, de Ian Marteens, aprenderás y te reirás :)

Por cierto, señores administradores y moderadores, el ftp de clubdelphi necesita un archivador nuevo y unos índices para encontrar algo ahí, ya que ahora mismo es casi un "cajón lleno de cosas" mezcladas, complicado de encontrar algo.

yapt 26-03-2010 21:12:49

Retomando un poco el tema.

Yo llevo ya varios años trabajando con Delphi + PostgreSQL. He pasado por todos los componentes de pago y gratuitos para Delphi+postgresql (Zeos, MicroOlap, Devart).

Nunca pasé por Interbase porque cuando empecé con Delphi, a la vez, empecé con Oracle (una versión 7 o algo así).

El caso es que elegí PostgreSQL :
1.- Por su "parecido" con Oracle y por el lenguaje PL/PgSQL (muy parecido al PL/SQL de Oracle)
2.- Por su licencia: BSD
3.- Por su increiblemente bien organizada (y dispuesta siempre a ayudar) comunidad de usuarios y desarrolladores.

El "Server Side Language" (Pl/PgSQL) de PostgreSQL es muy, muy potente y se hace un tremendo esfuerzo desde la comunidad de desarrollo de PostgreSQL para que siga así.

Y así ha sido y así sigo. Proyectos muy grandes. Oracle. Proyectos no tan grandes (o sí), PostgreSQL. Depende más del cliente que del proyecto realmente.

Bueno y después de toda esta "tabarra", la pregunta.

Ya he comentado que no conozco Interbase/Firebird. ¿ Que lenguaje procedural (al estilo de PL/SQL) tiene Firebird ?

Saludos.

Casimiro Notevi 26-03-2010 21:43:38

El nombre es PSQL. Aquí llevas algunas características, te hago un copia->pega :)

Cita:

¡No te dejes engañar por el tamaño del instalador!; Firebird es un poderoso y completo RDBMS. Puede manejar bases de datos desde solo unos cuantos KB hasta muchos Gigabytes con muy buen desempeño y prácticamente libre de mantenimiento!
Sus principales características son:
  • Completo soporte para Procedimientos Almacenados y Disparadores
  • Transacciones 100% ACID
  • Integridad Referencial
  • Arquitectura multi-generacional
  • Bajo consumo de recursos
  • Completo lenguaje interno para procedimientos almacenados y disparadores (PSQL)
  • Soporte para Funciones Externas (UDFs)
  • Poca o ninguna necesidad de DBAs especializados.
  • Prácticamente no requiere configuración - solamente instalas y ¡comienzas a usarla!
  • Gran comunidad y muchos sitios donde podes encontrar excelente soporte gratuito.
  • Versión incrustada - ideal para crear catálogos en CDROM, versiones mono usuario, de evaluación o portátiles de las aplicaciones.
  • Docenas de herramientas de terceros, como herramientas de administración gráficas, herramientas de replicación, etc.
  • Escritura segura - recuperación rápida, ¡sin requerir logs de transacciones!
  • Muchas formas de acceder a tu base de datos: nativo/API, drivers dbExpress, ODBC, OLEDB, proveedor .Net, driver JDBC nativo tipo 4, módulo Python, PHP, Perl, etc.
  • Soporte nativo para todos los principales sistemas operativos, incluyendo Windows, Linux, Solaris, MacOS.
  • Copias de seguridad incrementales
  • Disponibilidad de binarios en arquitectura de 64bits
  • Implementación completa de cursores en PSQL
  • Tablas de Monitoreo
  • Disparadores a nivel de Conexión y Transacción
  • Tablas Temporales


fjcg02 26-03-2010 21:55:11

Hola,
personalmente pienso que el PL/SQL de firebird es más sencillo que el de Oracle , aunque lógicamente tienen algunas diferencias.

Ahora, la versión de Oracle que conozco es la 8.0 creo , que data del año 1998 o antes. Quiero decir que puede ( seguramente ) habrá cambiado algo ( espero que a mejor ).

Por si a alguien le vale la opinión. Y es eso, una opinión, no quiero comenzar un debate entre me gusta más tal o es mejor cual. No pienso responder :D

Saludos

movorack 26-03-2010 23:56:26

Cuando chico, tener un televisor a color en el barrio era casi lo mismo que ser famoso... todas las tardes se llenaba la casa de aquel que tuviera una pantalla a color por diminuta que fuera... con el pasar de los años; a las ventas de electrodomesticos informales comenzaron a llegar televisores SONI, ZONY y cosas así... en ese tiempo comprar un televisor de esos era tirar los pesos al aire... se dañaban enseguida... con el tiempo estas marcas no solo los han ido mejorando sino que han vuelto la tecnologia mas accequible al ciudadano de apie.

Y algo así sucedió con las bases de datos... en su momento PL/PGSQL debio ser mirado con exepticismo por Oracle y que decir de los motores que apenas hacian su aparición al mundo libre. Pero hoy día todos estos motores han evolucionado... y muy bien... con InnoDB puedes tener muchas cosas de las que se le criticaban a MySQL cuando llegó al mercado.

Si algo extraño en PostgreSQL son las tablas con columnas que puedan tener como valores por defecto, calculos a partir de otras columnas de la misma tabla (FB). Pero aunque conocí el concepto de procedimientos almacenados en FB fué en PostgreSQL donde lo vine a profundizar y creo que por ahí fué donde le tomé tanto amor.

en realidad el punto que mas inclinó la balanza fué la forma en la que podia accesar a una base de datos... En interbase tenia que armar una linea con la ruta del archivo (creo que era algo como '10.0.0.1:C:\miprograma\base.gdb') y eso me traia de los pelos... entonces un desarrollador de VB me mostró Postgres y ví que solo establecia la IP del servidor, usuarios, contraseña y el nombre de la DB sin importar su ruta... eso me gustó... me iba a enfrentar a un escenario donde eso era importante.

Conozco a algunos desarrolladores (no solo delphi) que teniendo un motor que soporta los procedimientos almacenados, siguen haciendo los procedimientos desde el programa o pagina (hacen los selects, guardan variables, hacen updates, y más)... muchas veces esto es un complique y usan no solo mas linea sino mas memoria y mas tiempo que si hubiesen usado un procedimiento almacenado; y si les preguntas que porque lo hacen así, te darás cuenta que es desconocimiento mas allá que cualquier cosa.

Hace un tiempo conversaba con alguien que las tablas temporales me habian ayudado un montón... me dijo que lastimosamente firebird no puede crear tablas temporales y fuí... revisé la documentación y desde la versión 2.1 si lo hace.

hoy dia ya en los comercios no encuentro televisores SONI ni ZONY (tratando de imitar); Encuentro unas nuevas marcas con su estilo propio y muy bien elaborado... marcas que ni habia escuchado de chico pq nacieron no hace mas de 10 años. Funcionan, se vén bien, tienen buena tecnologia y cuestan mucho menos.

Casimiro Notevi 27-03-2010 00:18:20

Tienes razón en lo que cuentas sobre la forma de usar estas bases de datos, la mayoría de programadores, incluso profesionales, siguen usándolas como si fuesen una .dbf y lo hacen todo en el delphi (basic, c, etc.) en lugar de programarla en sus procedimientos, triggers, etc.

Cita:

Empezado por movorack;358560[..
Si algo extraño en PostgreSQL son las tablas con columnas que puedan tener como valores por defecto, calculos a partir de otras columnas de la misma tabla (FB).[..]

Quiéres decir que no se puede tener un campo "total" que sea la suma de los campos "base" más el campo "iva" ?, o sea, un campo calculado.?

movorack 27-03-2010 00:30:23

Como definición de la tabla no... dice ERROR: cannot use column references in default expression

Código SQL [-]
CREATE TABLE ejemplo (
  id  integer  not null primary key,
  value1  integer not null default 0,
  value2  integer not null default 0,
  total   integer not null default (value1 + value2)
);

Casimiro Notevi 27-03-2010 00:45:24

En firebird sería algo así:
Código:

...
total computed by (value1+value2)
...

Aunque no recuerdo haberlo usado nunca :)

jorosmtz 27-03-2010 04:07:38

Muchachos, les agradezco mucho estos post que hacen, la verdad me están instruyendo mucho. Me gustaría siguieran compartiendo sus experiencias, dificultades, y demás cosas raras que les han pasado, fortalezas y debilidades de los RDBMS que manejan, eso la verdad me ayuda bastante, que aunque ya me decidí por Firebird, se que me voy a topar con muchas cosas que tendré que sortear.

Gracias por su ayuda.

yapt 27-03-2010 11:20:18

Cita:

Empezado por Casimiro Notevi (Mensaje 358533)
El nombre es PSQL. Aquí llevas algunas características, te hago un copia->pega :)

Cita:

Versión incrustada - ideal para crear catálogos en CDROM, versiones mono usuario, de evaluación o portátiles de las aplicaciones.

Gracias Casimiro Notevi.

Lo de tener una versión para incrustar... esto si que lo echo de menos en PostgreSQL. Sic.... :(

Cita:

Empezado por movorack (Mensaje 358565)
Como definición de la tabla no... dice ERROR: cannot use column references in default expression
Código SQL [-]
  total   integer not null default (value1 + value2)

Yo hago estas cosas con TRIGGERS (pero estaría bien que funcionasen las defaults tal como describes).

La verdad es que una parte muy importante de mis desarrollos están basados en el lenguaje procedural del servidor (PL/PgSQL en este caso) y estoy encantado con su rendimiento y facilidad.

Si hay algo que me gusta mucho del equipo de desarrollo de PostgreSQL es su "afición" a salirse lo menos posible del estandard y cumplirlo lo más estrictamente posible.

En cuanto MySQL. Hay muchas cosas que no me gustan (algunas de ellas las he sufrido en mis carnes). Si. Por desconocimiento, seguramente, pero "soy rencoroso con las bases de datos"... jejejejeje

:o

Saludos.

jorosmtz 27-03-2010 16:44:23

Componente Delphi 2010
 
Buen día de nuevo muchachos, me gustaría me comentaran... ¿con cuál componente me puedo conectar a Firebird desde Delphi 2010?, vi que los Zeos aún no soportan esta versión de Delphi. Ahora bien, ¿puedo usar ADO o los Interbase o me recomiendan otro?

jorosmtz 06-04-2010 04:04:10

Bueno, viendo que FibPlus NO es gratis, y Zeos Lib no está disponible para Delphi 2010 me pregunto... ¿que puedo usar para conectar mis base de datos Firebird?

Gracias por su apoyo.

movorack 06-04-2010 04:48:18

dbexpress?

jorosmtz 06-04-2010 05:06:09

Buscando en el foro, me encontré con un post que recomienda los DBExpress de DevArt, los vi y al parecer son más actualizables y baratos que los FibPlus.

Ahora, en cuanto a los dbexpress que menciona Movorack (me imagino que los que vienen con Delphi), vi una comparativa, y los mencionan muy lentos, no se que tanto sería esto en producción (unas 10 conexiones al mismo tiempo), pero ustedes comenten.


La franja horaria es GMT +2. Ahora son las 19:35:03.

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