반정규화

    [SQLD] 정규화와 반정규화의 차이점 분석

    정규화는 기본적으로 데이터 중복성을 제거해주기 떄문에 (쪼개주기 때문에) 성능 자체는 향상되는 특징을 가지고 있습니다. 하지만 그만큼 조인이 많이 발생하기 때문에 그에 따른 성능저하가 나타나는 경우가 있을 수 있죠. 위의 그림을 보시면 공급자번호, 전화번호, 메일주소, 위치 이 4가지가 이미 좌측 테이블에 있는데 이걸 정규화를 진행해서 오른쪽과 같이 쪼개게 되면 조인해야 하는 테이블이 늘어나면서 성능저하가 일어나게 됩니다. 하지만 좌측처럼 한가지 테이블안에서 어차피 조인이 가능하다면 굳이 정규화를 진행할 필요가 없겠죠. 혹은 정규화가 되어있더라 하더라도 성능을 고려하여 좌측과 같이 반정규화를 진행하는 것이 더 효율적일 수 있기 때문에 반정규화를 하게 됩니다. 하지만 무분별한 반정규화는 데이터 무결성을 깨..