Publicidad

RSS Cassandra

Cuándo pensamos en bases de datos relacionales a nuestra mente suelen acudir los mismos nombres. En la parte comercial tenemos Oracle y Microsoft SQL Server. Del lado del software libre, tenemos opciones como Postgre SQL o MySQL. Aunque cada una tiene sus peculiaridades, para un desarrollador no es difícil elegir entre un sistema y otro. Al final todo son tablas, columnas, claves primarias, y sobre todo, consultas SQL. La decisión de cuál elegir, se basará en sus características y precio. Si hablamos de bases de datos NoSQL, la cosa se complica. A día de hoy existen unos 150 sistemas de bases de datos NoSQL. Elegir uno de ellos puede ser muy difícil, ya que ninguno ha obtenido todavía la fama que sí han conseguido las bases de datos relacionales. Pero el problema principal que encontramos, es que aunque todas se denominan NoSQL, en realidad hay diferentes tipos. Dependiendo de lo que necesitemos, deberemos decantarnos por una u otra. Aunque hay varias aproximaciones diferentes para clasificar las bases de datos NoSQL (Teorema CAP, basándonos en el modelo de datos etc.), en general se considera que existen cuatro tipos diferentes: orientadas a documentos, orientadas a columnas, de clave-valor y en grafo. Así que veamos en qué consisten estos sistemas, para que podamos elegir la opción que mejor se adapte a nuestras necesidades. Orientadas a documentos Son aquellas que gestionan datos semi estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Para hacernos una idea un documento suele ser algo parecido a: { Name: "Genbeta Dev", Tipo: "Blogging", Categorias: [ { Título: "Desarrollo", Articulos: 89 }, { Título: "Formación", Artículos: 45 } ] } Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. En esta categoría encontramos: MongoDB: probablemente la base de datos NoSQL más famosa del momento. En octubre del año pasado, MongoDB conseguía 150 millones de dólares en financiación, convirtiéndose en una da las startups más prometedoras. Algunas compañías que actualmente utilizan MongoDB son Foursquare o eBay. CouchDB: es la base de datos orientada a documentos de Apache. Una de sus interesantes características es que los datos son accesibles a través de una API Rest. Este sistema es utilizado por compañías como Credit Suisse y la BBC. Orientadas a columnas Este tipo de bases de datos están pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos. Funcionan de forma parecida a las bases de datos relacionales, pero almacenando columnas de datos en lugar de registros. En esta categoría encontramos: Cassandra: incluida en esta sección, aunque en realidad sigue un modelo híbrido entre orientada a columnas y clave-valor. Es utilizada por Facebook y Twitter (aunque dejaron de usarla para almacenar tweets). HBase. Escrita en Java y mantenida por el Projecto Hadoop de Apache, se utiliza para procesar grandes cantidades de datos. La utilizan Facebook, Twitter o Yahoo. De clave valor Estas son las más sencillas de entender. Simplemente guardan tuplas que contienen una clave y su valor. Cuándo se quiere recuperar un dato, simplemente se busca por su clave y se recupera el valor. En esta categoría encontramos: DynamoDB: desarrollada por Amazon, es una opción de almacenaje que puedemos usar desde los Amazon Web Services. La utilizan el Washington Post y Scopely. Redis: desarrollada en C y de código abierto, es utilizada por Craiglist y Stack Overflow (a modo de caché). En grafo Basadas en la teoría de grafos utilizan nodos y aristas para representar los datos almacenados. Son muy útiles para guardar información en modelos con muchas relaciones, como redes y conexiones sociales. En esta categoría encontramos: Infinite Graph: escrita en Java y C++ por la compañía Objectivity. Tiene dos modelos de licenciamiento: uno gratuito y otro de pago. Neo4j: base de datos de código abierto, escrita en Java por la compañía Neo Technology. Utilizada por compañías como HP, Infojobs o Cisco. Como veis los tipos son muy diferentes. Si tenéis pensado en usar algún sistema NoSQL, aseguraros bien de qué es lo que necesitáis. Imagen | tec_estromberg En GenbetaDev | El concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional, UnQL, un lenguaje de consulta unificado para todas las bases de datos NoSQL

NoSQL: clasificación de las bases de datos según el teorema CAP

8 Comentarios
NoSQL: clasificación de las bases de datos según el teorema CAP

En el anterior post hablábamos de los distintos tipos de bases de datos NoSQL. Como ya comentábamos, estas bases de datos son muy distintas de las bases de datos relacionales. Y además pueden ser muy distintas entre sí.

Aunque conocer el tipo de modelo de datos es importante, también hay que tener en cuenta otros factores. Las bases de datos NoSQL están pensadas para ser escalables y distribuidas. Y por ser distribuidas tendremos que tener en cuenta el teorema CAP.

Leer más »

Bases de datos NoSQL. Elige la opción que mejor se adapte a tus necesidades

8 Comentarios
Bases de datos NoSQL. Elige la opción que mejor se adapte a tus necesidades

Cuándo pensamos en bases de datos relacionales a nuestra mente suelen acudir los mismos nombres. En la parte comercial tenemos Oracle y Microsoft SQL Server. Del lado del software libre, tenemos opciones como Postgre SQL o MySQL. Aunque cada una tiene sus peculiaridades, para un desarrollador no es difícil elegir entre un sistema y otro. Al final todo son tablas, columnas, claves primarias, y sobre todo, consultas SQL. La decisión de cuál elegir, se basará en sus características y precio.

Si hablamos de bases de datos NoSQL, la cosa se complica. A día de hoy existen unos 150 sistemas de bases de datos NoSQL. Elegir uno de ellos puede ser muy difícil, ya que ninguno ha obtenido todavía la fama que sí han conseguido las bases de datos relacionales.

Leer más »
Publicidad

UnQL, un lenguaje de consulta unificado para todas las bases de datos NoSQL

1 Comentario
UnQL, un lenguaje de consulta unificado para todas las bases de datos NoSQL

El mercado de las bases de datos NoSQL sigue creciendo de forma espectacular. Por eso parece que es el momento para que la definición de un lenguaje de consulta unificado triunfe. La idea procede de los creadores de CouchBase y SQLLite que lo han comenzado a llamar con el término UnQL.

UnQL puede considerarse como un superconjunto de la sintaxis de SQL. En el documento de definición se han planteado los nuevos operadores y expresiones que comparten las diferentes bases de datos NoSQL. Así podría ser muy portable, multi-proveedor capaz de ser un lenguaje estándar que los fabricantes de bases de datos den soporte. Este sería el caso de MongoDB o Cassandra, interesado en el proyecto.

Por lo general, las bases de datos NoSQL ofrecen una forma alternativa de almacenar rápidamente datos y acceder a ellos entre varios servidores. Cada bases de datos ofrece su propia interfaz única, lo que limita la capacidad de utilizar varias bases de datos de manera intercambiable o reutilizar el código de la misma consulta.

El diagrama de sintaxis para UnQL será muy familiar para los desarrolladores de SQL. Hay declaraciones adicionales y operadores nuevos para crear las diferentes expresiones que se usan en el almacenamiento de documentos y consulta en las nuevas bases de datos NoSQL. Los creadores se han comprometido a publicar la sintaxis completa en el sitio de UnQL.

Vía | ARN Sitio web | UnSQL, definición de la especificación En Genbeta Dev | El concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional

Leer más »

El concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional

19 Comentarios
El concepto NoSQL, o cómo almacenar tus datos en una base de datos no relacional

A estas alturas es extraño toparse con alguien que no haya oído hablar de NoSQL, ni que sea de pasada. No obstante, no todos los desarrolladores con los que trato habitualmente tienen claro el por qué de su popularidad, posiblemente debido a que no han tenido aún la oportunidad de trabajar con alguno de los sistemas que se basan en este concepto.

En la carrera de informática, muchos hemos aprendido que los sistemas de bases de datos se clasifican mayormente en tres tipos: Las bases de datos relacionales, las orientadas a objetos, y las relacionales orientadas a objetos. Sin embargo, pronto nos dimos cuenta que, en la práctica, la mayoría de los motores de bases de datos más populares se basan en la arquitectura relacional, y todos ellos utilizan el lenguaje de consultas SQL (con variaciones) para operar con los datos. Tanto es así, que SQL se convirtió con el paso de los años en un estándar “de facto”, debido a su uso.

Leer más »
Publicidad
Inicio
Inicio

Ver más artículos