한양과학기술고등학교

에듀테크 프로젝트 대시보드

그래프 데이터베이스

관계(Relationship)가 곧 데이터

관계형 DB는 데이터를 테이블에 담고 관계는 JOIN으로 그때그때 계산한다. 그래프 DB는 반대로 노드(Node)와 엣지(Edge)를 처음부터 하나의 저장 단위로 취급해, "친구의 친구" 같은 다단계 관계 탐색을 훨씬 빠르게 처리한다.

미니 소셜 그래프 — 노드를 클릭해 탐색

노드를 클릭하면 해당 노드에서 2-hop 이내로 연결된 노드가 강조됩니다 (BFS 탐색).

노드를 클릭해 보세요.

JOIN vs 그래프 순회 — 깊이가 늘어날수록

1단계 관계 (친구)
1단계 관계 (그래프)
4단계 관계 (친구의…)
4단계 관계 (그래프)

관계형 DB는 단계마다 테이블을 다시 JOIN해야 하므로 깊이 n에서 비용이 급격히 커진다(자체 JOIN n회). 그래프 DB는 노드가 이웃 엣지에 대한 포인터를 직접 들고 있어(index-free adjacency) 깊이에 거의 비례해서만 증가한다.

관계형 DB로 표현

-- users, friendships 두 테이블 + JOIN
SELECT f2.friend_id
FROM friendships f1
JOIN friendships f2
  ON f1.friend_id = f2.user_id
WHERE f1.user_id = '준서'
  AND f2.friend_id != '준서';
-- 3단계면 JOIN이 3번 더 필요

그래프 쿼리 언어 (Cypher 스타일)

// 노드와 관계를 패턴으로 그대로 표현
MATCH (a:Person {name: '준서'})
      -[:FRIEND_OF*1..2]-(b:Person)
RETURN b.name
// *1..2 → 1~2단계(hop) 이내 전부 탐색

언제 무엇을 쓸까

기준관계형 DB (RDBMS)그래프 DB
저장 단위행(Row) / 테이블노드 + 엣지 (속성 포함)
관계 조회JOIN (쿼리 시점 계산)엣지 포인터 직접 순회
깊은 관계(3+ hop)JOIN 폭증, 느려짐깊이에 비례, 여전히 빠름
스키마고정 스키마 우선유연 (속성 자유 추가)
강점 사례정형 트랜잭션, 집계추천, 소셜망, 사기 탐지, 지식 그래프
대표 제품PostgreSQL, MySQLNeo4j, Amazon Neptune