반응형

/*
-- Title : Neo4j 소개
-- Tag : neo4j
*/


■ Neo4j 개요

  • Neoj4사가 개발한 NoSQL 그래프 데이터베이스 관리 시스템
  • DB-Engines ranking에 따르면 가장 대중적인 그래프 데이터베이스
    (2022.08월 기준 전체 DB 중 19위, 그래프 DB 중 1위)
  • 2007년 첫 번째 버전이 릴리스 되었으며, Java와 Scala 언어를 통하여 개발
  • 트랜잭션의 ACID 특성을 준수하며 데이터 무결성을 유지
  • Cypher 쿼리 언어 제공 (Neo4j에서 제공하는 선언적 그래프 쿼리 언어)
  • Java, Python, .NET 등 프로그래밍 언어 지원
  • 사용자 정의 프로시저 및 함수 지원

https://wikidocs.net/51746


■ Neo4j 기본 구조

http://dh.aks.ac.kr/Edu/wiki/index.php/Neo4j_Tutorial

 

ㅁ 노드 (Node)

  • 그래프를 이루는 기초적인 단위
  • 노드는 관계를 통해 다른 노드에 연결되며, 하나 이상의 속성을 가질 수 있음
  • 노드는 하나 이상의 레이블을 가질 수 있음

ㅁ 관계 (Relationship)

  • 관계는 Source 노드와 Target 노드의 연결성을 표현하며, 노드와 노드 사이의 관계를 의미
  • 노드는 항상 방향성을 가지고 있으며 one direction(단방향)
  • 하나의 노드는 여러 개의 관계뿐 아니라 재귀 관계도 가질 수 있음
  • 하나 이상의 속성을 가질 수 있음

ㅁ 레이블 (Label)

  • 노드를 카테고리화 하기 위하여 사용
  • 레이블에는 속성이 없음

ㅁ 속성 (Properties)

  • 노드나 관계에 저장하고 싶은 데이터를 key-value 형태로 저장할 수 있음


■ 쿼리 수행 방식

ㅁ RDB : 테이블에 저장된 데이터의 관계를 나타내기 위해 조인 방식 사용 (조회 시점에 조인 수행)

https://neo4j.com/developer/graph-db-vs-rdbms/

  1. Employees 테이블에서 Alice 조회
  2. Dept_Members 테이블에 Alice ID와 매핑되는 부서ID 조회
  3. Departments 테이블에서 조회된 부서ID를 통해 부서 조회

ㅁ GDB : 직접적으로 데이터 간의 관계를 생성하고, 생성된 관계를 탐색하며 데이터를 조회 (노드 간의 관계를 저장해 놓고 조회 시점에 수행)

https://neo4j.com/developer/graph-db-vs-rdbms/

 


※ Resources
neo4j.com
dh.aks.ac.kr

 

반응형

+ Recent posts