스키마를 시각으로 설계하기
관계·속성·제약 설계
스키마를 시각으로 설계하기
관계·속성·제약 설계 > 관계·속성·제약 설계
- 설계한 클래스·관계를 시각 스키마로 옮긴다
- 교차 검토로 관계 방향과 누락을 잡는다
- Cypher 로 내보내 다음 모듈에서 실행할 준비를 한다
스키마를 시각으로 설계하기
지금까지 글로 정한 것을 캔버스에 올립니다. 그림으로 옮기면 글에서 안 보이던 것이 보입니다 — 어느 노드에도 닿지 않는 고립 클래스, 방향이 뒤집힌 관계, 이름이 겹치는 관계가 그렇습니다.
실습 순서
1. 허브부터 놓습니다
PortCall을 캔버스 가운데 두고 시작하세요. 앞 모듈에서 "그랜드 센트럴 역"이라 부른 이유가 배치에서 드러납니다 — 선박·선석·신고·하역·도선이 전부 여기로 모입니다.
2. 8기둥을 색으로 구분합니다
라벨 팔레트를 기둥별로 나눕니다(Party / MovableObject / Place / Equipment / Event / Document / Rule / Metric). 색이 나뉘면 한 기둥이 유난히 비거나 부푼 것이 눈에 띕니다.
3. 관계를 잇고 문장으로 읽습니다
화살표를 놓을 때마다 소리 내어 읽어 보세요. "선박이 기항을 만든다", "기항이 선석에 배정된다" — 문장으로 읽히지 않으면 관계 이름이 잘못된 것입니다. 원칙 3(시제 금지)도 여기서 걸립니다.
4. 유효기간 관계를 표시합니다
OPERATES, ASSIGNED_TO, ALLOCATED_TO에 {from, to}를 답니다. 패턴 B가 적용된 관계가 몇 개인지 세어 보세요.
5. Cypher 로 내보냅니다
CREATE/MERGE 문으로 내보내 저장합니다. 다음 모듈에서 이 스크립트를 실제로 실행해 스키마를 세웁니다.
확인할 것
- 어느 CQ도 근거로 대지 못하는 클래스·관계가 있는가 (있으면 삭제 후보)
- 고립된 노드가 있는가 (있으면 관계 누락)
- 같은 의미인데 이름이 다른 관계가 있는가 (병합 대상)
산출물: 시각 스키마 + JSON + Cypher 내보내기. 스펙 문서의 3·4절(클래스 사전·관계 사전)과 짝을 이룹니다.
💡 이 도구는 도메인 무관 재사용을 염두에 두고 만들어졌습니다. 항만이 아닌 다른 프로젝트에서도 라벨 팔레트와 관계 타입만 바꿔 그대로 쓸 수 있습니다.