PDA

Ver la Versión Completa : Limitantes de Firebird


rmendoza83
20-12-2015, 01:27:13
Buenas Noches amigos del foro! un saludo cordial para todos.

Tengo una duda, y he buscado bastante por internet y no encuentro alguna solucion (si es que la hay), les comento, tengo una base de datos hecha en postgresql y he decidido para efectos de pruebas y probar el nuevo firebird 2.5 hacer una migracion! mientras estoy migrando me encuentro con un error en el que no puedo colocarle a la tabla o algun objeto de la base de datos un identificador de mas de 31 caracteres; para hacerlo simple, existe alguna manera de incrementar esa directiva? alguien ha indagado sobre esto? dado que mantengo una forma de hacer la base de datos y no tengo entre mis reglas abreviar mis objetos o definiciones.

De antemano muchas gracias por sus comentarios.

Saludos.

Casimiro Notevi
20-12-2015, 02:19:52
Sí, creo que era un varchar(31), no creo que lo hayan cambiado.

ecfisa
20-12-2015, 20:09:32
Hola rmendoza83.

...me encuentro con un error en el que no puedo colocarle a la tabla o algun objeto de la base de datos un identificador de mas de 31 caracteres; para hacerlo simple, existe alguna manera de incrementar esa directiva?
Es tal como te menciona Casimiro. El largo de nombre de tablas y columnas está limitado a 31 caracteres en Firebird 2.5 y no hay manera de modificar ese valor. Aunque no he probado la nueva versión (Firebird 3.0 Release Candidate 1 (http://www.firebirdsql.org/en/firebird-3-0-0-rc1/)) no he leido que se haya modificado ese punto.

Por otro lado (y de modo particular) esa cantidad siempre me resultó suficiente para definir nombres que permiten identificar de forma inequívoca una tabla o columna.

Saludos :)

ASAPLTDA
21-12-2015, 15:11:08
Hola:
El maximo nombre para la version 2.5/3.0 no es mayor a 31 caracteres, para la version 4.0 se anuncia incremento en el tamaño del nombre de las tablas y nombre de las columnas, asumo que tambien para los procedimientos

Pero una pregunta, Yo estoy estudiando la posiblidad de migrar a postgreslq desde firebird 2.1 porque lo que he leido me parece mas poderosa, podrias contarnos sobre porque migrar desde postgresql?

Casimiro Notevi
21-12-2015, 15:23:33
Como siempre, depende de lo que necesitas.

rmendoza83
21-12-2015, 16:29:07
Buenos Dias muchachos, disculpen el retraso en mis respuestas pero bueh tengo reducido el tiempo jejeje, de antemano gracias a todos por tomarse la libertad en apoyarme con su opinion, de verdad muchas gracias. voy por partes de sus respuestas....

Hola rmendoza83.

Es tal como te menciona Casimiro. El largo de nombre de tablas y columnas está limitado a 31 caracteres en Firebird 2.5 y no hay manera de modificar ese valor. Aunque no he probado la nueva versión (Firebird 3.0 Release Candidate 1 (http://www.firebirdsql.org/en/firebird-3-0-0-rc1/)) no he leido que se haya modificado ese punto.

Por otro lado (y de modo particular) esa cantidad siempre me resultó suficiente para definir nombres que permiten identificar de forma inequívoca una tabla o columna.

Saludos :)

Gracias ecfisa, ya estaba al tanto que estaba esta limitacion, de igual hice mi investigacion al respecto e inclusive le di una ojeada al codigo fuente del ultimo snapshot de firebird en su version 3.0 RC2 y pues no vi nada de cambios respecto al tema en cuestion, por ello este tema aqui, he visto varios casos especiales resueltos por los expertos de aqui.

Hola:
El maximo nombre para la version 2.5/3.0 no es mayor a 31 caracteres, para la version 4.0 se anuncia incremento en el tamaño del nombre de las tablas y nombre de las columnas, asumo que tambien para los procedimientos

Pero una pregunta, Yo estoy estudiando la posiblidad de migrar a postgreslq desde firebird 2.1 porque lo que he leido me parece mas poderosa, podrias contarnos sobre porque migrar desde postgresql?

Gracias ASAPLTDA, oye esto me alegra un poco de ser cierto, aunque te soy sincero no vi ningun post sobre la nueva version 4.0, debe ser que me enfrasque tanto en la ultima que esta posteada en la pagina oficial www.firebirdsql.org (http://www.clubdelphi.com/foros/www.firebirdsql.org) (bueh estoy asumiendo que es la pagina oficial).

Respecto a la migracion primero me disculpo ya que no es esto lo que estoy haciendo, lo que trato de hacer es tener una version alterna y local de mi base de datos de la aplicacion principal que tengo, mi base de datos esta en PostgreSQL en su version 8.4 y es la estandar del sistema, abordando temas de delphi utilizo los componentes de Zeos en su ultima version SVN (7.0) y por aqui estoy funcionando a la perfeccion bajo un modelo de capas y arquitectura cliente servidor, y aprovechando que Zeos automatiza por decirlo de esa manera la conexion a otras base de datos y digamos que para mi codigo, como esta hecho, es transparente cual base de datos utilizar pues no sufro de muchos cambios de codificacion para implementar otra base de datos, escogi firebird por su caracteristica de ser la version libre de interbase que venia con delphi desde hace muchas versiones atras y tengo la creencia de que delphi venia con interbase y que entre ellos la relacion debe de ser "perfecta" y complementando que firebird viene con una licencia compatible para mi distribucion pues por ello la decision de su escogencia, no me fui con ms access por ser software propietario y porque es access jajajaja, y sql lite porque nunca la he usado (menciono esta dos por ser las que he leido que mencionan de ser portables).

Ahora bien lo que queria era tener una version DEMO de mi sistema sin hacer tantas instalaciones complicadas, ya que postgresql requiere de una instalacion (dado que recomiendo que sea bajo un server en distribucion de linux) y distribuir una demo con estas condiciones se hace complicado al usuario evaluar mi aplicacion, y pues estamos hablando de usuarios, quisiera que sea lo mas sencillo posible, firebird tiene la opcion de usarlo en forma embebida y pues esto me atrae ya que incluyo todo en el paquete de instalacion y como la aplicacion requiere eficiencia y rapidez en sus transacciones pues esto se casa con postgresql y con firebird.

Como siempre, depende de lo que necesitas.

Ciertamente Casimiro, creo que ya para salir de las dudas de mis requerimientos ya los comente en esta respuesta, ahora bien para no desanimarme con esta limitante de firebird lo que hare sera crear una tabla de nombre - relacion donde pues le haga un alias reducido a cada nombre de las tablas que tengo en mi base de datos de postgresql para firebird y pues en firebird crear estas tablas bajo esos nombres alias, ya en los campos creo que no tengo problemas con nombres con mas de 31 caracteres y ya lo que tengo hecho "deberia de servirme" todo se concluira con las pruebas que tengo que hacer despues.

Espero no haber sido un testamento y el tema no los aburra, nuevamente les agradezco su colaboracion.

Saludos.

rmendoza83
21-12-2015, 16:53:02
Pero una pregunta, Yo estoy estudiando la posiblidad de migrar a postgreslq desde firebird 2.1 porque lo que he leido me parece mas poderosa, podrias contarnos sobre porque migrar desde postgresql?

Perdona que no lo comente en mi respuesta anterior, y aunque no me hayas pedido algun consejo al respecto, me tomo la libertad de dartelo jejeje, considera en tu estudio de migracion las prestaciones que necesitas de tu base de datos, tales como velocidad de respuesta, capacidad de almacenamiento y esos aspectos, ya que yo veo la necesidad de migracion siempre y cuando la situacion lo amerite, cambiar simplemente porque sea mejor que otra no le veo la urgencia ya que si te esta funcionando bien pues mantenlo asi, me explico?

PostgreSQL es un gestor de base de datos que yo lo ubicaria entre los motores de base datos (asi como MySQL) entre los gestores de software libre que son tan potentes como los que no son de software libre (Oracle, Informix, Sybase, SQL Server) y pues esta orientado a objetos en sus ultimas versiones, tengo entendido que MySQL es mas rapido y eficiente que PostgreSQL, hay muchas comparaciones en internet pero personalmente no me he puesto a revisar esto, realmente me decidi por PostgreSQL porque me especialice en el cuando fui DBA en mi trabajo en la universidad y lo estable que es (y no tengo problemas con el largo de los nombres de los objetos :)).

Espero que estos comentarios te sirvan de algo en la toma de decision que vas a llevar amigo.

Saludos.

ASAPLTDA
21-12-2015, 17:35:55
Gracias por las recomendaciones, el sistema que quiero migrar tiene un alto manejo de concurrencia y me gustaría tener l posibilidad de tener tareas programadas en la base de datos, bloqueo de registros de transacciones con tiempos de bloqueo , log de transacciones y otras cosas que suenan muy bien en postegresql, la velocidad no se si tengas información de algún sitio que tenga comparativos de velocidad

Cordialmente Carlos

Casimiro Notevi
21-12-2015, 17:41:53
Gracias por las recomendaciones, el sistema que quiero migrar tiene un alto manejo de concurrencia y me gustaría tener l posibilidad de tener tareas programadas en la base de datos, bloqueo de registros de transacciones con tiempos de bloqueo , log de transacciones y otras cosas que suenan muy bien en postegresql, la velocidad no se si tengas información de algún sitio que tenga comparativos de velocidad
Cordialmente Carlos
Para eso no hace falta cambiar a postgresql.
¿Qué es un alto manejo de concurrencia para ti, cuánto necesitas?

rmendoza83
22-12-2015, 14:33:49
Para eso no hace falta cambiar a postgresql.
¿Qué es un alto manejo de concurrencia para ti, cuánto necesitas?

Hola Carlos buen dia, apoyando lo que te comenta Casimiro, para poder aconsejarte mas deberias enclarecernos un poco mas al respecto. Como bien yo decia, conozco muchisimo a PostgreSQL no asi a Firebird, pero en lo que lei en su manual basicamente posee todas las capacidades que tiene PostgreSQL (haciendo referencia al bloqueo de registros, log de transacciones, etc) y pues claro cuando te refieres a tareas concurrentes pues explicate un poco mas en este aspecto (recuerda que somos programadores y los terminos pudieran estar cruzandose jejeje), y pues si nos das numeros como cuantas tablas transaccionales manejas y que cantidad de registros por hora manejas, cantidad de usuarios, etc etc etc, estos valores te pueden determinar si vale la pena hacer la migracion.

Saludos