개요
모델링이란?
현실 세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 따라 표현하는 기법
모델링의 특징
추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현. 즉, 아이디어나 개념을 간략하게 표현하는 과정. 예를 들어, 복잡한 시스템을 단순화하여 모델로 표현하는 것
단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현. 예를 들어, 비즈니스 프로세스를 직관적인 다이어그램으로 나타내어 복잡한 과정이 한눈에 이해될 수 있도록 만드는 것
명확화(Clarity) : 불분명함을 제거하고 명확하게 해설할 수 있도록 기술. 예를 들어, 시스템의 데이터 흐름을 명확하게 정의하여 사용자가 혼동하지 않도록 만드는 것
모델링 시 유의사항
중복(Duplication) 최소화 : 데이터베이스의 여러 곳에 같은 정보를 중복하지 않음
비유연성(Inflexibility) 최소화 : 데이터의 정의와 데이터의 사용 프로세스를 분리하여 데이터 또는 프로세스의 변화가 응용 프로그램과 데이터베이스에 미치는 영향 최소화
비일관성(Inconsisitency) 최소화 : 데이터 간의 상호 연관관계를 명확하게 정의하여 데이터가 일관성 있게 유지
모델링의 세 가지 관점
데이터 관점(What, Data) : 데이터 위주의 모델링. 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지 모델링하는 방법. 예를 들어, 고객 데이터와 주문 데이터 간의 관계를 정의하는 것
프로세스 관점(How, Process) : 프로세스 위주의 모델링. 이 업무가 실제로 처리하고 있는 일은 무엇인지 또는 앞으로 처리해야 하는 일은 무엇인지를 모델링하는 방법. 예를 들어, 제품의 생산 공정을 모델링하는 것
데이터와 프로세스의 상관 관점(Data vs. Process, Interaction) : 데이터와 프로세스와 관계를 위주로 한 모델링. 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링하는 방법. 예를 들어, 주문을 받은 후 결제 데이터가 어떻게 변환되는지 모델링하는 것
모델링의 세 가지 단계
개념적 데이터 모델링(Conceptual Data Modeling) : 전사적 데이터 모델링, EA(Enterprise Architecture) 수립에 많이 이용. 가장 높은 추상화 레벨, 업무와 개념 중심으로 포괄적인 수준에서 모델링 진행. 예를 들어, 회사의 모든 부서를 대표하는 엔티티를 정의하는 것
논리적 데이터 모델링(Logical Data Modeling) : 정규화를 통해 중복 데이터 최소화, 높은 재사용성. 중간 수준의 추상화 레벨, 데이터베이스 모델에 대한 키(Key), 속성(Attribute), 관계(Relationship) 등을 표현. 예를 들어, “고객’과 “주문” 테이블 간의 관계를 정의하고, 각 테이블의 속성을 설정하는 것
물리적 데이터 모델링(Physical Data Modeling) : 실제 데이터베이스로 구현할 수 있도록 성능이나 보안, 가용성 등의 물리적인 성격을 고려하여 설계. 가장 낮은 추상화 레벨, 특정 DBMS에 맞추어 구현이 가능한 수준에서 모델링. 예를 들어, 데이터베이스의 인덱스 설계나 분산 저장 방식을 고려하는 것
데이터의 독립성
3단계 스키마 구조
- 외부 스키마(External Schema) : Multiple User’s View 단계로 여러 사용자 관점으로 데이터베이스의 스키마를 정의함. 예를 들어, 마케팅 부서는 고객의 구매 이력을, 회계 부서는 거래 내역만을 볼 수 있도록 각각의 뷰(View)를 정의하는 것
- 개념 스키마(Conceptual Schema) : Community View of DB 단계로 모든 사용자 관점을 통합하여 전체 데이터베이스를 나타내는 것으로 데이터베이스에 저장되는 데이터들을 표현하고 데이터 간의 관계를 나타냄. 예를 들어, 고객, 주문, 제품 등이 하나의 전체적인 데이터베이스에서 어떻게 연결되는지를 보여주는 것
- 내부 스키마(Internal Schema) : Physical Representation 단계로 물리적인 저장 구조를 나타내며 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스 등이 포함됨. 예를 들어, 데이터가 어떻게 물리적으로 저장될지에 대한 세부적인 구조를 설계하는 것
3단계 스키마 구조가 보장하는 독립성
- 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음. 예를 들어, 고객 테이블의 속성 변경이 있어도, 마케팅 부서가 보고 있는 뷰에는 영향이 없음
- 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않음. 예를 들어, 데이터베이스가 다른 서버로 이동해도, 사용자에게 제공되는 데이터 구조나 관계에는 변화가 없음
ERD(Entity Relationship Diagram)
시스템에 어떤 엔티티들이 존재하며 그들 간에 어떤 관계가 있는지를 나타내는 다이어그램. 어떤 표기법을 사용하든 ERD 작성하는 순서는 공통됨
ERD 표기 방식
- Peter Chen : 주로 대학 교재에서 사용하는 표기법으로 실무에서 사용하는 경우는 드묾
- IDEFI1X(Integration Definition for Information Modeling) : 실무에서 사용하는 경우도 있으며 ERWin(ERD를 그리는 모델링 툴)에서 사용되는 모델
- IE/Crow’s Foot : 까마귀발 표기법이라고도 부르며 가장 많이 사용함. ERWin, ERStudio(ERD를 그리는 모델링 툴)에서 사용되는 모델
- Min-Max/ISO : 각 엔티티의 참여도를 좀 더 상세하게 나타내는 표기법
- UML : 소프트웨어 공학에서 주로 사용되는 모델
- Case Method/Barker : Oracle에서 사용되는 모델로 Crow’s Foot과 비슷
ERD 작성 순서
- 엔티티를 도출하고 그림
- 엔티티를 적절하게 배치
- 엔티티 간의 관계 설정
- 관계명 기입
- 관계의 참여도 기입
- 관계의 필수/선택 여부 기입
'SQL' 카테고리의 다른 글
SQL 기본 RDB와 SELECT 문 (0) | 2025.03.04 |
---|---|
데이터 모델과 SQL 반정규화 (0) | 2025.03.03 |
데이터 모델과 SQL 정규화 (0) | 2025.03.02 |
데이터 모델링의 이해 관계와 식별자 (0) | 2025.03.01 |
데이터 모델링의 이해 엔티티와 속성 (0) | 2025.02.28 |