반응형
/*
-- 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 등 프로그래밍 언어 지원
- 사용자 정의 프로시저 및 함수 지원
■ Neo4j 기본 구조
ㅁ 노드 (Node)
- 그래프를 이루는 기초적인 단위
- 노드는 관계를 통해 다른 노드에 연결되며, 하나 이상의 속성을 가질 수 있음
- 노드는 하나 이상의 레이블을 가질 수 있음
ㅁ 관계 (Relationship)
- 관계는 Source 노드와 Target 노드의 연결성을 표현하며, 노드와 노드 사이의 관계를 의미
- 노드는 항상 방향성을 가지고 있으며 one direction(단방향)
- 하나의 노드는 여러 개의 관계뿐 아니라 재귀 관계도 가질 수 있음
- 하나 이상의 속성을 가질 수 있음
ㅁ 레이블 (Label)
- 노드를 카테고리화 하기 위하여 사용
- 레이블에는 속성이 없음
ㅁ 속성 (Properties)
- 노드나 관계에 저장하고 싶은 데이터를 key-value 형태로 저장할 수 있음
■ 쿼리 수행 방식
ㅁ RDB : 테이블에 저장된 데이터의 관계를 나타내기 위해 조인 방식 사용 (조회 시점에 조인 수행)
- Employees 테이블에서 Alice 조회
- Dept_Members 테이블에 Alice ID와 매핑되는 부서ID 조회
- Departments 테이블에서 조회된 부서ID를 통해 부서 조회
ㅁ GDB : 직접적으로 데이터 간의 관계를 생성하고, 생성된 관계를 탐색하며 데이터를 조회 (노드 간의 관계를 저장해 놓고 조회 시점에 수행)
※ Resources
• neo4j.com
• dh.aks.ac.kr
반응형