데이터베이스 정규화

데이터 베이스 정규화란? 관계형 데이터베이스에서 중복을 최소화하게 데이터를 구조화하는 작업. 중복된 데이터가 많으면 데이터를 삽입/수정/삭제할 때 예상치 못한 문제가 발생할 가능성이 높기 때문에 이런 문제를 예방하는 목적도 있음.

정규화에는 1차 정규화, 2차 정규화, 3차 정규화 등등 여러가지 방법이 있는데 쉽게 생각해서 큰 테이블을 중복된 데이터가 만들어지지 않게 작은 테이블로 쪼개는 작업들이라고 이해하면 된다.

1, 2, 3차 정규화 등등 설명은 다 생략하고, 실제로 예를들어 설명하면

ID학생학번강의 이름담당교수
1A2020101
2B2019102
3C2018103
4D2020101

이런 테이블이 있다고 가정해보자. 학생들이 있고 그 학생들이 듣는 강의 이름과 담당 교수가 작성된 테이블이다. 이때 101이라는 강의가 있고 이 담당 교수는 ‘가’이다. A,D학생이 동시에 듣고 있는 이 강의는 중복된 데이터가 입력되어있다. 만약 강의 이름을 변경해야할 때 101이라는 두개의 데이터를 모두 변경해야하고 혹시나 두 데이터가 모두 변경되지 않았을 경우 프로그램에서 오류를 발생시킬 수 있다. 이럴때 이 테이블을 두개로 나눠서 정규화 하는게 좋다는 것이다.

ID학생학번강의
1A20201
2B20192
3C20183
4D20201
ID강의 이름담당 교수
1101
2102
3103

학생 테이블과 강의 테이블을 나누고 외래키로 묶어서 관리해 중복된 데이터를 피했다. 이러면 강의 이름이나 담당 교수가 바뀌더라도 하나의 데이터만 바꾸면 된다. 이렇게 큰 테이블을 쪼개서 여러개의 테이블로 나누고 중복된 데이터를 없애는 것이(물론 정확히 말하면 데이터 정규화는 단순히 테이블을 쪼개는 것만 있는 것은 아니고 더 큰 작업이긴 하지만) 데이터 정규화이다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다