📖 CS/📚 데이터베이스
[DB] 02. 정규화 - 1NF(First Normal Form)정규형
탄치
2022. 6. 30. 21:41
정규형에는 1부터 5까지의 정규형(Normal Form)과 BCNF(Boyce and Codd Normal Form)가 있습니다.
4NF와 5NF는 간단히 개념만 설명하고 나머지 4개의 정규형을 정규화과정의 예시를 들어 하나씩 설명해 보도록 하겠습니다.
1NF (First Normal Form) 정규형
1NF정규형이 되려면 도메인이 원자값만 가져야 합니다.
예를 들어 정규화가 되지 않은 아래와 같은 릴레이션이 있습니다.
수강자 어트리뷰트에 학생들의 이름이 여러개 들어있는 걸 볼 수 있습니다.
과목번호 | 과목명 | 수강자 | 강의실 | ||
S100 | 자료구조 | 김땡땡,최땡땡,박땡땡 | 107호 | ||
S101 | 알고리즘 | 김땡땡,이땡땡 | 104호 | ||
S102 | 데이터베이스 | 정땡땡,황땡땡 | 102호 |
그런데 김땡땡씨가 조기졸업을 해서 수강자에서 지워져야 한다고 생각해 봅시다.
김땡땡 씨가 있는 튜플을 지우면 다른 수강자들의 정보까지 지워지며 이상현상이 발생합니다.
(과목의 정보도 사라지지만 이건 다음 정규화에서 말하도록 하겠습니다.)
1NF를 만족시키게 릴레이션을 바꿔 보겠습니다.
과목번호 | 과목명 | 수강자 | 강의실 | ||
S100 | 자료구조 | 김땡땡 | 107호 | ||
S100 | 자료구조 | 최땡땡 | 107호 | ||
S100 | 자료구조 | 박땡땡 | 107호 | ||
S101 | 알고리즘 | 김땡땡 | 104호 | ||
S101 | 알고리즘 | 이땡땡 | 104호 | ||
S102 | 데이터베이스 | 정땡땡 | 102호 | ||
S102 | 데이터베이스 | 황땡땡 | 102호 |
수강자 어트리뷰트의 값이 하나만 되도록 튜플을 나누어 주었습니다.
이제 어떤 수강생이 듣는 강의 정보를 지우거나 갱신할 일이 생기더라도 다른 수강자들의 정보엔 영향을 끼치지 않습니다.
2NF에 관해서는 다음 글에서 이어서 설명해 보도록 하겠습니다.
728x90