에듀테크 프로젝트 대시보드
그래프 데이터베이스
관계형 DB는 데이터를 테이블에 담고 관계는 JOIN으로 그때그때 계산한다. 그래프 DB는 반대로 노드(Node)와 엣지(Edge)를 처음부터 하나의 저장 단위로 취급해, "친구의 친구" 같은 다단계 관계 탐색을 훨씬 빠르게 처리한다.
노드를 클릭하면 해당 노드에서 2-hop 이내로 연결된 노드가 강조됩니다 (BFS 탐색).
관계형 DB는 단계마다 테이블을 다시 JOIN해야 하므로 깊이 n에서 비용이 급격히 커진다(자체 JOIN n회). 그래프 DB는 노드가 이웃 엣지에 대한 포인터를 직접 들고 있어(index-free adjacency) 깊이에 거의 비례해서만 증가한다.
-- 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번 더 필요
// 노드와 관계를 패턴으로 그대로 표현 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, MySQL | Neo4j, Amazon Neptune |