이번 시간에는 neo4j의 Multi label기능과 유사한 AgensGraph의 Label 상속에대해 다뤄보도록 한다.
Multi-label은 말그대로 하나의 노드에 여러개의 레이블을 부여하는 것을 의미한다. 이와 유사하게 Label 상속은 부모 레이블에 자식 레이블을 상속시켜 노드에 여러개의 레이블을 상속할 수 있다.
레이블을 상속하는 코드는 다음과 같다.
CREATE VLABEL childVlabelName inherits (parentVlabelName);
CREATE ELABEL childElabelName inherits (parentElabelName1, parentElabelName2);
위에서 inherits()는 자식 레이블을 상속하는 명령이다. 레이블을 생성할 때 레이블 이름 뒤에 해당 키워드와 함께 부모 레이블의 이름을 명시하면 레이블을 상속할 수 있다. 여기서 부모 레이블은 여러개가 될 수 있다.
Example
간단한 예시를 통해 레이블 상속을 이해해보도록 한다.
위와 같이 이름이 초코인 강아지와 나비인 고양이를 '동물'이라는 레이블에 상속시키도록 한다.
create vlabel 동물;
create vlabel 강아지 inherits (동물);
create vlabel 고양이 inherits (동물);
create (v:강아지 {이름:'초코'});
create (v:고양이 {이름:'나비'});
먼저 부모 레이블인 '동물'을 생성하고 자식 레이블인 '강아지', '고양이'를 '동물'레이블에 상속시키며 생성한다. 그리고 각 '강아지', '고양이' 레이블에 이름이 초코, 나비인 노드를 생성해준다.
결과를 확인해 보면 강아지 레이블에는 '초코', 고양이 레이블에는 '나비', 동물 레이블에는 둘 다 포함되어 있음을 알 수 있다.
이번 시간에는 레이블을 상속하는 방법에 대해 알아보았다.
레이블 상속은 잘 활용하면 복잡한 관계에서 다양하고 효율적인 그래프 모델링이 가능할 것이라 생각된다. 따라서, 추후에 활용방안을 더 고민하고 학습해보고 포스팅을 통해 공유해보도록 하겠다.
참고
https://bitnine.net/ko/documentation/ (아젠스그래프 개발자 메뉴얼 가이드)
문서 ⋆ Bitnine Global Inc.
문서 ⋆ Bitnine Global Inc.
bitnine.net
'GDB & Cypher > 간단한 사용법' 카테고리의 다른 글
[Cypher] 그래프 표현, 패턴(Pattern) (0) | 2023.01.18 |
---|---|
[Cypher] 그래프 수정하기(Manipulating Graph) (0) | 2023.01.11 |
[Cypher] 노드&엣지 생성/제거하기(CREATE/DELETE Node&Edge) (0) | 2023.01.09 |
[Cypher] 레이블 생성&삭제하기(CREATE/DROP LABEL) (0) | 2023.01.06 |
[Cypher] 그래프 생성&삭제하기(CREATE/DROP GRAPH) (0) | 2023.01.05 |