Neo4j Lo Q Tengo Q Decirr

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

NEO4J,

■ Es una base de datos open- source orientada a grafos, está escrita en


java y pertenece a este tipo de base de datos NOSQL, que últimamente
están tan en auge.

LO QUE TENGO Q DECIR: Pero qué es el ¿augue? El augue de las bases


de datos No relacionales significa que las

Bases de datos que ya no dependen de tablas, columnas, filas o esquemas

para almacenar y trabajar con la información, sino que nos permiten

almacenar estructuras: dinámicas de datos, gráficos, pares de clave valor,

etc.

Las bases de datos NoSQL nos aportan una buena escalabilidad, alta

disponibilidad y resiliencia, además de facilitarnos el desarrollo.

HISTORIA

LO QUE TENGO Q DECIR: Neo4j es usado por cientos de miles de

compañías en una gran variedad de industrias: ebay, wallmart, telenor,…

Código abierto, o sea que este se enfoca más en los beneficios prácticos
EVOLUCION
No digo nada más

CARACTERISTICAS PRIMORDIALES
LO QUE TENGO Q DECIR: En lo q llevo hablándoles, durante este proceso ya
se han visto algunas características propias de este tipo de bases de datos, pero
ahora se profundizará un poco más en los beneficios que nos aportan los grafos
aplicados al campo de las bases de datos.
Ya que Concretamente, se encontrará una mejora en un conjunto de casos de uso
para los cuales aplicar una solución orientada a los grafos puesto que esto nos
mejora en varios órdenes de magnitud el rendimiento, o que nos proporciona una
latencia mucho más baja comparándola con otras soluciones NoSQL
AGILIDAD: De un tiempo a esta parte y cada vez más frecuentemente, o sea que las
metodologías ágiles están comenzando a dirigir los desarrollos de software, tanto de
las grandes como de las pequeñas empresas. YA QUE Este tipo de metodologías
exigen un compromiso, unas fechas y una serie de entregas que vienen siendo muy
comunes y más frecuentes que las formas tradicionales de trabajar.
La naturaleza sin esquema de las bases de datos orientadas a grafos hace que se
perfilen como una opción mucho más viable que las bases de datos mucho más
rígidas de esquema y con los mecanismos más propios de sistemas relacionales.
FLEXIBILIDAD estas bases de datos orientadas a grafos nos permiten modelar la base
de datos de forma gradual. Es decir, es natural comenzar a diseñar una base de datos
una vez que se ha comprendido bien el problema, pero también es natural que, a
medida que va avanzando la propia experiencia en el dominio que se está tratando,
esto va creciendo también nuestra comprensión sobre el espacio del problema.
Ya que la utilización de grafos permite alterar y modificar diferentes partes del
modelo de datos de una forma rápida y natural, a diferencia de otras bases de datos
para las que van a realizar un cambio de estas características supone un esfuerzo
considerable tanto en tiempo como en rendimiento.
RENDIMIENTO: se puede obtener de las bases de datos orientadas a grafos es
cuando se parte de la base de que los datos que se van a almacenar, o sea estas
poseen relaciones entre sí o están conectados de alguna manera. Y Además, en lo
que respecta concretamente a los tiempos de consulta, las bases de datos
relacionales habitualmente comienzan a arrojar tiempos muy elevados en el
momento en el que se hace un uso intensivo de sentencias join. Esto es debido a que
los tiempos de respuesta se deterioran en gran medida a medida que la base de
datos se va haciendo más y más grande.
Ya que sin embargo, las gráficas de rendimiento en lo que a consultas se refiere tiene
esto a permanecer constante en las bases de datos orientadas a grafos. es así porque
las consultas se localizan únicamente en la porción del árbol que aplica a la consulta.
Por tanto, el tiempo de consulta será proporcional al tamaño del subárbol concreto
sobre el que se esté realizando la query en lugar de ser proporcional a la base de
datos entera.

TRANSACCIONES ACID

Neo4j tiene soporte completo en lo que a transacciones ACID se refiere. Esto


convierte a Neo4j en una base de datos transaccional, y por este motivo se acerca
mucho más que el resto de bases de datos NoSQL a las bases de datos relacionales
No les comentare mucho más lo que son las transacciones ACID, Pero si las
características propias de Neo4j. Todas las operaciones de base de datos, tanto
accesos a los grafos como a los índices y a los esquemas se realizan como
transacciones. Sin embargo, los datos obtenidos mediante recorridos no están
protegidos de modificaciones por parte de otras transacciones.
ARQUITECTURA
En arquitectura High Available Cluster, un clúster está compuesto de una instancia
principal (máster) y cero o más instancias secundarias (slave).
• Todas las instancias, tanto la principal como las secundarias, tienen una copia
completa de toda la base de datos creada con Neo4j.
• Todas las instancias se comunican constantemente con el resto para coordinarse y
conocer su estado (flechas verdes en la imagen).
• Las instancias secundarias se comunican con la principal para obtener
actualizaciones de los datos (flechas azules en la imagen).
• Las lecturas se pueden hacer sobre cualquier instancia, garantizando la
accesibilidad (disponibilidad).
Las escrituras pueden hacerse directamente sobre la instancia principal o sobre una
secundaria: o sea
• Si se realizan directamente sobre la principal, una vez acabada con éxito la
escritura, esta es propagada a un número determinado de secundarias.

• Si esto se realiza sobre una instancia secundaria, esta es propagada a la instancia


principal. En este caso, la escritura no se considerará exitosa hasta que se escriba en
la principal. porque, la instancia secundaria tiene que estar correctamente
actualizada, esto, debe tener los mismos datos que la principal en el momento de la
escritura.

EN LA ARQUITECTURA CASUAL CLUSTER EXISTEN DOS TIPOS DE COMPONENTES:


• CORE SERVERS: su principal ocupación u obligación es el de salvaguardar los
datos, siguiendo el protocolo Raft. RAFT, es un algoritmo de consenso
que está diseñado para ser fácil de entender. Porque este Es
equivalente a fallas y rendimiento. La diferencia es que este se
descompone en subproblemas relativamente independientes ya q
aborda de forma limpia todos los fragmentos principales o sea los más
necesarios para los sistemas prácticos. Y de esta forma, la escritura de
datos recibida por parte de una aplicación cliente se propaga desde un Core
Server a los demás, y se considera exitosa si, al menos, la mitad más uno de
los Core Servers la ha efectuado con éxito.

• READ REPLICAS: la obligación de estas réplicas es el de escalar la carga de


trabajo de las operaciones de lectura. O sea que en este caso estas Contienen
réplicas de los datos almacenados en los Core Servers, y pueden recibir
peticiones de lectura por parte de los clientes. pero determinado tiempo (o
sea q por lo general esto usualmente se da en , milisegundos), lanzan una
petición asíncrona a un Core Server para recibir una copia actual de los datos.
Esta arquitectura garantiza que un cliente que haya efectuado determinadas
operaciones de escritura, al realizar una operación de lectura este mismo cliente vea
siempre los datos que el mismo ha escrito.

APLICABILIDAD
Diferentes empresas internacionales utilizan
Neo4j con diferentes objetivos:
• IBM: análisis de impacto o recomendaciones
en tiempo real en base a los datos.
• Ebay: para la logística de los servicios de
entrega (planificación de itinerarios, o sea hace
referencia a la ruta en la que se describen los lugares por los que se pasa.).
• Airbnb: este lo utiliza como un portal interno
para que los empleados de la empresa
puedan explorar los datos de clientes y
reservas.
• Otros usuarios: Microsoft, UBS, Walmart,
NASA, etc.

CREAR NODO CON CREATE

En la práctica vamos a crear nodos simples, con sus


propiedades y con la etiqueta, ya q la etiqueta nos
permite agrupar nodos que son del mismo tipo y así
poder estructurar la base de datos mucho mejor.
Utilizaremos el operador CREATE, este operador nos
permite crear tanto nodos como relaciones.
Escribimos CREATE y el nombre que queramos, en
este caso (laroNodo: con la etiqueta persona y ahora los
atributos o propiedades que tenga nuestro nodo van a
estar entre llaves, recuerden todas las propiedades q le
pongamos a ese nodo tienen q estar siempre separadas
entre coma, es decir [nombre: ‘laro’ y hay q tener en
cuenta que todo lo q se haga en texto, tiene q ir en
comillas. Bueno, Ya que tenemos la propiedad que es
el nombre, ahora colocamos otro y tiene q ir separado
por coma, como se dijo anteriormente ahí se muestra
anio_nacimiento: 1998 ])(ya en ese caso tenemos un
nodo q se llama laronodo bajo la etiqueta persona y con
una propiedades concretas las cuales están separas
por comas) ahí es cuando le daremos play y se creara
nuestro nodo, después en la práctica se mostrar un
estilo más práctico. Y más entendible
CONSULTAS CON EL OPERADOR MATCH
Supongamos q queremos ver nuestro nodo el q se
a creado, utilizaremos el operador MATCH, ya q
este operador nos permite mostrar todos los
nodos de nuestra base de datos según como
queramos
Una forma fácil y sencilla, de mostrar toda la base
de datos utilizando el operador match,
MATCH (N) return n

OPERACIÓN DELETE
La DELETE esta cláusula se utiliza para eliminar propiedades de nodos y relaciones, y para
eliminar etiquetas de nodos.

O sea, Eliminar etiquetas de un nodo es una operación idempotente: si intentamos eliminar una
etiqueta de un nodo que no tiene esa etiqueta, no pasara nada. Los esquemas de la consulta nos
dirán si es necesario hacer algo o no.

INDICES
Un índice de base de datos es una copia redundante de algunos de los datos de la
base de datos, con el fin de hacer más eficientes las búsquedas de datos
relacionados. Esto tiene el precio de espacio de almacenamiento adicional y escrituras
más lentas, por lo que hay q decidir qué indexar y qué no indexar es una tarea
importante y, a menudo, no trivial.
Una vez que se ha creado un índice, el DBMS (sistema de administración de base de
datos) lo administrará y lo mantendrá actualizado. Y ya Neo4j recogerá y comenzará a
utilizar automáticamente el índice una vez que se haya creado y puesto en línea.
Cypher permite la creación de índices en una o más propiedades para todos los nodos
que tienen una etiqueta determinada:
• El índice que se crea en una propiedad única para cualquier etiqueta determinada se
denomina índice de propiedad única.

• Y el índice que se crea en más de una propiedad para cualquier etiqueta determinada
se denomina índice compuesto.

También podría gustarte