[SQLD] 모델링(Modeling) | PART 1

데이터베이스 모델링은 ‘현실 세계를 단순화하여 표현하는 기법’이다.
Hi's avatar
Sep 04, 2024
[SQLD] 모델링(Modeling) | PART 1

💡
데이터베이스 모델링은 ‘현실 세계를 단순화하여 표현하는 기법’이다.
 
 
 
 

✅ 1. 모델링 특징

☑️ 1) 추상화(Abstraction)

현실 세계를 일정한 형식으로 표현하는 것이다. 즉, 아이디어나 개념을 간략하게 표현하는 과정이다.

☑️ 2) 단순화(Simplification)

복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미이다.

☑️ 3) 명확화(Clarity)

불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는 의미이다.
 
 

✅ 2. 모델링의 세 가지 관점

☑️ 1) 데이터 관점(What, Data)

데이터 위주의 모델링이다.
어떤 데이터들이 어떤 업무와 얽혀있는지, 그리고 그 데이터 사이에는 어떤 관계가 있는지에 대해서 모델링하는 방법이다.

예시:

💡
ERD(Entity-Relationship Diagram)
ERD는 데이터베이스 설계를 위해 엔터티(데이터베이스 테이블에 해당)와 그들 간의 관계를 시각적으로 표현하는 다이어그램이다.
예를 들어, 쇼핑몰 시스템에서 고객(Customer), 주문(Order), 제품(Product)이라는 엔터티가 있고, 고객과 주문, 주문과 제품 사이의 관계를 정의한다. 이를 통해 어떤 데이터가 어떤 업무와 연관되어 있는지, 데이터 간의 관계는 무엇인지를 명확히 할 수 있다.
 

☑️ 2) 프로세스 관점(How, Process)

프로세스 위주의 모델링이다.
해당 업무가 실제로 처리하고 있는 일은 무엇인지 또는 앞으로 처리해야 하는 일은 무엇인지를 모델링하는 방법이다.

예시:

💡
업무 흐름도(Flowchart)
특정 업무가 어떤 단계로 진행되는지를 도식화한 다이어그램이다.
예를 들어, 주문 처리 시스템에서 주문 접수, 결제 확인, 상품 준비, 배송 등의 단계를 도식화하여 각 단계의 작업을 명확히 나타낸다. 이를 통해 각 단계에서 어떤 작업이 수행되는지, 업무의 흐름이 어떻게 진행되는지를 모델링할 수 있다.
 

☑️ 3) 데이터와 프로세스의 상관 관점(Data vs Process, Interaction)

데이터와 프로세스의 관계를 위주로 한 모델링이다.
프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링하는 방법이다.

예시:

💡
유스케이스 다이어그램
유스케이스 다이어그램은 시스템의 기능적 요구사항을 모델링하여 사용자가 시스템과 상호작용하는 방식을 나타낸다.
예를 들어, 도서관 시스템에서 책 대출 프로세스가 책 데이터에 어떤 변화를 일으키는지(대출 처리, 반납 처리, 연체 관리 등)를 나타낸다. 이를 통해 사용자의 행동이 데이터에 어떤 영향을 미치는지를 시각화할 수 있다.
 
 

✅ 3. 모델링의 세 가지 단계

☑️ 1) 개념적 데이터 모델링(Conceptual Data Modeling)

전사적 데이터 모델링 수행 시 행해지며 추상화 레벨이 가장 높은 모델링이다. 이 단계에서는 업무 중심적이고 포괄적인 수준의 모델링이 진행된다.

☑️ 2) 논리적 데이터 모델링(Logical Data Modeling)

재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계이다.

☑️ 3) 물리적 데이터 모델링(Physical Data Modeling)

실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계이다.
 

✅ 4. 데이터의 독립성

☑️ 1) 3단계 스키마 구조

notion image
💡
ANSI-SPARC 아키텍처는 1975년에 제안된 데이터베이스 시스템의 추상적 설계 표준이다. 이 구조에서는 스키마를 3단계로 나누는데, 분리하는 목적은 데이터베이스에 대한 사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적인 방식을 분리하기 위함이다.
 

(1) 외부 스키마(External Schema)

각 사용자가 보는 데이터베이스의 스키마를 정의한다.
 

(2) 개념 스키마(Conceptual Schema)

모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타낸다. 데이터베이스에 저장되는 데이터들을 표현하고 데이터들 간의 관계를 나타낸다.
 

(3) 내부 스키마(Internal Schema)

물리적인 저장 구조를 나타낸다. 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스 등이 포함된다.
 

☑️ 2) 3단계 스키마 구조가 보장하는 독립성

💡
ANSI-SPARC 아키텍처에서 이렇게 스키마를 3단계 구조로 나누는 이유는 데이터베이스에 대한 사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적인 방식을 분리하여 독립성을 보장하기 위한 것이다.
 

(1) 논리적 독립성

개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다.
 

(2) 물리적 독립성

내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.
 

✅ 5. ERD(Entity Relationship Diagram)

 

☑️ 1) ERD 표기법

notion image
이 중에서 보통 IE/Crow’s Foot 방식을 많이 사용한다. (까마귀발 표기법)
 

☑️ 2) IE/Crow’s Foot 표기법

notion image
 

☑️ 3) ERD 작성 순서

💡
모든 표기법의 공통된 순서이다. 이 순서대로 ERD를 작성한다.
 
순서
설명
1
엔티티를 도출하고 그린다.
2
엔티티를 적절하게 배치한다.
3
엔티티 간의 관계를 설정한다.
4
관계명을 기입한다.
5
관계의 참여도를 기입한다.
6
관계의 필수/선택 여부를 기입한다.
 
Share article

soultree