2012-04-22 2 views
5

그래프 데이터베이스 작업을 시작했으며 팀에서 소프트웨어 그래프를 모델링하기 시작했습니다. 문제는 우리가 모델을 "문서화"하려고 할 때, 우리 데이터베이스의 구조를보기 위해서입니다. SQL 데이터베이스를 사용하면 SQL 스키마 만 살펴 봐야합니다.Neo4j (또는 다른 그래프 데이터베이스) 모델링

우리는 neo4j 블로그와 문서를 읽는 시간을 소비했지만, 우리가 어떻게 그래프의 작동을 표시하는 일반적인 방법이 몇 가지 예제 데이터를 표시하는 최소한의 그래프이다 (랜덤 샘플 : sample1, sample2 등)을 보았다 . 교육적인 목적으로는 훌륭하지만 좀 더 공식적인 방식으로 할 수 있기를 바랍니다. 우리는 어떤 종류의 노드가 다른 노드와 관련 될 수 있는지, 그리고 어떤 종류의 관계, 그런 종류의 것들과 관련이 있는지를 설정하고자합니다.

스프링을 사용하면 클래스로 그래프를 래핑 할 수 있지만 Java 및 OO 모델에만 적용되며 Erlang과 함께 작업합니다. 우리는 일종의 공식 언어 (SQL Schema와 동등) 또는 E-R 모델과 동등한 것을 찾고 있습니다.

답변

2

이 작업을 수행하는 한 가지 방법은 그래프의 "메타 모델"(유형 네트워크)을 그래프에 넣은 다음 인스턴스 (노드)를 해당 메타 모델 유형에 연결하는 것입니다. 따라서 그래프 시각화를 사용하여 메타 모델을 시각화 할 수 있으며 동시에 메타 모델을 사용하여 추가 제약 조건을 적용 할 수 있습니다 (메타 모델에 제약 조건 정보를 저장하고 실제 모델이 업데이트 될 때 사용). 이 유형의 모든 "인스턴스"노드에 빠르게 액세스하려면 메타 모델의 유형 노드를 선택하십시오.

모델링 할 도메인이 무엇입니까?

+2

이것은 단지 일반적인 소셜 네트워크 모델 (친구, 게시물, 게시물에 대한 답변, 사진 등)입니다. 당신이 말하는 것에 대해 몇 가지 예를 보여 주면 좋을 것입니다. 저는 그래프 세계에서 초보자 일 뿐이며, 관계형 모델에 너무 얽매여 있습니다. :-) –

+1

하지만 그렇다면, @Michael_Hunger는 어떤면에서 supernode를 생성하지 않습니까? – Riduidel

+1

@Riduidel 예 –

0

빠른 아이디어 - UML의 하위 집합을 사용할 수 있습니까? 그래프 모델링은 도메인에 더 가깝기 때문에 아마 합리적 일 것입니다.

우리가 수행하는 작업은 관계의 각면과 유형 및 방향뿐만 아니라 카디널리티를 포함하는 "예제 데이터"접근법의 일반화입니다. 또한 예제 데이터가 아닌 다이어그램 (또는 도메인 모델과 관련된 역할/관계의 일부 다른 사양)에 노드 "유형"을 포함시키는 것은 물론 예상되는 속성, 유형 및 옵션인지 여부를 기록합니다. 그것은 공식적인 것보다 작지만 지금까지 잘 해왔습니다.

+0

"A의 친구 야"상황보다 조금 더 현실적인 샘플을 연결해 주시겠습니까? 다른 사람들이 어떻게 그래프로 작업 하는지를 아는 것은 우리에게 큰 도움이 될 것입니다. –

관련 문제