Hierarchical Database

dia·2025년 1월 30일

계층형 데이터베이스

데이터를 트리(Tree) 구조로 저장하는 방식의 데이터베이스

부모 노드는 하나 이상의 자식 노드를 가질 수 있음
자식 노드는 하나의 부모 노드만 가질 수 있음


장점

직관적인 데이터 구조
빠른 데이터 접근
데이터 보안 강화 (특정 계층의 데이터에 접근 권한 제한)

단점

새로운 계층의 추가/변경 어려움
부모 노드를 변경하면 모든 자식 노드의 경로도 수정해야 함
M:N 관계 표현의 어려움 (1:N 관계만 가능)


예시

Record Type: Category (카테고리)
---------------------------------
Category ID | Parent Category ID | Name
---------------------------------
1           | NULL               | 도서관
2           | 1                  | 프로그래밍
3           | 2                  | Java
4           | 3                  | Effective Java
5           | 3                  | Java Concurrency in Practice
6           | 2                  | Python
7           | 6                  | Fluent Python
8           | 6                  | Python Crash Course
9           | 2                  | 데이터베이스
10          | 9                  | SQL for Dummies
11          | 9                  | Database Systems
12          | 1                  | 문학
13          | 12                 | 소설
14          | 13                 | 1984
15          | 13                 | The Great Gatsby
16          | 12                 | 시집
17          | 16                 | Milk and Honey
18          | 16                 | The Sun and Her Flowers

데이터 조회

방법 1: DFS (깊이 우선 탐색)

ex) "도서관" → "프로그래밍" → "Java" → "Effective Java" → "Java Concurrency in Practice" → 다음 노드 …

방법 2: BFS (너비 우선 탐색)

ex) "도서관" → "프로그래밍", "문학" → "Java", "Python", "소설", "시집" → "Effective Java", "Fluent Python", "1984" …


RDBMS에서의 계층형 데이터

관계형 데이터베이스에서의 계층형 데이터 표현 방법

Adjacency List

parent_id 컬럼 이용

Nested Set Model

left / right 컬럼 이용

Closure Table

모든 경로를 저장하는 테이블 추가.



chatGPT

profile
CS 메모장

0개의 댓글