개념
전반적으로 보면 ArangoDB는 GraphDB형 MongoDB의 느낌이 난다. MongoDB로부터 영감을 받고 개발된 것으로 생각이 될만큼 유사한 점이 많다.ArangoDB와의 통신
Arango DB는 클라이언트로 document(문서)를 제공하는 db이다. ArangoDB는 TCP연결을 통해 HTTP 프로토콜을 사용하여 JSON 문서를 전송한다.ArangoDB를 제어하는 방법은 Web Interface(=Aardvark)를 이용하는 방법과, Arangosh을 이용하는 방법이 있다. 그리고 각종 언어에서 driver를 통해 제어할 수도 있다.
Data model
VelocyPack
ArangoDB에 저장되는 문서들은 VelocyPack이라는 바이너리 형태의 포맷으로 거의 JSON format에 가깝다. MongoDB가 BSON이라는 Binary 형태의 JSON형태를 사용하는 것처럼, ArangoDB역시 VelocyPack이라는 자료구조로 저장한다.Document
document는 아무것도 포함하지 않을 수도 있고, 여러 속성과 값을 포함하ㄹ 수도 있다. 각 값은 숫자, 문자열, boolean, null과 같은 원시값을 가질 수도 있고, 배열이나 embedded document 혹은 object와 같은 복합적인 형태가 될 수도 있다. 이 Document는 RDBMS의 ROW와 비슷하다. 다만 다른 점은, RDBMS가 정형화된 형태의 ROW인 것과는 다르게, Schema less 구조라는 것이다. 모든 Document는 각기 다른 구조가 될 수 있다.Collection
Document는 collection으로 묶일 수 있다. collection은 0 혹은 여러 document를 포함한다. collection은 RDBMS의 table에 빗댈 수 있다. RDBMS가 Table을 생성할 때 Schema를 지정해야하는 것과 달리 ArangoDB의 collection은 schema-less이므로 따로 지정할 필요가 없다.Collection은 두 가지 타입이 있다.
- Document Collection(= Vertex collection in graph)
- Edge Collection
EmoticonEmoticon