none
Bases de datos embebidas RRS feed

Todas las respuestas

  • Hola,

    La verdad no conocia el concepto de base de datos embebidas, asi que me puse a buscar y encontre este interesante link:

    http://www.seraphinux.com/index.php/102/2008/04/30/sqlite-una-base-de-datos-embebida/


    Ahora bien, analizandolo y sino entendi mal, cualquier base de datos que se puede instalar en el cliente junto a la aplicacion y se pueda distribuir con el producto caeria en el concepto de embebida.

    Por eso por ahi quisiera preguntarte que defincion le das a embebido en una base de datos.

    Porque lo pregunto, porque si vamos al caso SQL Server Express tambien seria una base de datos embedida, y si esto es asi la verdad seria una de las recomedables.

    Aunque tengo entendido que tambien hay versiones similares de Oracle y DB2:

    DB2 Express

    Oracle 10g Express

    Como dice el articulo base como SQLLite y Firebird, tambien son muy buenas, pero si vamos a que la base de datos corra junto al aplicativo MySQL lo permitiria tambien.

    O por ahi te estas refierinen a base de datos del estilo db4o, estas ya son orientas a objetos pero corren junto al aplicativo que se desarrolla.


    Ahh sin olvidarse la version SQL Server Compact, estas estan mas orientadas a desarrollo para PDA, pero creo que son validad tambien.


    Por eso creo que primero se necesitaria definir que es embebido en una base de datos.

    Saludos

    Leandro Tuttini
    miércoles, 25 de febrero de 2009 19:24
  • Me refiero a una base de datos embebida cuando hablo de que el motor de la base de datos está incrustado en la aplicación y es exclusivo para ella. Se inicia cuando se ejecuta la aplicación, y termina cuando se cierra la aplicación. Se instala y desinstala junto con la aplicación desarrollada. No se si me explico.

    Evidentemente no son una buena alternativa para el desarrollo de sistemas empresariales que van a ser utilizados por 50+ usuarios, pero en el caso de una aplicación personal de escritorio, en la que se necesita almacenar poca información, son una gran opción.

    Imagina que desarrollas un juego que vas a distribuir como aplicación Windows y para que el jugador guarde los avances utilizas una pequeña estructura de datos. Ahora imagina que al usuario le instalas un servicio como SQL Server Express, únicamente para guardar los datos del juego.

    En cambio, SQLite es un motor muy MUY ligero. Si lo descargas de la página www.sqlite.com lo que obtienes es únicamente un ejecutable donde realizas tus querys, y tu base de datos es un único archivo. Para utilizarlo en desarrollos de .NET existe la DLL System.Data.SQLite que agregas como referencia al proyecto. No necesitas tener nada instalado, ni siquiera haber descargado el paquete de sqlite.com, todo el motor se encuentra en la DLL. A esto me refiero cuando hablo de una base de datos embebida.

    He utilizado SQLite un par de veces, pero a pesar de ser extremadamente ligero, también tiene sus desventajas: es muy limitado. Por ejemplo, no permite la definición de llaves foráneas.

    Por cierto, gracias por la referencia a db4o, no la conocía, pero por lo que he podido ver algo tiene de eso.


    laloivol
    jueves, 26 de febrero de 2009 16:29

  • Ahh ok ahora entendi a donde apuntas con base de datos embebidas, resulta que cuando me puse a buscar encontraba otro tipo de definiciones al respecto.

    Si dbo4 lo use poco, pero esta muy interesante, creo que cumple con la definicion que explica, ademas de al ser orientado a objetos es increible, tiene sus vueltas como todo, pero solo es cuestion de adaptarse, es otra forma de usar una base de datos.


    Un concepto que por ahi podria interesarte con respecto a este tema es el de Object Prevalence, no se si has escuchado sobre el mismo.

    Yo la verdad tengo info mas bien conceptual, nunca lo utilice en algun proyecto, pero creo que puede interesarte, especilamente si en tus aplicaciones sabes que utilizan poco datos (recuerda que se trabaja en memoria), pero necesitas que sean de rapido acceso.

    Hay una implementacion de este para .net, que tiene el nombre de Bamboo.Prevalence.

    Adjunto algunos link al respecto:

    Object Prevalence With Bamboo Prevalence

    Moving a relational database onto Bamboo Prevalence

    por ahi no se adapte a tus necesidades, pero es una buena alternativa, es mas como trabaja todo en memoria, por ahi unido a Linq, seria una buena combinacion.

    Este link me imagino lo habras encontrado tambien pero te lo paso por las dudas, tiene una lista de todas las base de datos embebidas que se implementaron: http://en.wikipedia.org/wiki/Embedded_database


    Es mas ahora que busque un poco mejor hay muchas alternativas:

    Si es de Oracle debe ser prometedor:
    Oracle Berkeley DB

    parece ser que la base de datos Firebird, puede ser embebida tambien:
    Embedded Firebird: Full-Featured Embedded Database with 2 MB Runtime

    Esta otra parece ser un excelente alternativa, se puede suar en c# o java, y tiene una version para Android
    Perst - An open source, object-oriented embedded database

    De la misma empresa de la anterior, pero me parece que no es libre, hay que pagarla:
    eXtremeDB embedded database


    Otra alternativa es SharpHSQL (aunque creo que la version c# se discontinuo), portada de la version java HSQLDB


    Como veras hay muchas alternativas, y calculo alguna debe ser mejor y mas potente que SQLite.

    Saludos



    Leandro Tuttini
    jueves, 26 de febrero de 2009 20:35