Foros del Web » Programando para Internet » Python »

base de datos

Estas en el tema de base de datos en el foro de Python en Foros del Web. Hola a todos! He estado mirando varios tutoriales acerca de como crear una base de datos en python, pero la verdad no encuentro algo que ...
  #1 (permalink)  
Antiguo 22/09/2010, 09:29
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
base de datos

Hola a todos!

He estado mirando varios tutoriales acerca de como crear una base de datos en python, pero la verdad no encuentro algo que me resulte similar a lo que realmente necesito.

Mi base de datos constituiría un sistema donde almacenar datos de un ensayo. La base de datos tendria un campo donde se almacene un nombre, en otro un valor float, otro más para un entero y finalmente necesitario 5 campos donde se almacenen en cada uno de ellos un vector con datos. Es este último punto el que desconozco como realizar. ¿Cómo lo realizaría?

Asímismo, de todas las variantes a la hora de realizar la base de datos, ¿cuál sería la más conveniente de implementar?

Un saludo
Gracias!
  #2 (permalink)  
Antiguo 22/09/2010, 09:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: base de datos

Usa serialización de objetos.

Ejemplo de uso:
Código Python:
Ver original
  1. try:
  2.     import cPickle as pickle
  3. except ImportError:
  4.     import pickle
  5.  
  6. vector = [1, 2, 3, 4, 5]
  7. dic = {'a':1, 'b':2, 'c':3 }
  8. f = open("vectors.txt", "w")
  9. pickle.dump(vector, f)
  10. pickle.dump(dic, f)
  11. f.close()
  12.  
  13. f = open("vectors.txt")
  14. #Se cargan en el mismo orden que fueron leidos
  15. vector2 = pickle.load(f)
  16. dic2 = pickle.load(f)
  17. f.close()
  #3 (permalink)  
Antiguo 11/11/2010, 07:01
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: base de datos

Retomo este hilo para no crear uno nuevo, ya que tiene que ver con este.

Para pocos datos, el Pickle me sirve sin problema, pero, que hago cuando hablamos de vectores de más de 40 millones de datos? Porque para estos tamaños, pickle no consigue hacerlo y aparece un error de malloc.

Estoy trabajando con la distribucion Enthought, trabajando bajo sistema operativo Mac OS y con la version de python 2.6.6

Un saludo!
  #4 (permalink)  
Antiguo 11/11/2010, 09:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: base de datos

Como pensé que los datos eran pocos te recomendé Pickle pero como veo que no son pocos ahora si te recomiendo una base de datos, preferente una robusta.

Python desde la version 2.5 trae sqlite3. Eso si no lo he probado a ver si es eficiente con muchos datos. Lo que probado para pocos datos y funciona muy bien. Pruebalo y nos dices que tal esta. Si no te llega a "dar el kilo" entonces usa una base de datos mas robusta.
  #5 (permalink)  
Antiguo 11/11/2010, 09:10
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: base de datos

Pues necesitarás una base de datos real entonces. O un archivo de texto gigante.

Python tiene una interfaz más o menos estándar para bases de datos. ¿Qué gestor te sería más sencillo usar? mysql, sqlite, posgresql, oracle, mssql, ... elegí uno y simplemente revisá la documentación del módulo de python correspondiente. O preguntá por acá de nuevo


Saludos.
  #6 (permalink)  
Antiguo 11/11/2010, 11:45
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: base de datos

Gracias a los dos lo primero!

La verdad que no tengo mucha idea de bases de datos... por no decir que nada de nada jajaja.

La historia es que tendría que almacenar un vector de floats de aproxximadamente 45 millones de elementos y no sabría por donde empezar jejeje.

Un saludo!
  #7 (permalink)  
Antiguo 11/11/2010, 12:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: base de datos

Empieza creando una base de datos, con una tabla donde tengas:
#Este bloque no va funcionar xD
(id -> int, value -> float) y solo vas insertando los elementos de tu vector. Recuerda poner a id como PK (Primary Key) incluso podrías tener auto increment en id.
#fin de bloque

Releyendo el primer post me di cuenta de esto:

Cita:
Iniciado por fj87
La base de datos tendria un campo donde se almacene un nombre, en otro un valor float, otro más para un entero y finalmente necesitario 5 campos donde se almacenen en cada uno de ellos un vector con datos. Es este último punto el que desconozco como realizar. ¿Cómo lo realizaría?
Mira puedes hacer varias cosas, pero si tu conocimiento de base de datos en nulo o limitado, entonces puedes usar algún manejador como phpmyadmin (esto requiere un servidor de base de datos y un servidor web) para que puedas crear la base de datos, las tablas y te ayude con los query para insertar datos.

Última edición por razpeitia; 11/11/2010 a las 15:25

Etiquetas: Ninguno
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 17:11.