중첩 집합 모델이란 무엇입니까?
중첩 집합 모델은 수정 된 프리오더 트리 탐색 알고리즘이라고도하며 관계형 데이터베이스 내에 계층 적 데이터를 저장하는 방법입니다. 이 모델은 매우 빠른 액세스를 제공한다는 이점이 있으며, 쓰기보다 자주 읽는 계층 구조에서 가장 잘 구현됩니다. 정보 모델 내의 각 노드에는 속성으로 저장된 두 개의 숫자가 할당됩니다. 필요한 값을 모두 꺼내기 위해 두 값을 모두 사용할 수 있기 때문에 중첩 집합 모델을 쿼리하는 것은 매우 쉽습니다. 삽입, 삭제, 이동 및 업데이트는 노드 번호를 다시 매길 수 있으므로 훨씬 번거 롭습니다.
일반적으로 중첩 세트 또는 트리 형태로 계층 정보를 나타내는 데 사용되는 중첩 세트 모델은 Joe Celko에 의해 도입되었습니다. 이 경우 트리는 여러 개의 연결된 노드를 포함하는 데이터 구조입니다. 예를 들어, 상위 노드는 여러 하위 노드에 연결될 수 있으며이 구조는 여러 레벨을 통해 트리를 통해 반복됩니다.
트리는 공통 특성에 따라 데이터를 저장하는 데이터 세트 인 관계형 데이터베이스 내에서 특정 순서로 정보를 저장하는 좋은 방법입니다. 예를 들어, 상점의 식품 섹션에있는 제품 정보는 음식, 과일, 채소 및 육류로 분기 될 수 있습니다. 과일은 장과, 멜론, 사과, 채소로 괴경, 채소 등으로, 고기를 돼지 고기, 양고기, 송아지 고기로 세분 할 수 있습니다.
관계형 데이터베이스는이 모든 정보를 이해하기 쉬운 형태로 저장하며 중첩 집합 모델을 사용하면 트리 구조를 효율적으로 관리 할 수 있습니다. 위의 예를 사용하면 루트 노드는 음식이며 두 값으로 표시됩니다. 음식의 왼쪽 값이 1 인 경우 트리의 다른 항목은 왼쪽에 순서대로 번호가 할당됩니다. 과일은 왼쪽에 2의 값을, 딸기는 3에 해당합니다. 그런 다음 값이 오른쪽에 할당되고 마지막 값이 오른쪽에있는 음식에 할당 될 때까지 각 분기를 통해 트리를 통해 맨 아래부터 끝까지 작동합니다.
트리의 각 항목은 왼쪽의 lft 와 오른쪽의 rgt 와 같은 두 값으로 끝나며 ,이를 식별하고 다른 항목과의 관계를 나타내는 데 사용할 수 있습니다. 예를 들어 과일의 값이 2와 15 인 경우 왼쪽보다 2보다 크고 오른쪽으로 15보다 작은 모든 노드는 과일 나무 2-15의 자손입니다. 이러한 값을 데이터베이스에 대한 단일 쿼리로 지정할 수 있으므로 모든 과일에 대한 정보를 한 번에 쉽게 가져올 수 있습니다.
이 모델은 자주 액세스되는 정보를 저장하는 데 탁월하지만 중첩 된 세트 모델의 삽입, 삭제 및 재정렬 정보는 매우 지루합니다. 인덱스가 다시 작성되고 정보의 번호가 다시 매겨지면 특히 트리에 수십만 개의 노드가 포함되어 있으면 데이터베이스가 중단 될 수 있습니다. 중첩 집합 모델은 삽입 및 변경이 최소 인 가벼운 콘텐츠 관리 시스템에 가장 적합합니다. 경로 정보를 인코딩하는 동안 부동 소수점 10 진수를 사용하여 트리에서 각 노드의 위치를 저장하므로 중첩 간격 모델에서 삽입을 훨씬 빠르게 수행 할 수 있습니다.