Bases de datos orientadas a grafos

Hasta 1999 los motores de búsqueda evaluaban cada página web como una entidad autónoma, ordenándolas en base al contenido, sin prestar atención al resto de páginas. Pero en 1999 Google adoptó PageRank, creado por Larry Page, y que constituye un conjunto de algoritmos que evalúan las páginas webs en relación con otras páginas. Los usuarios reconocen que las páginas que se ordenan basándose en las relaciones con otras proporcionan mejores resultados de búsqueda, lo que sin duda es uno de los factores que hacen que Google saque tanta ventajas frente a sus competidores.

Estamos tan acostumbrados a pensar en las bases de datos como tablas o conjuntos de información, que nos resulta un poco complicado entender el concepto de bases de datos basadas en grafos. Sin embargo, estas bases de datos pueden hacer cosas que otros tipos de bases de datos (como NoSQL), no pueden. Si hacemos el esfuerzo en entender y utilizar este tipo de bases de datos a la larga obtendremos un gran beneficio.

 

graphDB

Características

No hay índices clásicos en las bases de datos basadas en grafos. Por el contrario, cada objeto almacenado es representado por nodos (entidades) y aristas (relaciones). Un nodo es un registro único que tiene al menos una propiedad. Las aristas definen las relaciones entre los nodos y los nodos y sus relaciones tienen a su vez predefinidas conjuntamente propiedades. Los nodos pueden tener múltiples aristas que definen los diferentes tipos de relaciones que tienen con otros nodos.

Las consultas en las bases de datos orientadas a grafos están diseñadas para empezar en un nodo específico y explorar sus relaciones con otros nodos. Un ejemplo podría ser “Qué libros están leyendo mis amigos que yo aún no haya leído”. Es por eso que este tipo de bases de datos están frecuentemente asociadas con motores de recomendación que se usan con frecuencia en aplicaciones sociales y de comercio electrónico.

A medida que las búsquedas se van haciendo más complejas, el tiempo de procesamiento va aumentando. Es por eso que las bases de datos basadas en grafos aprenden e indexan las relaciones más comunes con el objetivo de acelerar el tiempo de búsqueda.

Ventajas

  • Rapidez para conectar datos. En las bases de datos relacionales, el frecuente uso de joins hace que las búsquedas sean lentas.
  • Sencillez de las consultas.
  • Rapidez en el manejo de consultas complejas que implican múltiples niveles de datos relacionados.

Desventajas

  • La búsqueda de nodos en diferentes máquinas puede ralentizar el proceso drásticamente.
  • Requiere un cambio conceptual para los desarrolladores, por lo que implica una curva de aprendizaje.

Algunos casos de uso

  • Seguimiento de las fuentes de comida, desde su recogida hasta la mesa (Objectivity, Inc.)
  • Aplicaciones de colocación de anuncios.
  • Gestión de red.
  • Genealogía.

Puedes encontrar el artículo origina en el blog de Data Science Central.

Deja un comentario

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