SQLD 1-1-1 데이터 모델링의 이해

김희영·2026년 1월 15일

SQLD

목록 보기
2/28

1. 데이터 모델링과 이해


1. 데이터 모델링의 이해

  • 모델링 : 복잡한 현실 세계의 데이터를 사용하기 위한 설계 수행 과정
  • 데이터 모델 : 현실의 대상을 데이터로 사용하기 위한 설계도

특징

1) 추상화 (=모형화) : 형식에 맞춰 간략히 표현
2) 단순화 : 정해진 표기법/언어로 표현
3) 명확화 (=정확화) : 모호함 제거

참고로 일반화는 아니다.

관점

1) 데이터 관점 (What) : 업무가 어떤 데이터와 연관이 있는가

  • 데이터 간의 관계 모델링 (데이터-데이터, 데이터-업무)

2) 프로세스 관점 (How) : 업무가 어떻게 진행되는가 중심

  • 하고있는/해야하는 일 모델링

3) 데이터와 프로세스 상관관점 : 업무에 따라 데이터가 어떻게 작용하는가 중심

  • 업무처리 방법에 따라 데이터가 받는 영향 모델링
  • CRUD 매트릭스로 표현

중요성

1) 파급효과 : 수정시 파급력
2) 간결한 표현 : 시각화 해서 설계도 제공
3) 데이터 품질 : 중복, 비유연성, 비일관성 없이 설계 해야함.

데이터 모델링 3단계

1) 개념적 모델링

  • 비즈니스 이해 중점
  • 엔터티, 관게 표현
  • 단순 구조, ERD 추출

2) 논리적 모델링

  • 정확한 설계 중점
  • 속성 / 식별자 / 정규화 / 제약조건 표현
  • 정규화

3) 물리적 모델링

  • 실제 구현 중점
  • 데이터 타입 / 크기 / 인덱스 / 파티션 구현
  • DBMS 맞춘 구조화
  • 반정규화
개념적 모델링 -> 논리적 모델링 -> 물리적 모델링
<-추상적 							구체적 ->

DB 독립성

  • 데이터 독립성으로 유연성 확보하자. (스키마도)
    -> 하나가 수정되어도 다른 레이어(응용 프로그램이나 스키마)에 영향 없게 함.
  • 스키마 : DB 구조, 데이터 타입, 제약조건에 대한 명세.
    -> 데이터 모델링의 대상이자, 설계 단계에서 명시됨

DB 스키마 구조 3단계

1) 외부 스키마

  • 사용자 관점
  • View : 여러 사용자의 관점

2) 개념 스키마

  • 사용자 관점 통합, 조직 전체의 관점, 설계자 관점
  • DB에 저장되는 데이터 간의 관계

3) 내부 스키마

  • 저장장치 관점, 개발자 관점
  • 물리적으로 어떻게 저장되는가

+) 데이터 모델링 -> 개념 스키마를 만드는 것

+) 사상 : 독립적인 개념간 연결 다리

DB 스키마 구조의 독립성

1) 논리적 독립성 : 외부 스키마-개념 스키마 간 맵핑으로 보장
-> 논리적 구조 변경되어도 응용 프로그램에는 영향 X

2) 물리적 독립성 : 개념 스키마-내부 스키마 간 맵핑으로 보장
-> 물리 스키마 변경되어도 논리스키마에는 영향 X

정규화의 단계

1) 제 1 정규화 : 컬럼이 1개의 값을 가짐

2) 제 2 정규화 : 부분 함수 종속

  • 기본키의 부분집합이 결정자가 되지 않는 것
    -> PK 될 수 있는 게 1개

3) 제 3 정규화 : 이행적 함수 종속

  • 이행적 함수: A->B, B->C 일때 A->C 성립

4) BCNF 정규화 : 모든 결정자가 후보키가 됨

5) 제 4 정규화 : 다치 종속 제거

  • 다치 종속 : A -> B에서 단일 값 A와 다중 값 B가 존재

데이터 모델링 3요소

  • 엔터티 (=개체) : 관리해야 할 정보의 단위
    예) 학생

  • 속성 : 개체가 가지는 성질
    예) 학번, 성적

  • 관계 : 개체간의 관계
    예) 등록하다, 수강하다

+) 인스턴스 : DB에 실제로 저장된 값
예) 학생 김철수

데이터 모델의 요소

1) 완전성 : 필요한 모든 데이터 정의
2) 중복 배제 : 중복 없어야 함
3) 업무 규칙 : 업무 규칙이 표현되어야 함
4) 데이터 재사용 : 통합성/독립성 고려, 공통 데이터 도출-> 전 영역 사용
5) 의사소통 : 이해 쉬움
6) 통합성 : 다른 영역에서 참조 가능

ERD

  • 피터 첸이 만듦
  • 엔터니간 관계 표현 (1:1, 1:N...)
  • 작성 순서
    1) 엔터티 그림
    2) 꼬이지 않게 배치 (중요한건 왼쪽 상단)
    3) 엔터티 관계 설정
    • 1) 관계명 작성
    • 2) 관계의 참여도, 관계 차수 작성
    • 3) 관계 필수 여부 표시 (=null 허용 여부)
  • 표기법

    +) IX/Crow's Foot

+) 관계 차수 (Cardinality) : 두 엔터티(테이블) 간의 관계에 참여하는 인스턴스 수
-> 1:1이나 1:N 등

profile
내는 반드시 엄청난 개발자가 되고 말것어

0개의 댓글