Статьи

PHP и Neo4j: введение в графовые базы данных

Долгое время данные обычно хранились в табличной форме, чтобы повысить индексирование и удобочитаемость. В настоящее время тенденции меняются, поскольку базы данных Graph быстро набирают популярность. На самом деле было бы неправильно называть их «будущим СУБД».

Новое в мире графиков и баз данных? Не волнуйтесь, к концу этой вводной статьи у вас будут глубокие теоретические знания по этой теме — достаточно, чтобы легко пролистать оставшуюся часть серии — фактическую реализацию.

Что такое графики?

Графики — это самая общая форма визуального хранения данных в мире структур данных. Графики хранят данные в виде узлов (блоков данных), где один узел указывает на другой. Мы можем добраться до любого блока данных из другого.

Что такое базы данных графиков?

Технически, базы данных графов — это способ хранения данных в форме узлов, ребер и связей, которые обеспечивают смежность без индекса.

Теперь давайте поймем это: данные хранятся в виде узлов , каждый узел (или блок данных) связан с другим, и это соединение называется ребром . Несколько слов также упоминаются на этих краях, чтобы дополнительно определить связь между одним узлом и другим — это описание называется отношением . Поскольку каждый узел может непосредственно искать узел, к которому он подключен (все они связаны через ребра, помните?), Это устраняет необходимость поиска в блоке данных по его «индексу», отсюда и термин «безиндексная смежность». ,

Сегодня большинство сайтов социальных сетей, таких как Facebook, используют графические базы данных для хранения своего огромного количества данных.

Использование баз данных Graph

Базы данных графов находят свое применение, когда данные, которые должны храниться, являются ассоциативными, то есть когда отношения между двумя блоками данных имеют большое значение. Реляционные базы данных (табличная форма) не так хороши, когда существуют отношения между двумя блоками данных, особенно если это отношения важнее, чем фактические блоки данных. Графовые базы данных — это очень интуитивный и выразительный способ описания любой формы данных — как будто мы что-то пишем на досках. Они позволяют вам представлять связанные данные как они есть — как набор объектов, связанных набором отношений, каждый из которых имеет свой набор описательных свойств.

Мы используем их, когда …

  • … Имея дело со связанными данными. Например, платформа социальной сети — где наряду с личными данными база данных зависит от того, как два человека связаны друг с другом, потому что объем данных, видимых между двумя друзьями, не будет одинаковым, если они не друзья, а только знакомые ,

  • … Обход предпочтительнее индексации. Это означает, что мы будем «перемещаться» по части базы данных, а не напрямую переходить к ней. Например, для получения разрешения на вывоз автомобиля с завода требуется, чтобы у автомобиля был двигатель и обивка (не совсем, но терпите меня). На уровне управления процедура будет состоять из проверки всех автомобилей, которые имеют вышеупомянутые свойства. Если компания использует базы данных графов для хранения этих данных, они будут проверять каждый узел (автомобиль), к которому привязаны оба свойства, а если нет, отбрасывать и двигаться вперед.

  • … Решение проблемы коммивояжера. Это очень распространенные проблемы, когда необходимо рассчитать минимально возможный маршрут для достижения точки B из точки A, когда доступно более одного варианта. Используя различные алгоритмы минимального расстояния, можно найти путь с минимальными затратами, если места назначения хранятся в виде графовых баз данных.

  • … Следующий искомый предмет зависит от предыдущего. Например, база данных для глобального предприятия, которая ведет учет того, как печенье делается из пшеницы. Они увидят, как пшеница течет через фермера в грузовик, на фабрику, в смеситель, в печь, в упаковку и, наконец, в супермаркет. Здесь все ступени могут быть связаны друг с другом через узлы, и, таким образом, переход от одного к другому будет простым.

пример

В этом примере у Майка есть учитель по имени Джордж, чей сын Райан — его друг. Это было представлено записью отношений по краям и свойств в круге. Это очень близко к тому, как данные хранятся в графической базе данных. Было бы не так просто, если бы мы использовали таблицу, чтобы изобразить такие отношения.

Реальные случаи использования графовых баз данных

Графические базы данных становятся очень популярными в реальном мире. Вот некоторые области, где графовые базы данных нашли свое применение среди ведущих мировых компаний:

  • Pagerank : Google использует концепцию графовых баз данных при расчете порядка отображения результатов поиска. Направленный граф используется для соединения всемирных веб-страниц вместе в виде узлов и гиперссылок друг с другом в виде ребер. Количество исходящих ребер на график назначается в качестве веса для ребра. Таким образом, рейтинг страницы определяется по весу на одном ребре по сравнению с другими ребрами.

  • Управление данными : Cisco, одна из ведущих мировых сетевых организаций, недавно приняла иерархическую систему управления, которая централизованно основана на графической утилите базы данных Neo4j. Это обеспечивает им очень быстрый доступ к данным по сравнению с Oracle RAC. Они также реализуют эту концепцию в иерархии продуктов, чтобы обслуживать пользователей в режиме реального времени.

  • Социальная взаимосвязь : такие сайты, как Facebook, Twitter, LinkedIn, Viadeo, Glassdoor, хранят свои связи в виде графических баз данных в виде отношений. Рекомендации важны с точки зрения их пользователей. Отношения и связи могут быть очень хорошо управляемы и доступны в режиме реального времени по сравнению с реляционными базами данных.

  • Управление сетью : телекоммуникационные компании, такие как SFR, Telenor, Huwai, JustDial, перешли на графические базы данных для моделирования своей сети, состоящей из тесно взаимосвязанных планов, клиентов и групп. Графики помогают им анализировать сети и центры обработки данных, а также избавляют их от обычного трудоемкого процесса аутентификации. Самое главное, что с помощью графиков также учитываются случаи сбоев, и планы восстановления всегда находятся на расстоянии одного узла, что, очевидно, экономит много времени при возникновении любой опасности.

  • Управление безопасностью и доступом . В креативном облаке Adobe используется структура графической базы данных, которая связывает детали аутентификации и тем самым предоставляет доступ к контенту как его администраторам, так и пользователям.

  • Биоинформатика : Era7 — это компания, которая занимается секвенированием ДНК, т. Е. Хранением информации о белках, ферментах и ​​т. Д. Это осуществляется с помощью Bio4j, которая представляет собой систему БД графов биоинформатики. Он хранит информацию о генах, белках и другую сложную взаимосвязанную информацию. Bio4j обладает всеми возможностями Neo4j, ведущей в мире графовой базы данных, и, следовательно, является очень масштабируемой и гибкой.

Вывод

Я надеюсь, что теперь вы немного лучше понимаете теорию баз данных графов. Скоро мы подробно рассмотрим, как использовать Neo4j, ведущую в мире графовую базу данных, с PHP.

Если вы хотите охватить конкретный случай использования, пожалуйста, укажите это в комментариях!