논리 모델링으로 데이터 구조를 정제하는 방법

논리 모델링에서 엔티티, 식별자, 관계, 정규화와 CRUD 매트릭스를 정리해 데이터베이스 구조를 설계하는 방법

2026-08-14 · 최초 발행 2025-08-10

개념 모델을 구현 전 구조로 다듬는 단계

논리 모델링은 개념 모델링과 물리 모델링 사이에서 수행된다. 개념 모델이 저장해야 할 대상을 정한다면, 논리 모델은 그 대상을 어떤 데이터 구조로 조직할지 구체화한다. 물리 모델링은 그 구조를 실제 DBMS에 구현하는 단계다.

이 과정에서는 DBMS에 종속되지 않은 상태로 비즈니스 요구사항을 만족할 엔티티, 속성, 관계를 명확히 한다. 정규화를 적용해 데이터 중복을 줄이고 무결성 규칙을 세우는 일도 여기에 포함된다.

엔티티부터 검증까지 이어지는 설계 작업

개념 모델에서 발견한 핵심 엔티티만으로는 업무를 모두 담기 어려운 경우가 많다. 논리 모델링에서는 업무 과정에 필요한 엔티티를 추가로 식별한다.

기본 엔티티는 고객, 상품, 주문처럼 업무의 기본 정보 단위다. 엔티티 사이의 관계를 표현하는 주문상세 같은 중간 엔티티도 필요하며, 결제이력과 배송정보처럼 업무 처리 중 발생하는 정보를 저장하는 행위 엔티티도 구분한다. 상품카테고리나 지역코드처럼 공통으로 쓰이는 코드 정보는 코드 엔티티로 관리한다.

온라인 쇼핑몰을 예로 들면, 처음에는 고객·상품·주문만 파악할 수 있다. 논리 모델 단계에서는 장바구니, 배송지정보, 결제수단, 상품리뷰, 포인트이력 등의 엔티티가 추가로 도출된다.

각 엔티티에는 고유한 식별자가 필요하다. 후보키는 엔티티를 유일하게 식별할 수 있는 속성 또는 속성 집합이며, 이 가운데 대표 식별자로 선택한 것이 기본키다. 기본키로 선택되지 않은 후보키는 대체키가 되고, 다른 엔티티와의 관계를 표현하는 데 쓰는 키는 외래키다.

기본키는 NULL을 허용하지 않고 시간이 지나도 바뀌지 않는 값을 택한다. 복합키와 대리키(Surrogate Key) 중 무엇을 선택할지도 함께 검토한다. 고객번호, 이메일, 전화번호가 모두 고객의 후보키가 될 수 있지만 이메일과 전화번호는 바뀔 수 있으므로, 시스템이 생성한 고객번호를 기본키로 정할 수 있다.

유사한 엔티티는 하나로 합치고, 지나치게 복잡한 엔티티는 업무 단위에 맞춰 나눈다. 비슷한 속성을 가지거나 같은 식별자를 공유하면 통합 대상이 될 수 있다. 속성이 너무 많거나 서로 다른 업무 영역에서 쓰이는 속성 그룹이 섞여 있다면 분할을 검토한다.

정회원과 비회원은 고객 엔티티로 통합한 뒤 회원유형 속성으로 구분할 수 있다. 반대로 사원 엔티티는 기본정보, 급여정보, 인사이력으로 나누어 관리할 수 있다.

관계를 데이터 구조로 풀어내는 방식

엔티티 사이의 관계는 1:1, 1:N, N:M으로 표현한다. N:M 관계는 중간 엔티티를 추가해 1:N과 N:1 관계로 해소한다.

요청포함선택됨고객주문주문상세상품

학생과 강의가 N:M 관계라면 수강신청 엔티티를 둔다. 학생과 수강신청, 강의와 수강신청을 각각 1:N 관계로 연결해 관계 자체를 관리할 수 있다.

여러 값을 가질 수 있는 속성도 엔티티로 분리한다. 고객의 연락처가 여러 전화번호를 가질 수 있다면 고객연락처 엔티티를 만들고 고객과 1:N 관계를 설정한다.

보유고객고객연락처

정규화와 업무 흐름 검증

정규화는 중복을 줄이고 데이터 무결성을 유지하기 위한 작업이다. 제1정규형(1NF)은 속성의 원자성을 보장해 하나의 속성이 하나의 값만 갖도록 한다. 제2정규형(2NF)은 비식별자 속성이 기본키 일부에만 종속되는 부분 함수 종속성을 제거한다. 제3정규형(3NF)은 비식별자 속성이 다른 비식별자 속성에 종속되는 이행적 함수 종속성을 제거한다.

BCNF(Boyce-Codd 정규형)는 모든 결정자가 후보키가 되도록 하며, 제4정규형(4NF)은 다치 종속성을, 제5정규형(5NF)은 조인 종속성을 제거한다. 실무에서는 주로 3NF 또는 BCNF까지 정규화하고, 성능 이슈가 있으면 선택적으로 역정규화(Denormalization)를 적용한다.

주문 테이블에 고객명과 고객주소까지 포함돼 있다면 고객 정보는 이행적 함수 종속성을 가지므로 3NF를 위반한다. 고객 테이블을 분리하고 주문 테이블에는 고객ID만 외래키로 유지하는 방식으로 이를 해소할 수 있다.

완성된 논리 모델은 CRUD 매트릭스로 업무 요구사항 충족 여부를 확인한다. CRUD는 데이터 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)를 뜻한다. 업무 프로세스와 엔티티의 관계를 이 연산으로 표시하면 모델의 누락과 불필요한 구조를 확인할 수 있다.

업무 프로세스 고객 엔티티 상품 엔티티 주문 엔티티 주문상세 엔티티
회원가입 C
상품등록 C
주문처리 R R C C
주문취소 R U D

이 매트릭스에서는 누락된 엔티티나 속성, 엔티티의 적절한 사용 여부, 불필요한 엔티티, 모든 업무 프로세스의 지원 여부를 점검한다.

설계 결과물과 운영 관점의 기준

논리 모델링의 산출물에는 엔티티-관계 다이어그램(ERD), 엔티티 정의서, 속성 정의서, 관계 정의서, 도메인 정의서, CRUD 매트릭스가 포함된다.

모델은 업무 규칙과 정책을 데이터 구조에 충실히 반영해야 한다. 미래의 비즈니스 요구사항 변화, 실제 사용자의 데이터 사용 패턴, 조직의 데이터 표준과 명명 규칙도 함께 고려한다. 정규화가 부족하면 데이터 중복이 생기고, 과도하면 성능 저하가 발생할 수 있으므로 적절한 수준을 선택해야 한다. 데이터 보안과 접근 제어 역시 모델 설계 대상이다.

이렇게 정제된 논리 모델은 물리 모델링의 기반이 된다. 비즈니스 요구사항을 구조화하고, 데이터 품질과 확장성, 이해관계자 간 의사소통, 다른 시스템에서의 참조와 재사용을 뒷받침한다.

논리 모델링데이터베이스 설계ERD정규화CRUD 매트릭스