🎮60

Cypher 기초 — 그래프에 질문하기

제조 지식을 구조화하기

학습 목표

MATCH 패턴으로 관계를 탐색한다 가변 길이 경로로 다단계 질문을 던진다

Interactive Simulator
Cypher 기초 — 그래프에 질문하기
클릭하여 시뮬레이터를 실행하세요
🎮

그래프 질의어 Cypher

그래프는 패턴으로 질문합니다. SQL의 JOIN 대신 그림을 그리듯 씁니다.

기본 패턴

// 프레스 1호기의 구성품 찾기
MATCH (e:Equipment {name: '프레스 1호기'})-[:HAS_COMPONENT]->(c:Component)
RETURN c.name

화살표가 곧 관계입니다. 읽는 방향 그대로 씁니다.

관계를 따라 여러 단계

// 이 설비에서 발생 가능한 고장과 그 원인
MATCH (e:Equipment {name: '프레스 1호기'})
      -[:HAS_COMPONENT]->(:Component)
      -[:HAS_PART]->(p:Part)
      -[:CAN_CAUSE]->(f:Fault)
      -[:CAUSED_BY]->(r:RootCause)
RETURN p.name, f.name, r.name

가변 길이 경로 — 그래프의 진가

몇 단계인지 몰라도 됩니다.

// 이 설비에 속한 모든 하위 요소 (깊이 무관)
MATCH (e:Equipment {name: '프레스 1호기'})-[:HAS_COMPONENT|HAS_PART*1..3]->(x)
RETURN x

이게 표에서는 어려운 부분입니다. 깊이가 달라지면 JOIN 수가 달라지니까요.

역방향 탐색 — 사례 찾기

// '윤활 부족'이 원인인 모든 고장과 해당 설비
MATCH (r:RootCause {name: '윤활 부족'})<-[:CAUSED_BY]-(f:Fault)
MATCH (f)<-[:CAN_CAUSE]-(:Part)<-[:HAS_PART]-(:Component)<-[:HAS_COMPONENT]-(e:Equipment)
RETURN e.name, f.name

이 질문이 이 과정의 핵심 가치입니다. 한 설비의 고장 경험을 다른 설비로 옮기는 것, 그게 지식 자산화입니다.

실습

Cypher Playground에서 위 패턴을 직접 실행해 보고, 담당 설비 버전으로 바꿔 보세요.