Промпт для обучения Cypher и Neo4j
Промпт для обучения Cypher. Станьте экспертом в работе с графовыми базами данных Neo4j. Этот промпт – сделает из ИИ персонального ментора, который проведет вас через основы Cypher шаг за шагом, начиная с теории и заканчивая практическими упражнениями.
Изучите CRUD операции, фильтрацию, агрегатные функции и паттерны. Подробные инструкции и примеры помогут вам быстро освоить язык запросов Cypher и стать уверенным пользователем Neo4j. Промпт разработан для начинающих с базовыми навыками программирования.
Цель: Обеспечить всестороннее и понятное обучение основам языка Cypher для начинающих, помогая им приобрести навыки построения эффективных запросов для работы с графовыми базами данных Neo4j.
Контекст: пользователь, начинающий специалист с базовыми знаниями программирования, но без опыта работы с графовыми базами данных и языком Cypher.
План обучения:
1. Основы графовых баз данных: Объяснение, что такое графовая база данных, чем она отличается от реляционных баз данных, и почему графовые базы данных эффективны для определенных задач.
Ожидаемый результат: Пользователь понимает основные концепции графовых баз данных. Пример вопроса: Что такое основное отличие графовой базы данных от реляционной?
2. Узлы, связи и свойства: Введение в язык Cypher, начиная с представления данных в виде узлов, связей и свойств. Объяснение, как это соотносится с графовой моделью.
Ожидаемый результат: Пользователь знает, как представить данные в виде узлов, связей и свойств. Пример вопроса: Как в Cypher представляется информация об объекте и его взаимосвязи с другими объектами?
3. CRUD операции (Создание, Чтение, Обновление, Удаление): Обучение основам синтаксиса Cypher для выполнения CRUD операций. Приведение примеров запросов.
Ожидаемый результат: Пользователь может создавать, читать, обновлять и удалять данные в Cypher. Пример вопроса: Приведите пример запроса для создания нового узла в графе.
4. Фильтрация данных (WHERE и MATCH): Демонстрация того, как использовать предложения WHERE и MATCH для фильтрации результатов. Объяснение операторов сравнения и логических операторов.
Ожидаемый результат: Пользователь может фильтровать данные по различным критериям. Пример вопроса: Как выбрать только те узлы, которые соответствуют определенному условию?
5. Агрегатные функции: Объяснение, как использовать агрегатные функции, такие как count(), sum(), avg(), min(), max() для анализа данных.
Ожидаемый результат: Пользователь может выполнять анализ данных с использованием агрегатных функций. Пример вопроса: Как посчитать количество узлов определенного типа в графе?
6. Паттерны: Демонстрация того, как использовать паттерны для поиска сложных взаимосвязей в графе. Объяснение работы с переменными и параметрами.
Ожидаемый результат: Пользователь может находить сложные взаимосвязи с помощью паттернов. Пример вопроса: Объясните, как использовать переменные в паттернах Cypher.
7. Транзакции: Обучение управлению транзакциями в Cypher.
Ожидаемый результат: Пользователь понимает принципы работы с транзакциями. Пример вопроса: Зачем нужны транзакции в Cypher?
8. Практические упражнения: После каждой темы предоставление практических заданий и упражнений с подробными решениями для закрепления материала.
Ожидаемый результат: Пользователь может применять полученные знания на практике.
9. Проверка понимания: Постоянная проверка понимания материала путем вопросов и просьб объяснить сложные концепции своими словами.
Ожидаемый результат: Пользователь демонстрирует понимание материала и может объяснить сложные концепции.
10. Распространенные ошибки: Предупреждение о распространенных ошибках при написании Cypher-запросов и советы, как их избежать.
Ожидаемый результат: Пользователь избегает распространенных ошибок и понимает причины их возникновения.
11. Дополнительные ресурсы: Предоставление ссылок на официальную документацию Neo4j и Cypher для дальнейшего изучения материала.
Ожидаемый результат: Пользователь знает, где найти дополнительную информацию.
Пример работы "Промпт для обучения Cypher и Neo4j"
Отлично! Я с большим удовольствием выступлю в роли вашего ментора по языку Cypher. Я подготовил для вас структурированный и подробный курс, который шаг за шагом проведет вас от самых основ к уверенному владению языком.
Добро пожаловать на курс «Cypher для начинающих»!
Меня зовут DeepSeek-Cypher, и я буду вашим гидом в мире графовых баз данных. Давайте начнем наше путешествие.
1. Основы графовых баз данных
Что такое графовая база данных? Представьте себе не таблицы с рядами и колонками, а сеть точек, соединенных линиями. Это и есть граф.
- Узлы (Nodes) — это точки на графе. Они представляют собой сущности (объекты), например, людей, товары, компании, города.
- Связи (Relationships) — это линии, соединяющие узлы. Они показывают, как сущности связаны между собой. Связи всегда имеют направление (-> или <-) и тип (например,
:LIKES,:FRIENDS_WITH,:BOUGHT). - Свойства (Properties) — это пары ключ-значение (как в словаре), которые хранят данные об узлах и связях. Например, у узла
Personмогут быть свойстваname: "Анна",age: 30.
Основное отличие от реляционных (SQL) баз данных:
В реляционных базах данных связи между таблицами вычисляются во время выполнения запроса (через операторы JOIN). В графовых базах данные уже хранятся как связанные. Поиск связей 3-го, 4-го, 5-го порядка в графовой базе происходит несоизмеримо быстрее, потому что это просто «прогулка» по уже готовым связям, а не их каждодневное вычисление.
Почему они эффективны? Графовые базы идеальны для задач, где важны связи: социальные сети (друзья друзей), рекомендательные системы («пользователи, купившие этот товар, также покупали...»), обнаружение мошенничества (выявление сложных схем), анализ транспортных сетей (поиск маршрутов).
❓ Вопрос на проверку: Что такое основное отличие графовой базы данных от реляционной?
✅ Ответ: Ключевое отличие — в способе хранения и обработки связей. Реляционные базы вычисляют связи между данными в момент запроса с помощью
JOIN, что может быть медленно для сложных связей. Графовые базы хранят связи как «первоклассных граждан» данных, что позволяет очень быстро обходить и анализировать сложные сети взаимосвязей.
2. Узлы, связи и свойства
Давайте посмотрим, как эти концепции реализуются в Cypher.
Синтаксис:
* Узел: Обозначается круглыми скобками (). Метка узла (его тип) указывается через двоеточие :Label. Свойства — в фигурных скобках {key: value}.
* (:Person) — просто узел с меткой Person.
* (:Person {name: "Анна", age: 30}) — узел с меткой и свойствами.
* Связь: Обозначается квадратными скобками []. Тип связи указывается через двоеточие :TYPE. Связь всегда имеет направление --> или <--.
* -[:LIKES]-> — связь с типом LIKES.
* -[:FRIENDS_WITH {since: 2010}]-> — связь с типом и свойством.
Как представить информацию?
Допустим, мы хотим представить факт: «Анна работает в компании Neo4j».
В Cypher это будет выглядеть как паттерн:
(anna:Person {name: "Анна"}) -[:WORKS_AT]-> (company:Company {name: "Neo4j"})
❓ Вопрос: Как в Cypher представляется информация об объекте и его взаимосвязи с другими объектами? ✅ Ответ: Информация представляется в виде шаблонов (паттернов). Объект — это узел с меткой и свойствами в круглых скобках:
(:Label {property: value}). Его взаимосвязь с другим объектом — это направленная связь с типом между двумя узлами:(node1) -[:TYPE]-> (node2).
3. CRUD операции
Теперь перейдем к практике. Мы будем работать с базой данных, представляющей социальную сеть.
Создание (Create) Создадим двух пользователей и свяжем их дружбой.
CREATE
(anna:Person {name: 'Анна', age: 30}),
(boris:Person {name: 'Борис', age: 25}),
(anna) -[:FRIENDS_WITH {since: 2022}]-> (boris)
CREATE буквально создает указанные узлы и связи.
Чтение (Read) - Самый важный оператор MATCH
Найдем всех людей с именем "Анна" и вернем их имена.
MATCH (person:Person {name: 'Анна'})
RETURN person.name
MATCH ищет шаблоны в графе, а RETURN указывает, какие данные вернуть.
Обновление (Update)
Исправим возраст Анны. Сначала найдем узел, а затем изменим его свойство с помощью SET.
MATCH (anna:Person {name: 'Анна'})
SET anna.age = 31
RETURN anna
Удаление (Delete) Удалять нужно осторожно. Чтобы удалить узел, сначала нужно удать все его связи.
Удалим Бориса и его связь дружбы:
MATCH (boris:Person {name: 'Борис'}) -[rel:FRIENDS_WITH]- ()
DELETE rel, boris
Или более современный и безопасный вариант с DETACH DELETE, который автоматически удаляет все связи узла:
MATCH (boris:Person {name: 'Борис'})
DETACH DELETE boris
❓ Вопрос: Приведите пример запроса для создания нового узла в графе. ✅ Ответ:
cypher CREATE (:Movie {title: 'Матрица', released: 1999})Этот запрос создаст один узел с меткойMovieи двумя свойствами.
4. Фильтрация данных (WHERE и MATCH)
Часто мы не знаем всех свойств для точного поиска в MATCH. Здесь на помощь приходит WHERE.
Пример 1: Найти всех людей старше 28 лет.
MATCH (p:Person)
WHERE p.age > 28
RETURN p.name
Это эквивалентно более короткой записи:
MATCH (p:Person {age: 30}) // Ищет точное совпадение
RETURN p.name
Но WHERE гораздо гибче!
Пример 2: Найти людей, чье имя начинается на "А" (используем регулярное выражение).
MATCH (p:Person)
WHERE p.name =~ 'А.*'
RETURN p.name
Пример 3: Комбинация условий (логические операторы AND, OR, NOT).
MATCH (p:Person)
WHERE p.age >= 25 AND p.age <= 35
RETURN p.name, p.age
❓ Вопрос: Как выбрать только те узлы, которые соответствуют определенному условию? ✅ Ответ: Для фильтрации используется предложение
WHEREпослеMATCH. В нем задаются условия для свойств узлов или связей с использованием операторов сравнения (=,<>,>,<,>=,<=) и логических операторов (AND,OR,NOT). Например:MATCH (p:Person) WHERE p.age > 25 RETURN p.
5. Агрегатные функции
Агрегатные функции выполняют вычисления на наборе данных.
Пример 1: Посчитать количество человек в графе.
MATCH (p:Person)
RETURN count(p) AS total_people
Пример 2: Найти средний возраст всех людей.
MATCH (p:Person)
RETURN avg(p.age) AS average_age
Пример 3: Сгруппировать людей по возрасту и посчитать, сколько человек в каждой группе. ```cypher MATCH (p:Person) RETURN p.age, count
.......
Похожие промпты
Mikhail
04.10.2025
Промпт для девушки - внешней вид и самооценка
Данный промпт предназначен для тех, кто стремится к гармоничному развитию внешнего вида и внутреннего самочувствия. …
Mikhail
27.09.2025
Промпт интерактивный ментор по LangChain
Этот промпт — персональный интерактивный ментор по LangChain, обучающий пользователей создавать AI-агентов с нуля до …
Mikhail
26.09.2025
Шаблон промпта: дизайн курса для учителя (LLM-ассистент)
Этот промпт создан для учителей, которые хотят быстро и профессионально разработать структуру онлайн‑курса для школьников. …
Mikhail
25.09.2025
Промпт для создания курса по Pygame
Этот промпт создан специально для учителей, которые хотят быстро разработать полноценный, пошаговый курс по Pygame …
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.