[데이터베이스] 데이터 모델링과 정규화

ch.2·2024년 8월 21일

SQL

목록 보기
9/9
post-thumbnail

📌 데이터 모델링

현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정

데이터 모델링 3요소

  • 엔터티(Entity)
    업무로 관리하고자 하는 대상, 데이터를 저장하는 객체

  • 속성(Attribute)
    대상들이 가지는 속성

  • 관계(Relationship)
    엔터티 간의 연관성

한 개의 엔터티2개 이상의 인스턴스의 집합이어야 하며, 2개 이상의 속성을 가진다.
이때 하나의 인스턴스는 각각의 속성들에 대해 1개의 속성값만을 가진다.

데이터 모델링의 3단계

1. 개념적 모델링

  • 업무 중심적이고 포괄적(전사적)인 수준의 모델링
  • 업무의 핵심 엔터티를 추출하는 단계
  • 도출된 핵심 엔터티들과의 관계들을 표현하기 위해 ERD 작성

2. 논리적 모델링

  • 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
  • 데이터 정규화 수행

3. 물리적 모델링

  • 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
  • 가장 구체적인 데이터 모델링

📌 정규화

데이터를 구조화하고 분해하는 과정
최소한의 데이터 중복, 데이터 일관성, 데이터 이상 현상 방지, 최대한의 데이터의 유연성 확보를 위해 실행

제 1 정규화 (1NF):

테이블 내 모든 속성이 원자성을 가지도록 테이블을 분해하는 단계

원자성
: 한 속성이 하나의 값을 가지는 특성

e.g) 학생의 이름과 주소를 각각 '이름' 컬럼과 '주소' 컬럼으로 분리하여 원자값 유지

제 2 정규화 (2NF):

제 1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해

완전 함수 종속
: 기본키를 구성하는 모든 컬럼의 값이 다른 컬럼을 결정짓는 상태

→ PK가 2개 이상일 때 발생하며, PK의 일부와 종속되는 관계가 있다면 분리

e.g) '수강 이력' 테이블에서 강의실 컬럼이 강의명에 의해 결정될 경우, 이를 분리하여 완전 함수 종속을 만족

제 3 정규화 (3NF):

제 2 정규화를 진행한 테이블에 대해 이행적 함수 종속성을 제거하도록 테이블을 분해

이행적 함수 종속성
: A → B → C 의 관계가 성립할 때, A → C 가 성립되는 것.

→ (A, B) 와 (B, C)로 분리

e.g) '고객' 테이블에서 상품명과 가격 컬럼이 고객번호에 대해 이행 함수 종속성을 가진다면, 이를 분리하여 '상품' 테이블 생성

profile
데이터 분석 공부중

0개의 댓글