계층형 모델은 트리라서 한 레코드가 여러 부모를 갖기 어렵습니다. 네트워크형 모델은 CODASYL의 set 개념으로 레코드를 포인터 그래프로 연결해 M:N 관계를 표현했지만, 접근 경로가 응용 코드에 박히는 비용을 남겼습니다.
부모가 하나인 트리에서는 “여러 학생이 같은 과목을 수강” 같은 관계를 자연스럽게 담기 어렵습니다. 복사된 과목 중 하나만 바뀌면 데이터가 서로 어긋납니다.
계층형 모델의 1:N 구조만으로는 현실의 M:N 관계를 표현하기 어려워, 중복 없이 연결하는 모델이 필요했습니다.
레코드를 owner와 member로 묶는 set을 두어, 데이터 구조를 트리에서 그래프로 확장했습니다.
질의가 “무엇”보다 “어떤 포인터 경로”에 묶였고, 구조 변경이 곧 프로그램 수정으로 이어졌습니다.