Что такое база данных Graph?
Граф - это изобразительное представление объектов, которые связаны некоторой парой ссылок. Граф содержит два элемента: Узлы (вершины) и отношения (ребра).
База данных графов - это база данных, которая используется для моделирования данных в виде графика. Он хранить любые данные с помощью:
- Вершины
- Отношений
- Свойства
Узлы: Узлов являются записи/данными в базах данных графов. Данные хранятся как свойства, а свойства - это простые пары имя/значение.
Узлы могут быть сгруппированы вместе, применяя метку к каждому члену. Узел может иметь ноль или более меток. Ярлыки не имеют никаких свойств. Хранение данных в Neo4j аналогично добавлению других записей в другие базы данных.
Отношения: Используется для соединения узлов. Он указывает, как связаны узлы.
- Отношения всегда имеют направление.
- Отношения всегда имеют тип.
- Отношения формы шаблонов данных.
- Свойства: Свойства называются значениями данных.
Популярные Graph Базы данных
Neo4j является самой популярной базы данных Graph. Другие базы данных графа
- Oracle NoSQL Database
- OrientDB
- HypherGraphDB
- GraphBase
- InfiniteGraph
- AllegroGraph и т.д.
- Почему GraphDB
база данные Graph очень полезна сейчас день, потому что в базах данных графов данные существуют в виде взаимосвязи между различными объектами. Связь между данными более ценна, чем сами данные.
Реляционные базы данных хранят высокоструктурированные данные, которые имеют несколько записей, хранящих данные того же типа, что позволяет им использовать структурированные данные, и они не сохраняют отношения между данными, в то время как базы данных диаграмм хранят отношения и соединения, класса.
Модель данных для графических баз данных проста по сравнению с другими базами данных и может использоваться с системами OLTP. Они обеспечивают такие функции, как целостность транзакций и операционная доступность.
Refrence
Для получения более подробной информации: graph-database
Что такое Neo4j?
Neo4j - это база данных NoSQL. Он обладает высокой масштабируемостью и без схем. Это самая популярная в мире система управления базами данных. Neo4j был разработан Neo-технологией и называется транзакционной базой данных, совместимой с ACID, с собственным хранилищем графов и обработкой.
Neo4j реализован на языке Java, и к нему может быть доступен другой язык с использованием языка запросов Cypher (CQL) через транзакционную HTTP-конечную точку.
Neo4j - это путь быстрее, чем традиционные базы данных.
Neo4j Рабочие
- Neo4j хранит и отображает данные в виде графика. В Neo4j данные представлены узлами и отношениями между этими узлами.
- Базы данных Neo4j (как и в любой базе данных графиков) сильно отличаются от реляционных баз данных, таких как MS Access, SQL Server, MySQL и т. Д. Реляционные базы данных используют таблицы, строки и столбцы для хранения данных. Они также представляют данные в табличном виде.
- Neo4j не использует таблицы, строки или столбцы для хранения или представления данных.
- Neo4j лучше всего подходит для хранения данных, имеющих много взаимосвязей , поэтому графовые базы данных, такие как Neo4j, имеют преимущество и намного лучше работают с реляционными данными, чем реляционные базы данных .
- Для графической модели обычно не требуется предопределенная схема. Таким образом, не нужно создавать структуру базы данных, прежде чем загружать данные (как в реляционной базе данных). В Neo4j данные представляют собой структуру . Neo4j является «необязательной» схемой «СУБД».
- В Neo4j нет необходимости устанавливать ограничения первичного ключа/внешнего ключа на , чтобы определить, какие поля могут иметь отношение и к каким данным. Вам просто нужно определить отношения между узлами, которые вам нужны.
Refrence
для более подробной информации: neo4j
Что такое ничтожество?
Cypher - это декларативный язык, основанный на SQL, для визуального описания паттернов в графиках с использованием синтаксиса ascii-art.
Это позволяет нам указать, что мы хотим выбрать, вставить, обновить или удалить из наших данных графика, не требуя, чтобы мы точно описали, как это сделать.
Для получения более подробной информации: About cypher
Exploration База данных
Список всех метки узла
labels(n)
Список всех узлов метки (и сосчитать их)
MATCH n
RETURN distinct labels(n), count(n) as count_n
ORDER BY count_n desc
Список всех отношений (и сосчитать)
MATCH()-[r]-()
RETURN distinct type(r), count(r) as count_r
ORDER BY count_r desc
Список всех узлов, которые не имеют все отношения
MATCH (n)-[r]-()
WHERE r is null
RETURN n, count(n)
Что связано, и как
MATCH (a)<-[r]-(b)
RETURN DISTINCT labels(a) AS This, type(r) as To, labels(b) AS That
Полезные запросы
Match по стоимости недвижимости
MATCH (n:User {id:1234})
RETURN n
или
MATCH (n:User)
WHERE n.id = 1234
RETURN n
Найти узлы, которые не имеют определенного отношения
MATCH (u:User)
WHERE NOT (u)-[:likes]->(:Seafood)
RETURN u.name as UserName
Совпадение узлов с использованием регистронезависимых регулярное_выражение
MATCH (u:User)
WHERE u.name =~ '(?i)Alex.*'
RETURN u.name
узлы, которые не имеют отношения двух (определенного типа)
MATCH (u:User)
WHERE NOT (:User)<-[:likes]-(u)-[:likes]->(:User)
RETURN u.name
Для более запросов: cypher queries
Чтобы добавить ответы, ознакомьтесь с онлайн-учебником cypher: http://neo4j.org/learn/cypher. Хотелось бы получить некоторые отзывы от вас об этом. –
Ваш учебник работает только для данной уже заполненной базы данных (фильмов). Я хочу что-то более основное. Кроме того, некоторый код не работал с той же базой данных в моем локальном хосте. – blagus
В учебное пособие включена консоль для песочницы, которая уже заполнена. Вы можете дублировать эту настройку, выполнив инструкцию create, показанную как «Настройка графика», когда вы прокручиваете вверх. Можете ли вы уточнить, что не получилось? –