카테고리 없음

QA/QC 스파르타클럽 51일차 - SQLD

penguin 2026. 7. 27. 20:43

SQLD 학습 정리 - 데이터 모델링의 기초 이해

오늘은 SQLD 시험 범위 중 데이터 모델링의 기초 개념을 학습했다. SQL 문법을 배우기 전에 데이터베이스가 어떤 구조로 설계되고 관리되는지 이해하는 과정으로, 이후 배우게 될 데이터베이스 설계와 SQL 작성의 기반이 되는 중요한 내용이었다.

1. 데이터 모델링이란?

데이터 모델링은 현실 세계의 업무를 데이터베이스에서 사용할 수 있도록 구조화하는 과정이다.

단순히 데이터를 저장하는 것이 아니라 업무에서 필요한 데이터를 효율적으로 관리하고 활용할 수 있도록 설계하는 것이 목적이다.

데이터 모델링을 통해 얻을 수 있는 장점은 다음과 같다.

  • 데이터 중복 최소화
  • 데이터의 일관성과 정확성 유지
  • 유지보수 및 확장 용이
  • 업무 프로세스를 명확하게 표현 가능

즉, 좋은 데이터 모델은 데이터 품질뿐만 아니라 시스템의 성능과 유지관리에도 큰 영향을 미친다.


2. 데이터 모델링의 중요성

데이터베이스는 한 번 구축하면 오랫동안 사용되는 경우가 많기 때문에 초기 모델링이 매우 중요하다.

잘못 설계된 데이터 모델은

  • 중복 데이터 발생
  • 데이터 불일치
  • 조회 성능 저하
  • 유지보수 비용 증가

와 같은 문제를 발생시킬 수 있다.

반대로 체계적인 모델링은 데이터의 무결성을 보장하고 업무 변화에도 유연하게 대응할 수 있도록 도와준다.


3. 3층 스키마(Three Schema Architecture)

3층 스키마는 데이터베이스를 사용자와 시스템 관점에 따라 세 단계로 구분한 구조이다.

  • 외부 스키마(External Schema)
    • 사용자 또는 응용 프로그램이 바라보는 데이터 구조
    • 사용자마다 서로 다른 화면(View)을 가질 수 있다.
  • 개념 스키마(Conceptual Schema)
    • 조직 전체의 데이터 구조를 정의하는 논리적 설계
    • 데이터 간의 관계와 제약조건 등을 표현한다.
  • 내부 스키마(Internal Schema)
    • 실제 데이터가 저장되는 물리적인 구조
    • 저장 방식, 인덱스, 파일 구조 등을 관리한다.

이 구조를 통해 사용자 화면과 실제 저장 구조를 분리하여 독립성을 확보할 수 있다.


4. 데이터 모델링의 구성 요소

데이터 모델링은 크게 세 가지 요소로 구성된다.

① 엔티티(Entity)

업무에서 관리해야 하는 대상이다.

예를 들어

  • 고객
  • 주문
  • 상품
  • 직원

등이 모두 엔티티가 될 수 있다.


② 속성(Attribute)

엔티티가 가지고 있는 세부 정보이다.

예를 들어 고객 엔티티라면

  • 고객번호
  • 이름
  • 연락처
  • 주소

등이 속성이 된다.

속성은 실제 데이터를 저장하는 최소 단위라고 이해하면 된다.


③ 관계(Relationship)

엔티티와 엔티티 사이의 연결 관계를 의미한다.

예를 들어

  • 고객은 여러 개의 주문을 할 수 있다.
  • 하나의 주문은 하나의 고객에게 속한다.

처럼 업무 규칙을 데이터 구조로 표현하는 역할을 한다.


5. ERD(Entity Relationship Diagram)

ERD는 데이터 모델을 그림으로 표현한 다이어그램이다.

엔티티, 속성, 관계를 시각적으로 나타내기 때문에 데이터 구조를 한눈에 이해할 수 있다.

ERD를 작성하면

  • 데이터 구조 파악이 쉬워지고
  • 개발자와 사용자 간 의사소통이 원활해지며
  • 데이터베이스 설계 오류를 줄일 수 있다.

SQLD 시험에서도 ERD 해석 문제가 자주 출제되므로 구성 요소를 정확히 이해하는 것이 중요하다.


6. 엔티티(Entity)

엔티티는 실제 업무에서 관리해야 하는 객체이며 다음과 같은 특징을 가진다.

  • 반드시 식별이 가능해야 한다.
  • 두 개 이상의 인스턴스를 가져야 한다.
  • 두 개 이상의 속성을 가져야 한다.
  • 다른 엔티티와 관계를 가질 수 있다.

또한 엔티티는

  • 유형 엔티티
  • 개념 엔티티
  • 사건 엔티티

등으로 구분할 수 있다.


7. 속성(Attribute)

속성은 엔티티를 설명하는 가장 작은 데이터 단위이다.

속성은 다음과 같이 구분된다.

  • 기본 속성
  • 설계 속성
  • 파생 속성

특히 파생 속성은 다른 데이터를 계산하여 만들어지는 값이므로 과도하게 사용하는 것은 데이터 관리 측면에서 주의가 필요하다.


8. 관계(Relationship)

관계는 엔티티 간의 업무 규칙을 표현하는 요소이다.

대표적으로

  • 1 : 1
  • 1 : N
  • N : M

관계가 존재하며, 실제 데이터베이스에서는 N:M 관계를 그대로 사용하지 않고 중간 엔티티를 추가하여 해결하는 경우가 많다.


9. 식별자(Identifier)

식별자는 각 데이터를 유일하게 구분하는 값이다.

대표적인 예가 기본키(Primary Key)이다.

식별자는

  • 유일성
  • 최소성
  • 불변성
  • 존재성

이라는 특징을 만족해야 한다.

또한

  • 주식별자
  • 보조식별자
  • 내부식별자
  • 외부식별자

등으로 구분되며, 데이터베이스 설계에서 가장 중요한 요소 중 하나이다.


오늘 학습하며 느낀 점

오늘 학습한 내용은 SQL 문법을 배우기 전에 데이터베이스를 어떻게 설계하는지 이해하는 과정이었다. 처음에는 개념적인 내용이 많아 다소 어렵게 느껴졌지만, 결국 데이터 모델링은 현실의 업무를 데이터베이스 구조로 표현하는 작업이라는 점을 이해할 수 있었다.

특히 엔티티, 속성, 관계, 식별자는 이후 ERD 작성과 SQL 작성에서도 계속 등장하는 핵심 개념이므로 단순 암기보다는 실제 예시를 떠올리며 이해하는 것이 중요하다고 느꼈다. 앞으로 SQL 문법을 학습할 때도 이러한 데이터 구조를 함께 생각하며 공부하면 훨씬 이해가 쉬울 것 같다.