데이터베이스 모델의 종류와 특징
1. 계층형 데이터 모델 (Hierarchical Data Model)
계층형 데이터 모델은 마치 가족 족보처럼 데이터를 상하 관계로 구성합니다.
주요 특징
- 트리 구조: 하나의 루트(뿌리)에서 여러 가지가 뻗어나가는 형태입니다.
- 부모-자식 관계: 상위 데이터(부모)와 하위 데이터(자식) 간의 1:N 관계를 표현합니다.
- 단방향 접근: 부모에서 자식으로만 접근이 가능합니다.
장점
- 데이터 접근 속도가 빠릅니다.
- 계층적 구조가 명확하여 이해하기 쉽습니다.
단점
- 복잡한 관계 표현이 어렵습니다.
- 데이터 구조 변경이 어렵습니다.
- 중복 데이터가 발생할 수 있습니다.
활용 사례
- IBM의 IMS(Information Management System)
- 파일 시스템의 디렉토리 구조
- 조직도나 제품 카테고리 관리
2. 네트워크형 데이터 모델 (Network Data Model)
네트워크형 데이터 모델은 계층형 모델의 한계를 극복하기 위해 등장했으며, 그물망처럼 복잡한 관계를 표현할 수 있습니다.
주요 특징
- 그래프 구조: 노드(레코드)와 엣지(관계)로 구성된 그래프 형태입니다.
- 다중 부모-자식 관계: 한 노드가 여러 부모를 가질 수 있는 N:M 관계 표현이 가능합니다.
- 양방향 접근: 부모에서 자식, 자식에서 부모로 모두 접근 가능합니다.
장점
- 계층형 모델보다 복잡한 관계 표현이 가능합니다.
- 데이터 중복을 줄일 수 있습니다.
- 다양한 경로로 데이터 접근이 가능합니다.
단점
- 구조가 복잡하여 이해하기 어렵습니다.
- 구현과 유지보수가 어렵습니다.
- 데이터 독립성이 부족합니다.
활용 사례
- CODASYL DBTG 모델
- 제조업의 부품 관리 시스템
- 복잡한 관계를 가진 소셜 네트워크
3. 관계형 데이터 모델 (Relational Data Model)
관계형 데이터 모델은 현재 가장 널리 사용되는 모델로, 데이터를 테이블 형태로 구성합니다.
주요 특징
- 테이블 구조: 행(레코드)과 열(필드)로 구성된 2차원 테이블 형태입니다.
- 관계: 테이블 간의 관계는 키(key)를 통해 설정됩니다.
- 정규화: 데이터 중복을 최소화하기 위한 정규화 과정을 거칩니다.
장점
- 단순하고 이해하기 쉬운 구조입니다.
- 유연한 질의 처리가 가능합니다(SQL 사용).
- 데이터 독립성과 무결성 보장이 용이합니다.
- 확장성이 뛰어납니다.
단점
- 복잡한 데이터 구조 표현에 한계가 있습니다.
- 대용량 데이터 처리 시 성능 저하가 발생할 수 있습니다.
- 객체 지향 프로그래밍과의 불일치(임피던스 불일치)가 있습니다.
활용 사례
- MySQL, Oracle, SQL Server, PostgreSQL 등 대부분의 DBMS
- 기업의 업무 시스템, 웹 애플리케이션
- 은행 거래 시스템, 학사 관리 시스템
4. 객체 지향형 데이터 모델 (Object-Oriented Data Model)
객체 지향형 데이터 모델은 객체 지향 프로그래밍 개념을 데이터베이스에 적용한 모델입니다.
주요 특징
- 객체와 클래스: 데이터와 메소드를 함께 캡슐화합니다.
- 상속과 다형성: 객체 간의 계층 구조와 다양한 형태 표현이 가능합니다.
- 객체 식별자(OID): 각 객체는 고유한 식별자를 가집니다.
장점
- 복잡한 데이터 구조 표현이 용이합니다.
- 객체 지향 프로그래밍과의 통합이 자연스럽습니다.
- 데이터와 연산의 캡슐화로 보안성이 향상됩니다.
- 재사용성과 확장성이 뛰어납니다.
단점
- 표준화가 부족합니다.
- 질의 언어가 복잡할 수 있습니다.
- 관계형 모델에 비해 성능 최적화가 어려울 수 있습니다.
활용 사례
- ObjectDB, db4o 등의 객체 지향 DBMS
- CAD/CAM 시스템
- 멀티미디어 데이터베이스
- 지리 정보 시스템(GIS)
데이터 모델 비교
| 특성 | 계층형 | 네트워크형 | 관계형 | 객체 지향형 |
| 구조 | 트리 | 그래프 | 테이블 | 객체와 클래스 |
| 관계 표현 | 1 : N | N : M | 외래 키 | 참조와 컬렉션 |
| 데이터 중복 | 높음 | 중간 | 낮음 | 낮음 |
| 구현 복잡도 | 중간 | 높음 | 낮음 | 높음 |
| 유연성 | 낮음 | 중간 | 높음 | 매우 높음 |
| 현재 활용도 | 낮음 | 낮음 | 매우 높음 | 중간 |
'BOOK' 카테고리의 다른 글
| [Do it SQL] Chapter 04-3 / 04-4 (0) | 2025.03.20 |
|---|---|
| [Do it SQL] Chapter 04-2 (0) | 2025.03.19 |
| [Do it SQL] Chapter 01-1 (0) | 2025.03.12 |
| [JavaScript] 자바스크립트 (1) | 2025.03.09 |
| [CSS] Chapter 4-2 (0) | 2025.02.28 |