괴발개발
정규화 설명 본문
제 1 정규화
![]() |
![]() |
![]() |
제 1 정규화
"한칸의 데이터에는 하나만"
설명 : 저렇게 중간 사진처럼 헬스, 골프초급같이 추가하게 되면 나중에 찾기가 어렵겠지, 그래서 한칸에는 하나의 데이터가 들어가는게 좋은거임
제 1 정규형 : 테이블의 컴럼이 원자 값(Atomic Value; 하나의 값)을 갖도록 분해한다.
제 2 정규화
![]() |
![]() |
![]() |
![]() |
제 2 정규화
현재 테이블의 주제와 관련없는 컬럼을 다른 테이블로 빼는 작업
설명 : 일단 가격은 이 테이블에 관련 없는 내용이라서 빼는게 좋음. 그리고 바꾸려고 해도 하나하나 바꿔줘야 하는 불편함이 있음. 그래서 따로 빼게 되면 헬스 가격을 바꾸기가 훨씬 수월함
제 2 정규형 : 제1 정규형을 만족하고, 기본키가 아닌 속성이 키본키에 완전 함수 종속이도록 분해합니다.
#여기서 완전 함수 종속이란 : 기본키의 부분집합이 다른 값을 결정하지 않는 것을 의미
+ 단점 : 이렇게 테이블을 나누게 되니깐 한개의 테이블에 가격이라는 데이터를 바로 알기가 어려워 졌고, 데이터를 쓸려고 해도 select로 조회하기가 어려워지는 단점이 있음 -> 그래서 비관계형 데이터베이스가 발달하고 있음
+ primery key 란 : 행을 구분하기 위한 유니크한 데이터를 담고 있는 컬럼
제 2 정규형 어려운 버전
![]() |
![]() |
composite primary key란 : 저 파란색 처럼 2개나 3개를 합쳐서 primary key처럼 사용하는걸 말함.
그리고
partial dependency 는: 저 가격처럼 프로그램(cpk)에 종속되어 있는 따까리를 말함
설명 : 그래서 제 2정규화란 " partial dependency"를 제거한 테이블이니까 저 가격을 다른 테이블로 빼버린걸 제 2정규형 이라고 하는것임.
+제 2정규형(쉬운버전) : 현재 테이블의 핵심주제와 상관없는 컬럼을 다 제거 한 것을 말함.
제 3 정규화
![]() |
![]() |
설명 : 일단 partial dependency는 없는거 같고(말하는게 composite pk 가 없고? 뭐 일단 젤 앞에있는 프로그램 같은 pk랑 관련이 아예 없어서 pd 가 없다고 말하는거 같음)
제 3 정규형 : 제 2 정규형을 만족하고, 이행적 함수 종속을 없애도록 분해하는것
# 이행적 종속이란 : A -> B, B -> C 가 설립 할 때 A -> C가 성립되는 것을 말함.
정규화 수행 과정
-1차 정규화 : 원자값 아닌 도메인 분해(도)
-2차 정규화 : 부분 함수 종속 제거(부)
-3차정규화 : 이행함수종속 제거(이)
-보이스-코드 정규화 : 결정자가 후보키가 아닌 것 제거(결)
-4차정규화 : 다치종속 제거(다)
-5차정규화 : 조인종속 제거(조)
사장님 도부이거다조~
출처 : 코딩애플(https://www.youtube.com/watch?v=Y1FbowQRcmI) 을 기반으로 만든 강의정리 자료 입니다.
'BACK END > DB' 카테고리의 다른 글
[강의정리] AWS - 서버 연결 + 덤프 (0) | 2023.05.29 |
---|---|
db구조 (0) | 2023.04.30 |
[강의 정리] D-53 , DB(increment, limit, offset, 집계함수) (0) | 2023.03.23 |
[강의 정리] DB (set) (0) | 2023.03.22 |
[강의 정리] DB(index, view) (0) | 2023.03.22 |
Comments