데이터 모델링

김기현·2025년 6월 16일

Database

목록 보기
15/24

데이터 모델링은 소프트웨어 개발에서 매우 중요한 단계로, 현실 세계의 데이터를 컴퓨터 시스템에 효과적으로 저장, 관리, 처리할 수 있도록 논리적 구조로 변환하는 과정을 의미한다.

개념

현실 세계으 개체, 속성, 관계를 분석하고 이를 데이터베이스에 구현 가능한 구조로 설계하는 과정이다. 데이터 모델링은 크게 세 단계로 나뉜다.

단계설명모델링 산출물
개념적 모델링 (Conceptual)비즈니스 관점에서 핵심 개체 및 관계 정의ERD(Entity Relationship Diagram)
논리적 모델링 (Logical)DBMS 독립적 구조 설계, 정규화 적용속성 상세화, 키 정의, 정규화
물리적 모델링 (Physical)실제 DBMS에 맞게 테이블 구조 정의테이블/컬럼 정의, 인덱스, 제약조건 등

개체 (Entity)

  • 현실 세계의 명사형 객체.
    • ex) 사용자, 주문, 상품
  • 하나의 테이블로 매핑된다.

속성 (Attribute)

  • 개체의 특성이며 테이블의 컬럼에 해당한다.
    • ex) user.username, user.email

관계 (Relationship)

  • 개체 간의 연관성을 의미한다.
    • ex) userorder는 1:N 관계이다.

기본 키 (Primary Key)

개체를 유일하게 식별하는 속성

외래 키 (Foreign Key)

다른 테이블의 기본 키를 참조하는 속성으로 관계를 표현한다.

정규화 (Normalization)

정규화는 데이터 중복을 제거하고 무결성을 높이기 위한 데이터 구조 최적화 기법이다.

단계목적특징
1NF원자값만 저장컬럼에 복합값/반복그룹 제거
2NF부분적 종속 제거기본키 전체에 종속
3NF이행적 종속 제거비-키가 비-키에 종속 안 됨

너무 과도한 정규화는 JOIN을 많이 발생시켜 성능 저하를 유발할 수 있다. 실무에서는 비정규화를 통해 성능을 고려한 설계를 하기도 한다.

ERD, Entity-Relationship Diagram

ERD는 데이터베이스 구조를 시각적으로 표현한 다이어그램이다. 보통 아래와 같은 정보를 포함한다.

  • 개체 (사각형)
  • 속성 (타원형 or 표)
  • 관계선 (1:1, 1:N, N:M 등)

실무 적용 팁

  • 비즈니스 용어를 테이블/컬럼 명에 반영하여 테이블 또는 컬럼이 어떤 역할을 하는지 이해하기 쉽게 한다.
  • 규칙적인 네이밍 컨벤션을 사용한다.
  • 초기 정규화 후에 비정규화로 성능 최적화.

결론

데이터 모델링은 아래의 조건들을 고려하며 설계해야 한다.

  • 요구사항을 명확하게 이해해야 한다.
  • 정규화와 관계 설정을 기반으로 설계해야 한다.
  • 향후 유지보수성과 확장성까지 고려하여 설계해야 한다.
profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글