역정규화
- 정규화된 릴레이션은 원래 하나의 릴레이션을 분해하다 보니 원하는 자료가 하나의 릴레이션에 존재하지 않아 외래키를 이용해 자주 참조하는 현상이 발생한다. 따라서 정규화된 릴레이션은 실제로 자료를 검색하는 과정에서 성능 저하를 가져올 수 있다.
- 역정규화는 정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해 중복을 허용하더라도 다시 통합하거나 분할하여 구조를 재조정하는 것을 말한다.
ex) 수강(학번, 전공, 담당교수) <(역정규화)==(정규화)> 학생(학번, 전공), 교수(전공, 담당교수)
역정규화의 종류
1) 릴레이션 역정규화
- 두 릴레이션을 합하거나 하나의 릴레이션을 분할하는 방법이 있다.
1.1) 릴레이션 병합
- 두 릴레이션 간의 잦은 데이터 참조로 성능이 저하되는 문제점을 해결하기 위해 두 릴레이션을 합하는 방법을 말한다.
1.2) 릴레이션 분할
- 릴레이션을 검색할 때는 스캔(Scan) 방법으로 검색하게 된다. 자주 사용되지 않는 속성이나 튜플을 매번 자료를 검색할 때 스캔하면 성능이 저하된다. 이런 경우 자주 사용되는 속성이나 튜플과 자주 사용되지 않는 속성이나 튜플을 분해하면 성능을 향상시킬 수 있다.
스캔(Scan) : 데이터를 찾거나 재배열하기위해 저장되어 있는 목록 중의 모든 데이터 요소를 차례로 조사하는 것을 말한다.
수직 분할 | - 자주 사용되는 속성과 그렇지 않는 속성을 구분해서 분할하는 방법. |
수평 분할 | - 자주 사용되는 튜플과 그렇지 않는 튜플을 구분해서 분할하는 방법. |
2) 속성 역정규화
- 릴레이션에서 성능을 향상시키기 위해 속성 단위로 추가하거나 필요한 속성을 만드는 것을 말한다.
속성 추가 | - 두 릴레이션 A, B에서 A의 외래키에 의해 B의 특정 속성값을 자주 참조하는 경우 B의 속성을 A 릴레이션에 추가하는 방법. |
파생속성 추가 | - 릴레이션에 파생속성을 추가하여 성능을 향상시키는 방법. |
파생속성(Delivered Attribute) : 현재 릴레이션에 없는 속성이지만 작업의 효율을위해 한 속성으로부터 계산이나 기타 가공에 의해 파생되는 속성을 말한다.
'정보처리산업기사 실기 > 데이터베이스' 카테고리의 다른 글
트랜잭션(Transaction) (0) | 2020.11.07 |
---|---|
내장 SQL과 커서(Cursor) (0) | 2020.11.07 |
정규화(Normalization) (0) | 2020.11.06 |
이상(Anomaly)과 함수적 종속 (0) | 2020.11.06 |
뷰(VIEW)와 시스템 카탈로그 (0) | 2020.11.06 |