일반적인 무선 데이터 방송 시스템은 도 1의 도시와 같이, 방송서버가 무선 방송 채널에 주기적으로 데이터를 버켓(bucket, 논리적인 접근 단위) 단위로 방송하고 각 모바일 클라이언트가 그 무선 방송 채널에 액세스하여 원하는 데이터를 탐색한 후 다운로드하는 시스템이다. 이 시스템은 다수의 모바일 클라이언트들이 동시에 무선 방송 채널에 접속하여 원하는 데이터를 다운로드할 수 있기 때문에 확장성(scalability)이 높은 것이 특징이다. 이 시스템에서 모바일 클라이언트는 원하는 데이터를 탐색하기 위해서 무선방송 채널에 액세스한 후, 원하는 데이터가 방송될 때까지 계속적으로 채널을 청취하여야 한다. 이런 방식의 질의 처리는 제약적인 사용시간을 가지는 배터리(battery)에 의존하는 모바일 클라이언트의 에너지 사용량을 크게 증가시키는 문제점을 야기시킨다 이 문제점을 극복하여 에너지 효율적인 질의 처리를 위해 에어 인덱싱(air indexing) 기법이 개발 되었다. 상기 에어 인덱싱 기법은 무선 방송 채널에 방송되는 각각의 데이터의 방송시간을 유지하는 인덱싱 정보(indexing information)를 무선 채널에 추가하여 데이터와 함께 방송하는 기법이다.
상기 에어 인덱싱 기법은 모바일 클라이언트로 하여금 원하는 데이터만을 청취하게하여 에너지 효율적인 질의 처리를 가능하게 해주며 에어 인덱싱 기법에 의한 모바일 클라이언트의 질의 처리는 다음과 같은 방식을 따른다. 무선 방송 채널에 액세스한 모바일 클라이언트는 우선적으로 무선 채널의 인덱싱 정보를 액세스한 후, 그 인덱싱 정보를 이용하여 원하는 데이터의 방송 시간을 찾아낸다. 이 때 모바일 클라이언트가 인덱싱 정보에 우선적으로 접근하는 것을 돕기 위해, 채널에서 방송되는 각 버켓의 버켓 헤더(bucket header)에 인덱스 포인터(그 버켓 후 가장 먼저 액세스할 수 있는 인덱싱 정보가 방송되는 시간)를 유지한다. 따라서 모바일 클라이언트는 무선 방송 채널에 액세스한 후, 첫 번째 버켓을 청취하면 바로 다음에 방송되는 인덱싱 정보의 방송 시간을 얻을 수 있다. 상기 모바일 클라이언트가 원하는 데이터의 방송 시간을 확인한 후, 모바일 클라이언트는 원하는 데이터의 방송 시간까지 휴지상태(doze mode, 에너지 절약모드)로 변환하고, 그 방송 시간에 활성 상태(active mode, 에너지를 사용하여 채널을 청취하는 모드)로 변환하여 무선 방송 채널에서 원하는 데이터만을 청취한다. 따라서 모바일 클라이언트는 무선 방송 채널에서 원하는 데이터만을 선택적으로 청취할 수 있게 되어 에너지 효율적인 질의 처리가 가능해 진다.
상기 무선 데이터 방송 시스템에서 중요한 성능 지표로서 액세스 시간(accesstime)과 튜닝 시간(tuning time)이 있다. 여기서 액세스 시간은 모바일 클라이언트가 질의 처리를 시작하여 무선 방송 채널을 통해서 원하는 데이터를 모두 청취할 때까지 걸린 총 시간을 나타내고, 튜닝 시간은 액세스 시간 동안에 활성상태에서 채널을 청취한 시간들의 총합으로서 질의 처리 과정동안 모바일 클라이언트의 에너지 사용량을 의미한다. 한편, 공간 데이터 (spatial data)를 방송하는 무선 방송 시스템을 통하여 다수의 모바일 클라이언트들에게 다양한 위치 기반 서비스(location based services)를 제공할 수 있다. 그 한 예로서 도로 운행 중, 모바일 클라이언트는 공간 데이터에 대한 무선 방송 시스템에 액세스한 후, k 근접 질의 (k Nearest Neighbor Query)처리를 통해 자신의 현재 위치에서 k 개의 가장 가까운 호텔에 대한 정보를 얻을 수 있다.
상기 공간 데이터에 대한 무선 방송 시스템에서 모바일 클라이언트들의 효율적인 k 근접 질의 처리를 위한 에어 인덱스는 다음의 두 가지의 정보를 효율적으로 지원 해야만 한다. 첫 번째는 방송되는 모든 공간 데이터들에 대한 데이터 공간(data space)상에서의 분포 정보(distribution information)이고, 두 번째는 각 데이터의 데이터 공간상에서의 위치 정보(location information)이다. 상기 분포 정보는 모바일 클라이언트가 데이터 공간상에서 주어진 질의점(query point)에 대한 k 근접 탐색 공간(k nearest neighbor search space)을 결정할 수 있게 해준다. 여기서 k 근접 탐색 공간은 질의점을 중심으로 하는 원으로서, 그 안에 k 개의 근접 데이터의 존재를 보장해 준다. 이하에서는, k 근접 탐색 공간의 반지름을 k 근접 탐색 거리(kNNDist)라고 한다. 또한, 데이터에 대한 위치 정보는 k 근접 탐색 공간상의 데이터들 중에 실제 k개의 질의 결과를 필터링(filtering)해 줄 수 있게 한다.
상기 공간 데이터에 대한 무선 방송 시스템에서 k 근접 질의 처리를 위한 공간 데이터를 인덱싱하는 기법으로 HCI 와 DSI가 있다. 두 방식은 모두, 공간 데이터에 데이터의 위치를 표현할 수 있는 정수 형태의 식별자를 부여하고 이 식별자를 이용해 인덱스를 구축하여 k 근접 질의 처리를 가능하게 해준다. 이 정수 형태의 식별자를 부여하기 위해 힐버트 커브(Hilbert-Curve)를 사용하며, 힐버트 커브를 생성하기 위해서 데이터 공간을 각 셀이 오직 하나의 데이터를 포함할 때까지 2O× 2O 의 격자로 나눈다. 여기서, 위 첨자 o은 힐버트 커브의 차수(order)를 의미한다. 발생된 격자위에 차수 o의 힐버트 커브가 생성되면, 각 공간 데이터는 힐버트 커브를 따라 hi로 표시되는 자신만의 힐버트 커브 값(Hilvert-Curve Value)을 가진다.
도 2는 힐버트 커브의 2 실시 예를 나타내기 위해, 12개의 공간 데이터를 가지는 2차원의 데이터 공간을 나타낸다. 도 3은 도 2의 데이터 공간에 대해 o=3을 가지는 힐버트 커브를 나타낸다. 도 2의 각각의 공간 데이터는 다음과 같이 자신의 힐버트 커브 값을 갖게 된다: d0→h0, d1→h14, d2→h61,d3→h8, d4→h30, d5→h23, d6→h21, d7→h28, d8→h35, d9→h34, d10→h33, d11→h44. HCI와 DSI는 이 힐버트 커브 값을 이용한 인덱싱 기법으로 모바일 클라이언트의 k 근접 질의를 처리를 지원한다.
상기 HCI는 B+ 트리 형태의 자료구조(data structure)를 가지는 인덱스로서 방송되는 모든 데이터의 힐버트 커브 값이 트리의 키(key) 역할을 한다. HCI는 방송되는 모든 데이터의 힐버트 커브 값을 유지하는 트리이기 때문에, 방송되는 모든 데이터의 데이터 공간상에서의 분포 정보를 제공하여 k근접 질의를 위한 k 근접 탐색 공간을 쉽게 결정할 수 있게 한다. 하지만 HCI는 인덱스 트리 내에서 공간 데이터들의 위치 정보, 즉 실제 좌표를 유지하지 않기 때문에 모바일 클라이언트가 k 근접 탐색 공간 안에 포함된 데이터들의 힐버트 커브 값의 최대값과 최소값 사이의 모든 데이터를 채널에서 청취하고 나서 질의 결과인 k 근접 데이터를 필터링하게 하게 한다. 따라서 탐색 공간 밖의 데이터까지도 청취하게 할 수 있으며 그로 인해 불필요한 데이터까지 청취하게 함으로써 에너지 사용을 크게 하는 단점이 있다. 또한 HCI는 전체 데이터에 대한 인덱스가 방송채널의 한 주기 안에 m번 반복되는 (1,m) 인덱싱 기법으로 방송되기 때문에 채널의 방송 주기를 크게 하고 모바일 클라이언트가 무선 채널에 접근 후 인덱스를 만날 때까지의 시간이 길어지게 함으로써 모바일 클라이언트의 액세스 시간을 크게 하는 문제점을 발생시킨다.
DSI는 테이블 형태의 자료구조를 가지는 인덱스로서, 방송되는 데이터의 개수가 N개일 때, logrN 개의 데이터에 대한 색인 정보를 갖는 테이블을 데이터와 함께 무선 방송 채널에 분산시키는 기법이다. 여기서 r 은 log의 밑수이고, r 값을 조정함으로써 하나의 인덱스 테이블에 포함되는 엔트리의 개수를 조정할 수 있다. 이 기법은 모바일 클라이언트가 채널에 액세스한 후 인덱스를 만나는 시간을 HCI보다 줄여주는 장점이 있다. 하지만 방송하는 데이터의 개수가 늘어남에 따라 각각의 분산된 인덱스의 크기가 급격히 커지게 되어 이로 인해 무선 데이터 방송의 방송주기의 길이가 커지게 됨으로 모바일 클라이언트의 액세스 시간이 커지게 되는 단점이 있다. 또한 DSI 는 각각의 인덱스 테이블이 방송되는 전체 데이터들의 분포 정보를 가지고 있지 않고 또한 인덱스 테이블에서 데이터들의 실제 위치정보, 즉 실제 좌표를 가지고 있지 않기 때문에 k 근접 질의 처리를 위한 k 근접 탐색 공간을 결정하지 못하고 분산된 인덱스 테이블들과 질의 결과의 후보가 되는 모든 데이터들을 계속적으로 청취하면서 k 근접 질의의 결과를 얻는다. 이런 방식의 질의 처리는 모바일 클라이언트들의 에너지 사용량을 크게 하여 튜닝 시간을 크게 하고, 또한 후보가 되는 데이터를 모두 청취하는데 걸리는 시간이 길어져 액세스 시간을 길게 하는 단점이 있다.
본 발명이 이루고자 하는 첫 번째 기술적인 과제는 상술한 바와 같은 배경 기술의 k 근접 질의 처리시 문제점을 극복하기 위해, 공간 데이터의 분포 정보와 실제 위치 정보를 효율적으로 제공하여 모바일 클라이언트가 k 근접 탐색 공간을 빠른 시간 안에 결정하고, k 근접 질의의 결과를 데이터의 청취 전에, 인덱스 상에서 필터링하게 함으로써 불필요한 데이터의 청취를 막아 에너지 효율적인 질의 처리가 가능하게 하고, 또한 처음에 결정된 k 근접 탐색 공간을 지속적으로 축소시킴으로 탐색해야하는 후보 데이터를 줄여 질의 처리의 액세스 시간을 줄여줄 수 있고, 인덱스의 크기를 작게 유지하여 방송 주기를 짧게 하여 액세스 시간을 줄여줄 수 있는 셀 기반의 복합 인덱스(cell-based hybrid index)를 이용한 k 근접 질의 처리 시스템을 제공하는 것이다.
본 발명이 이루고자 하는 두 번째 기술적인 과제는 상기의 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 시스템을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명이 이루고자 하는 세 번째 기술적인 과제는 상기의 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 방법을 이용한 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 시스템을 제공하는 것이다.
상기 첫 번째 과제를 이루기기 위하여 본 발명은 위치 정보를 갖는 공간 데이터에 대한 무선 데이터 방송 시스템에서 주어진 질의점(query point)에 대한 k 근접 질의 처리를 위한 공간 데이터의 에어 인덱싱 방법을 제공하기 위한 것으로, 본 발명에 따른 공간 데이터의 색인 방법은 공간 데이터가 존재하는 데이터공간을 n× n 격자로 분할하여, 모바일 클라이언트가 주어진 질의점에 대한 k 근접 탐색 공간을 결정할 수 있도록 n× n 격자의 셀 기반의 데이터 분포 정보를 제공하는 분포 인덱스(distribution index)와 k 근접 데이터를 필터링할 수 있도록 n× n 격자의 각 셀에 포함된 데이터의 위치 정보를 제공하는 셀 인덱스(cell index)를 복합(hybrid)적으로 구성하는 것을 특징으로 한다.
또한 본 발명의 분포 인덱스는 모바일 클라이언트가 주어진 질의점(query point)에 대한 k 근접 탐색 공간을 결정할 수 있게 하는 것을 목적으로 하며, 다음 셀 식별자(next cell identifier)와 분포 테이블(distribution table)로 구성된다.
상기의 다음 셀 식별자는 무선 방송 채널에서 상기의 분포 인덱스 바로 다음에 방송되는 셀의 식별자를 나타낸다. 본 발명에 따르는 무선 방송 채널에서 셀들은 셀 식별자의 오름차순 순서로 방송되기 때문에, 상기의 다음 셀 식별자는 무선 방송 채널 상에서 분포 인덱스의 상대적 위치를 나타내고 또한, 이 식별자를 이용하여 모바일 클라이언트는 질의 처리를 위해 자신이 액세스해야 하는 셀들의 액세스 순서를 정렬할 수 있다.
또한 본 발명의 분포 테이블의 엔트리(entry)의 수는 상기의 n× n 격자의 데이터를 가지는 셀들의 수와 같고, 각각의 엔트리는 데이터를 가지는 각각의 셀들에 대해 그 셀의 셀 식별자, 그 셀에 포함된 데이터의 개수, 그리고 그 셀이 방송 되는 시간을 나타내는 셀 포인터를 가진다. 상기의 분포 테이블에 포함된 정보를 이용하여 모바일 클라이언트는 주어진 질의점에 대한 k 근접 탐색 공간과 그것의 반지름인 k 근접 탐색 거리를 결정할 수 있는 것을 특징으로 하며, 이 과정은 질의 처리 과정의 흐름도를 설명하는 부분에서 자세히 설명한다.
상기의 분포 인덱스는 데이터 공간에 대한 셀 단위의 데이터 분포를 나타내며, 따라서 데이터 단위의 분포 정보보다 작은 인덱스 크기(index size)를 유지 할 수 있다. 상기 작은 크기의 분포 인덱스는 방송 채널의 한 주기의 크기를 줄여줄 수 있어 모바일 클라이언트의 질의 처리 시, 액세스 시간을 줄여 줄 수 있다.
또한, 본 발명의 셀 인덱스는 상기의 n× n 격자의 셀 중에서 데이터를 가지는 각각의 셀들에 대해 구성되며, 각 셀의 셀 인덱스는 그 셀에 포함된 공간 데이터의 위치 정보를 제공한다. 상기 셀 인덱스는 인덱스 셀 식별자(index cell identifier), 다음 분포 인덱스 포인터(next distribution index pointer), 그리고 좌표 테이블(coordinate table)로 구성되는 것을 특징으로 한다.
상기의 인덱스 셀 식별자는 상기의 셀 인덱스가 어떤 셀의 인덱스 인지를 나타낸다. 상기의 다음 분포 인덱스 포인터는 무선 방송 채널에서 상기의 셀 인덱스 뒤에 방송되는 첫 번째 분포 인덱스의 방송시간을 유지하는 포인터로서, 모바일 클라이언트가 분포 인덱스에 쉽게 액세스 할 수 있게 해준다.
상기의 좌표 테이블은 해당 셀에 포함되는 데이터의 2차원 좌표(coordinates)와 그 데이터의 방송 시간을 나타내는 데이터 포인터(data pointer)로 구성된다. 상기 좌표 테이블은 k 근접 데이터를 청취 전에 인덱스 상에 서 필터링할 수 있게 하고 또한, k 근접 탐색 공간을 데이터의 실제 위치를 이용하여 축소함으로써 질의 결과를 위해 탐색해야만 하는 데이터의 수를 줄여 줄 수 있다.
본 발명에 의한 무선 방송 채널의 한 주기(one cycle)는 상기 n× n 격자의 데이터를 가지는 셀들을 셀 식별자의 오름차순으로 배치하는 것으로 구성된다. 무선 방송 채널에서 각 셀들은 셀 인덱스가 위치하고 다음에 그 셀에 포함된 데이터가 위치하게 된다. 데이터가 놓이는 순서는 셀 인덱스에 포함된 좌표 테이블의 좌표의 순서와 동일하다. 무선 방송 채널에서 분포 인덱스는 n× n 격자의 각 행에서 데이터를 가지는 첫 번째 셀의 셀 인덱스 앞에 위치한다. 본 발명에 의한 무선 채널의 구조는 분포 인덱스를 행의 개수 만큼 반복 배치함으로써 모바일 클라이언트가 빠른 시간 안에 k 근접 탐색 공간을 결정할 수 있게 하여 질의 처리 시, 액세스 시간을 줄여줄 수 있다.
예를 들어, 공간 데이터가 균일하게 분포되어져 있는 데이터 공간에 대한 n× n 격자의 경우에 모바일 클라이언트는 평균적으로 1/2n 의 주기 안에 k 근접 탐색 공간을 결정할 수 있게 된다.
상기의 두 번째 과제를 이루기 위해, 본 발명은 상기의 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 방법을 컴퓨터에서 실행 시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기의 세 번째 과제를 이루기 위해, 본 발명은 방송 서버, 무선 방송 채널 및 하나 이상의 모바일 클라이언트를 포함하는 시스템에 있어서, 상기의 방송 서버 는 상기 셀 인덱스와 그 셀에 포함되는 데이터가 셀 식별자의 오름 차순으로 배치되고 상기 분포 인덱스가 각 행의 데이터를 가지는 첫 번째 셀의 셀 인덱스 앞에 배치되는 형태로 상기의 무선 방송 채널에 주기적으로 방송하고, 상기의 무선 방송 채널은 방송 서버가 방송한 셀 기반의 복합 인덱스와 데이터를 유지하여 모바일 클라이언트들이 데이터를 탐색할 수 있게 하고, 상기의 모바일 클라이언트는 무선 방송 채널에 액세스 한 후의 인덱스가 분포 인덱스인 경우, k 근접 탐색 공간과 질의 처리를 위해서 액세스해야 할 셀 식별자 집합을 결정하는 분포 인덱스 처리부; 무선 방송 채널에 액세스 한 후의 인덱스가 셀 인덱스 인 경우, 질의점에 대한 k 근접 데이터를 결정하고 결정된 데이터의 포인터를 결정하는 셀 인덱스 처리부; 상기 결정된 포인터에 따라 상기 데이터를 청취하는 수신부; 상기 수신부에서 청취된 데이터를 유지하는 질의 결과 유지부를 포함하는 것을 특징으로 하는 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 시스템을 제공한다.
상술한 바와 같이, 본 발명에 의하면, k 근접 질의 처리시, 분포 인덱스를 이용하여 k 근접 데이터에 대한 k 근접 탐색 공간을 효율적으로 결정하고, 질의 처리 진행과정에서는 셀 인덱스에서 제공하는 공간데이터의 실제 위치를 이용하여 k 근접 탐색 공간을 수정함과 동시에 데이터를 청취하기 전에 불필요한 데이터를 필터링함으로써 모바일 클라이언트의 질의 처리과정에서의 불필요한 데이터의 청취를 막아 에너지 사용량을 줄여 에너지 효율적인 질의 처리를 가능하게 해주고, 또한 처음에 결정된 k 근접 탐색 공간을 지속적으로 축소시킴으로 탐색해야하는 후보 데 이터를 줄여 질의 처리의 액세스 시간을 줄여줄 수 있고, 인덱스의 크기를 작게 유지하여 방송 주기를 짧게 하여 액세스 시간을 줄여줄 수 있는 효과가 있다.
이하 도면을 참조로 상세히 설명하기로 한다.
도 4는 본 발명에 적용되는 공간 분할에 의한 셀을 도시한 것으로 도 2의 데이터 공간을 4x4 격자로 분할한 것을 나타내며 각각의 셀은 도 4에 나타난 것과 같이 고유의 셀 식별자(cell identifier)를 가진다.
도 5는 본 발명에 적용되는 무선 방송 채널의 구조를 도시한 것이다. 도 5는 도 4에서 보여진 공간 분할에 대해 구성된 분포 인덱스와 셀 인덱스를 데이터와 함께 분산시킨 방송의 한 주기를 나타낸다. 데이터를 가지는 셀들의 셀 인덱스와 데이터가 셀 식별자의 오름차순으로 배치되고, 분포 인덱스는 도 4의 각 행에서 데이터를 가지는 첫 번째 셀, 즉 C 0 , C 4 , C 9 , 그리고 C 12 , 들의 셀 인덱스 앞에 배치되어 도 4의 행의 개수 즉, 4 개 만큼 놓여진다.
도 6은 본 발명에 적용되는 분포 인덱스의 일 예를 도시한 것이다. 도 6은
도 5의 첫 번째 분포 인덱스의 예를 보여준다. 다음 셀 식별자(next cell idenifier)는 C 0 이고 분포 테이블의 각 엔트리는 도 4의 데이터를 가지는 각각의 셀들의 셀 식별자, 그 셀에 포함된 데이터 개수, 그 셀의 셀 인덱스가 방송되는 시간을 유지하는 셀 포인터를 보여준다. 여기서 셀 포인터는 도 5에 표시된 셀 인덱스의 방송시간을 가진다.
도 7은 본 발명에 적용되는 셀 인덱스의 일 예를 도시한 것이다. 도 7은 도 5의 세 번째 분포 인덱스 바로 다음의 셀 인덱스 CI 10 , 즉 셀 C 10 의 셀 인덱스, 예를 보여준다. 셀 식별자는 C 10 이고, 다음 분포 인덱스 포인터는 도 5에 표시된 다음 분포 인덱스의 방송 시간인 td3 이며, 좌표 테이블 도 4에 표시한 대로, 3개의 데이터 d10, d8, 그리고 d9의 좌표 (d10.x, d10.y), (d8.x, d8.y) 그리고 (d9.x, d9.y)를 보여주고, 각 데이터의 방송시간을 나타내는 데이터 포인터는 도 5에 표시한 td10 이며, td8 이며, td9 를 보여준다.
도 8은 본 발명에 따른 셀 기반 복합 인덱스를 이용한 k 근접 질의 처리 시스템의 블록도이다.
도 8의 시스템은 방송 서버(960), 무선 방송 채널(950)과 하나 이상의 모바일 클라이언트(900)을 포함한다.
모바일 클라이언트는 분포 인덱스 처리부(910), 셀 인덱스 처리부(920), 수신부(930) 및 질의 결과 유지부(940)를 포함한다.
분포 인덱스 처리부(910)는 방송 채널에 액세스한 후의 인덱스가 분포 인덱스 인 경우, k 근접 질의 처리를 위한 k 근접 탐색 공간을 결정하고 , 결정된 k 근접 탐색 공간과 겹치는 셀들을 결정한다. 분포 인덱스 처리부(910)는 k 근접 탐색 거리 결정부(911)와 셀 식별자 집합 Qc 결정부(912)를 포함한다.
k 근접 탐색 거리 결정부(911)는 분포 인덱스의 분포 테이블을 이용하여, 질 의점에 대한 k 개의 근접 데이터의 존재를 보장하는 k 근접 탐색 공간의 반지름인 k 근접 탐색 거리를 결정한다.
셀 식별자 집합 Qc 결정부(912)는 k 근접 탐색 거리 결정부(911)에서 결정한 k 근접 탐색 공간과 겹치는 모든 셀들을 결정하여 셀 식별자 집합 Qc 에 삽입함으로써 질의점에 대한 k 근접 데이터를 탐색할 수 있도록 한다.
셀 인덱스 처리부(920)는 방송 채널에 액세스한 후의 인덱스가 셀 인덱스 인 경우, 질의점에 대한 k 근접 데이터를 결정한다. 셀 인덱스 처리부(920)는 k 근접 탐색 거리 수정부(921), 셀 식별자 집합 Qc 수정부(922) 및 청취 데이터 결정부(923)를 포함한다.
k 근접 탐색 거리 수정부(921)는 셀 인덱스의 좌표 테이블에 포함된 데이터들의 실제 좌표를 이용하여 k 근접 탐색 거리를 수정한다. 셀 식별자 집합 Qc 수정부(922)는 셀 식별자 집합 Qc 의 셀들 중, 수정된 k 근접 탐색 거리에 의한 k 근접 탐색 공간 밖에 존재하는 셀들을 삭제하여 셀 식별자 집합 Qc 를 수정한다.
청취 데이터 결정부(923)는 셀 인덱스의 좌표 테이블을 이용하여 수정된 k 근접 탐색 공간 안에 포함되는 데이터들을 필터링하여 청취할 데이터를 결정하고, 그 데이터들에 대한 포인터를 결정한다.
수신부(930)는 위에서 결정된 포인터를 따라 데이터를 청취하여 질의 결과 유지부(940)에 데이터를 저장한다.
방송 서버(960)는 데이터 공간(data space)을 n x n 격자로 나누고, 분포인덱스와 셀 인덱스를 포함하는 셀 기반 복합 인덱스를 구성한다. 구성된 셀 기반 복 합 인덱스를 도 5에 보인 것과 같이 공간 데이터(spatial data)들과 분산적으로 무선 채널에 방송한다.
무선 방송 채널(950)은 방송 서버가 방송한 셀 기반 복합 인덱스와 데이터를 유지하여 모바일 클라이언트들이 데이터를 탐색할 수 있게 한다.
도 9는 본 발명에 따른 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리의 흐름도이다. 질의 처리를 위해 모바일 클라이언트는 무선 방송 채널에 액세스한 후, 첫 번째 버켓의 버켓 헤더의 인덱스 포인터를 이용하여 무선 방송 채널에 액세스 한 후의 첫번째 인덱스에 접근한다. 다음, 인덱스가 분포 인덱스인지를 판단한다(단계 1010 ). 이때, 방송 채널에 액세스 한 후의 첫 번째 인덱스가 셀 인덱스이면 셀 인덱스에 포함된 다음 분포 인덱스 포인터를 이용하여 분포 인덱스에 엑세스한다(단계 1020 ). 이때, 방송 채널에 액세스 한 후의 첫 번째 인덱스가 분포 인덱스이면 분포인덱스에 포함된 분포 테이블을 이용하여 질의점에 대한 k 근접 탐색 거리(kNNdist)를 결정한다(단계 1030 ).
다음, 분포 인덱스에 포함된 분포 테이블을 이용하여, 주어진 질의점과 결정된 k 근접 탐색 거리에 의한 k 근접 탐색 공간과 겹치는 셀들을 선택한다. 그 다음, 선택된 셀들의 셀 식별자와 셀 포인터를 엔트리로 하여 셀 식별자 집합 Qc 에 삽입한다. 그 다음, 셀 포인터의 액세스 순서로 정렬한다(단계 1040 ).
다음, 셀 식별자 집합 Qc 의 엔트리 중 첫 번째 엔트리의 셀 포인터를 이용하여 그 셀의 셀 인덱스에 액세스한다(단계 1050 ) 다음, 액세스한 셀 인덱스에 포함된 인덱스 셀 식별자를 셀 식별자 집합 Qc 에서 삭제한다.(단계 1060 ). 다음, 액세스한 셀 인덱스에 포함된 좌표 테이블을 이용하여, 이전 단계에서 결정된 k 근접 탐색 거리를 데이터들의 실제 좌표를 이용하여 수정한다. 그리고 셀 식별자 집합 Qc 의 셀들 중, 수정된 k 근접 탐색거리에 의한 k 근접 탐색 공간 밖에 존재하는 셀들을 셀 식별자 집합 Qc 로부터 삭제한다(단계 1070). 다음, 액세스한 셀 인덱스에 포함된 좌표 테이블을 이용하여, 데이터 거리(질의점에서 부터 데이터의 위치까지의 거리)가 수정된 k 근접 탐색 거리보다 작거나 같은 모든 데이터를 필터링하고, 그 데이터들의 데이터 포인터를 이용하여 데이터를 청취한다(단계 1080 ). 다음, 셀 식별자 집합 Qc 가 공집합이면 모든 질의가 처리된 것으로 판단하고 절차를 종료한다. 반대로, 셀 식별자 집합 Qc 가 공집합이 아니면 모바일 클라이언트는 위 과정(단계 1050 내지 단계 1080 )을 반복한다.
도 10a는 도 9의 k 근접 탐색 거리 결정 단계(단계 1030 )의 상세히 설명하는 흐름도이다. 먼저, 분포 테이블에 포함된 각 셀을 셀 최대 거리(maxdist)의 오름차순으로 정렬한다(단계 1031 ). 여기서 한 셀의 셀 최대 거리는 주어진 질의점과 그 셀 내부의 모든 점들과의 거리 중에서 최대값을 의미하며, 그 셀에 존재하는 임의의 데이터가 가질 수 있는 질의점과의 거리의 최대값을 의미한다. 도 11은 도 4에 표시한 공간 분할에 의한 셀 C4의 셀 최대 거리를 보여준다. 다음, 정렬된 셀 순서에 따라, 첫 번째 셀부터 각 셀에 포함된 데이터의 개수를 차례로 더한다. 더하기 단계는 더하기의 결과가 처음으로 k 보다 크거나 같을 때 종료한다(단계1032 ). 다음, 더하기 단계(단계 1032 )에서 마지막으로 더해진 셀의 셀 최대 거리 를 k 근접 탐색 거리로 결정한다 (단계 1033 ). 이것은 질의점을 중심으로 하고 결정된 k 근접 탐색 거리를 반지름으로 하는 원 모양의 k 근접 탐색 공간 안에, k 개의 근접 데이터가 반드시 존재한다는 것을 의미한다.
도 12은 도 4에 표시한 공간 분할과 도 11에 표시한 질의점에 대해 3 근접 질의를 처리한다고 가정할 때, 3 근접 탐색 거리의 결정의 일 예를 보여준다. 도 4에 표시된 데이터를 가지는 셀들의 셀 최대 거리를 오름차순으로 정렬한 것과 각 셀에 포함된 데이터의 개수를 나타낸다. 여기서 3 근접 질의이기 때문에, 데이터 개수의 합이 첫 번째 셀 C10에서 처음으로 3보다 크거나 같게되므로 셀 C10의 셀 최대 거리가 3 근접 탐색 거리로 결정된다.
도 14은 도 12의 예에 대한 3 근접 탐색 거리와 3 근접 탐색 공간을 표시한다. 도 14의 실선으로 표시된 바깥쪽 원과 그 원의 반지름은 위의 단계(단계 1031 내지 단계 1033 )에서 결정된 3 근접 탐색 공간과 3 근접 탐색 거리를 보여준다.
도 10b는 도 9의 액세스 해야 할 셀들의 집합 Qc 를 결정하는 단계(단계 1040 )의 상세히 설명하는 흐름도이다. 먼저, 분포 테이블에 포함된 각 셀을 셀 최소 거리(mindist)의 오름차순으로 정렬한다(단계 1041 ). 여기서 한 셀의 셀 최소 거리는 주어진 질의점과 그 셀 내부의 모든 점들과의 거리 중에서 최소값을 의미하며 그 셀에 존재하는 임의의 데이터가 가질 수 있는 질의점과의 거리의 최소값을 의미한다. 도 11은 도 4에 표시한 공간 분할에 의한 셀 C4의 셀 최소 거리를 보여준다.
다음, 셀 최소 거리가 단계 (1030)에서 결정된 k 근접 탐색 거리보다 작거나 같은 셀들을 셀 식별자와 분포 테이블에 있는 셀 포인터를 하나의 엔트리로 하여 액세스 해야할 셀 식별자 집합 Qc 에 삽입한다(단계 1042 ). 이것은 단계 (1030)에서 결정된 k근접 탐색 공간과 겹치는 모든 셀들을 선택하는 것을 의미한다. 다음, 셀 식별자 집합 Qc 의 엔트리들을 셀 포인터의 접근 시간의 오름차순으로 정렬하여 모바일 클라이언트가 차례대로 접근할 수 있도록 한다(단계 1043 ).
도 13는 도 4에 표시한 공간 분할과 도 12에서 결정한 3 근접 탐색 거리에 대한 셀 식별자 집합 Qc 의 결정의 일 예를 보여준다. 도 4에 표시된 데이터를 가지는 셀들의 셀 최소 거리의 오름차순으로 정렬한 것과 단계 (1030)에서 결정된 3 근접 탐색 거리를 나타낸다. 여기서 셀 최소 거리가 3 근접 탐색 거리보다 작거나 같은 셀 C10, C9, C11, 그리고 C5를 선택하고 셀 식별자 집합 Qc 의 엔트리로 삽입 한 후, 각 셀의 포인터에 따라 정렬한 결과를 보여준다.
도 10c는 도 9의 k 근접 탐색 거리와 액세스해야할 셀들의 집합 Qc 를 수정하는 단계(1070 )의 상세 흐름도이다. 먼저, 결과 R 에 포함된 데이터의 데이터 거리와 현재 액세스된 셀 인덱스의 좌표 테이블에 포함된 좌표들의 데이터 거리를 오름차순으로 정렬한다(단계 1071 ). 여기서 결과 R 은 k 개의 공간 데이터를 데이터거리의 오름차순으로 유지하는 큐이다. 다음, 정렬된 결과에서 k 번째 데이터 거리를 k 근접 탐색 거리로 수정한다.(단계 1072 ). 다음, 셀 식별자 집합 Qc 의 엔트리의 각 셀의 셀 최소 거리가 수정된 k 근접 탐색 거리보다 큰 셀들을 셀 식별자 집합 Qc 에서 제거한다(단계 1073).
도 15는 모바일 클라이언트가 도 5에 표시한 순서대로 C5와 C9를 액세스한 후, 셀 C10의 셀 인덱스에 액세스하여 위의 단계(단계 1071 내지 단계 1073 )를 행했을 때의 결과를 보여준다. 여기서 3 근접 탐색 거리가 정렬된 데이터거리 중 3번째인 d7의 데이터 거리로 수정된다. 그리고 셀 C11의 셀 최소 거리가 수정된 3 근접 탐색 거리보다 크기 때문에 셀 식별자 집합 Qc 에서 제거되고 모바일 클라이언트는 셀 C11을 탐색하지 않게 되어 질의 처리시 에너지 사용량을 줄이게 되고 또한 액세스 시간이 줄게 된다.
도 14은 도 15에서 수정된 3 근접 탐색 거리와 3 근접 탐색공간을 도시한다.
도 14의 점선의 안쪽 원과 그 원의 반지름은 도 15에서 수정된 3 근접 탐색 거리와 3 근접 탐색 공간을 나타낸다.
본 발명은 소프트웨어를 통해 실행될 수 있으며, 셀 기반의 복합 인덱스를 이용한 k 근접 질의 처리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 모든 종류의 기록 매체에 기록하여 제공할 수 있으며 그 예로는 ROM, RAM, CD-ROM, DVD-ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크, 광데이터 저장장치가 있다.
도 1은 종래의 무선 데이터 방송 시스템을 도시한 것이다.
도 2는 공간 데이터의 분포의 일 예를 도시한 것이다
도 3은 종래의 에어 인덱스를 위한 힐버트 커브의 일 예를 도시한 것이다.
도 4는 도 2의 데이터 공간에 대한 본 발명에 적용되는 공간 분할에 의한 셀
을 도시한 것이다.
도 5는 본 발명에 적용되는 무선 방송 채널의 구조를 도시한 것이다.
도 6은 본 발명에 적용되는 분포 인덱스의 일 예를 도시한 것이다.
도 7은 본 발명에 적용되는 셀 인덱스의 일 예를 도시한 것이다.
도 8은 본 발명에 따는 셀 기반 복합 인덱스를 이용한 k 근접 질의 처리 시스템의 블록도이다.
도 9은 본 발명에 따른 셀 기반 복합 인덱스를 이용한 k 근접 질의 처리 방법의 흐름도이다.
도 10a는 도 9의 k 근접 탐색 거리 결정 과정의 상세 흐름도이다.
도 10b는 도 9의 k 근접 질의 처리를 위해 액세스해야 할 셀 식별자 집합의 결정 과정의 상세 흐름도이다.
도 10c는 도 9의 k 근접 탐색 거리와 셀 식별자 집합의 수정 과정의 상세 흐름도이다.
도 11은 본 발명에 적용되는 셀 최대 거리, 셀 최소 거리, 데이터 거리 그리
고 3 근접 질의를 위한 질의점의 일 예를 도시한 것이다.
도 12은 도 2의 공간 데이터에 대한 도 11의 질의점에서의 3 근접 질의 처리를 위한 3 근접 탐색 거리 결정의 일 예를 도시한 것이다.
도 13는 도 12에서 결정된 3 근접 탐색 거리를 이용한 액세스해야 할 셀 식별자 집합의 결정의 일 예를 도시한 것이다.
도 14은 도 12에서 결정된 3 근접 탐색 거리에 대한 3 근접 탐색 공간의 일 예를 도시한 것이다.
도 15는 도 2의 공간 데이터에 대한 도 11의 질의점에서의 3 근접 질의 처리
중, 3 근접 탐색 거리와 액세스해야 할 셀 식별자 집합의 수정 과정의 일 예를 도시한 것이다.