계층적 데이터 모델은 1966년에 처음 등장한 최초의 데이터베이스 모델이었습니다. 데이터베이스에 있는 정보 간의 논리적 관계를 생성할 수 있기 때문에 일반적인 파일 처리 시스템에서 개선된 것입니다. 그러나 이 구조 역시 네트워크 모델과 관계형 모델의 발전으로 이어지는 단점이 있다.
구조
계층적 데이터 모델의 주요 특징은 나무와 같은 구조입니다. 예를 들어, 회사 데이터베이스는 직원에 대한 하나의 지점을 사용하여 구성하고 부서, 팀, 팀 구성원 순으로 구성할 수 있습니다. 이 상위-하위 구조는 데이터베이스 전체에서 일관되며 각 하위 세그먼트는 하나의 상위 세그먼트만 가질 수 있습니다. 각 세그먼트 또는 레코드에는 해당 레코드에 대한 정보를 제공하는 필드 요소가 여러 개 있을 수 있습니다. 예를 들어, 팀 구성원 레코드에는 이름, 감독자 및 연락처 세부 정보와 같은 세부 정보가 있습니다.
오늘의 비디오
일대다 및 이중화
계층적 모델은 복합 레코드를 허용하지 않기 때문에(즉, 항목에 둘 이상의 부모가 있는 경우) 데이터베이스는 일대다 구조를 갖습니다. 한 회사에 여러 부서가 있을 수 있고 한 부서에 여러 팀장이 있을 수 있습니다. 이로 인해 모델이 중복될 수 있습니다. 예를 들어, 팀 구성원 아래의 분기를 진행 중인 프로젝트라고 할 수 있습니다. 여러 직원이 하나의 프로젝트에서 작업할 수 있으므로 프로젝트 정보를 복제해야 하므로 일관성 문제가 발생할 수 있습니다.
항해
계층적 데이터 모델은 탐색 데이터 모델입니다. 모델의 액세스 경로는 미리 결정된 구조에 의해 제한됩니다. 특정 파일 레코드를 얻기 위해 쿼리는 데이터베이스의 루트 세그먼트에서 분기를 통해 아래로 이동합니다. 찾고 있는 레코드의 위치를 이미 알고 있는 경우에는 괜찮지만 탐색적 쿼리는 다음 단계로 이동하기 전에 데이터베이스가 주어진 수준의 모든 레코드를 읽어야 하므로 속도가 느립니다. 하나.
논리적 부모 포인터
계층 구조의 한계는 논리적 부모 포인터를 사용하여 어느 정도 완화됩니다. IBM이 정보 관리 시스템 데이터 모델로 개발한 여기에는 다대다 관계가 있는 항목에 대한 새 데이터베이스를 설정하고 둘을 연결하는 작업이 포함됩니다. 예를 들어 진행 중인 프로젝트 분기에는 프로젝트 정보가 포함된 별도의 프로젝트 데이터베이스에 사용자를 연결하는 포인터가 있습니다. 이것은 XML Extensible Markup Language IDREF 기능이 작동하는 방식과 유사합니다.