728x90
반응형

NeoJ4 특징

  • https://neo4j.com/docs/getting-started/whats-neo4j/
  • 가장 많이 사용되는 그래프 데이터베이스 중 하나
  • Cypher라는 선언전 쿼리 언어 사용
    • SQL 과 유사함
  • 노드와 관계에 대한 쿼리
  • 클러스터를 형성해서 분산 처리 가능
  • AuraDB는 클라우드 서비스
  • 도커 이미지도 있음
  • 쿠버네티스도 있음

표현식

  • 아래는 Cypher를 이용한 노드 간의 관계를 표현한 내용이다.
(:nodes)-[:ARE_CONNECTED_TO]->(:otherNodes)
  • () 기호는 노드를 의미함
  • -[]-> 는 노드 간의 관계를 의미함
  • 각 노드와 관계에 대해 properties를 할당함
  • 노드들은 특정 라벨에 의해 그룹화 될 수 있음
    • 라벨은 테이블, 노드는 레코드라고 생각할 수 있음
728x90
반응형
728x90
반응형

그래프 데이터베이스

  • 그래프 데이터베이스는 노드 Nodes, 관계 Relationships, 프로퍼티 Properties 로 된 데이터를 저장하는 데이터베이스
  • 개념
    • Node: 그래프에서의 개체 Entity
    • Relationship: 노드 간의 관계에 대한 이름
    • Property: Node 및 Relationship에 대한 속성들
  • RDB와 비교 비유
    • Label은 RDB의 테이블
    • Node는 레코드(Row)
    • Property는 필드(Column)
    • Relationship은 관계. 딱히 대응시킬 개념은 없는듯

사용하는 이유

  • 대량의 복잡한 데이터 핸들링에 용이함
  • 기존 RDB에서 JOIN 연산은 비용이 비쌈
  • 그래프 데이터베이스는 JOIN 연산이 없음
    • 관계를 더 유연한 포맷으로 네이티브하게 저장함으로써, 데이터 조회 비용도 낮추고 속도도 더 빠르게 최적화됨

많이 사용하는 GraphDB

728x90
반응형
728x90
반응형
  • Neo4j Community Edition
    • 가장 많이 쓰이는 그래프 데이터베이스
    • Cypher라는 쿼리 언어 사용
    • 주로 관계 탐색, 소셜 네트워크 분석, 온톨로지 관리에 사용됨
  • ArangoDB Community Edition
    • 다중 모델 데이터베이스
    • 그래프, 문서, 키-값 데이터 모두 관리 가능.
    • AQL (ArangoDB Query Language) 사용하여 그래프 쿼리 실행
    • 복잡한 관계 데이터 모델링, 온톨로지 관리, 문서형 데이터 통합
  • JanusGraph
    • 유연한 그래프 쿼리 작성 가능.
    • 분산형 아케틱처 지원하여 대규모 데이터에서도 효율적
    • Apache TinkerPop의 Gremlin 쿼리 언어를 사용
    • Cassandra, HBase, ScyllaDB 같은 분산 데이터베이스 및 Elasticsearch, Solr 등의 검색 엔진 지원
    • 대규모 그래프 데이터 처리, 소셜 네트워크, 지식 그래프, 온톨로지 관리
  • OrientDB Community Edition
    • 그래프와 문서형 데이터베이스가 결합된 멀티 데이터베이스
    • SQL과 유사한 쿼리 언어 제공
    • 관계형 데이터베이스와 그래프 데이터베이스의 혼합 사용
    • 데이터 분석 및 온톨로지 관리
  • Apache TinkerPop과 Gremlin Server
    • 그래프 프로세싱을 위한 프레임워크로 다양한 DBMS와 함께 사용
    • Gremlin은 복잡한 그래프 탐색에 유용한 쿼리 언어
    • 다양한 그래프 데이터베이스와 연동 가능
    • 그래프 분석, 온톨로지와 지식 그래프 구축
728x90
반응형

+ Recent posts