Teorema de Brewer y Tipos de bases de datos.

A través del Teorema de Brewer o Teorema de CAP nos expone que en sistemas distribuidos se da una imposibilidad clara de dar cabida a la vez a la consistencia, disponibilidad y tolerancia a particiones.

Estos conceptos hacen referencia a lo siguiente:

  • Consistencia: al llevar a cabo una consulta siempre tiene que obtenerse la misma información, más allá del nodo o servidor que realice la petición en cuestión.
  • Disponibilidad: que todos los datos estén a disposición de los usuarios aunque uno de los nodos haya fallado.
  • Particiones: los sistemas distribuidos pueden presentar divisiones en particiones, por lo que influye en que el sistema tiene que seguir en funcionamiento aunque aparezcan pequeñas caídas que dividan el sistema.
  • Marcas de categorías: esta problemática para cumplir estas tres características da lugar a que existan bases de datos que resolverán mejor unas áreas que otras. A continuación detallamos diferentes marcas que funcionan mejor para cada categoría:

    • 1. Consistencia: BigTable, HyperTable, HBase, MongoDB, Redis, MemCacheDB, Scalaris.

    • 2. Disponibilidad: RDBMS, GreenPlum.

    • 3. Tolerancia a particiones: Dynamo, CouchDB, Cassandra, SimpleDB, TokyoCabinet, Riak, Voldemort.

    Las nuevas Bases de Datos.

    En un principio, antes del Big data, solo existían bases de datos relacionadas con entornos SQL (bases de datos con lenguaje de consulta estructurado). Estas bases se rigen por una serie de parámetros denominados ACID: Atomicity, Consistency, Isolation y Durability. Sin embargo, como ya sabemos, el big data no se vale exclusivamente de datos estructurados y de ser así no tendría sentido. Para esto han nacido  a lo largo d los últimos años nuevas bases de datos no relacionales -conocidas como NoSQL- que nos ofrecen solución a la problemática del rendimiento y la escalabilidad.

    Las principales características de cualquier base de datos NoSQL son:

    • Escalabilidad horizontal: se pueden añadir más nodos para aumentar su rendimiento y se puede señalar los que están activos.

    • No necesitan mucha computación por lo que el coste se reduce.

    • Dan tratamiento a un gran volumen de datos: su estructura es distribuida.

    • Estos sistemas utilizan lo que se denomina BASE: Basically Available, Soft state, and Eventual Consistency.

    Las bases de datos NoSQL pueden dividirse en varios tipos:

    • Bases de datos clave-valor: Es el tipo más popular de bases de datos NoSQL. Se caracteriza por su sencillez y porque cada elemento está identificado por una única clave.

      {clave:valor}

      • Ventajas: hace muy fácil la recuperación de la información y muestra eficiencia en la lectura y la escritura

    • Bases de datos documentales: Se trata de las bases de datos con más versatilidad. Utiliza normalmente una estructura como JSON o XML y trabaja con una clave única por registro. Este tipo de base de datos puede llevar a cabo consultas por clave-valor o relacionadas con el contenido del documento aportado.

      Son muy útiles pero hay que efectuar varios reports y éstos tienen que unirse de manera dinámica porque sus elementos van cambiando constantemente.

    • Bases de datos en grafo: Son bases de datos que por definición se encargan de encontrar nexos de unión entre los diferentes datos para extraer el auténtico valor de los mismos. Los datos se representan como nodos de un grafo.

      Estas bases de datos son idóneas si los datos están fuertemente relacionados como por ejemplo, en redes sociales, en recomendaciones en tiempo real, para detectar fraudes, etc.

    • Bases de datos orientados a columnas: La diferencia con las bases de datos relacionales es que los datos son guardados en diferentes filas. Se utilizan para entornos en los que se necesite acceder a diferentes columnas con muchas filas y que tengan poca escritura.

      Son muy funcionales, por ejemplo, para análisis de datos y en el procesamiento de eventos y su análisis. También para aplicaciones que necesitan una distribución geográfica en varios centros de datos, aplicaciones que tengan campos dinámicos o que puedan soportar cierta inconsistencia en las réplicas pero en poco tiempo; o aplicaciones con un volumen de datos muy elevado.

      En la siguiente tabla podemos ver un pequeño resumen de las principales características de las principales bases de datos NoSQL.

    También existen soluciones híbridas que acogen tanto modelos relacionales como los no relacionales. Entre ellas, CortexDB, Foundation DB y Orient DB ofrecen diferentes modelos NoSQL.

    En AI consulting estamos especializados en ayudar a las empresas a mejorar su negocio a través de las diferentes soluciones de analítica de datos. Contacta con nosotros a través de este link

    Borja Prieto Herrero.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *