sqld

계층형 데이터모델에 대해 알아봅시다!

자격증원톱 2026. 2. 21. 11:55
반응형

계층형 데이터모델에 대해 알아봅시다!

반응형

1) 계층형 데이터 모델( Hierarchical Model )

개념

  • 데이터를 트리(tree) 구조로 저장하는 모델입니다.
  • 부모–자식(상하 관계)가 1개 방향으로 연결됩니다.
  • 특징: 자식은 부모를 1명만 가질 수 있음(여러 부모 불가) → 구조가 단순하고 이해가 쉬움.

예시(회사 조직도)

  • CEO(부모)
    • 부장(자식)
      • 팀장(자식)
        • 사원(자식)

“상사는 1명”이라는 조직 구조를 표현하기 좋습니다.

이미지의 EMP 테이블 예시(관리자 MGR)

  • 직원 테이블에 MGR(관리자 사번)이 있고, 이 값으로 상사를 가리킵니다.
  • 예를 들어:
    • KING은 최고 관리자라 MGR = NULL
    • BLAKE의 MGR = KING의 사번
    • ALLEN의 MGR = BLAKE의 사번

이렇게 따라가면 “누가 누구 밑인가”가 트리처럼 나옵니다.

장점/단점(한 줄씩)

  • 장점: 관계가 명확하고 조회가 단순
  • 단점: 한 사람이 두 팀/두 프로젝트에 동시에 속하는 구조(다대다)에 약함
    → “부모가 2명”이 필요한 상황을 표현하기 어려움

2) 상호배타적(Exclusive-OR) 관계

개념

  • 어떤 엔티티가 여러 “상태/유형” 중 하나만 가질 수 있는 관계입니다.
  • “둘 다 가능”이 아니라 “둘 중 하나만 가능”이 핵심입니다.

예시(학생 상태)

학생은 어느 시점에

  • 재학생 이거나
  • 휴학생 이거나
  • 졸업생 이거나
    셋 중 하나만 가능합니다. (동시에 재학생+휴학생 불가)

이미지에서도:

  • 재학생 엔티티: 학번 + 학기 정보
  • 휴학생 엔티티: 학번 + 휴학기간 정보
  • 졸업생 엔티티: 학번 + 졸업년도 정보
    처럼 상태별로 “추가로 필요한 속성”이 다르기 때문에 분리해서 관리합니다.

왜 중요하냐?

  • 데이터 무결성(정확성)을 지키기 위해서입니다.
  • 예: 어떤 학생이 재학생이면서 동시에 졸업생으로 등록되면 데이터가 모순이죠.
    상호배타 규칙이 이런 모순을 막습니다.

3) 한 번에 정리

  • 계층형 모델: 부모–자식 트리 구조(자식은 부모 1명)
    → 조직도, 관리자-직원 구조에 강함
  • 상호배타 관계: 여러 상태 중 “한 시점에 하나만”
    → 재학/휴학/졸업처럼 상태가 딱 하나로 결정되는 경우에 사용

 

반응형