Neo4j es una base de datos orientada a grafos, pero antes de comenzar explicando qué es Neo4j, para qué sirve y cuáles son sus ventajas, debemos explicar qué es un grafo.
Qué es un grafo
Un grafo está compuesto por dos elementos: los nodos (vértices) y las relaciones (aristas). Un nodo hace referencia a una entidad, en el que almacenaremos diferentes datos o atributos de tipo clave-valor, mientras que las relaciones representan cómo se conectan y se relacionan dos nodos.
Neo4j
Tal y como se comentaba anteriormente, Neo4j es una base de datos orientada a grafos. Este tipo de bases de datos están diseñadas básicamente para tratar las relaciones entre los datos y estos se almacenan mostrando cómo cada entidad individual se conecta o se relaciona con otras.
La realidad es que vivimos en un mundo conectado, no hay información aislada. Por eso son tan importantes estos tipos de base de datos hoy en día, porque son capaces de almacenar, procesar y consultar conexiones de manera eficiente. Mientras que otras bases de datos calculan estas relaciones en el momento de la consulta a través de costosos joins y las bases de datos orientadas a grafos almacena las conexiones junto con los datos en el modelo.
Neo4j es una aplicación open source que está implementada en Java y Scala y fue lanzada en el año 2007. Actualmente cuenta con dos soluciones:
- Community Edition.
- Enterprise Edition.
Enterprise Edition incluye todo lo que Community Edition proporciona, además de otros requisitos empresariales interesantes como pueden ser:
- Copias de seguridad.
- Agrupación en clusters.
- Capacidad de conmutación por error.
A continuación vamos a ver algunas de las características más importantes y particulares por las que Neo4j es tan popular:
- Cuenta con un lenguaje de consulta propio llamado Cypher parecido a SQL, pero optimizado para grafos.
- Recorrido en grandes grafos, tanto en profundidad como en amplitud debido a la representación eficiente de nodos y relaciones.
- Los nodos disponen de etiquetas.
- Las relaciones tienen un nombre.
- Los nodos y relaciones tienen propiedades.
Casos de uso
- Recomendaciones en tiempo real y redes sociales: Neo4j permite conectar personas con intereses de una manera muy sencilla. De esta forma podemos ajustar productos y servicios a un público objetivo y personalizar las recomendaciones en función del perfil.
- Detección de fraude: Con Neo4j es mucho más sencillo descubrir ciertos patrones de fraude que con otras bases de datos sería muy difícil o imposible de detectar. Actualmente se está utilizando en sectores bancarios, seguros, etc.