데이터베이스 정규화는 데이터 중복을 줄이고 데이터 무결성을 개선하기 위해 정규화 단계에 따라 관계형 데이터 베이스를 구조화하는 프로세스다.
필자는 많은 프로젝트와 정보처리기사를 취득했지만, 정규화에 대해 크게 생각하지 않고 데이터베이스 관계를 정의하였다..
지난 날을 반성하면서, 정규화의 필요성에 대해 다시 정리해보겠다.
데이터베이스를 잘못 설계하면 불필요한 데이터 중복으로 인한 공간낭비 및 부작용을 초래할 수 있다. 이러한 부작용을 이상(Anomaly) 이라고 하는데, 삽입 이상, 갱신 이상, 삭제 이상이 있다.
새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제를 삽입 이상
이라고 한다.
해당 테이블에 1,2,3번 컬럼의 값만 테이블에 넣고 싶은데 테이블이 4개의 컬럼으로 이루어져 있기 때문에 마지막 필드 값을 무엇으로 해야할지 결정 못하는 것
이 삽입 이상이다.
=> 그렇기 때문에 반강제적으로 NULL
값을 삽입해야 한다.
어떤 값을 업데이트 했을 때 그 속성의 다른 속성값들과의 불일치가 발생하는 문제를 갱신 이상
이라고 한다.
첫 번째 튜플의 이름을 김사랑->김소연 으로 업데이트 하면 세번째 튜플의 내용과 불일치하게 된다.
튜플을 삭제할 때 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제를 삭제 이상
이라고 한다.
운영체제라는 정보만 삭제하고 싶은데 이것을 지우려면 지우고 싶지 않은 필드들의 정보도 같이 지워져야 한다.
https://velog.io/@sms8377/Database-%EC%A0%95%EA%B7%9C%ED%99%94%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0-%EC%A0%95%EA%B7%9C%ED%99%94
https://1000hg.tistory.com/22