Skip to content

Neo4j #
Find similar titles

Structured data

Category
Database

Neo4j #

그래프DB 중 하나로 그래프 형태의 데이터를 저장하고 관리할 수 있다. 자바기반으로 임베딩방식이나 REST방식으로 사용가능하다. Neo4j 그래프는 기본적으로 '노드', '관계', '속성'으로 이루어져 있다. 두 노드사이의 관계는 방향성을 가지는데 한방향 또는 양방향 일 수 있다.

관계형 데이터베이스와 달리 Neo4j는 노드와 관계로 이루어져있어서 관계있는 노드들은 관계의 depth에 상관없이 모두 찾아갈 수 있다는 특징을 가지고 있다.

예를 들어 AMPK라고하는 생체 에너지 항상성에 영향을 주는 유전자가 있다고 하면 생체 에너지 항상성과 관련있는 다른 유전자 X (1depth) 를 찾을 수 있고, 다시 그 유전자 X가 관여하는 다른 역할과 관련있는 또 다른 유전자 Y (2depth) 를 찾을 수 있다.

관계형 데이터베이스와 그래프 데이터베이스 #

관계형데이터베이스(Relation Database)에서는 row나 table간에 외부참조키(foreign-key)를 통해 주키(primery key) 컬럼으로 연결된다. 이때 쿼리에 매칭되는 주키-참조(pk-fk)의 row가 많을 수록 많은 계산과 메모리가 필요하므로 여러 테이블을 동시에 join 할 수록 더 많은 시간과 비용이 필요하게 된다. 반면 Neo4j와 같은 그래프데이터 베이스는 모든 데이터가 노드(Node)와 관계(Relation)로 이루어져 있기 때문에 한 노드에서 n depth로 떨어져있는 다른 노드를 검색이 용이하다.

Neo4j 특징 #

  • Cypher 라는 쿼리언어를 사용한다. human-friendly하다는 특징이 있다.
  • Neo4j를 이용할 수 있는 여러가지 다른 언어 드라이버를 지원한다.
    • Java, .NET, JavaScript, Python, Ruby, PHP 등
  • 구성요소
    • Node: 그래프 안에 존재하는 object를 뜻하며 name-value 속성을 가짐, 라벨링 할 수 있다.
    • Relationships: 노드와 노드를 잇는 관계로 name-value 형태이다.

Incoming Links #

Related Data Sciences #

Suggested Pages #

0.0.1_20140628_0