Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240215 TIL - RDBMS의 정규화 본문

TIL

240215 TIL - RDBMS의 정규화

Skipalong 2024. 2. 16. 03:00

오늘은 기술면접 준비로 정리한 RDBMS의 정규화에 대해 정리해보겠다. 

RDBMS의 정규화에 대해 설명

 

데이터의 중복을 없애고 무결성을 향상 시키며 이상현상을 방지, 테이블 구성을 논리적, 직관적으로 만들며 데이터베이스 구조를 확장에 용이해지게 하기 위해 테이블의 키값과 컬럼값의 관계를 설정해주는 세 단계의 정규화 과정을 의미한다.

 

데이터의 중복을 줄이고, 무결성을 향상

DB 저장 용량 효율적 관리 가능

 

목적 : 

  • 데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.
  • 무결성을 지키고, 이상현상을 방지한다.
  • 테이블 구성을 논리적이고 직관적으로 할 수 있다. 
  • 데이터베이스 구조를 확장에 용이해진다.

 

 

제 1 정규화(1NF)

테이블 컬럼이 하나의 값을 갖도록 테이블을 분리 시키는 것

 

만족해야 할 조건

  • 어떤 릴레이션에 속한 모든 도메인이 원자값으로 되어 있어야 한다. 
  • 모든 속성에 반복되는 그룹이 나타나지 않는다
  • 기본키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다.

->

 

제 2 정규화(2NF)

테이블의 모든 컬럼이 완전 함수적 종속을 만족해야한다(?) == 테이블에서 기본키가 복합키로 묶여있을 때 두 키 중 하나의 키만으로 다른컬럼을 결정지을 수 있으면 안된다. (두 키 모두 사용해야함)

->

 

제 3 정규화(3NF)

제 2 정규화가 진행된 테이블에서 이행적 종속을 없애기 위해 테이블을 분리하는 것

 

만족해야할 조건

  • 릴레이션이 2NF에 만족한다. 
  • 기본키가 아닌 속성들은 기본키에 의존한다. 

->

 

이렇게 RDBMS의 정규화에 대해 정리해보았는데 이를 DB table구성시에 신경써서 적용해본다면 시스템 전반적인 성능에 향상이 기대된다.

'TIL' 카테고리의 다른 글

240222 TIL - Programmers 추억점수  (0) 2024.02.23
240216 TIL - redis  (0) 2024.02.17
240214 TIL - 대용량트래픽 처리법  (0) 2024.02.15
240213 TIL - CacheEvict  (0) 2024.02.14
240208 TIL - 최종프로젝트 마무리  (1) 2024.02.09