Kong Eunho

1.1 데이터 모델의 이해

2025년 07월 19일 14시
카테고리 - TIL, sqld, 1_데이터_모델링의_이해


1.1.1 모델링의 개념

모델 : 현실세계의 사물 혹은 개념을 구성요소로 나누고 이를 일정하게 도식화한 것.

모델링 : 현실세계를 대상으로 일종의 모델을 만드는 것.

모델링의 목적은 업무를 형상화(가시화 + 명세화)하여 이를 활용하기 위한 것이기 때문에, 모델의 도식화는 반드시 약속된 표기법을 따라야 한다.

추상화 : 사물을 있는 그대로 나타내는 것이 아니라 특징을 추려서 단순화하는 것.

모델링은 추상화를 기본으로 한다. 모든 것을 구체화하지 않고 필요한 수준에서 데이터를 추상화하여 명료하게 표현해야 한다.

데이터베이스를 설계하는 것도 하나의 모델링이며, 이를 데이터 모델링 혹은 데이터베이스 모델링이라 한다. sqld에서 다루는 모델링은 모두 데이터 모델링을 의미한다.

1.1.2 모델링의 특징

모델링이란 대상이 되는 데이터를 추상화, 단순화, 명확화하여 표현하는 것이다.

① 추상화 : 대상의 주요 특징을 추출하여 일정한 형식으로 표현한다.

② 단순화 : 복잡한 현실세계를 그대로 표현하지 않고 단순하게 표현한다. 제한된 언어나 약속된 표기법을 이용한다.

③ 명확화 : 모델링의 결과는 보는 사람에 따라 다르게 해석되지 않고 대상을 명확하게 이해할 수 있도록 모호함이 없게 기술한다.

1.1.3 모델링의 세 가지 관점

모델링은 업무 프로세스를 분석하여 이를 데이터 모델로 만드는 과정이다. 모델링은 다음 세 가지 관점을 가지고 수행할 수 있다.

① 데이터 관점 (대상, What) : 데이터에 집중하여, 어떤 데이터들이 서로 관계를 맺고 사용되는지를 모델링하는 것이다. 정적분석, 구조분석 등을 기반으로 한다.

② 프로세스 관점 (처리방법, How) : 업무의 흐름에 집중하여, 업무가 실제로 어떻게 처리되는지를 모델링하는 것이다. 동적분석, 도메인분석 등을 기반으로 한다.

③ 데이터와 프로세스의 상관 관점(대상과 처리방법의 상관관계, Interaction) : 데이터와 프로세스가 서로 어떻게 관계를 맺고 영향을 주고받는지를 모델링하는 것이다. CRUD(Create, Read, Update, Delete) 분석을 기반으로 한다.

1.1.4 모델링의 세 가지 단계

모델링은 다음과 같이 추상화 단계를 점점 낮춰가는 방향으로 수행한다.

① 개념적 데이터 모델링(Conceptual Data Modeling) : 가장 높은 추상화 레벨을 가진다. 이 단계에서 엔터티와 속성을 도출한다.

② 논리적 데이터 모델링(Logical Data Modeling) : 모델에 대한 키, 속성, 관계 등을 표현하며 서로 다른 DBMS에 적용이 가능한 추상화 레벨을 가지므로 재사용성이 높다. 이 단계에서 정규화, 식별자 도출, 관계 정의가 이루어진다.

③ 물리적 데이터 모델링(Physical Data Modeling) : 특정 DBMS의 성능, 보안, 가용성을 고려하여 맞춤으로 구현이 가능한 수준에서 모델링을 수행한다. 가장 낮은 추상화 레벨을 가진다. 성능 향상을 위해 반정규화를 수행하며, 테이블, 인덱스, 함수 등을 생성한다.

1.1.5 ANSI-SPARC에서 정의한 3단계 스키마 구조

ANSI-SPARC(American National Standards Institute, Standards Planning and Requirements Committee)에서 정의한 데이터베이스 아키텍처는 데이터 독립성을 보장하기 위한 설계방법을 제시한다. 1975년 DBMS의 추상적 설계표준으로 제안되었다.

데이터 독립성 : 사용자 영역과 디스크, 메모리 영역을 서로 분리하여 독립적으로 설계, 운용될 수 있도록 하는 특성. 각 계층별 의존성을 감소시켜 전체 시스템의 유지보수성을 향상한다.

① 외부 스키마(External Schema) : 사용자 관점, 사용자 또는 애플리케이션(응용 프로그래머)이 바라보는 데이터베이스 스키마를 정의한다. 다중 사용자 뷰를 제공한다.

② 개념 스키마(Conceptual Schema) : 설계자 관점, 모든 사용자가 바라보는 데이터베이스 스키마를 통합하여 나타낸다. 전체 데이터베이스에 저장되는 데이터와 그 관계를 정의한다. 통합된 뷰를 제공한다.

③ 내부 스키마(Internal Schema) : 개발자 관점, 디스크나 메모리 상의 물리적, 실질적 저장구조를 나타내며, 테이블, 칼럼, 인덱스 등을 정의한다. 물리적 뷰를 제공한다.

1.1.6 ERD

ERD(Entity Relationship Diagram) : 데이터 모델링에 대한 문서화 방법을 제공한다. 시스템 분석, 설계의 결과를 형상화하여 사용자, 설계자, 개발자 간의 의사소통 수단이 된다.

ERD는 데이터의 논리적 구성요소를 엔터티(Entity)로 정의하고, 엔터티들간의 관계(Relationship)를 특별한 표기법으로 나타내어 스키마를 설계하는 방법을 제공한다.

ERD를 구현하는 방식은 여러 표기법으로 존재하는데, 여기서는 IE(Information Engineering) 표기법을 기본으로 사용할 것이다.

IE 표기법

– 엔터티 : 사각형 박스로 표시한다. 엔터티 이름은 박스 상단에 표시한다.
– 속성 : 엔터티 박스 안에 리스트 형태로 표현한다. 주식별자(Primary Key)와 일반 속성은 칸막이로 구분한다.
– 관계 : 박스를 연결한 선으로 표현한다. 식별자 관계는 실선, 비식별자 관계는 점선으로 표현한다.
– 카디널리티(참여도) : 관계의 양 끝에 0은 O으로, 1은 세로 실선으로, 다수(2 이상)는 세개의 까치발 모양으로 표현한다.

◀ 이전 글 sqld
SQLD
2025-07-18
목록으로 다음 글 ▶ TIL, sqld, 1_데이터_모델링의_이해
1.2 엔터티
2025-07-20