Neo4j - Visão geral
Neo4j é o banco de dados gráfico de código aberto líder mundial, desenvolvido com a tecnologia Java. É altamente escalonável e sem esquemas (NoSQL).
O que é um banco de dados gráfico?
Um gráfico é uma representação pictórica de um conjunto de objetos onde alguns pares de objetos são conectados por links. É composto de dois elementos - nós (vértices) e relacionamentos (arestas).
O banco de dados de gráficos é um banco de dados usado para modelar os dados na forma de um gráfico. Aqui, os nós de um gráfico representam as entidades, enquanto os relacionamentos representam a associação desses nós.
Bancos de dados gráficos populares
Neo4j é um banco de dados gráfico popular. Outros bancos de dados de gráfico são Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph e AllegroGraph.
Por que bancos de dados gráficos?
Hoje em dia, a maioria dos dados existe na forma de relacionamento entre diferentes objetos e, mais frequentemente, o relacionamento entre os dados é mais valioso do que os próprios dados.
Os bancos de dados relacionais armazenam dados altamente estruturados que possuem vários registros armazenando o mesmo tipo de dados, de modo que podem ser usados para armazenar dados estruturados e não armazenam as relações entre os dados.
Ao contrário de outros bancos de dados, os bancos de dados gráficos armazenam relacionamentos e conexões como entidades de primeira classe.
O modelo de dados para bancos de dados gráficos é mais simples em comparação com outros bancos de dados e podem ser usados com sistemas OLTP. Eles fornecem recursos como integridade transacional e disponibilidade operacional.
Banco de dados de gráficos RDBMS Vs
A seguir está a tabela que compara os bancos de dados relacionais e os bancos de dados gráficos.
Sr. Não | RDBMS | Banco de dados de gráficos |
---|---|---|
1 | Mesas | Gráficos |
2 | Linhas | Nós |
3 | Colunas e Dados | Propriedades e seus valores |
4 | Restrições | Relacionamentos |
5 | Junta-se | Travessia |
Vantagens do Neo4j
A seguir estão as vantagens do Neo4j.
Flexible data model - O Neo4j fornece um modelo de dados flexível, simples e poderoso, que pode ser facilmente alterado de acordo com as aplicações e setores.
Real-time insights - O Neo4j fornece resultados com base em dados em tempo real.
High availability - O Neo4j está altamente disponível para aplicativos em tempo real de grandes empresas com garantias transacionais.
Connected and semi structures data - Usando o Neo4j, você pode representar facilmente dados conectados e semiestruturados.
Easy retrieval - Usando o Neo4j, você pode não apenas representar, mas também recuperar (percorrer / navegar) dados conectados com mais rapidez em comparação com outros bancos de dados.
Cypher query language- O Neo4j fornece uma linguagem de consulta declarativa para representar o gráfico visualmente, usando uma sintaxe ascii-art. Os comandos desta linguagem estão em formato legível por humanos e muito fáceis de aprender.
No joins - Usando o Neo4j, ele NÃO requer junções complexas para recuperar dados conectados / relacionados, pois é muito fácil recuperar seu nó adjacente ou detalhes de relacionamento sem junções ou índices.
Características do Neo4j
A seguir estão as características notáveis do Neo4j -
Data model (flexible schema)- O Neo4j segue um modelo de dados denominado modelo de gráfico de propriedade nativo. Aqui, o gráfico contém nós (entidades) e esses nós estão conectados entre si (representados por relacionamentos). Nós e relacionamentos armazenam dados em pares de valores-chave conhecidos como propriedades.
No Neo4j, não há necessidade de seguir um esquema fixo. Você pode adicionar ou remover propriedades conforme a necessidade. Ele também fornece restrições de esquema.
ACID properties - Neo4j oferece suporte a regras ACID (atomicidade, consistência, isolamento e durabilidade) completas.
Scalability and reliability- Você pode dimensionar o banco de dados aumentando o número de leituras / gravações e o volume sem afetar a velocidade de processamento da consulta e a integridade dos dados. Neo4j também fornece suporte parareplication para segurança e confiabilidade de dados.
Cypher Query Language- O Neo4j fornece uma linguagem de consulta declarativa poderosa conhecida como Cypher. Ele usa arte ASCII para representar gráficos. Cypher é fácil de aprender e pode ser usado para criar e recuperar relações entre dados sem usar consultas complexas como Joins.
Built-in web application - Neo4j fornece uma Neo4j Browseraplicativo da web. Usando isso, você pode criar e consultar seus dados gráficos.
Drivers - Neo4j pode trabalhar com -
API REST para trabalhar com linguagens de programação como Java, Spring, Scala etc.
Java Script para trabalhar com estruturas MVC de UI, como Node JS.
Ele oferece suporte a dois tipos de API Java: API Cypher e API Java Nativa para desenvolver aplicativos Java. Além disso, você também pode trabalhar com outros bancos de dados, como MongoDB, Cassandra, etc.
Indexing - Neo4j oferece suporte a índices usando o Apache Lucence.