Tiny Star

📌TIL [Today I Learn]

[TIL] 23년 8월 18일 금요일

청크 2023. 8. 18. 21:25

23년 8월 18일 금요일

오늘의 목표 : RDBMS의 정규화에 대해 설명

 

오늘 공부한 내용🤓

· 정규화의 개념

 

DB라고 알고 있는 RDBMS(Relational DataBase Management System)를 설계할 때 중요한 단계 중 하나로,

중복을 최소화하고 데이터의 일관성과 무결성을 보장하기 위한 과정이다.

정규화는 데이터베이스의 성능, 유지보수성 및 효율성을 향상시키는 데 도움을 주며, 일반적으로 정규형을 만족시키는 데이터베이스 스키마를 설계하는 과정을 말한다.

 

· 정규화의 주요 목표

데이터 중복 최소화: 데이터 중복은 데이터베이스 내에서 정보의 일관성과 정확성을 저해할 수 있기 때문에 정규화는 중복된 데이터를 최소화하여 데이터 일관성을 향상

데이터 의미 손실 최소화: 데이터베이스에 저장된 정보가 실제 세계를 정확하게 반영하도록 보장

데이터 갱신 이상 방지: 데이터를 갱신할 때 발생하는 이상 현상(삽입, 갱신, 삭제 연산으로 인해 데이터 일관성이 깨지는 현상)을 방지

검색 효율 증가: 쿼리의 성능을 향상시키고 검색 과정에서의 비용을 줄임

 

보통 정규화는 1차 정규형부터 시작하여 5차 정규형까지 여러 단계를 거쳐 수행되며 각 정규형은 그 이전 정규형의 조건을 만족하면서 더욱 엄격한 조건을 추가함

 

· 정규화의 단계

제 1정규화(1NF) : 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것

모든 도메인이 원자값(더 이상 분해되지 않는 최소 데이터 단위)만으로 구성되어야 하며, 각 컬럼은 단일 값만 가짐

제 2정규화(2NF) : 1차 정규형을 만족하면서 부분적 종속을 제거하고 어떤 컬럼이 기본키 중 일부에만 종속되어야 하는 경우 해당 컬럼을 다른 테이블로 이동시키는 과정

제 3정규화(3NF) : 2차 정규형을 만족하면서 이행적 종속을 제거하고 어떤 컬럼이 다른 컬럼에 의존하지 않아야 함

BCNF (Boyce-Codd 정규형): 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것으로즉, 결정자와 종속자 사이의 관계를 단순화

4차 정규형(4NF): 다치 종속을 제거하여 다치 종속 관계를 분리

5차 정규형(5NF): 조인 종속성을 제거하여 조인 연산을 최소화

🐾 정규화를 진행하면 데이터베이스의 구조가 더욱 깔끔해지지만, 지나치게 정규화하면 테이블 간의 조인이 많아져 성능 저하가 발생할 수 있기 때문에 정규화 단계를 결정할 때는 데이터베이스의 목적과 사용패턴을 반드시 고려해야함

 

어려웠던 내용😵‍💫

 

궁금&부족한 내용❓

 

느낀 점💡

 

'📌TIL [Today I Learn]' 카테고리의 다른 글

[TIL] 23년 8월 22일 화요일  (0) 2023.08.22
[TIL] 23년 8월 21일 월요일  (0) 2023.08.21
[TIL] 23년 8월 17일 목요일  (0) 2023.08.17
[TIL] 23년 8월 16일 수요일  (0) 2023.08.16
[TIL] 23년 8월 1일 화요일  (0) 2023.08.01