CS (Computer Science)

[개발 공부 108일차] DB 개론 | ERD, 논리적/물리적 데이터 모델링

MOLLY_ 2024. 9. 29. 00:18
728x90

< 목차 >

0. TL;DR

1. 논리적 데이터 모델링

2. 개념적 모델링과 논리적 모델링 매핑

3. 물리적 데이터 모델링

4. ERD (Entity Relationship Diagram)

 

 

0. TL;DR

  1. 논리적 데이터 모델링: 개념적 모델을 상세화하는 과정
  2. 물리적 데이터 모델링: 논리적 데이터 모델을 특정 DBMS 기술에 매핑하고, 소프트웨어의 용어를 사용
  3. ERD: 시스템의 엔티티가 무엇이 있는지, 어떤 관계가 있는지를 나타내는 다이어그램

 

 

1. 논리적 데이터 모델링

: 개념적 데이터 클래스를 기술적 데이터 구조에 매핑하는 단계

즉, 개념적 모델을 상세화하는 과정을 의미한다.

 

개념적 데이터 모델에서 식별된 데이터 개념과 복잡한 데이터 관계에 대한 자세한 내용을 제공한다.

 

  • 다양한 속성의 데이터 유형 (e.g. 문자열 or 숫자)
  • 데이터 엔티티 간의 관계
  • 데이터의 기본 속성 or 키 필드
  • 데이터 아키텍트와 분석가가 협업을 통해 만듦
  • 표현을 생성하기 위해 여러 공식 데이터 모델링 시스템 중 하나를 따름
  • 업무를 모델링 표기법으로 형상화
  • 직관적이며 특정 DB 모델 기반 논리적 스키마로 변환하는 과정

 

 

논리적 데이터 모델링 단계

1. 특정 순서 없이 진행

Task 설명
엔티티 타입 도출 기본, 중심, 행위 엔티티 도출
관계 도출 엔티티 타입 간 관계 도출
식별자 도출 PK, FK, UK, AK 정의
속성 도출 기본, 설계, 파생 속성 정의
세부사항 도출 용어 사전, 도메인, 속성 규칙
정규화 1, 2, 3, 4, 5차 정규화, BCNF
통합 / 분할 엔티티 성격 기반 통합 / 분할

 

 

2. 단계말

Task 설명
데이터 모델 검증 엔티티 타입, 속성, 관계 적합성

 

 

논리적 데이터 모델링 예시 - 자동차 대리점

  • 대리점 엔티티
    • 대리점의 이름 및 위치 정보는 텍스트 형식 필요
    • 대리점 전화번호는 숫자 데이터 형식 필드 존재
  • Showrooms 엔티티
    • 쇼룸의 구역은 텍스트 형식 정보 필요
    • 쇼룸의 크기는 숫자 형식으로 존재
  • Customers 엔티티
    • 고객 이메일은 xxx@example.com 형식의 이메일 주소 필드 필요
    • 이메일 길이는 255 글자 이하
  • Sales 엔티티
    • 고객 이름 필드, 판매점 이름 필드, 텍스트 형식
    • YYYY-MM-DD 형식의 판매 날짜 필드 존재
    • 10진수 데이터 형식의 금액 필드 존재

 

 

2. 개념적 모델링과 논리적 모델링 매핑

 

 

3. 물리적 데이터 모델링

: 논리적 데이터 모델을 특정 DBMS 기술에 매핑하고, 소프트웨어의 용어를 사용

 

  • DBMS에 표현된 데이터 필드 유형
  • DBMS에 표현된 데이터 관계
  • 성능 조정과 같은 추가 세부 정보
  • 데이터 엔지니어는 최종 설계 구현 전에 물리적 모델을 생성
  • 데이터 모델링 기술을 따라 설계의 모든 측면을 다뤘는지 확인

 

 

물리적 데이터 모델링 단계

1. 일괄 전환

과정 고려사항
엔티티별 테이블 전환 Sub Type 설계 방안
식별자 Primary Key 정의 - Artificial Key 검토
- PK 컬럼 순서 검토
속성의 컬럼 전환 - 영문 컬럼명 매핑
- 데이터 타입 / 길이 도메인 결정
Relationship의 컬럼으로 전환 참조 무결성 규칙 및 구현방안 결정

 

 

2. 구조 조정

과정 고려사항
수퍼 타입 / 서브 타입 모델 전환 - 트랜잭션 성격 전체 / 부분 통합
- 데이터 모델 조정

 

 

3. 성능 향상

과정 고려사항
성능 고려한 반정규화 SQL 활용 능력 미흡으로 인한 빈번한 비정규화 배제

 

 

물리적 데이터 모델링 예시 - 자동차 대리점

  • 대리점 엔티티
    • 대리점의 이름 및 위치 정보: VARCHAR(50), VARCHAR(255)
    • 대리점 전화번호는 숫자 데이터 형식: INT
  • Showrooms 엔티티
    • 쇼룸의 구역은 텍스트 형식 정보 필요: VARCHAR(255)
    • 쇼룸의 크기는 숫자 형식으로 존재: INT
  • Customers 엔티티
    • 고객 이메일은 xxx@example.com 형식의 이메일 주소 필드 필요
    • 이메일의 길이는 255 글자 이하: VARCHAR(255)
  • Sales 엔티티
    • 고객 이름 필드, 판매원 이름 필드, 텍스트 형식: VARCHAR(50)
    • YYYY-MM-DD 형식의 판매 날짜 필드 존재: DATETIME
    • 10진수 데이터 형식의 금액 필드가 존재: MONEY, FLOAT

 

 

4. ERD (Entity Relationship Diagram)

: 시스템의 엔티티가 무엇이 있는지, 어떤 관계가 있는지를 나타내는 다이어그램

 

  • 주로 관계형 DB에서 널리 사용됨
  • 엔티티와 속성을 테이블과 컬럼으로 변환
  • 테이블과 관계를 시각화할 수 있기 때문에 설계 문제점을 파악
  • 서로 다른 시스템 요소와 서로 간의 관계를 식별하는 데 도움

 

 

논리적 ERD

 

 

물리적 ERD

 

 

728x90