반응형
1. Neo4j란?
1.1. Neo4j의 정의
Neo4j는 Neo4j사가 개발한 그래프 데이터를 저장하고 관리하기 위한 그래프 DBMS(데이터베이스 관리 시스템)이다.
Cypher라는 Neo4j에서 제공하는 선언적 그래프 쿼리 언어를 사용한다.
1.2. Neo4j의 그래프DB 순위
DB-Engines ranking에 따르면 계속해서 graph DBMS 중 가장 대중적인 1등 그래프 DB이다.
1.3. Neo4j Graph Platfrom(Neo4j 그래프 구조)
1.4. Neo4j 종류(라이센스)
- Neo4j Graph Database : 연결된 데이터를 저장하고 검색하기 위해 구축된 핵심 그래프 데이터베이스이며, Community Edition과 Enterprise Edition의 두 가지 버전이 존재한다.
- Neo4j Desktop: Neo4j의 로컬 인스턴스를 관리하는 애플리케이션이며, 무료 다운로드에는 Neo4j Enterprise Edition 라이선스가 포함되어 있다.
- Neo4j Browser: 그래프 데이터베이스의 데이터를 쿼리하고 볼 수 있는 온라인 브라우저 인터페이스이며, Cypher 쿼리 언어를 사용한 기본 시각화 기능을 제공한다.
- Neo4j Bloom : 데이터를 보고 분석하는데 코드나 프로그래밍 기술이 필요하지 않은 비즈니스 사용자를 위한 시각화 도구이다.
- Neo4j AuraDB: 클라우드 그래프 데이터베이스를 위한 Neo4j가 제공하는 서비스형 솔루션이다.
- Graph Data Science: Neo4j로 그래프 알고리즘을 실행하기 위해 공식적으로 지원되는 라이브러리이며 엔터프라이즈 워크로드 및 파이프라인에 최적화되어 있다.
2. Neo4j의 주요 특징(기능)
2.1. 특징
- 자바 기반의 그래프 DB로서, 임베딩 방식과 REST 방식을 지원한다.
- ACID 트랜잭션을 지원하며, JTA를 지원한다.
- 인덱스 및 노드 탐색을 지원한다.
- 이중화를 통한 고가용성을 지원한다. (Zookeeper 사용)
- 백업/복구를 지원한다.
- 확장성이 뛰어나고 안정적인 성능을 제공한다.
- 데이터를 저장하기 위해 스키마나 데이터 유형이 필요하지 않으므로 유연하다.
- 다른 데이터베이스와 통합이 가능하다.
2.2. DB 구성
Neo4j 기본 DB는 neo4j와 system 데이터베이스가 있다.
Neo4j 모든 서버에는 다른 모든 데이터베이스와 다르게 작동하는 system이라는 내장 데이터베이스가 있다. System 데이터베이스는 시스템 데이터를 저장하며, 이에 대한 그래프 쿼리를 수행할 수 없다.
DB명 | 역할 |
neo4j | config 옵션을 사용하여 명명된 기본 데이터 베이스 -> dbms.default_database=neo4j |
system | DBMS 및 보안 구성에 대한 메타 데이터를 포함하는 시스템 데이터베이스 |
3. Cypher(질의어)
3-1. Cypher란?
Cypher는 Neo4j에서 제공하는 선언적 그래프 쿼리 언어이며, 단순하게 설계되어 개발자와 운영자 모두에게 적합하도록 제공되었다.
Cypher는 다양한 접근 방식에서 영감을 얻었으며 WHERE 및 ORDER BY와 같은 많은 키워드는 SQL에서 영감을 받았고, 패턴 일치는 SPARQL에서 표현 방식을 차용하였다. (목록 의미 체계 중 일부는 Haskell 및 Python과 같은 언어에서 차용)
3-2. 특징
- 선언적
- 표현적
- 패턴 일치
- 멱등성
3-3. Cypher 기본 구조
- MATCH: 일치시킬 그래프 패턴. 그래프에서 데이터를 가져오는 가장 일반적인 방법
- WHERE: 그 자체로 구문이 아니라 MACH, OPTION MATCH 및 WITH의 일부이고, 패턴에 제약 조건을 추가하거나 WITH를 통과하는 중간 결과를 필터링
- RETURN: 결과를 반환
- CREATE(및 DELETE): 노드와 관계를 생성 및 삭제
- SET(및 REMOVE): SET을 사용하여 값을 속성에 설정하고 노드에 레이블을 추가한 다음 REMOVE를 사용하여 제거
- MERGE: 기존 노드 및 패턴을 일치시키거나 새 노드 및 패턴을 생성하고, 고유한 제약 조건과 함께 특히 유용
https://neo4j.com/developer/cypher/
Cypher에 관한 자세하고 정확한 내용은 Neo4j의 공식 사이트에서 확인 가능하다.
반응형
'Cloud SIEM 제작 > Graph DB(Neo4j)' 카테고리의 다른 글
Neo4j Graph Data Science(GDS) 개요 (0) | 2023.01.04 |
---|---|
Neo4j 사이퍼 쿼리 (0) | 2023.01.03 |
Neo4j 기본 명령어 모음 (2) | 2022.10.25 |
Neo4j 기본 사용법 (0) | 2022.09.16 |
그래프디비(Graph DB)란? (1) | 2022.09.16 |
댓글