맨위로가기

계층형 모델

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

계층형 모델은 1960년대 IBM에서 개발되어 초기 메인프레임 데이터베이스 관리 시스템(DBMS)에 사용된 데이터 구조이다. 레코드 간의 관계를 트리 형태로 구성하며, 일대다 관계를 특징으로 한다. 관계형 모델의 등장으로 인기를 잃었지만, XML의 등장과 함께 재부상하였고, 현재는 지리 정보 및 파일 시스템 저장에 활용된다. 금융, 의료, 통신 등 고성능과 가용성이 요구되는 애플리케이션에서도 사용되며, IMS, Windows 레지스트리 등이 그 예시이다. 계층형 DBMS는 대규모 데이터베이스에서 자원 소모가 적고 응답 시간 예측이 정확하며, 레코드 단위의 읽기/쓰기가 용이하다는 장점이 있으나, 전용 기술이 필요하고 레코드 필터링 기능이 약하다는 단점이 있다. Adabas, GT.M, IMS 등이 잘 알려진 계층형 DBMS에 해당한다.

더 읽어볼만한 페이지

  • 데이터베이스 모델 - 플랫 파일 데이터베이스
    플랫 파일 데이터베이스는 각 줄에 레코드를 기록하고 구분자로 필드를 구분하는 단순한 형태이지만, 데이터 중복, 대용량 처리의 어려움, 보안 취약성 등의 한계로 특정 용도로만 활용된다.
  • 데이터베이스 모델 - 네트워크 모델
    네트워크 모델은 찰스 바크만이 발명하고 CODASYL 컨소시엄에 의해 표준 사양으로 개발된 데이터베이스 모델이며, 바흐만 다이어그램으로 표현되고 IDS, IDMS, IMAGE 등 다양한 시스템에서 구현되었다.
  • 데이터 모델링 - 빌딩 정보 모델링
    빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다.
  • 데이터 모델링 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
계층형 모델
개요
정의데이터베이스 모델의 한 종류로, 트리와 유사한 구조를 사용하여 데이터를 구성한다.
특징각 레코드는 하나의 상위 레코드와 여러 개의 하위 레코드를 가질 수 있다.
장점데이터 접근 속도가 빠르고, 데이터 구조가 단순하다.
단점데이터 구조 변경이 어렵고, 다대다 관계를 표현하기 어렵다.
역사
등장 시기1960년대
주요 사용처IBM의 IMS 데이터베이스 시스템
발전네트워크 데이터베이스 모델의 등장에 영향을 미침
구조
루트 노드트리 구조의 최상위 노드
부모 노드하위 노드를 가지는 노드
자식 노드상위 노드의 하위에 있는 노드
레코드데이터의 기본 단위
필드레코드를 구성하는 속성
관계노드 간의 연결
특징
데이터 접근 방식계층 구조를 따라 상위 노드에서 하위 노드로 순차적으로 접근
데이터 중복성데이터 중복이 발생할 수 있음
데이터 독립성데이터 구조 변경 시 응용 프로그램에 영향을 줄 수 있음
무결성부모-자식 관계를 통해 데이터 무결성을 유지
장단점
장점데이터 접근 속도가 빠름
데이터 구조가 단순하고 이해하기 쉬움
데이터베이스 보안 관리가 용이함
단점데이터 구조 변경이 어려움
다대다 관계 표현이 복잡함
데이터 중복이 발생할 수 있음
응용 프로그램의 데이터 의존성이 높음
활용
예시조직 구조 관리
파일 시스템
메뉴 구조
관련 기술
관련 기술XML (계층적 데이터 표현에 사용)
트리 구조
참고
참고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.

2. 역사

계층형 구조는 1960년대 IBM에 의해 개발되어 초기 메인프레임 데이터베이스 관리 시스템(DBMS)에 사용되었다. 레코드 간의 관계는 트리 형태를 이루는데, 이 구조는 단순하지만 관계가 일대다 관계로 제한되어 유연성이 떨어진다. IBM 정보 관리 시스템(IMS) 및 RDM Mobile은 동일한 데이터에 여러 계층 구조를 가진 계층형 데이터베이스 시스템의 예이다.

코드의 관계형 모델이 사실상 모든 주류 데이터베이스 관리 시스템에서 표준이 되면서 계층형 데이터 모델은 인기를 잃었다. 1990년대 후반 XML의 등장과 함께 계층형 데이터 구성 체계는 다시 부상했다. 계층형 구조는 오늘날 주로 지리 정보 및 파일 시스템을 저장하는 데 사용된다.

현재 계층형 데이터베이스는 특히 금융, 의료, 통신과 같이 매우 높은 성능과 가용성이 필요한 애플리케이션에서 여전히 널리 사용되고 있다. 가장 널리 사용되는 상업용 계층형 데이터베이스 중 하나는 IMS이다. 마이크로소프트 윈도우(Microsoft Windows) 운영 체제의 Windows 레지스트리도 계층형 데이터베이스의 또 다른 예이다.

2. 1. 관계형 데이터베이스에서의 계층형 데이터 표현

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

다음 테이블을 보자.

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



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

감독_테이블
상사직원번호부하직원번호
1020
2030
2040



위 테이블에서 만약 한 직원이 두 명의 상사에게 보고를 하는 관계가 아니라면 이 계층은 '자식 하나마다 오직 하나의 부모를 갖는' 타입이 된다. 조직은 직원 번호, 이름, 성, 부서 번호와 같은 속성/열을 포함하는 테이블에 직원 정보를 저장할 수 있다. 조직은 필요에 따라 각 직원에게 컴퓨터 하드웨어를 제공하지만, 컴퓨터 장비는 할당된 직원만 사용할 수 있다. 조직은 각 부품의 일련 번호, 유형 및 사용 직원을 포함하는 별도의 테이블에 컴퓨터 하드웨어 정보를 저장할 수 있다. 테이블은 다음과 같다.

employee 테이블
사원 번호이름부서 번호
100알묵타르10-L
101가우라브소니10-L
102시다르타소니20-B
103시드한트소니20-B



computer 테이블
일련 번호유형사용자 사원 번호
3009734-4컴퓨터100
3-23-283742모니터100
2-22-723423모니터100
232342프린터100



이 모델에서 employee 데이터 테이블은 계층 구조의 "부모" 부분을 나타내고, computer 테이블은 계층 구조의 "자식" 부분을 나타낸다. 일반적으로 컴퓨터 소프트웨어 알고리즘에서 발견되는 트리 구조와 달리 이 모델에서는 자식이 부모를 가리킨다. 각 직원은 여러 대의 컴퓨터 장비를 소유할 수 있지만, 각 개별 컴퓨터 장비는 한 명의 직원만 소유할 수 있다.

다음 구조를 고려하십시오.

사원 번호직책보고 대상
10이사
20수석 매니저10
30타이피스트20
40프로그래머20



여기에서 "자식"은 "부모"와 동일한 유형이다. 사원 번호 10이 20의 상사이고 30과 40이 각각 20에게 보고한다는 계층 구조는 "보고 대상" 열로 표시된다. 관계형 데이터베이스 용어에서 ReportsTo 열은 EmpNo 열을 참조하는 외부 키이다. "자식" 데이터 유형이 다른 경우 다른 테이블에 있지만 직원의 EmpNo 열을 참조하는 외부 키가 여전히 존재한다.

이 간단한 모델은 일반적으로 인접 목록 모델로 알려져 있으며, 관계형 모델이 계층적 데이터를 모델링할 수 없다는 초기 비판이 제기된 후 에드거 F. 코드 박사에 의해 소개되었다. 그러나 이 모델은 그래프에 대한 일반적인 인접 목록의 특수한 경우일 뿐이다.

3. 계층형 DBMS의 특징

계층형 구조는 1960년대에 IBM에 의해 개발되었으며 초기 메인프레임 데이터베이스 관리 시스템(DBMS)에 사용되었다. 레코드 간의 관계는 트리 형태의 모델을 형성한다. 이 구조는 단순하지만 관계가 일대다 관계로 제한되어 유연성이 떨어진다. IBM 정보 관리 시스템(IMS) 및 RDM Mobile은 동일한 데이터에 여러 계층 구조를 가진 계층형 데이터베이스 시스템의 예이다.[2]

코드의 관계형 모델이 사실상 모든 주류 데이터베이스 관리 시스템에서 사용되는 표준이 되면서 계층형 데이터 모델은 인기를 잃었다. 1990년대 후반 XML의 등장과 함께 계층형 데이터 구성 체계는 다시 부상했다.[3] (참고: XML 데이터베이스). 오늘날 계층형 구조는 주로 지리 정보 및 파일 시스템을 저장하는 데 사용된다.

현재 계층형 데이터베이스는 특히 금융, 의료, 통신과 같이 매우 높은 성능과 가용성이 필요한 애플리케이션에서 여전히 널리 사용되고 있다. 가장 널리 사용되는 상업용 계층형 데이터베이스 중 하나는 IMS이다.[4] 마이크로소프트 윈도우(Microsoft Windows) 운영 체제의 Windows 레지스트리가 계층형 데이터베이스의 또 다른 예이다.[5]

자식 데이터가 다양한 부모 데이터 아래에 있는 경우에는 데이터가 필요 이상으로 증가하는 단점이 있다. 이 때문에, IMS나 DL/I VSE 등 실제 계층형 DBMS에서는 가상 레코드(포인터)를 구현하고 있다.

3. 1. 장점


  • 대규모 데이터베이스에서도 필요 자원이 적고, 빠르며, 응답 시간 예측 정확도가 높다.
  • SQL과 같은 표의 커서 조작이 필요 없이, 레코드 단위의 읽기 및 쓰기가 가능하여 프로그래밍이 용이하다.

3. 2. 단점

계층형 모델은 다음과 같은 단점을 갖는다.

  • 전용 기술이 필요하다.
  • 레코드 필터링을 애플리케이션에서 수행해야 한다. SQL의 WHERE 절에 해당하는 기능이 약하다.

4. 잘 알려진 계층형 DBMS


  • Adabas
  • GT.M
  • IMS
  • MUMPS
  • Caché (소프트웨어)
  • Metakit
  • Multidimensional hierarchical toolkit
  • Mumps compiler
  • DMSII
  • FOCUS


IMS 및 RDM Mobile은 동일한 데이터에 여러 계층 구조를 가진 계층형 데이터베이스 시스템의 예이다.[2] 현재 계층형 데이터베이스는 특히 금융, 의료, 통신과 같이 매우 높은 성능과 가용성이 필요한 애플리케이션에서 여전히 널리 사용되고 있다. 가장 널리 사용되는 상업용 계층형 데이터베이스 중 하나는 IMS이다.[4] 계층형 데이터베이스의 또 다른 예로는 Windows 운영 체제의 Windows 레지스트리가 있다.[5]

참조

[1] 서적 Database System Concepts McGraw-Hill 2004
[2] 웹사이트 Michael J. Kamfonas/Recursive Hierarchies: The Relational Taboo! http://www.kamfonas.[...] The Relation Journal 1992-10
[3] 웹사이트 Web Application Development http://www.ibm.com/d[...]
[4] 웹사이트 IBM Information Management System https://web.archive.[...]
[5] 웹사이트 Structure of the Registry - Win32 apps http://msdn.microsof[...]
[6] 웹인용 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. http://www.basilwhit[...] 2007-06-02
[7] 서적 An Introduction To Database Systems



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com