논리 데이터 모델링(Logical Data Modeling)은 데이터베이스 설계의 핵심 단계 중 하나로, 업무의 요구사항을 바탕으로 데이터 간의 관계, 구조, 제약조건 등을 논리적으로 정의하는 과정입니다. 이는 물리적인 저장 구조와는 분리되어 있으며, 비즈니스 관점에서 데이터를 어떻게 정리하고 사용할지를 정의합니다.
논리 데이터 모델링은 다음과 같이 정의됩니다:
사용자의 요구사항을 반영하여 데이터의 구조와 관계를 식별하고, 정규화를 통해 중복을 제거하여 통합적이고 일관성 있는 데이터 모델을 도출하는 설계 과정
단계 | 개요 | 주요 요소 |
---|---|---|
개념 모델링 | 업무 중심에서 핵심 개체와 관계를 정의 | ERD(Entity Relationship Diagram), 개체, 관계 |
논리 모델링 | DBMS 독립적이며 정규화를 통한 데이터 구조 설계 | 속성, 관계, 도메인, 식별자, 정규화 |
물리 모델링 | DBMS 특성을 반영한 물리적 구현 설계 | 테이블, 인덱스, 파티션, 데이터 타입 등 |
요소 | 설명 |
---|---|
엔터티(Entity) | 관리할 정보 단위 (예: 고객, 주문 등) |
속성(Attribute) | 엔터티가 가지는 세부 정보 (예: 고객명, 주소) |
관계(Relationship) | 엔터티 간의 연관성 (예: 고객은 주문을 한다) |
도메인(Domain) | 속성이 가질 수 있는 값의 범위 (예: 나이는 0~120) |
식별자(Identifier) | 엔터티의 유일성 확보 속성 (예: 고객ID) |
논리 모델링에서 핵심 기법 중 하나는 정규화입니다. 이는 데이터 중복 제거와 무결성 유지를 위한 과정으로 다음과 같은 단계가 있습니다:
목적/효과 | 설명 |
---|---|
데이터 중복 제거 | 정규화를 통해 중복 최소화 |
무결성 확보 | 제약조건을 통해 데이터 신뢰도 향상 |
시스템 독립성 | DBMS와 무관한 구조 설계 가능 |
요구사항 반영 | 비즈니스 규칙을 데이터에 반영 가능 |
고객이 여러 건의 주문을 할 수 있고, 각 주문에는 여러 개의 상품이 포함될 수 있다.
엔터티: 고객(Customer), 주문(Order), 상품(Product)
관계: 고객 - 주문 (1\:N), 주문 - 상품 (M\:N → 주문상세 엔터티 필요)
속성:
논리 모델링은 보안 요구사항을 포함한 데이터 설계에도 영향을 줍니다:
논리 데이터 모델링은 마치 레고 블록을 설명서대로 설계도 그리는 것과 같아요.
데이터베이스에 어떤 정보가 들어가야 할지, 서로 어떤 관계인지 그림처럼 정리하는 단계예요.
예를 들어 "엄마가 마트에서 장을 본다"는 상황에서:
이렇게 누가 무엇을 어떻게 연결되는지를 정리하는 거예요. 그리고 잘못된 설계를 피하려고 중복되는 정보는 없게, 규칙은 잘 지키게 만들어주는 게 논리 데이터 모델링이에요.