Historias
Slashboxes
Comentarios
 

NoSQL, más allá del modelo relacional

editada por rvr el 02 de Noviembre 2009, 13:00h   Printer-friendly   Email story
En DosIdeas escribieron el pasado mes de junio un interesante artículo sobre NoSQL: el movimiento en contra de las bases de datos: «Una reunión en San Francisco fue la inauguración de la comunidad de NoSQL, un grupo de personas que comparten la idea de destronar la tiranía de las bases de datos relaciones, costosas y lentas, en favor de una alternativa mucho más eficiente y barata para manipular datos. "Las bases de datos relacionales nos ofrecen demasiado. Nos fuerzan a adaptar nuestros objetos para adaptarlos a una RDBMS (sistema de gestión de bases de datos relacional)", dice Jon Travis, uno de los principales ingenieros en SpringSource, y uno de los 10 presentadores en la reunión de NoSQL. Las alternativas basadas en NoSQL "te ofrecen sólo lo que necesitás", dice Travis».

Historias relacionadas

[+] Relaja tu base de datos con Apache CouchDB 20 comentarios
Apache CouchDB es un motor de bases de datos que hace poco ha pasado de ser un proyecto incubado por la Apache Software Foundation a convertirse en un proyecto más de esta fundación. Según la definición que aparece en su página web, CouchDB es una base de datos orientada a documentos, distribuida, tolerante a fallos, "schema free" y accesible mediante una interfaz HTTP Restful que devuelve JSON. En InfoQ hace poco hacían una entrevista a su creador. ¿Habéis usado alguno/a este tipo de bases de datos alguna vez?. ¿Para qué tipos de aplicaciones veis acertada su utilización?
[+] CouchDB: una base de datos diferente 15 comentarios
borillo nos pasa un enlace al artículo CouchDB: una base de datos diferente: «Podemos definir CouchDB como una base de datos documental sin 'esquema', consultable al estilo MapReduce, accesible por REST y con una funcionalidad de replicación integrada. Casi nada... será mejor que veamos cada una de estas características en más detalle».
[+] Software Libre: Twitter planifica la migración de MySQL a Cassandra DB 27 comentarios
En Kushelmex, Thalles de Paula cuenta que Twitter cambia MySQL por Cassandra: «Ryan King es ingeniero de Twitter y le dijo al blog MyNoSQL que están planeando cambiar su bases de datos en MySQL por Cassandra debido a la escalabilidad y a la gran comunidad de desarrolladores. Actualmente Twitter funciona en un cluster de servidores MySQL con un sistema de cache que cada vez es menos efectivo debido a su crecimiento. [...] Cassandra fue desarrollado en un principio por los de Facebook y es un repositorio hecho en Java, la tecnología es similar a la ofrecida por otras bases de datos NoSQL. Otro que esta dejando las bases de datos MySQL es Digg que también estará migrando a Cassandra».
[+] Software Libre: Tutorial de MongoDB 41 comentarios
borillo nos cuenta: «En esta nueva entrega de la serie dedicada a las bases de datos NoSQL vamos a ver qué es MongoDB, cómo instalarla y cómo empezar a trabajar con ella. Después del par de artículos dedicados a CouchDB, vamos a darle cancha a otra de las bases de datos NoSQL que más repercusión está teniendo ultimamente: Lee el tutorial completo de MongoDB».
[+] Digg mejoró 40 veces el rendimiento por ordenar con PHP en lugar de MySQL 51 comentarios
Un pobrecito hablador nos cuenta: «En SigT han publicado una entrada titulada "Digg: mejora del rendimiento un 4000% por ordenar con PHP en lugar de MySQL" que es una traducción de una entrevista a Joe Stump CTO de SimpleGeo y anterior líder de arquitectura de Digg, originalmente publicada en High Scalability. ¿Se están imponiendo en sitios de gran tráfico el uso de BBDD No-SQL en lugar de los RDBMS de toda la vida?. ¿Es sólo una moda?»
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • No saben lo que dicen

    (Puntos:1, Divertido)
    por pobrecito hablador el Lunes, 02 Noviembre de 2009, 14:00h (#1182684)
    ¿Pero de verdad saben lo que dicen?

    Una base de datos relacional es simple, rápida, segura y poco costosa (en terminos de almacenamiento y de IO). Es la evolución natural para el paradigma del almacenamiento de información y se atreven a cuestionarlo dando alternativas que no satisfacen ni un 60% las necesidades de la sociedad.

    Sólo puedo entender desde mi experiencia como doctor en tecnologías de la información y profesor de universidad que se trata de un bulo para darse simplemente publicidad viral.
  • Fórmula para captar la atención

    (Puntos:2, Inspirado)
    por pobrecito hablador el Lunes, 02 Noviembre de 2009, 15:00h (#1182705)
    Fórmula para captar la atención:

    1.- Te inventas un nuevo "movimiento".

    2.- Criticas una tecnología cualquiera (por ejemplo, las bases de datos relacionales).

    3.- Dices que tu nuevo "movimiento" se parece a Google.

    Los puntos 1 y 2 son clásicos, la novedad estriba en el punto 3.
  • por Cristian2k (28854) el Lunes, 02 Noviembre de 2009, 15:06h (#1182706)
    Creo que de lo que se ha tratado hasta ahora es de seguir un modelo de datos optimzado para los datos, hardware y tipo de acceso que un concreto sistema necesita.

    No soy experto en Oracle, pero me cuesta creer que éste pudiera encajar en el modelo de Google por ejemplo. En el artículo hablan de 6 petabytes en miles (o millones?) de PCs low cost que dan una repuesta rapidísima.
    Es posible que por ello Google triunfara en su día, porque hace 10 años era impensable una base de datos de semejante tamaño que devolviera respuestas con página incluida en menos de 100ms.
  • por carlossss (17668) el Lunes, 02 Noviembre de 2009, 21:15h (#1182766)

    He leído varios comentarios en los que se desprestigia esta iniciativa porque en entornos empresariales sólo se usan modelos relacionales.
    Lo que hay que aclarar es que la gente de NOSQL tiene unos objetivos muy diferentes a los de la mayoría de entornos.

    Si nos fijamos en la lista de ponentes de la conferencia, vemos a gente de Facebook, Google o LinkedIn.
    Estas empresas tienen requisitos de acceso a datos muy distintos de los que tenemos en la mayoría de empresas.
    Pongamos el caso de Facebook. Si vemos sus estadísticas [facebook.com] vemos que tienen más de 300 millones de cuentas!

    Por eso esta gente utiliza un modelo diferente al relacional. No es que no les guste, es que no pueden porque con una base de datos relacional el número de consultas necesarias para mostrar una sóla página sería demasiado grande.
    Entonces tienen que recurrir a técnicas que los acostumbrados al modelo relacional vemos extrañas: desnormalizar tablas, replicar la misma información en varias tablas para disminuir el número de consultas, mantener todo el contenido en memoria y mucho más que a mi se me escapa.

    Afortunadamente el común de los mortales podremos seguir trabajando con nuestros Oracles, MySQLs, DB2 y demás. Más que nada porque en la mayoría de los casos, nuestros productos nunca tendrán ni una cuarta parte de los usuarios que tienen sitios como Facebook o Twitter :-)

    En

  • por pobrecito hablador el Lunes, 02 Noviembre de 2009, 21:27h (#1182768)
    Después del fiasco de ObjectStore y toda el hype tecnológico sólo faltaba que después de 12 años vuelvan otra vez con la misma pamplina.
  • Asimov

    (Puntos:3, Inspirado)
    por acortiz (32978) el Lunes, 02 Noviembre de 2009, 21:35h (#1182770)
    Puf, iba a decir que toda esta gente esta loca, pero me ha afectado releer la saga de robots de Asimov. Ahora creo que es normal, que sin gente con estas ideas locas, la tecnología no progresaría. No sé si están en lo correcto, pero, si quieren dedicarse a eso e intentar cambiar nuestros paradigmas, pues bienbenidos sean. De momento no le hacen daño a nadie. El tiempo dirá si tienen o no razón.
  • db4o

    (Puntos:1)
    por pepevilluela (35371) el Lunes, 02 Noviembre de 2009, 22:00h (#1182773)
    ¿Conocéis db4objects?
  • por bigplac2 (20370) el Martes, 03 Noviembre de 2009, 09:16h (#1182803)
    Siempre he pensado que el SQL es el código espagetti de los datos, potentisimo, comodisimo y muy, pero que muy sucio.

    El SQL no ofrece ninguna diferencia semantica sobre el acceso por hash, por indice, recorriendo la tabla entera, anidando, etc... Vamos que para el SQL un O(1) es equivalente a un O(n^2) y un programamor poco escrupuloso (o que le meten mucha presión para tener el código para ayer), puede no distinguirlos.

    Tampoco ofrece diferencias entre almacenar y buscar. Recuperar las facturas de la empresa es lo mismo que recuperar las facturas mayores a 1000.

    Lo bueno de usar sistemas limitados donde una hash llame a una funcion distinta a un range, y donde las joins esten ultra prohibidas es que te permite distribuir, escalar y sobre todo, programar dinamicamente, llevarte trabajo a los crones, y dejar los datos en su sitio para luego recuperarlos de memcache en O(1). El objetivo es que una web solo acceda a datos en O(1) o a todo lo mas en O(log n). Aunque se siga usando un SQL de motor de persistencia.

    Claro, los sistemas de baja latencia no son comunes, y siempre debes de preocuparte de resolver los problemas de tus clientes, a soñar con que tu aplicación va a ser un google.

  • Anda tu, que guai

    (Puntos:1, Inspirado)
    por pobrecito hablador el Martes, 03 Noviembre de 2009, 09:36h (#1182806)

    Es decir, a ver si lo entiendo, pretenden volver a un invento como lo que se usaba por ejemplo en los bancos en los 70 con Cobol y ficheros de datos con estructuras y procedimientos de acceso, búsqueda y demás escritos específicamente para el problemo X, solo que en vez de Cobol y un mainframe va a ser con (insertese lenguaje POO de moda aqui) y los datos serializados esparcidos por un cluster de servidores PC de los de andar por casa.

    Entiendo que a Google, Facebook y demás eso les funcione dadas sus especiales necesidades pero ¿ realmente saldría rentable/mejoraría algo en la mayoría de los casos ?

  • Disculpa la pregunta, pero ¿quieres decir modelizar (convertir en modelo) o modelar (ajustar a un modelo)?

    Nota: este comentario ya sale con 2 puntos. No gastéis demasiados +1 en él ;)

    --
    Marcos (cualquier parecido con la coincidencia es pura realidad)
    [ Padre ]
  • por rvr (15) el Lunes, 02 Noviembre de 2009, 14:35h (#1182694)
    ( http://rvr.linotipo.es/ | Última bitácora: Lunes, 22 Febrero de 2010, 07:28h )
    «Estos tíos de NoSQL aún no se han enterado de que en el mundillo corporativo TODO es relacional»

    El problema de "estos tíos" es el de aplicaciones web con grandes necesidades de escalabilidad: Google, Facebook, Digg, Last.fm, LinkedIn y otros.

    --
    Víctor R. Ruiz
    rvr en blogalia.com
    [ Padre ]
  • por killabyte (15023) el Lunes, 02 Noviembre de 2009, 14:43h (#1182697)
    Curioso que todo sea relacional, pareces un comercial de Oracle. Sin ir más lejos las bases de datos de más disponibilidad y potencia que conozco, a parte de las que nombran en el artículo que usan clave-valor, corren sobre una base de datos IMS DB, que corre en un sistema transaccional IMS sobre z/OS, y no son relacionales, sino un modelo de red - en teoría más caduco y pasado de moda que el relacional y el key/value del artículo, pero que sigue vigente y que nadie ha superado todavía su rendimiento y estabilidad.

    Por otro lado, volviendo al "todo relacional", los datos por si mismos no son relacionales, y no influyen sobre decidir una base de datos relacional, de red o clave-valor. Son simplemente datos. El programador decide si quiere usar Oracle o ficheros de texto plano para solventar el problema de su gestión. Y la verdad, la obsesión del mercado por usar únicamente bases de datos relacionales para todo, demuestra lo cortos de mira que son muchos desarrolladores/jefes de proyecto, que aprenden a usar un martillo para clavar un clavo, y luego terminan usándolo hasta para freir un huevo.

    En mi honesta opinión lo que sufrimos es una moda que se llama SQL/relacional, y cuando la gente se canse de SQL/relacional se pasará a la siguiente moda que vete a saber como se llamará. Lo único que veo en el artículo es un caso de éxito donde unos pocos que han sido capaces de escapar de una moda "de comerciales de oracle" y han elegido el modelo de datos más adecuado para el problema que barajaban.

    [ Padre ]
  • Re:Es un hype

    (Puntos:2)
    por xram (22351) el Lunes, 02 Noviembre de 2009, 16:45h (#1182725)
    ( http://barrapunto.com/ )
    "¿alguien lo usa para algo mas que hacer los news con xml?"

    Se nota que no has usado Spring en tu vida, o que si lo has usado no has entendido la filosofía que lleva detrás. Es cierto que el módulo de IoC es muy utilizado, pero hay más. Ejemplos

    -Utilizarlo con JDBC en lugar de JDBC solo, aparte de ahorrarte la apertura/cierre de conexiones, te va a simplificar MUCHO el código. Lee : http://static.springsource.org/spring/docs/2.5.x/r eference/jdbc.html [springsource.org]

    -Ah! y si me ibas a decir algo de hibernate... lee esto http://static.springsource.org/spring/docs/2.5.x/r eference/orm.html [springsource.org]

    -Tambien es interesante la integracion con jUnit

    -Tabien tiene su modulo de MVC (aunque no lo he usado, así que no se como será de bueno o de malo)

    En fin, que spring es algo más que un framework que genera singletons.


    Sin acritud

    Saludos
    --

    _____________________________
    Mis ladrones [www.sgae.es] favoritos.
    [ Padre ]
  • por pobrecito hablador el Lunes, 02 Noviembre de 2009, 17:27h (#1182730)
    Uno: http://couchdb.apache.org/ [apache.org]
    Dos: http://www.mongodb.org/ [mongodb.org]
    Tres: http://aws.amazon.com/simpledb/ [amazon.com]

    Entonces esto es software, ¿no listillo? :)

    Sin acritud.
    [ Padre ]
  • por pobrecito hablador el Lunes, 02 Noviembre de 2009, 17:34h (#1182733)

    Ahora en serio: Estos tíos de NoSQL aún no se han enterado de que en el mundillo corporativo TODO es relacional;
    En tu universo paralelo quizás. Aquí todo es un objeto (que nadie haga caso al freak de COBOL del fondo, por favor) y guardar un objeto en una base de datos relacional es equivalente a llegar con tu coche al aparcamiento, desmontarlo pieza a pieza, meter las piezas en los cajones correspondientes con las respectivas piezas de los demás coches y volver a montarlo de nuevo cuando quieras usarlo.

    Hay sistemas mejores de hacer las cosas.

    [ Padre ]
  • 8 respuestas por debajo de tu umbral de lectura actual.