PDA

Ver la versión completa : Dudas con Java y BBDD



Drumpi
23/06/2013, 20:11
Hola a todos:

Recientemente me ha venido la necesidad de organizar el contenido de mis copias de seguridad, son tantos discos y hay tantas cosas que necesito tenerlo todo accesible, saber qué cosas tengo en cada uno de los más de 50 CDs que he ido acumulando a lo largo de más de 10 años.
Así que me he planteado el crear un pequeño programa en Java para ello.

Y aquí es donde me vienen las dudas ¿Qué programa de Base de Datos debería usar?
Según lo que he estado leyendo estos días, tengo tres opciones:

- Una es Oracle, que es matar moscas a cañonazos, pero me da una base de cara a buscar trabajo.
- Otra es MySQL, que es más sencilla, ya la he ido tocando, pero no me gusta el hecho de que se tenga un servicio ejecutándose desde el arranque.
- La última es usar SQLite, que usa ficheros (ideal si uso windows o Linux indistintamente), no usa servicios, pero de la que la poca documentación que he encontrado es demasiado confusa para un principiante.

Me gustaría saber la opinión de gente que haya trabajado con ellos. La base de datos no va a ser muy grande, desde luego, y va a ser para uso personal, básicamente consulta y alguna que otra entrada en los datos de forma esporádica. Me gusta la idea de SQLite, pero aun no he visto cual es la función en Java para crear el fichero de la BD, por ejemplo, o cómo crearla usando la ventana de comandos sin instalar nada, o si realmente tengo algo que instalar. MySQL es la más documentada, pero no me gusta la idea de tener el servidor funcionando siempre, cuando sólo voy a usarlo una vez o tres al mes.

¿Consejos? ¿recomendaciones? ¿venenos preferidos?
Gracias :)

enkonsierto
23/06/2013, 20:46
Lo que viene siendo matar moscas a cañonazos...

^MiSaTo^
23/06/2013, 20:50
Oracle... sabes lo que vale la licencia? Porque no se si sabes que no es gratuíta, de hecho es (creo, no se ahora, pero antes lo era) la más cara de todas XD
Para el volumen de datos con un MySQL vas que te matas, aparte de ser gratis y no se si sigue siendo libre.
SQLite no está mal, pero es muy poco potente y soporta bastantes menos cosas que un MySQL o similares. De hecho está pensada para entornos bajos de recursos como por ejemplo un móvil. Para cosas un poquito grandes, dudo mucho que te de buen rendimiento (porque tampoco está pensada para ello)

otto_xd
23/06/2013, 21:15
SQlite y vas que te matas.

O usasr no sql como mongo, vas que te matas.

O no hacer un desarrollo propio y usar cualquiera de las 20000 aplicaciones para catalogar que deben de existir xD

romeroca
23/06/2013, 21:38
Bueno, ya que quieres aprender JAVA utiliza un framework de los muchos que hay que te ahorran un montón de trabajo.

Para algo muy sencillo y orientado a web te recomiendo OpenXava, además con toda la documentación en español.

hardyx
24/06/2013, 00:11
Para 50 cds podrías usar hasta ficheros de texto. Yo lo haría con ficheros binarios directamente. Aunque lo mismo lo quieres hacer para "aprender", con lo cual podrías usar SQLite que está de moda :D

otto_xd
24/06/2013, 00:14
Para 50 cds podrías usar hasta ficheros de texto. Yo lo haría con ficheros binarios directamente. Aunque lo mismo lo quieres hacer para "aprender", con lo cual podrías usar SQLite que está de moda :D

Mas que de moda es que para algo tan pequeño tiene mas razon de ser que usar una db como mysql/mariadb, sobre todo por no tener un servicio corriendo para solo eso xD

Nathrezim
24/06/2013, 09:23
Mirate Derby, lo puedes acoplar a tu aplicación y no tienes que tener un proceso corriendo constantemente en el PC, arranca con tu aplicación. Además, con pocas lineas de código tienes la BD montada.

http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html

Yo es lo que uso para montar juguetitos en el curro.

Pero sí, es matar moscas a cañonazos de cualquier manera, con una hoja Excel te debería valer, pero bueno, supongo que lo haces por aprender.

Drumpi
26/06/2013, 17:30
Hombre, hoja de excel ya la hice hace tiempo, pero como no me se manejar bien con él, sobre todo en el tema de búsquedas, o que quiero añadir cierta info extra (no sé, datos de los ficheros de música como autor o web de la que lo cogí, listas de tutoriales en una carpeta, o información sobre las temáticas de las fotos) pues mejor tener una BD y usar java para mostrar una ventana con toda la información catalogada.
Estoy de acuerdo con que usar Oracle o MySQL es algo demasiado grande, y más teniendo en cuenta que requieren de un servidor funcionando, un mantenimiento (que no sé en qué consiste), y lo que dice Misato, el tema de licencias (oracle no sé si tiene alguna gratuita a modo de aprendizaje o de uso particular, y creo que MySQL sí). La idea es algo pequeñito.

Hace tiempo pensé en usar un fichero, pero como hay tantas cosas que desconozco sobre las rutinas de las Bases de Datos (cómo se almacena el contenido, algoritmos de búsqueda, elementos diversos) y tengo tan poco tiempo para meterme con cosas a tan bajo nivel, pues he decidido empezar con SQLite. De momento parece que la cosa pita (ya os había leido hace unos días y me puse a trabajar, con Java se programa en cuestión de días... mientras swing haga lo que le pides :D).


O usasr no sql como mongo, vas que te matas.

O ¿qué?


Para 50 cds podrías usar hasta ficheros de texto. Yo lo haría con ficheros binarios directamente. Aunque lo mismo lo quieres hacer para "aprender", con lo cual podrías usar SQLite que está de moda :D

Lo de ficheros binarios es lo que ya decía, lo suyo es montar un fichero de BBDD con todas sus ventajas.
Lo de que SQLite está de moda, será ahora con los móviles, porque creo recordar haber oido hablar de SQLite hace ya más de 8 años. Incluso he visto que el plugin de Java ha sufrido ya 3 revisiones completas, con cambio de equipo incluido :lol:

juanvvc
26/06/2013, 17:57
Si quieres usar Java con bases de datos como ejercicio para el mundo profesional, lo mejor que puede hacer es usar cualquier librería que siga la JPA, como hibernate. OpenXava como dice romeroca es dar un paso más allá porque gestiona toda la aplicación, así que también le puede servir si su objetivo es aprender para usarlo luego en el trabajo. Vamos, que si quiere aprender Java se quede lejos de cualquier cosa que huela a SQL. La base de datos específica (MySQL, SQLite, MariaDB, ManuelaDB...) le da igual. Drumpi lo que quiere es aprender programación de bases de datos en Java, no configuración de un sistema de gestión de bases de datos distribuido o acceso secuencial a un fichero de texto...

Por otro lado, si lo que quiere es usar a manubrio una base de datos en Java no-Android porque es así de masoca, creo que su mejor opción (por lo ligera) es SQLite.

Drumpi
26/06/2013, 18:47
Hombre, ya digo que lo que quiero es una pequeña aplicación de uso personal con información en una base de datos muy pequeña (hablo de unos pocos megas), para hacer en ratos libres.
La única experiencia que tengo es la de un curso en la que usábamos JavaSE+MySQL, y donde estuve trabajando, que usábamos JavaSE+Oracle, que según tú descripción era torturarme por torturarme ¿no? :D Supuestamente es como se trabaja en las empresas (y encima estuve creando un verificador de sintaxis SQL en Java, doble masoquismo :lol:)

jcom
27/06/2013, 23:45
Si tu intención es practicar, adelante. Pero ya hay programas que hacen eso que tu quieres. Incluso un fichero Excel o el equivalente en Libre Office sería suficiente.

romeroca
28/06/2013, 09:55
En cuanto a aprender a combinar JAVA y bases de datos, desde mi punto de vista, creo que lo más provechoso es estudiar como mapear entidades con EJB3-JPA. Una vez que ya has aprendido el mapeo, trabajar con bases de datos te parecerá muy fácil. Personalmente hace tiempo que ya no he tenido que tener en cuenta las diferencias de motores de bases de datos gracias a ello.