데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

자격증 공부(후기)

[정보처리기사] 정규화 과정을 쉽게 외우는 방법

안녕하세요! 징징이입니다!

저번 시간에는 각종키들(기본키, 후보키, 슈퍼키)에 대해 알아봤고,

이번 시간에는 필기시험에 무조건 나온다는 정규화 파트입니다

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

자, 그럼 정규화는 무엇일까요?

데이터베이스 내부에서 불필요한 중복(데이터들)으로 발생하는 각종 문제점들을 해결하기 위한 기법입니다.

그리고 정규화를 하지않아, 발생하는 이러한 문제들을 이상(Anomaly)이라고 합니다

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

이러한 이상이라는 문제는 중복성과 종속성으로발생하는 것이고,

정규화는 중복성과 종속성을 제거하기 위해서 여러가지 잡동사니들로 뭉쳐있는

릴레이션을 하나하나 쪼개면서 문제를 해결하는 겁니다.

(참 쉽죠잉?)

그리하여

이상의 종류로는 삽입, 삭제, 갱신이상 3가지로 분류됩니다.

1. 삽입 이상

말그대로 어떠한 릴레이션에 데이터를 집어넣었더니 이상한 값들도 같이 딸려들어가는 현상입니다.

2. 삭제 이상

​하나의 행을 삭제했더니, 갑자기 뜬금없이 다른 행들도 다다다닥! 삭제되는 현상입니다.

3. 갱신이상

새로고침했더니, 속성값의 일부분만 갱신되어 전체의 릴레이션의 정보가 어긋나는 현상입니다.

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

이쯤에서 정규화의 목적을 더욱더 세분화시켜본다면,

중복을 최대한으로 제거시켜 이상이라는 문제점을 제거하여

데이터를 삽입할때도 릴레이션의 재구성은 NO, 효율적인 검색 알고리즘을 생성하도록 합니다.

결국은 데이터 구조의 안전성이 상승하고, 논리적인 처리 부분이나 품질적인 면에서 큰 영향을 줍니다.

(그렇다면 정규화는 데이터베이스의 논리적 설계단계에서 사용되겠죠?)

<자 여기서부터 집중>

그렇다면 정규화 과정은 어떻게될까요?

1. 비정규 릴레이션

                                         ↓       (도메인이 원자값)

2. 1NF

                                                   ↓       (부분적 함수 종속 제거)

3. 2NF

                                                   ↓       ​(이행적 함수 종속 제거)

4. 3NF

                                                                                         ↓       (결정자들 중에서 후보키가 아니라면 싹다제거)

5. BCNF

                                       ↓       ​(다치 종속 제거)

6. 4NF

                                            ↓       ​(조인 종속성 이용)

7. 5NF

보통 기출문제들을 보면 정규화 과정의 한 부분을 설명해놓고

몇단계인지 고르거나, 정규화 과정 사이에 해당하는 작업이 뭔지 찾아내는 문제들이 많습니다

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

(물론 각 정규화 단계가 어떤 정의인지 간단하게 한줄정도는 아는게 좋겠죠오?)

자, 이 과정들을 보면

앞부분 글자들을 추출했을때

"도부이결다조"

(시나공에서도 요렇게 외우라고 추천해주더군요)

정보처리기사의 경우 양이 워낙 많다보니, 막상 시험칠때 세세한 내용들을 까먹어

몇몇 문제들이 아리송한 경우가 많습니당

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

데이터베이스 정규화 쉽게 - deiteobeiseu jeong-gyuhwa swibge

정규화의 경우에는 "도부이결다조" 요렇게만 꼭 외워두시면 도움이 많이 됩니다!

=> 좀 안외워진다 싶으시면 발음이 비슷한 "두부이겨다줘" 도 좋습니다.

(시나공출처)