❏ 반정규화?
- 비 정규화는 아예 정규화 수행을 안한거고,
반 정규화는 정규화 된 엔터티, 속성, 관계 에 대해 성능향상 하려고 하는 데이터모델링의 기법
데이터를 중복하여 성능을 향상시키는 기법? 왜 이렇게까지 할까. 데이터 조회할 때 디스크 I/O량이 많아서
성능이 좀 저하될꺼같고 또 경로가 너무 멀어서 성능저하가 될때를 예상해서 반정규화를 사용한단다.
( 반정규화가 정규화 안한건줄 알았는데 아니였음. )
( 아니 왜 일부러 중복해서 쓰는걸까.. 정규화를 하면 성능 향상시키긴 하는데 엔터티들 너무 많아지니까..
적절히 반정규화 좀 섞어서 쓰라고 한다. 단 반정규화를 잘 못쓰면.. 오히려 성능이 저하되고, 노력비용이 많이든다!)
❏ 반정규화의 적용방법
- 난이도 높은 데이터 모델링의 실무 기술이다!! 반정규화를 막연하게 중복을 유도할려고 쓰는것 보다는
성능을 향상시킬 목적으로 써야한다;; 또, 데이터 무결성이 깨질 가능성이 많이 있기 때문에
데이터무결성을 보장할 수 있는 방법을 고려하고 반정규화를 적용해야한다!
정규화 / 반정규화 사이에는 Trade-Off 관계, 즉 저울에서 한쪽이 무거워지면 다른쪽은 올라가는것처럼.. 균형있게..
❏ 반정규화의 기법
❏ 정규화가 잘 되있는 모델인데 오히려 성능이 저하될 수 있는 경우 (반정규화 써서 좋아짐)