본문 바로가기

CS fundamentals/DB( 데이터 베이스 )

Relational Design Theory [ Overview ]

[ Relational Design Theory 란 ? ]

  • 같은 정보에 대해서 다양한 형태의 관계형 데이터 베이스를 설계 할 수 있다.

  • 몇몇 디자인들은 다른 디자인들보다 훨씬 좋다!!

    • 즉, 같은 정보에 대한 데이터 베이스더라도 어떻게 설계하느냐에 따라서  Query Performance가 더 좋을 수도 있고, error가 더 적게 발생 할 수도 있는 것이다.

  • Relational Design Theory는 위에서 말한 좋은 관계형 베이스 디자인을 찾기 위한 방법에 대해 알려준다.

 

[ 무식하게 다 뭉치면 Design Anomalies 가 생기고 무식하게 다 쪼개면  Data Loss가 발생 할 수 있다. ]

  • 잘 쪼개고 잘 뭉쳐서 데이터베이스를 디자인 해야 하고 그에 대한 방법론이 Relational Design Theroy 이다.

 

[ Design by decomposition - 일단 다 합쳐 놓고 쪼개 가는 방법을 사용 한다. ]

  • 모든 attribute을 포함하는 mega - relation을 만들고

  • 그것을 Design Anomaly, Data Loss가 발생하지 않도록 적절히 쪼개간다.

  • 이러한 일련의 작업들을 자동화하는 과정이 존재한다. 즉, 알고리즘이 존재한다. 

 

[ Automatic decomposition ]

  • Mega relation 과 데이터들의 특징을 이용한다.

  • 데이터의 특성들 ( property )을 기준으로 잘개 쪼갠다.

  • 최종 결과물은 normal form을 만족한다. 즉 ,normal form에는 Design Anomaly, Data Loss 가 없다.

  • 이러한 일련의 과정을 normalization이라 한다.