Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Tipos de datos comunes a todos los SGBD

Estas en el tema de Tipos de datos comunes a todos los SGBD en el foro de Bases de Datos General en Foros del Web. Hola. Me interesa diseñar una base de datos lo más independiente posible del SGBD en el que sea creada, y uno de los problemas que ...
  #1 (permalink)  
Antiguo 01/07/2010, 04:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 13
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Tipos de datos comunes a todos los SGBD

Hola.

Me interesa diseñar una base de datos lo más independiente posible del SGBD en el que sea creada, y uno de los problemas que encuentro es el tipo de datos que debo asignar a las distintas columnas.

¿Hay algún conjunto de tipos de datos aplicable a cualquier SGBD? Imagino que el tipo varchar con máximo de 255 caracteres será uno de ellos, pero el que más me interesa es el que utilizaré para almacenar valores numéricos (int, decimal, numeric...). ¿Hay alguno válido para todos (o prácticamente todos) los SGBD?

Gracias y un saludo.
  #2 (permalink)  
Antiguo 01/07/2010, 05:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Tipos de datos comunes a todos los SGBD

Cita:
¿Hay algún conjunto de tipos de datos aplicable a cualquier SGBD? Imagino que el tipo varchar con máximo de 255 caracteres será uno de ellos
Me temo que no, porque, por ejemplo, Oracle no usa VARCHAR sino VARCHAR2. El otro es obsoleto, y en ese caso el límite no es de 255 caracteres, sino más de 4.000.
Además se da el caso de MySQL, donde el VARCHAR tiene límite de 255 caracteres sólo hasta la versión 5.0.3, ya que las posteriores llevaron ese límite a 65. 535 caracteres.
En el caso de SQLITE, el tipo de datos es TEXT, aunque admite otros tipos, pero usa reglas de afinidad para manejar el problema internamente.
Firebird usa VARCHAR hasta 32.000 caracteres.

Como puedes ver, VARCHAR no es un estandar.

Cita:
, pero el que más me interesa es el que utilizaré para almacenar valores numéricos (int, decimal, numeric...).
El problema es que diferentes DBMS tienen diferentes tipos de dato en cuestiones críticas, de modo que ni siquiera puedes asegurarte la portabilidad a niveles de consultas, al usar ciertas sintaxis, o en datos, al pretender acceder por ejemplo a UIDS de registros, que no los tienen todos...

¿Hay alguno válido para todos (o prácticamente todos) los SGBD?
En tu caso, yo procuraría mantenerme dentro del esquema del ANSI-SQL, con los tipos de columna más simples posibles, es lo más que puedes acercarte, hasta lo que yo entiendo.
De hecho, si usas SP, tendrás problemas mayores...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 01/07/2010 a las 06:00
  #3 (permalink)  
Antiguo 01/07/2010, 17:05
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Tipos de datos comunes a todos los SGBD

yo creo que deberías seleccionar el manejador de base de datos que mas satisfaga tu necesidad, ya que si haces un diseño y modelo que de pronto en algún momento te sirva para alguno otro te pases por alto problemas de seguridad como los constraint, las llaves primarias y demás, creo que los datos auto-incrementar la única que los lleva la misma columna es mysql del resto hay que crear secuencias que me hagan esto, entonces yo creo que lo mas importante es que analices bien y te fijes mas en la seguridad y las necesidades de tu software a ver cual se acomoda mas a lo que necesitas.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co

Etiquetas: sgbd, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:06.