계층형 모델

위키백과, 우리 모두의 백과사전.

계층형 데이터베이스 모델(Hierarchical database model)이란 데이터가 트리 형태의 구조로 조직된 것을 말한다. 이 구조는 반복적인 부모-자식 관계 정보를 표현한다. 각 부모는 다수의 자식을 가질 수 있고, 자식은 단 하나만의 부모를 가질 수 있다. 어떤 레코드에 관한 모든 애트리뷰트(attribute)는 엔티티 타입(entity type) 하나 내에 나열된다.

이 모델에 대한 데이터베이스 구현에서는 하나의 엔티티 타입은 하나의 테이블에 해당한다. 각각의 레코드는 행으로 표현되며, 애트리뷰트(attribute)는 열로 표현된다. 엔티티 타입은 엔티티 타입끼리 서로 1:N 매핑된다. 이 방식은 일-대-다 관계로도 불리는 방식으로 불리기도 한다.

예를 들어, 계층형 데이터베이스 모델의 한 예는 회사의 직원 목록을 "직원"이라는 이름의 테이블(table) (엔티티 타입)에 저장한 것이다. 이 테이블 안에는 성명, 직위, 봉급 같은 속성(열)이 있을 수 있다. 또한 각 직원의 자녀에 대한 자료도 성명, 생년월일 등의 속성을 갖는 "자녀"라는 이름의 별도의 테이블에 둘 수 있다. "직원" 테이블은 부모 세그먼트를 표현하며, "자녀" 테이블은 자녀 세그먼트를 표현한다. 이 두 세그먼트는 “계층”을 하나 형성한다: 각각의 직원은 다수의 자녀를 가질 수 있지만, 각각의 자녀는 한 명의 직원을 부모로서 가진다. (단, 한 회사 안에 부부, 혹은 부모-자녀가 동시에 재직하고 있지 않다고 가정한다.)

계층형 구조는 초창기 메인프레임 컴퓨터 데이터베이스 매니지먼트 시스템에 널리쓰였다. 여러 타입의 데이터 사이의 계층형 관계를 이용할 경우, 어떤 문제는 매우 쉽게 답할 수 있지만, 어떤 문제는 매우 답하기 어려워진다. 일-대-다의 관계가 무너졌을 경우(예를 들어 학생이 한 명 이상의 담임 선생님을 가질 경우), 계층형 관계는 네트워크 모델이 되어버린다.[1]

오늘날 가장 널리 쓰이는 계층형 모델은 LDAP 모델이다. 이외에는 계층형 모델은 오늘날의 데이터베이스들에서 거의 쓰이지 않고 있다. 그러나, 정보를 기록하는 다른 매체 및 기법들, 예를 들어 XML 문서라든지, 파일 시스템이라든지, 윈도우 레지스트리 등에서는 쓰이고 있다.

관계형 모델 중 트리 자료 구조[편집]

관계형 데이터베이스 모델 중 계층형 자료의 예는 다음과 같다. 다음은 어떤 회사 조직 내에서 누가 누구에게 보고할 책임이 있는가 하는 데이터이다.[2]

다음 테이블을 보자

직원_테이블
직원번호 직책
10 국장
20 부장
30 서무직원
40 프로그래머

"직원번호" 20이 10에 보고하고, 30이 20에게 보고하고, 40이 20에게 보고한다는 내용의 "계층"은 다음과 같은 테이블에 표현된다.

감독_테이블
상사직원번호 부하직원번호
10 20
20 30
20 40

위 테이블에서 만약 한 직원이 두 명의 상사에게 보고를 하는 관계가 아니라면 이 계층은 '자식 하나마다 오직 하나의 부모를 갖는' 타입이 된다.

각주[편집]

  1. “White, Basil (1996) Developing Products and Their Rhetoric from a Single Hierarchical Model, 1996 Proceedings of the Annual Conference of the Society for Technical Communication, 43, 223-224.”. 2007년 5월 17일에 원본 문서에서 보존된 문서. 2007년 6월 2일에 확인함. 
  2. Chapter 23 'Logic-Based Databases' of An Introduction To Database Systems by C.J.Date seventh Edition

잘 알려진 계층형 DBMS[편집]

외부 링크[편집]