neo4j | |
---|---|
Tipo de | Gráfico DBMS |
Desarrollador | Tecnología Neo |
Escrito en | Java y Scala |
Primera edición | febrero de 2010 [1] |
plataforma de hardware | máquina virtual de Java |
ultima versión |
|
Versión de prueba | 3.4.0 alpha10 (20 de marzo de 2018 ) |
Licencia | GNU GPL 3 [3] y AGPL v3.0 [3] |
Sitio web | neo4j.com |
Archivos multimedia en Wikimedia Commons |
Neo4j es un sistema de gestión de bases de datos gráficas de código abierto implementado en Java . A partir de 2015, se considera el DBMS gráfico más común [4] . El desarrollador es la empresa americana Neo Technology, el desarrollo se viene realizando desde el año 2003 [5] .
Los datos se almacenan en su propio formato, especialmente adaptado para la presentación de información de gráficos, este enfoque, en comparación con el modelado de una base de datos de gráficos utilizando un DBMS relacional , permite una optimización adicional en el caso de datos con una estructura más compleja [6] . También se afirma que existen optimizaciones especiales para unidades SSD , mientras que el procesamiento del gráfico no requiere su ubicación completa en la RAM del nodo informático, por lo que es posible procesar gráficos suficientemente grandes.
Las principales características transaccionales [7] son la compatibilidad con ACID y el cumplimiento de las especificaciones JTA , JTS y XA . La interfaz de programación de aplicaciones DBMS se ha implementado para muchos lenguajes de programación, incluidos Java , Python , Clojure , Ruby , PHP y también se ha implementado una API de estilo REST . Puede ampliar la interfaz de programación tanto con la ayuda de complementos del lado del servidor como con la ayuda de extensiones no administradas (extensiones no administradas ); los complementos pueden agregar nuevos recursos a la interfaz REST para los usuarios finales, y las extensiones le permiten tomar el control total de la API y pueden contener código arbitrario, por lo que deben usarse con cuidado [8] .
El DBMS utiliza su propio lenguaje de consulta: Cypher , pero las consultas se pueden realizar de otras formas, por ejemplo, directamente a través de la API de Java y en el lenguaje Gremlin creado en el proyecto de código abierto TinkerPop. Cypher no es solo un lenguaje de consulta, sino también un lenguaje de manipulación de datos, ya que proporciona funciones CRUD para el almacenamiento de gráficos [9] .
Sistemas de gestión de bases de datos (DBMS) | |
---|---|
Servidor de cliente | |
Motores | |
Servidor de archivos |