반응형
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
Ch 3. 데이터베이스 모델링 - 데이터 모델링 유형
데이터베이스 모델링 유형 : 구조와 원리
데이터 모델링은 정보 시스템의 데이터 구조와 관계를 분석하고 설계하는 방법이다. 이는 비즈니스 요구사항을 데이터베이스에 적합한 구조로 변환하는 일련의 과정이다. 데이터 모델은 데이터의 논리적 구조를 정의하며, 데이터베이스 관리 시스템(DBMS)의 발전과 함께 다양한 유형으로 진화해 왔다.
1. 전통적인 데이터 모델 유형
데이터베이스 초창기에는 단순한 데이터 구조를 표현하는 모델들이 주를 이뤘다.
1.1. 계층형 데이터 모델 (Hierarchical Data Model)
- 구조: 데이터를 트리(Tree) 형태로 표현하는 가장 오래된 데이터 모델이다. 각 레코드는 하나의 '부모' 레코드와 여러 개의 '자식' 레코드를 가질 수 있으며, 부모-자식 관계는 1:N(일대다) 관계이다. 자식 레코드는 오직 하나의 부모만을 가질 수 있다는 제약이 있다.
- 특징:
- 접근 경로: 데이터는 루트 노드(Root Node)부터 시작하여 계층 구조를 따라 접근한다.
- 유연성: 데이터 구조 변경이 어렵고, N:M(다대다) 관계를 직접적으로 표현할 수 없다.
- 예시: 회사의 조직도, 컴퓨터 파일 시스템의 디렉토리 구조 등이 이 모델에 적합하다.
1.2. 네트워크형 데이터 모델 (Network Data Model)
- 구조: 계층형 모델의 한계를 극복하기 위해 등장했으며, 데이터를 그래프(Graph) 형태로 표현한다. 레코드(노드) 간의 관계를 링크(Link)로 표현하며, 하나의 자식 레코드가 여러 개의 부모 레코드를 가질 수 있다. 이로써 N:M 관계를 직접 표현할 수 있다.
- 특징:
- 접근 경로: 계층형 모델보다 데이터 접근 경로가 다양하다.
- 유연성: 복잡한 관계를 표현할 수 있지만, 데이터 모델이 복잡해지고 설계가 어렵다.
- 예시: 복잡하게 연결된 재고 관리 시스템이나 예약 시스템.
1.3. 관계형 데이터 모델 (Relational Data Model, RDB)
- 구조: 데이터를 테이블(Table) 또는 릴레이션(Relation)이라는 2차원 구조로 표현한다. 테이블은 행(Tuple)과 열(Attribute)로 구성되며, 테이블 간의 관계는 기본 키(Primary Key)와 외래 키(Foreign Key)를 통해 정의된다.
- 특징:
- 논리적 독립성: 데이터의 논리적 구조가 변경되어도 애플리케이션에 미치는 영향을 최소화한다.
- 유연성: SQL(Structured Query Language)을 사용하여 데이터의 정의, 조작, 제어가 용이하다.
- 예시: MySQL, PostgreSQL, Oracle Database 등 대부분의 현대 DBMS가 이 모델을 기반으로 한다.
2. 현대적인 데이터 모델 유형
전통적인 모델의 한계를 극복하기 위해 NoSQL(Not only SQL)과 같은 새로운 데이터 모델이 등장했다.
2.1. 객체 지향 데이터 모델 (Object-Oriented Data Model)
- 구조: 현실 세계의 데이터를 객체(Object)와 클래스(Class)로 표현한다. 데이터와 해당 데이터를 조작하는 메서드를 하나의 객체로 묶는 캡슐화 개념을 도입한다.
- 특징:
- 객체 지향 개념 지원: 상속, 다형성, 캡슐화 등 객체 지향 프로그래밍의 원칙을 데이터베이스 설계에 적용한다.
- 객체 식별자(OID): 관계형 모델의 기본 키와 달리, 객체 생성 시 시스템에 의해 부여되며 변경되지 않는 고유한 식별자를 사용한다.
- 예시: 객체 지향 데이터베이스 관리 시스템(ODBMS).
2.2. NoSQL 데이터 모델
NoSQL은 관계형 데이터베이스의 스키마 유연성, 수평적 확장성 한계를 극복하기 위해 등장한 다양한 데이터 모델을 포함한다.
- 키-값(Key-Value) 데이터 모델:
- 구조: 고유한 키(Key)와 이에 매핑되는 값(Value) 쌍으로 데이터를 저장하는 가장 단순한 형태이다. 값의 데이터 타입에는 제약이 없다.
- 특징: 수평적 확장이 용이하고 읽기/쓰기 성능이 매우 빠르다. 복잡한 쿼리나 데이터 간의 관계 표현에는 적합하지 않다.
- 예시: Redis, Amazon DynamoDB.
- 문서(Document) 데이터 모델:
- 구조: 데이터를 JSON, BSON 같은 문서(Document) 형태로 저장한다. 각 문서는 독립적이며, 내부적으로 중첩된 구조나 배열을 가질 수 있어 유연하다.
- 특징: 스키마 없이 동적인 데이터 구조를 지원하며, 객체 지향 프로그래밍과 잘 매핑된다.
- 예시: MongoDB.
- 열 지향(Column-Family) 데이터 모델:
- 구조: 데이터를 열(Column) 단위로 저장하고 관리한다. 행 키(Row Key)와 여러 열 패밀리(Column Family)로 구성되며, 열을 동적으로 추가할 수 있다.
- 특징: 대량의 분산 데이터 처리에 강하며, 특정 열에만 접근하는 쿼리에 매우 효율적이다.
- 예시: Apache Cassandra, HBase.
- 그래프(Graph) 데이터 모델:
- 구조: 데이터와 데이터 간의 관계(Relationship)를 노드(Node)와 엣지(Edge)로 표현한다.
- 특징: 복잡하게 연결된 데이터 간의 관계를 효율적으로 탐색하고 쿼리하는 데 최적화되어 있다.
- 예시: Neo4j.
3. 데이터 모델링 유형별 비교 및 결론
데이터 모델은 애플리케이션의 요구사항에 따라 선택되어야 한다.
- 관계형 데이터 모델: 데이터의 일관성과 무결성이 중요하고, 복잡한 트랜잭션과 관계가 필요한 시스템에 적합하다.
- NoSQL 데이터 모델: 대규모 비정형 데이터를 다루고, 높은 확장성과 가용성이 요구되는 시스템에 적합하다.
과거의 계층형, 네트워크형 모델이 데이터베이스 기술 발전의 토대를 마련했다면, 관계형 모델은 오랜 시간 동안 데이터 관리의 표준으로 자리매김했다. 그리고 현대에는 빅데이터와 분산 시스템의 등장으로 인해 NoSQL을 포함한 다양한 데이터 모델이 각자의 강점을 바탕으로 공존하고 있다.
https://fastcampus.info/4n8ztzq
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
반응형
'개발공부 > 데이터베이스' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 35일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (1) | 2025.08.04 |
---|---|
패스트캠퍼스 환급챌린지 34일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.08.03 |
패스트캠퍼스 환급챌린지 33일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (4) | 2025.08.02 |
패스트캠퍼스 환급챌린지 32일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (5) | 2025.08.01 |
패스트캠퍼스 환급챌린지 31일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (3) | 2025.07.31 |