데이터를 트리(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
ex) "도서관" → "프로그래밍" → "Java" → "Effective Java" → "Java Concurrency in Practice" → 다음 노드 …
ex) "도서관" → "프로그래밍", "문학" → "Java", "Python", "소설", "시집" → "Effective Java", "Fluent Python", "1984" …
관계형 데이터베이스에서의 계층형 데이터 표현 방법
parent_id 컬럼 이용
left / right 컬럼 이용
모든 경로를 저장하는 테이블 추가.
chatGPT