계층적 데이터란 무엇입니까?

계층적 데이터는 항목이 전체 트리 구조에서 부모-자식 관계로 서로 연결된 경우의 데이터 구조입니다. 데이터를 조부모, 부모, 자녀 및 손자가 연결되어 데이터의 계층 구조를 형성하는 가계도와 같이 생각해십시오. 일반적으로 조직도, 과제를 가진 프로젝트 또는 언어 용어의 분류 체계를 표시하는 데 사용됩니다.

계층적 데이터 예

계층적 데이터에서 각 "자식" 노드에는 "부모"가 하나만 있지만 각 부모는 여러 자식을 가질 수 있습니다. 계층 구조의 맨 위에 있는 첫 번째 노드를 루트 노드라고 합니다. 정보를 검색해야 하는 경우 루트 노드에서 아래로 전체 트리를 스캔합니다. 사용자는 조회할 때마다 전체 트리를 스캔해야 하므로 시스템은 유연성이 없고 느려집니다. 최신 데이터베이스는 더 빠르고 쉬운 검색을 위해 동일한 데이터에 대해 여러 계층을 사용하도록 진화되었습니다.

그러나 계층적 데이터는 오늘날에도 여전히 널리 사용됩니다. 계층적 데이터 구조의 일반적인 용도는 직원 정보입니다. 조직도 구조에서 맨 위에 CEO 루트 노드가 있고 아래에 직원 구조가 있습니다.

1960년대에 IBM에서 개발한 계층적 데이터 모델은 가장 초기 모델 유형 중 하나입니다. 그러나 이 모델은 모델에 내재된 몇 가지 중요한 구조적 문제를 극복하기 위해 관계형 데이터 모델로 빠르게 대체되었습니다.

데이터 구조가 중요한 이유는 무엇입니까?

조직의 데이터 구조는 매우 중요합니다. 기업이 정보를 입력하고, 처리하고, 검색하고, 유지 관리하는 데서 데이터 구조 유형을 선택하는 것이 절대적으로 중요합니다. 폴더 구조나 명명 규칙이 없는 컴퓨터를 상상해 보십시오. 찾거나 사용할 수 있는 능력이 심각하게 손상될 것입니다.

대신 기업에서는 논리적 부서 이름으로 정렬된 폴더를 찾을 수 있습니다. 폴더는 해당 부서에서 재무 분기 또는 해당 비즈니스에 적용되는 다른 논리적 방법으로 정렬될 수 있습니다. 그런 다음 개별 파일의 이름이 특정 형식으로 기록된 날짜 또는 버전으로 지정됩니다. 이것들은 모두 알파 순서로 저장됩니다. 즉, 직원이 특정 파일에 액세스해야 하는 경우 드릴다운하여 필요한 항목을 찾는 작업이 매우 간단합니다. 마찬가지로, 우수한 데이터 구조는 우수하고 빠르고 효율적인 비즈니스 관행을 가능하게 합니다.

일반적으로 데이터 사이언스의 거대한 제한은 세계가 끊임없이 변화되고 3차원적이지만 컴퓨터는 이를 평탄하고 변경할 수 없는 것으로 인식한다는 것입니다. 사람들은 개 품종이 200가지, 뱀이 200가지 종류가 있다는 것을 알고 있지만 컴퓨터는 400가지 항목으로만 인식하고 있습니다. 데이터 구조는 컴퓨터가 해석할 수 있는 방식으로 데이터를 그룹화, 액세스, 처리 및 확인하는 데 중요합니다.

모든 공유 데이터 자산을 통제, 관리 및 소비할 수 있는 단일 솔루션을 찾습니다
모든 공유 데이터 자산을 통제, 관리 및 소비할 수 있는 단일 솔루션을 찾습니다
엔터프라이즈 전체에서 데이터 자산을 관리하는 올인원 접근 방식을 가진 사일로를 피하십시오.

조직은 언제 계층적 데이터를 사용해야 합니까?

현재 은행 및 통신업체와 같은 조직은 애플리케이션에서 계층적 데이터를 사용합니다. 빠르고 매우 정확한 성능이 필요하기 때문입니다. 대부분의 컴퓨터에 있는 Windows 레지스트리는 계층적 데이터 구조의 한 예이기도 합니다. 복잡한 제조 프로젝트는 또한 대량의 데이터로 인해 계층적 데이터 모델을 사용하는 경우가 많습니다.

계층적 데이터는 다음과 같은 경우에 가장 적합하게 사용됩니다.

  • 데이터를 명확한 부모 및 자식 구조를 가진 "트리" 형식으로 저장할 수 있습니다.
  • 계층 구조를 캡처할 필요가 있습니다.
  • 데이터 용량에 대한 높은 요구 사항이 있습니다.
  • 기존 시스템이 관계형 또는 네트워크 모델로 마이그레이션하기에 너무 복잡합니다.

계층적 데이터의 대안

관계형 데이터

가장 일반적인 데이터 모델로 데이터가 관계에 따라 그룹화되는 경우입니다. 변수 집합은 true, false 또는 null 범주로 그룹화됩니다. 그런 다음 데이터 항목을 변수 및 속성을 공유하는 다른 항목과 결합합니다. 그룹은 관계로 연결됩니다. 이 항목 그룹은 해당 그룹과 유사합니다. 일대다 속성으로 제한되는 계층적 데이터와 달리 관계형 데이터에는 다대다 관계가 있을 수 있습니다. 관계형 데이터베이스는 표준 쿼리 언어인 SQL(Structured Query Language, 구조화된 질의 언어)을 사용합니다.

관계형 모델은 인스턴스 간에 데이터 일관성을 유지하는 데 매우 적합합니다. 예를 들어 고객이 ATM에서 돈을 인출하는 경우 해당 변경 사항은 전화 앱의 잔액에 반영됩니다. 따라서 다양한 시스템에 걸쳐 여러 데이터 인스턴스가 정확하도록 하는 데 매우 적합합니다.

계층 구조와 비교하여 데이터를 트리 구조로 저장하지 않고 테이블에 저장합니다.

네트워크 모델

관계형 데이터 모델과 마찬가지로 네트워크 모델은 계층적 데이터베이스 모델 고유의 단점을 해결하기 위해 만들어졌습니다. 네트워크 데이터 모델에서 자식은 소유자 및 구성원이라고 할지라도 여러 부모에 연결할 수 있습니다.

이 모델은 다양한 관계를 지원하며 계층적 모델보다 훨씬 유연합니다. 그러나 훨씬 더 복잡하여 관리 및 유지 관리가 어렵습니다. 그것은 여전히 관계형 데이터 모델만큼 유연하지 않으며 모든 관계를 정확하게 모델링하고 소유자 및 구성원에 연결할 수 있는 것은 아닙니다.

계층적 데이터 구조의 장점

데이터 검색 용이

데이터 노드 간의 링크가 잘 정의되어 있기 때문에 데이터를 쉽게 찾고 검색할 수 있습니다. 부모와 자식이 밀접하게 함께 저장되기 때문에 탐색 및 데이터 검색도 빠릅니다.

참조 무결성

부모 테이블의 모든 변경 사항은 자식 테이블에서 자동으로 변경되기 때문에 데이터 무결성이 항상 유지됩니다.

간단한 구조

거꾸로 된 부모-자식 관계 구조를 즉각적이고 쉽게 이해할 수 있습니다. 개념적으로 간단하고 데이터베이스 내에서 명확한 명령 체인을 가지고 있으므로 결과적으로 높은 성능을 제공합니다. 구조가 간단하기 때문에 데이터 공유도 쉽습니다.

우수한 보안

데이터베이스 보안은 데이터베이스 관리 시스템에서 제공히고 시행합니다. 일부 구조화된 질의어 개발자들은 데이터를 꺼내려면 마술사가 되어야 한다고 말할 정도로 매우 안전합니다.

통합 데이터 인프라 전자책
O'Reilly 보고서: 통합 데이터 인프라 구축
기업의 3 분의 1만이 데이터 기반 조직으로 변경했습니다. 해결책은 무엇입니까? 이 전자책에서 알아보십시오!

계층적 데이터 구조의 과제

불가변성

모델은 유연성이 없고 경직되어 있어 노드나 관계를 추가하면 전체 구조가 손상될 수 있습니다. 부모 테이블과 자식 테이블이 관련이 없는 경우 부모 테이블에 먼저 추가 데이터를 입력해야 하므로 자식 테이블에 새 항목을 추가하기가 어렵습니다. 마찬가지로, 자식을 한 수준에서 다른 수준으로 옮기는 것은 어려운 일입니다.

일대다 관계에만 적합

한 부모에게 많은 자식이 있을 때 그러한 관계는 쉽게 드러날 수 있습니다. 그러나 다대다 관계가 있는 경우 이를 표현하기가 더 어렵습니다. 부모-자식 관계보다 더 복잡한 것은 계층적 데이터에서 지원되지 않습니다. 자식은 다른 부모와 연결할 수 없으며 다른 부모의 자식과 연결할 수 있는 능력이 없습니다.

삭제

부모 항목이 삭제되면 모든 자식(및 그 이상)도 자동으로 삭제됩니다. 데스크톱 컴퓨터에서 폴더를 삭제하면 폴더 안의 모든 파일이 삭제된다고 생각해보면 알 수 있습니다. 이는 계층적 데이터베이스의 삭제에서 작동하는 방식과 유사합니다.

표준 부족

특정한 데이터 정의나 데이터 조작 언어는 없습니다. 일반적으로 시스템은 표준을 시행하기 위해 경직성에 의존하지만 이것이 항상 작동하는 것은 아닙니다.

구현의 복잡성

계층적 데이터 시스템을 구현하려면 데이터 저장 특성에 대한 이해와 조직 구조에 대한 지식이 필요합니다. 이로 인해 다른 시스템에 비해 구현이 복잡하고 어렵습니다.

계층적 데이터 모델의 미래

오늘날에도 계층적 성격을 띠는 일부 모델이 여전히 존재하지만 인기가 떨어지고 있습니다. 새 시스템에서 계층적 데이터 모델을 구현하는 것은 드문 일입니다. 그들의 경직성, 구현의 어려움 및 거대한 제한으로 인해 비경제적이고 구현하기가 어렵습니다.

데이터 액세스 측면에서는 효율적일 수 있지만, 제한적인 특성으로 인해 매우 다양한 데이터 유형 및 볼륨의 문제를 해결할 수 없습니다.

최초의 데이터 모델 중 하나로서, 기술의 빠른 특성으로 인해 기술이 쓸모없게 될 것이라고는 예상할 수 없었습니다. 그러나 이런 일이 일어나고 있습니다. 미래는 계층적 데이터가 줄 수 없는 유연성 및 특성에 있습니다. 네트워크와 생태계는 계층 구조를 데이터를 저장하고 액세스하는 보다 유기적인 방식으로 빠르게 대체하고 있습니다.