반응형
Neo4j 그래프아카데미의 'Graph Data Modeling Fundamentals'의 내용을 정리한 내용입니다.
모델링을 해야 하는 이유
- 애플리케이션에서 활용할 방안(use cases) 모색
- 활용 계획(key use cases)과 Cypher 수행 속도를 고려한 구조 마련
- 따라서 USE CASES 정의가 가장 중요하며, 선결되어야 함
모델링 절차
- 유스케이스 정의
- 기초 그래프데이터 모델 정의
- 1. 노드 모델링
- 2. 관계 모델링
- 초기 그래프 데이터 모델은 단순히 하나의 시작점으로서, 유스케이스에 따라서 변화가 필요함
- 유스케이스 테스트
- 그래프 형성 및 테스트 데이터 입력
- 유스케이스 테스트 및 그래프 성능 확인
- 리팩토링
- 리테스트
- 최종 목적: 유스케이스에 대한 최적 성능의 모델 디자인
사전 정의 대상
애플리케이션 관련자 및 개발자와 아래의 것들에 대해 논의 해야 함
- 애플리케이션 세부사항
- 애플리케이션 유저
- 유스케이스 후보
- 유스케이스 중요도
모델의 종류
- 데이터 모델
- 레이블, 관계, 속성, 데이터타입 정보를 포함함
- 특정한 데이터를 그래프에 생성하지는 않음
- 인스턴스 모델
- 데이터 모델에 특정 데이터 예시 추가
스타일 가이드라인
- 라벨 : CamelCase
- 속성 : camelCase
- 속성키는 node끼리 중복해 사용할 수 있음
e.g. Movie.year, Person.year
- 속성키는 node끼리 중복해 사용할 수 있음
- 관계: SNAKE_CASE
노드 모델링
- 유스케이스에 대한 필요 정보 정의
- 노드별 속성 정의
- 속성 명
- 데이터 타입
- Optional / mandatory
초기 데이터 모델 예시
초기 인스턴스 모델 예시
참고자료: Neo4j 그래프아카데미, Graph Data Modeling Fundamentals
https://graphacademy.neo4j.com/courses/modeling-fundamentals/
반응형
'데이터베이스 Database' 카테고리의 다른 글
DBMS별 NULL 처리 차이점에 대해 알아보자 (1) | 2023.12.21 |
---|