본문 바로가기

데이터베이스

데이터 모델(Data Model)

데이터 모델이란?

데이터 모델(Data Model)은 현실 세계의 데이터를 체계적으로 표현하는 구조와 기법을 의미합니다.
즉, 데이터를 어떻게 저장하고, 표현하고, 관계를 정의할 것인지에 대한 개념적 틀입니다.

데이터 모델은 데이터의 구조(Structure), 제약 조건(Constraint), 연산(Operation) 등을 포함합니다.

정보 시스템 분야에서 데이터 모델이란 실세계를 표현하는 형식화된 도구이다.

정확하게 표현하기위해 데이터 모델을 사용.

 

 


1. 데이터 모델의 구성 요소

데이터 모델은 크게 세 가지 요소로 구성됩니다.

구성요소 설명
구조 (Structure) 데이터를 구성하는 기본 요소(테이블, 속성, 관계 등)
연산 (Operation) 데이터를 조작하는 방식(검색, 삽입, 수정, 삭제)
제약 조건 (Constraint) 데이터의 일관성과 무결성을 유지하기 위한 규칙

 

데이터 모델의 3요소오 구분하여 서술한 개념 세계의 예

구조 학생(학번,이름,주소,학년,전화번호 ...)
교수(교번, 이름, 주민번호, 학과, 호봉, 임용일...)
과목(과목번호,과목명,담당교수,정원,전공구분...)
수강(학번,과목번호,신청일...)
연산 입학, 휴학,퇴학,수강신청
제약 조건 한 학기에 20학점 이상들을 수 없다.
학 교수가 한 학기에 강의할수있는 학점은 15학점 이하 이다.
호봉은 20호봉을 초과할수없다. 등등..

2. 데이터 모델의 종류

데이터 모델은 크게 개념적, 논리적, 물리적 모델로 나뉩니다.

① 개념적 데이터 모델 (Conceptual Data Model)

  • 현실 세계의 데이터를 추상적으로 표현
  • 사용자의 요구 사항을 분석하여 데이터 개념을 정의
  • ER(Entity-Relationship) 모델을 주로 사용

② 논리적 데이터 모델 (Logical Data Model)

  • 개념적 모델을 논리적으로 변환하여 표현
  • DBMS에서 실제로 구현될 수 있도록 설계
  • 관계형 모델, 계층형 모델, 네트워크형 모델 등이 있음

③ 물리적 데이터 모델 (Physical Data Model)

  • 데이터가 실제로 저장되는 방식(파일 구조, 인덱스, 저장소 최적화)
  • DBMS에서 데이터를 효율적으로 저장하고 검색하도록 설계

데이터 모델을 이용한 데이터베이스 설계 과정

현실세계(실체) -> 개념적 데이터 구조 -> 논리적 데이터 구조 -> 물리적 데이터 구조 -> 물리적 데이터베이스(DBMS)


3. 주요 데이터 모델 유형

① 관계형 데이터 모델 (Relational Model)

  • 데이터를 테이블(릴레이션, Relation) 형태로 표현
  • 행(Row) = 튜플(Tuple), 열(Column) = 속성(Attribute)
  • 테이블 간 관계를 **기본 키(Primary Key)와 외래 키(Foreign Key)**로 정의
  • SQL을 사용하여 데이터 조작
  • 예제
  • CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name VARCHAR(50), Department VARCHAR(50) );
  • 대표적인 DBMS: MySQL, PostgreSQL, Oracle, SQL Server

계층형 데이터 모델 (Hierarchical Model)

  • 트리(Tree) 구조로 데이터 계층을 표현 (부모-자식 관계)
  • 한 부모 노드가 여러 자식 노드를 가질 수 있음
  • 빠른 검색 성능을 제공하지만, 복잡한 관계 표현이 어려움
  • 예제 (조직도)
    회사
    ├── 경영부
    │   ├── 직원 A
    │   ├── 직원 B
    ├── 개발부
        ├── 직원 C
        ├── 직원 D
    
  • 대표적인 DBMS: IBM IMS

③ 네트워크형 데이터 모델 (Network Model)

  • 그래프(Graph) 구조로 데이터를 표현
  • 한 데이터가 여러 부모(Owner)와 관계를 가질 수 있음 (N:M 관계)
  • 관계가 복잡한 경우 유용, 하지만 설계가 어려움
  • 대표적인 DBMS: IDMS

④ 객체 지향 데이터 모델 (Object-Oriented Model)

  • 객체(Object) 개념을 데이터 모델에 적용
  • 데이터와 해당 연산(메서드)을 함께 저장
  • OOP(Object-Oriented Programming)과 호환성이 높음
  • 대표적인 DBMS: ObjectDB, db4o

⑤ NoSQL 데이터 모델

  • 비관계형(NoSQL) 데이터베이스에서 사용되는 데이터 모델
  • 관계형 데이터베이스의 한계를 극복하기 위해 등장
  • 종류:
    • 문서(Document) 모델: JSON, BSON 형태 (예: MongoDB)
    • 키-값(Key-Value) 모델: Key-Value 쌍 저장 (예: Redis)
    • 열(Column-Family) 모델: 분산 저장 (예: Cassandra)
    • 그래프(Graph) 모델: 노드와 엣지로 관계 표현 (예: Neo4j)

4. 데이터 모델링 과정

데이터 모델링은 현실 세계의 데이터를 데이터베이스에 효율적으로 설계하는 과정입니다.
주요 과정은 다음과 같습니다.

요구 사항 분석 사용자의 데이터 요구 사항을 정의
개념적 설계 ER 모델을 사용하여 개념적 구조 작성
논리적 설계 관계형 모델 또는 NoSQL 모델로 변환
물리적 설계 실제 저장 구조, 인덱스, 성능 최적화 수행
구현 및 테스트 데이터베이스 구축 및 성능 테스트

결론

  • 데이터 모델은 데이터를 구조화하고 저장하는 방법을 정의하는 개념
  • 개념적, 논리적, 물리적 모델로 나뉘며, 관계형 모델이 가장 널리 사용됨
  • 다양한 모델(계층형, 네트워크형, 객체 지향, NoSQL)이 존재하며, 목적에 따라 적절한 모델 선택 필요
  • 데이터 모델링을 통해 효율적이고 안정적인 데이터베이스를 설계할 수 있음