SQLD를 위한 데이터베이스 정규화 이해

훌륭한 개발자에 한 걸음, 현직 개발자의 컴퓨터 이론 한 점
Apr 15, 2024
SQLD를 위한 데이터베이스 정규화 이해
🧑🏼‍🏫
‘이론 한 점’은 내일배움캠프 AI 웹 개발 과정에서 강민준 튜터님이 수강생에게 요약해주는 컴퓨터 사이언스 지식 코너입니다. 오늘의 이론은 데이터베이스 정규화를 이해할 때 기억해야 하는 2가지를 알려주셨습니다.
 
요즘 SQLD를 공부하시는 분들이 많아서 공통된 주제로 정규화 요약해왔습니다.
정규화란 데이터베이스 논리설계 단계에서 수행되며 효율적인 스키마로 만들기 위한 작업을 의미합니다. 보통 1정규화부터 5정규화까지 있으며 대체로 순차적으로 정규화 과정을 거치지만, 반드시 순차적으로 정규화 과정을 거쳐야 하는 것은 아닙니다.
 

1정규화 (1NF): 도메인이 원자값인 정규형 상태

릴레이션의 모든 속성 값이 원자값으로만 이뤄지도록 하는 정규화
---------------- ---------------- 이름 | 나이 | 수강 과목 이름 | 나이 |수강 과목 원준표 | 5살 | python, Django 제1정규화=> 원준표| 5살 | python 신지혜 | 3살 | python 원준표| 5살 | Django 김동환 | 87살| Django 신지혜| 3살 | python 김동환| 87살| Django
 

2정규화 (2NF): 부분적 함수 종속이 제거된 정규형 상태

완전 함수적 종속을 만족하도록 수행하는 정규화
--------------------- --------------------- 이름 | 나이 |수강 과목 이름 | 나이 원준표| 5살 | python 원준표| 5살 원준표| 5살 |Django 신지혜| 3살 신지혜| 3살 |python 김동환| 87살 김동환| 87살| Django 제2정규화=> --------------------- 이름 | 수강 과목 원준표| python 원준표| Django 신지혜| python 김동환| Django
 
 

3정규화 (3NF): 이행적 함수 종속이 제거된 정규형 상태

이행적 종속을 만족하지 않도록 수행하는 정규화
-------------------------- --------------------- 기본키: 담당튜터 수강생 | 담당튜터 | 지도과목 담당튜터 | 지도과목 한진용 | 강민준 | 영점사격 강민준 | 영점사격 현효민 | 킹우재 | 킹Django 킹우재 | Django 박정민 | 킹한결 | 돈버는법 킹한결 | 돈버는법 이준승 | 킹경원 | 야근의정석 킹경원 | 야근의정석 황승환 | 킹예린 | 킹고리즘 킹예린 | 킹고리즘 이정우 | 강민준 | 영점사격 제3정규화=> ---------------- 기본키: 수강생 수강생 | 담당튜터 한진용 | 강민준 현효민 | 킹우재 박정민 | 킹한결 이준승 | 킹경원 황승환 | 킹예린 이정우 | 강민준
 

BCNF 정규화: ‘결정자이면서 후보키가 아닌것을 제거한 정규화 상태’

3정규형을 만족하면서 + 모든 결정자가 후보키 집합에 속한 정규화                              
결정자란 함수적 종속성 관계를 설명할 때 좌변에 위치한 속성을 의미해요. 상황에 따라 다르지만 보통 5정규화까지는 잘 안하고 BCNF 정규화까지 진행합니다.
 

4정규화(4NF): ‘다치 종속이 성립하지 않는 정규형 상태’

다치 종속 릴레이션에 A->>B가 성립하는 경우 릴레이션의 모든 속성이 A에 함수적 종속 관계를 만족시키는 정규화
 

5정규화(5NF): ‘조인 종속성이 없어야하는 정규형 상태’

4정규형을 만족하고 릴레이션의 모든 조인 종속이 릴레이션의 후보키를 통해서만 성립되도록 정규화
반드시 여러분 스스로 더 찾아보시면서 학습하시길 권장드려요! 🔥(예제 한땀 한땀 만들었어요. 부디 이해되시는데 도움이 되길)
 
notion image
 
 
 

웹 개발에 AI 역량을 더하고 싶다면? 내일배움캠프 AI 트랙에 합류하세요

내일배움캠프의 AI 트랙에서는 웹 개발 역량에 AI 기술을 접목하여 웹 개발, 머신러닝 등 다양한 분야에 도전할 수 있습니다. 파이썬과 장고로 웹 개발 기술을 배우고, 머신러닝 라이브러리와 ChatGPT API를 활용하여 프로젝트를 진행합니다. 현업 웹 개발자와 머신러닝 개발자의 피드백을 받으며 실제 유저 서비스 런칭까지 경험할 수 있어 차별화된 포트폴리오를 갖출 수 있습니다. 내일배움카드만 있다면 이 모든 과정에 무료로 참여할 수 있습니다. 내일배움캠프 AI 트랙과 함께 채용 시장에서 주목받는 지원자로 거듭나세요.
 
 
 
CREDIT
답변 | 강민준 내일배움캠프 AI 웹 과정 튜터 편집 | 정효재 팀스파르타 에디터
Share article
Subscribe Newsletter
Stay connected for the latest news and insights.
RSSPowered by inblog