데이터모델링으로 비즈니스 요구사항을 데이터베이스 설계로 연결하는 법
데이터모델링의 개체·관계·속성과 개념·논리·물리 모델의 역할, 정규화·표준화·성능 설계 원칙을 정리합니다.
2026-08-14 · 최초 발행 2025-08-10
업무 언어를 데이터 구조로 바꾸는 일
데이터모델링은 현실의 업무 프로세스와 정보를 추상화해 데이터베이스 구조로 표현하는 설계 과정이다. 비즈니스 요구사항을 데이터 관점에서 정리하고, 복잡한 업무를 관리 가능한 형태로 단순화한다. 시스템 설계가 데이터 중심으로 출발할 수 있게 만드는 기반이기도 하다.
이 과정에서 모델은 업무 조직과 기술 조직 사이의 중재 장치가 된다. 복잡한 요구사항을 시각적으로 드러내 여러 이해관계자가 같은 대상을 논의할 수 있게 하고, 개발 초기에 요구사항 불일치나 설계 오류의 가능성을 찾는 데도 쓰인다. 데이터 중복을 줄이고 무결성을 유지하며, 데이터 접근과 관리 방식을 설계하는 출발점이 된다.
개체, 관계, 속성으로 업무를 읽는다
데이터모델은 업무가 다루는 실체와 그 연결, 그리고 실체를 설명하는 정보를 중심으로 구성된다.
개체(Entity)는 고객, 상품, 주문, 직원, 부서처럼 데이터로 관리해야 하는 업무상의 실체나 개념이다. 관계(Relationship)는 개체 간의 업무적 연관성과 의존성을 나타낸다. 고객이 주문을 생성하거나 직원이 부서에 소속되는 관계가 여기에 해당하며, 관계는 1:1, 1:N, N:M으로 구분할 수 있다.
속성(Attribute)은 개체의 특성이나 성질을 담는 상세 항목이다. 고객명과 고객번호, 상품코드와 가격, 주문일자처럼 개체를 구체적으로 설명하는 데이터가 속성이 된다.
추상화 수준에 따라 달라지는 모델의 역할
개념, 논리, 물리 모델은 같은 업무를 서로 다른 깊이에서 다룬다. 앞 단계에서 정한 업무 의미를 다음 단계에서 더 구체적인 데이터 구조와 저장 구조로 옮긴다.
업무 범위를 잡는 개념 데이터모델
개념 데이터모델은 업무 영역의 핵심 개체와 개체 간 관계를 파악하는 데 초점을 둔다. 산출물은 개체-관계 다이어그램(ERD)이며, 주제 영역과 핵심 엔터티를 찾고 비즈니스 요구사항의 범위를 정의한다. 기술적 구현 세부사항은 이 단계에서 제외한다.
요구사항을 상세 구조로 옮기는 논리 데이터모델
논리 데이터모델은 비즈니스 요구사항을 상세하고 정확한 데이터 모델로 표현한다. 상세 ERD와 정규화된 데이터 구조를 만들고, 정규화로 이상현상을 제거한다. 식별자와 비식별자 관계를 정하고 모든 속성을 정의하되, 특정 DBMS에 종속되지 않는 논리적 구조를 설계한다.
DBMS 환경에 맞추는 물리 데이터모델
물리 데이터모델은 특정 DBMS에서 사용할 저장 구조를 설계한다. 테이블 정의서, 인덱스 설계서, 테이블스페이스 설계서가 주요 산출물이다. 데이터 타입, 제약조건, 파티션 같은 물리 요소를 정하고, 성능을 위한 인덱스와 조회 성능을 위한 반정규화를 검토한다.
요구사항에서 데이터베이스 구현까지
모델링은 비즈니스 프로세스를 이해하고 사용자 인터뷰와 현행 시스템 분석을 통해 핵심 데이터 요소, 관계, 데이터 흐름, 업무 규칙을 확인하는 일에서 시작한다.
이후 핵심 엔터티와 엔터티 간 관계를 정해 고수준 ERD를 작성하고 주요 업무 규칙을 반영한다. 논리 모델 단계에서는 모든 엔터티와 속성을 상세화하며, 1NF~5NF 정규화, 식별자·비식별자 관계, 참조 무결성 제약조건을 다룬다.
물리 모델에서는 DBMS 특성에 맞춰 테이블 구조와 인덱스를 설계하고, 필요하면 반정규화와 테이블스페이스·파티션 전략을 적용한다. 마지막으로 DDL(Data Definition Language)을 생성해 테이블과 제약조건, 인덱스를 만들고 초기 데이터를 적재한다.
일관성과 조회 성능을 함께 다루기
정규화는 데이터 중복을 줄이고 무결성을 확보하기 위한 방법이다. 제1정규형(1NF)은 원자성을 확보하고, 제2정규형(2NF)은 부분 종속성을 제거한다. 제3정규형(3NF)은 이행적 종속성을 없애며, BCNF는 결정자가 후보키가 되도록 분해한다. 제4정규형(4NF)은 다치 종속성을, 제5정규형(5NF)은 조인 종속성을 제거한다.
반정규화는 성능 향상을 위해 중복을 허용하는 선택이다. 1:1, 1:N 관계의 테이블을 병합하거나 수직·수평으로 테이블을 분할할 수 있다. 조인을 줄이기 위한 중복 컬럼, 계산값을 보관하는 파생 컬럼, 트랜잭션과 이력을 나누는 이력 테이블도 검토 대상이다.
표준화는 모델의 일관성을 유지하는 장치다. 데이터 사전에 공통 용어와 표준 도메인, 명명 규칙을 담고, 용어 사전에서 비즈니스 용어·동의어·유사어를 정리하며 약어를 표준화한다. 물리 설계에서는 효율적인 인덱스, 파티셔닝, 대용량 테이블 분할, 트랜잭션 패턴을 함께 검토한다.
전자상거래와 인사관리 모델에서 보는 차이
전자상거래 시스템의 개념 모델은 고객, 상품, 카테고리, 주문, 배송, 결제를 주요 엔터티로 둔다. 고객은 주문을 생성하고 주문은 여러 상품을 포함하며, 주문은 배송과 결제 정보를 가진다. 논리 모델에서는 주문상세, 상품리뷰, 고객주소, 카트 같은 세부 엔터티를 정규화로 도출한다. 고객은 고객ID, 이름, 이메일, 전화번호, 가입일자 등의 속성으로 상세화하고, 주문-주문상세는 1:N, 상품-카테고리는 N:1 관계로 설정한다.
물리 모델에서는 TB_CUSTOMER, TB_PRODUCT, TB_ORDER, TB_ORDER_ITEM을 설계하고, 주문 조회가 빈번한 경우 주문-주문상세 테이블에 인덱스를 추가한다. 주문테이블에는 주문금액 합계 컬럼을 추가해 반정규화할 수 있으며, 주문일자를 기준으로 월별 파티셔닝을 적용할 수 있다.
기업 인사관리 시스템은 직원, 부서, 직급, 급여, 평가, 교육을 주요 엔터티로 삼는다. 직원은 부서에 소속되고 직급을 보유하며 급여와 평가 정보를 가진다. 논리 모델에서는 직원이력, 급여이력, 부서이력 같은 이력 관리 엔터티를 도출한다. 직원-직원이력은 비식별 관계, 부서-직원도 비식별 관계로 정의하고, 직원이 퇴사해도 이력은 유지되어야 한다는 참조 무결성 제약조건을 둔다.
물리 설계에서는 TB_EMP, TB_DEPT, TB_POSITION, TB_SALARY를 구성한다. 이력 관리를 위한 시작일·종료일 컬럼, 조회를 위한 인덱스, 급여 데이터 보호를 위한 테이블 분리가 필요하다.
모델의 수명을 좌우하는 설계 태도
좋은 데이터모델은 업무 이해에서 시작한다. 비즈니스 프로세스를 깊이 이해하고 현업 사용자와 협업하며 요구사항을 정확히 분석해야 한다. 명명 규칙, 데이터 타입과 길이, 모델링 방법론을 일관되게 적용하는 표준도 필요하다.
모델은 요구사항 변화도 수용해야 한다. 확장 가능한 구조와 유연한 설계를 갖추고, 대용량 데이터 처리, 트랜잭션 패턴에 따른 최적화, 데이터 보안과 접근 제어를 함께 고려해야 운영 단계까지 견딜 수 있다.