초록
데이터웨어하우스는 데이터분석을 위한 특수 목적의 데이터베이스로, 주로 데이터분석을 위한 질의(이하 OLAP 질의)가 던져진다. 그런데 OLAP질의는 수백만개의 레코드를 가지 테이블에 대해 하나 이상의 aggregation 함수와 group-by 연산자가 포함되므로, 질의 처리 시간은 수 분에서 수 시간이 걸린다. 이를 개선하기위하여 데이터 큐브를 구현함에 있어서의 문제는 디스크 공간이 한정되어 있기 때문에 평균 질의 처리 시간이 훨씬 짧아진다하더라도 모든 셀들을 실체화할수 없다. 따라서 한정된 디스크 공간을 최대한 활용하면서 가능한 빠른 평균 질의 처리 시간을 얻을 수 있도록 데이터 큐브의 일부만을 실체화 시켜야한다. 본 논문의 주제와 관련된 연구로는 Harinarayan[4] 이 제안한 greedy 알고리즘이 있다. 이 알고리즘은 1) 데이터 큐브를 격자구조로 표현한후, 2) 격자의 위에서부터 아래로 차례로 뷰들을 방문하면서 방문한 뷰가 실체화되 경우 데이터 큐브에 주는 이익을 계산한다. 3) 그 중 가장 이익이 큰 것을 선택한다. 3) 그중 가장 이익이 큰 것을 선택한다. 2)와 3)의 과정은 k개의 뷰를 선택할 경우, k번 반복된다. 이 알고리즘의 운영 시간은 데이터 큐브를 구성하는 뷰의 개수가 n개이고 그 중에서 k개를 실체화할 경우에 O(kn2)이다. 본 논문에서는 운영 시간을 향상시킨 수정된 greedy 알고리즘을 제안한다. 알고리즘 내부에서 실체화할 뷰를 선택할 때 격자를 단순화시킨 트리를 사용함으로써, 알고리즘 운영시간을 O(kn2)에서 O(kn)으로 향상시켰다.