논리적 데이터 모델과 물리적 데이터 모델의 차이점은 무엇인가요?


논리적 데이터 모델과 물리적 데이터 모델의 차이점은 무엇인가요?

논리적 데이터 모델과 물리적 데이터 모델은 데이터 설계의 두 가지 중요한 단계입니다. 데이터 모델링은 다양한 이해 관계자가 조직 데이터에 대한 통합된 뷰를 생성하는 데 도움이 되는 시각적 표현 또는 청사진을 만드는 프로세스입니다. 먼저, 비즈니스 사용자의 입력을 바탕으로 데이터 항목, 속성 및 관계를 개괄적, 추상적으로 표현하는 개념적 데이터 모델링으로 시작합니다. 

논리적 데이터 모델은 개념적 모델의 보다 정교한 버전으로, 플랫폼에 구애받지 않는 방식으로 구현하기 위해 데이터 제약 조건, 엔터티 이름 및 관계를 도식적으로 나타냅니다. 물리적 데이터 모델은 특정 데이터베이스 기술을 통해 구현하기 위해 논리적 데이터 모델을 더욱 구체화합니다. 논리적 데이터 모델과 물리적 데이터 모델은 데이터의 구조, 조직 및 규칙을 정의하여 효율적인 저장, 검색 및 조작을 지원합니다.

데이터 모델링에 대해 읽어보기

표현: 논리적 데이터 모델 vs. 물리적 데이터 모델

논리적 데이터 모델과 물리적 데이터 모델은 모두 비즈니스 요구 사항이 물리적 데이터베이스에 정확하게 표현되도록 하는 도구입니다. 비즈니스 관점을 유지하면서 데이터베이스 설계를 지원하기 위해 다양한 수준의 기술 세부 정보를 제공합니다. 

논리적 데이터 모델의 표현

논리적 데이터 모델을 사용하면 비즈니스 분석가와 데이터 아키텍트가 운영 또는 트랜잭션 프로세스를 엔터티 관계 다이어그램으로 시각화할 수 있습니다. 논리적 데이터 모델은 비즈니스 이해 관계자가 이해할 수 있는 방식으로, 데이터 객체가 작동하고 트랜잭션되는 방식을 정의합니다. 따라서 나중에 배포되는 실제 데이터베이스와는 독립적으로 설계됩니다. 

다음 다이어그램은 스포츠 티켓팅 시스템을 위한 논리적 데이터 모델의 예를 보여줍니다.

각 테이블은 익숙한 비즈니스 용어로 데이터 엔터티와 해당 속성을 설명합니다. 예를 들어 person이라는 엔터티에는 full_namelast_name 속성으로 포함되어 있습니다. 모든 엔터티에 대해 기본 키(PK)를 지정하여 각 행의 속성을 구분합니다. 일부 엔터티에는 일대다 관계에서 다른 엔터티와의 관계를 나타내는 외래 키(FK)가 포함되어 있습니다. 

물리적 데이터 모델 표현

물리적 데이터 모델은 데이터베이스 관리자와 개발자가 물리적 데이터베이스의 비즈니스 로직을 구현하는 데 도움이 되는 심층적인 세부 정보를 제공합니다. 이 모델은 트리거, 저장 프로시저, 데이터 유형 등 논리적 데이터 모델에는 지정되지 않는 추가 속성을 제공합니다. 물리적 데이터 모델은 데이터 요소를 실제 데이터베이스에 매핑하기 때문에, 명명 규칙 및 예약어 사용과 같은 플랫폼별 제한을 준수해야 합니다.  

다음 다이어그램은 동일한 스포츠 티켓팅 시스템의 물리적 데이터 모델의 예를 보여줍니다.

물리적 데이터 모델에서는 모든 저장된 데이터 객체의 데이터 유형을 지정합니다. 또한 플랫폼에서 지원되는 형식을 사용하도록 엔터티 및 속성 이름을 수정합니다.

설계 방식: 논리적 데이터 모델 vs. 물리적 데이터 모델

논리적 데이터 모델과 물리적 데이터 모델을 설계하려면 공통적으로, 비즈니스 요구 사항을 실제 데이터베이스로 원활하게 구현할 수 있는 단계가 필요합니다. 논리적 데이터 모델은 특정 비즈니스 프로세스의 개념적 데이터 모델을 확장한 것입니다. 물리적 데이터 모델은 데이터베이스 설계를 위해 논리적 데이터 모델을 더욱 구체화한 것입니다. 

논리적 데이터 모델 생성

논리적 데이터 모델을 구축하려면 다음 단계를 따릅니다.

  1. 필요한 엔터티와 해당 속성을 모두 결정합니다.
  2. 속성 그룹의 고유 식별자로 적합한 PK를 선택합니다.
  3. 운영 요구 사항에 따라 데이터 모델을 정규화하고 비정규화합니다. 
  4. 데이터 모델에서 여러 비즈니스 엔터티 간의 관계를 설정합니다.
  5. 데이터 엔터티와 그 관계를 검증하여 비즈니스 로직을 정확하게 표현합니다. 

개별 엔터티 간의 관계를 정의합니다. 일부 엔터티는 서로 직접 연결되어 있고, 일부 엔터티는 공통 엔터티를 통해 연결될 수 있습니다. 일반적으로 각 이해 관계자와 상의하여 비즈니스 요구 사항에 따라 엔터티가 올바르게 연결되었는지 확인합니다. 또한 일부 엔터티를 복제하고 다른 엔터티는 전략적으로 단일 인스턴스로 제한하여, 쿼리 효율성을 높이고 스토리지 공간을 최소화할 수 있습니다.

물리적 데이터 모델 생성

물리적 데이터 모델을 설계하려면 다음 단계를 따릅니다.

  1. 로컬 데이터 모델을 선택한 데이터베이스 제공업체의 플랫폼에 맞게 변환합니다. 
  2. 데이터 엔터티를 해당 테이블에 매핑합니다. 
  3. 필요에 따라 데이터베이스 테이블에 PK와 FK를 매핑하고 생성합니다.
  4. 데이터베이스 구조가 적절하게 정규화되어 중복 데이터가 제거되고 데이터 무결성이 개선되는지 확인합니다. 
  5. 관련 데이터베이스 제약 조건, 규칙, 파티션 및 프로그래밍 기능을 추가하여 애플리케이션 개발을 지원합니다.
  6. 물리적 데이터 모델과 논리적 데이터 모델을 비교하여 비즈니스 요구 사항이 올바르게 변환되었는지 확인합니다. 

한 엔터티가 여러 테이블로 분할되는 경우도 있습니다. 각 테이블에는 논리적 데이터 모델의 속성으로 지정된 정보를 저장하는 열이 여러 개 있습니다. 물리적 데이터 모델에서 열은 정수, varchar, 부울 등의 데이터 유형에 따라 구분됩니다.

주요 차이점: 논리적 데이터 모델 vs. 물리적 데이터 모델

논리적 데이터 모델과 물리적 데이터 모델은 모두 데이터 모델링 프로세스의 일부임에도 불구하고 서로 다른 특성으로 구분됩니다. 

목표

논리적 데이터 모델을 사용하면 프로세스 워크플로를 기술적으로 구조화된 방식으로 시각화할 수 있습니다. 다양한 비즈니스 시스템 간의 관계를 파악할 수 있습니다. 

반면, 물리적 데이터 모델은 실제 데이터베이스 테이블에서 데이터가 구성되는 방식을 설명합니다. 애플리케이션이 실제 데이터를 저장하고 액세스하는 방법을 하향식으로 살펴볼 수 있습니다. 

제작자

일반적으로 데이터 아키텍트와 비즈니스 분석가는 논리적 데이터 모델을 만듭니다. 개발자와 데이터베이스 관리자는 물리적 데이터 모델을 구현하는 작업을 담당합니다. 

복잡성

논리적 데이터 모델은 비즈니스 데이터 객체의 상호 연결을 정의하는 만큼 물리적 데이터 모델보다 간단합니다. 각 데이터 객체는 데이터 엔터티와 관련 속성으로 구성됩니다. 

물리적 데이터 모델은 더 복잡합니다. 테이블, 열, 인덱스를 사용하여 물리적 데이터 모델의 데이터 요소를 구성하고 엄격한 플랫폼 제약 조건을 따릅니다. 물리적 데이터 모델의 데이터 구조에는 카디널리티 및 null 허용 여부와 같은 보다 엄격한 관계가 적용됩니다. 

사용 사례

논리적 데이터 모델링을 사용하여 엔터프라이즈 시스템의 정보 흐름을 시각화합니다. 분석가, 관리자 및 비즈니스 사용자는 특정 시스템의 작동 방식과 해당 비즈니스 개념을 이해할 수 있습니다.

애플리케이션 개발자는 프로덕션 용도로 애플리케이션을 구축할 때 물리적 데이터 모델을 사용하여 데이터 스토리지를 계획하고 최적화합니다. 물리적 데이터 모델은 관계형 데이터베이스에 데이터를 저장하기 위한 청사진입니다. 

관계형 데이터베이스에 대해 읽어보기

차이점 요약: 논리적 데이터 모델 vs. 물리적 데이터 모델

 

논리적 데이터 모델

물리적 데이터 모델

플랫폼 종속 데이터베이스

아니요.

예.

데이터 구조 

엔터티, 속성, PK, FK

데이터베이스 테이블, 행, PK, FK, 데이터 유형

프로그래밍 기능

아니요.

트리거 및 저장 프로시저

목표

데이터 구조를 사용하여 비즈니스 로직을 시각화합니다.

데이터베이스 설계를 위한 데이터 구조를 구성합니다.

제작자

비즈니스 분석가 및 데이터 아키텍트

소프트웨어 개발자, 프로그래머, 데이터베이스 관리자

복잡성

단순합니다.

복잡합니다.

사용 사례

엔터프라이즈 시스템 및 비즈니스 규칙을 이해하기 위해 사용합니다.

애플리케이션을 개발할 때 데이터 스토리지를 계획, 구현 및 최적화하기 위해 사용합니다. 

AWS는 논리적 데이터 모델과 물리적 데이터 모델을 어떻게 지원하나요?

Amazon Web Services(AWS) 데이터베이스에는 다양한 데이터 모델을 지원하는 15개 이상의 데이터베이스 엔진이 포함되어 있습니다. 예를 들어 Amazon Relational Database Service(RDS)를 사용하여 논리적 관계형 데이터 모델을 구현하고 Amazon Neptune을 사용하여 논리적 그래프 데이터 모델을 구현할 수 있습니다.

또한 빠르고 쉬운 데이터 모델링을 위해 AWS Amplify DataStore를 사용하여 모바일 및 웹 애플리케이션을 구축할 수 있습니다. 관계로 데이터 모델을 정의하기 위한 시각적 및 코드 기반 인터페이스가 있어 애플리케이션 개발을 가속화할 수 있습니다.

AWS에서 데이터 모델링을 수행하는 방법은 다음과 같습니다.

  • Amazon RDS를 사용하면 Amazon Aurora MySQL 호환 에디션, Amazon Aurora PostgreSQL 호환 에디션, SQL Server 및 기타 인기 있는 데이터베이스 엔진을 사용하여 데이터베이스를 구축하고 규모를 조정할 수 있습니다.
  • Neptune을 사용하면 초당 10만 개 이상의 쿼리를 처리할 수 있는 고가용성 그래프 애플리케이션을 구축할 수 있습니다.
  • Amplify Datastore는 클라우드에서 데이터를 손쉽게 쿼리, 업데이트, 정렬 또는 필터링하는 데 사용할 수 있는 클라이언트 라이브러리를 제공합니다.

지금 계정을 만들어 AWS에서 논리적 데이터 모델과 물리적 데이터 모델을 시작하세요.