Neo4j, una base de datos de grafos | el holgazán

viernes 6 de junio de 2008

Neo4j, una base de datos de grafos

Neo4j es un motor de persistencia robusto, escalable y empotrado para la gestión eficiente de datos semiestructurados y orientados a redes.


  • Orientado a redes. Al igual que el modelo relacional está basado en tablas, columnas y filas, Neo está basado en nodos, propiedades y relaciones, que pueden formar una gran red o grafo.
  • Especialmente indicado para datos semiestructurados. Donde sólo algunas propiedades son obligatorias y la gran mayoría son opcionales.
  • Está empotrado. Es una librería Java no intrusiva y de poco peso.
  • Rendimiento y escalabilidad. A sido diseñado teniendo en mente estas cuestiones y ha sido probado con grandes redes (de más de 100 millones de nodos, propiedades y relaciones).
  • Robusto. Soporta JTA y JTS. Es maduro, hasta 3 años en producción en sistemas 24x7.
  • La API es muy sencilla, y permite representar los datos de una manera flexible e intuitiva.
  • Las consultas están basadas en la navegación por los nodos y relaciones. También permite usar "Transversers", que son objetos para realizar consultas del tipo: "dime todos los amigos de Morfeo y los amigos de sus amigos", o "¿cónoce Trinity a alguien que esté emparentado con un agente?".
  • Cuenta con versiones comerciales y de software libre.
Sin embargo:
  • Requiere cierta curva de aprendizaje. No hay demasiada gente que sepa de modelos orientados a redes.
  • Las herramientas existentes de consulta son muy rudimentarias.
  • Es mucho peor que el modelo relacional para datos estructurados que requieren consultas arbitrarias.
Ver más en la documentación.

(Vía InfoQ).