이하, 본 발명의 바람직한 실시형태가 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 1은 본 발명에 의한 RFID를 이용한 공급망 관리에 있어서의 데이터 저장 과정을 나타내는 순서도이다.
우선, RFID를 이용하는 공급망 관리 시스템에서 발생하는 미가공 RFID 데이터(이하, '미가공 데이터'라 함)를 궤적 레코드(trace record)로 변환한다.
미가공 데이터는 (태그 ID, 위치, 시간)의 형태로 구성되는데, 이때, '태그 ID'는 인식된 RFID 태그의 아이디, '위치'는 상기 태그가 인식된 위치, '시간'은 상기 태그가 인식된 시간을 의미한다. 이와 같은 미가공 데이터를 일단 스테이 레코드로 변환한 후(S10) 스테이 레코드로부터 궤적 레코드를 구성하게 된다(S20).
스테이 레코드는 RFID 태그가 부착된 각각의 제품이 임의의 위치에 언제부터(시작 시간) 언제까지(종료 시간) 머물렀는지를 나타내는 것으로, (태그 ID, 위치, 시작 시간, 종료 시간)의 형태로 구성된다. 특히, 본 발명에 있어서 스테이 레코드는 상술한 종래기술과는 달리 각 태그별로 구성된다.
상술한 바와 같이 각 태그별로 구성된 스테이 레코드로부터‘태그 ID : L1[S1,E1]-> L2[S2,E2]-> L3[S3,E3]-> ... -> Lk[Sk,Ek]’형태의 궤적 레코드를 구성한 다. 이 때, Lk 는 해당 태그가 인식된 위치, 즉 상기 태그가 부착된 제품이 머무르고 있는 위치, Sk 는 상기 태그가 위치 Lk에 머무르기 시작한 시간, Ek는 상기 태그가 위치 Lk를 떠난 시간을 의미한다. 이와 같은 궤적 레코드 역시 각 태그별로 구성되며, 궤적 레코드로부터 해당 태그가 부착된 제품이 이동한 경로 및 임의의 위치에 머무른 시간 등의 정보를 얻을 수 있다.
예를 들어, 공급망 관리 시스템에서 다음과 같은 미가공 데이터가 발생하는 경우,
(tag1, A, 2), (tag4, A, 2), (tag2, A, 2), (tag3, A, 2), (tag1, A, 3),
(tag2, A, 3), (tag4, A, 3), (tag3, A, 3), (tag3, B, 5), (tag1, B, 5),
(tag2, B, 5), (tag4, B, 5), (tag1, B, 6), (tag4, B, 6), (tag3, B, 7),
(tag1, B, 7), (tag2, B, 7), (tag4, B, 7), (tag2, C, 8), (tag1, C, 8),
(tag3, C, 8), (tag3, C, 9), (tag1, C, 9), (tag2, C, 9),
(tag4, D, 13), (tag4, D, 14), (tag4, D, 16)
상기 미가공 데이터로부터 다음과 같은 각 태그별 스테이 레코드를 구성할 수 있으며,
(tag1, A, 2, 3), (tag1, B, 5, 7), (tag1, C, 8, 9),
(tag2, A, 2, 3), (tag2, B, 5, 7), (tag2, C, 8, 9),
(tag3, A, 2, 3), (tag3, B, 5, 7), (tag3, C, 8, 9),
(tag4, A, 2, 3), (tag4, B, 5, 7), (tag4, D, 13, 16),
상기 각 태그별 스테이 레코드로부터 다음과 같은 각 태그별 궤적 레코드를 구성할 수 있다.
tag1 : A[2,3]-> B[5,7]-> C[8,9]
tag2 : A[2,3]-> B[5,7]-> C[8,9]
tag3 : A[2,3]-> B[5,7]-> C[8,9]
tag4 : A[2,3]-> B[5,7]-> D[13,16]
이후, 상술한 바와 같이 구성된 각 태그별 궤적 레코드를 경로 부호화 기법 및 영역 코드화 기법에 의해 부호화한다.
구체적으로 설명하면, 우선 상기 궤적 레코드로부터 알 수 있는 각 태그의 이동 경로를 경로 부호화 기법에 의해 엘리먼트 리스트 부호화 숫자(Element List Encoding Number) 및 순위 부호화 숫자(Order Encoding Number)로 부호화(S30)한다. 이 때, 엘리먼트 리스트 부호화 숫자는 각 태그의 이동 경로에 포함된 위치 정보를 부호화하는 숫자이고, 순위 부호화 숫자는 이동 경로에 포함된 위치 간의 순위를 부호화하는 숫자이다.
유일한 소인수분해 정리(Unique Factorization Theorem)에 의하면, 임의의 숫자는 유일한 소수의 곱으로 나타내어 진다. 상기 정리를 이용하여 이동 경로에 포함된 위치 정보를 부호화하기 위해, 각 위치별로 고유한 소수를 부여한다. 임의의 제품의 이동 경로가 ‘L1-> L2-> ...-> Lk’라면 이에 대한 엘리먼트 리스트 부 호화 숫자는 ‘Prime(L1)*Prime(L2)*...*Prime(Lk)’로 나타내어 진다. 이때, Prime(Lk)는 위치 Lk에 부여된 고유한 소수를 의미한다. 엘리먼트 리스트 부호화 숫자는 이동 경로에 어떤 위치가 포함되어 있는지에 대해서만 알려줄 뿐 각 위치 사이의 이동 순서에 대한 정보는 제공하지 않는다. 따라서, 이동 경로에 포함된 위치 간의 순위를 부호화하기 위해 순위 부호화 숫자를 사용한다.
중국인의 나머지 정리(Chinese Remainder Theorem)에 의하면, 다음의 식들을 만족하는 X는 언제나 존재한다.
X mod Prime(L1) = 1
X mod Prime(L2) = 2
...
X mod Prime(Lk) = k
순위 부호화 숫자는 상기 식들을 만족하는 X이며, 이를 이용하여 이동 경로에 포함되는 각 위치에 대한 순위를 알 수 있다. Li에 대한 순위를 알고 싶으면, X mod Prime(Li)를 계산하면 된다.
예를 들어, 임의의 제품의 이동 경로가 A->B->C이고, 각 위치에 부여된 소수가 Prime(A)=2, Prime(B)=3, Prime(C)=5라고 가정하면, 상기 이동 경로에 대한 엘리먼트 리스트 부호화 숫자는 Prime(A)*Prime(B)*Prime(C)=2*3*5=30이고, 순위 부호화 숫자는 X mod Prime(A) = 1, X mod Prime(B) = 2, X mod Prime(C) = 3를 만족 하는 X로, 이 경우 X는 23이다. 따라서, 상기 이동 경로는 (30, 23)으로 부호화된다.
상술한 바와 같이 경로 부호화 기법을 통해 다양한 제품에 대한 이동 경로를 부호화하기 위해 궤적 레코드로부터 중복된 경로를 제거하여 트리 구조를 구성한다.
도 2는 본 발명의 일 실시예에 의한 궤적 레코드를 트리 구조로 구성한 것을 나타내는 도면으로, 다음의 궤적 레코드를 트리 구조로 나타낸 것이다.
tag1 : A[2,3]->B[5,7]->C[8,9]
tag2 : A[2,3]->B[5,7]->C[8,9]
tag3 : A[2,3]->B[5,7]->C[8,9]
tag4 : A[2,3]->B[5,7]->D[13,16]
tag5 : A[2,3]->B[7,8]->D[14,18]
tag6 : A[2,3]->E[4,6]->C[7,8]
tag7 : A[2,3]->E[4,6]->C[7,8]
tag8 : A[2,3]->E[4,6]
tag9 : A[2,3]->D[4,5]
tag10 : A[2,3]->D[5,6]
도 2에 도시된 트리에서, 각 노드의 좌측에 쓰여진 숫자는 각 노드가 나타내는 위치에 부여된 소수를 의미하고, 내부에 빗금이 치여진 노드는 해당 노드를 마 지막 노드로 하는 경로가 존재함을 나타내기 위한 것이다.
다시 도 1을 참조하면, 상기 각 태그별 궤적 레코드는 제품에 대한 이동 경로뿐만 아니라 상기 제품이 각 위치에 머무른 시간 정보도 포함한다. 이와 같은 시간 정보를 필요로 하는 경우, 상기 궤적 레코드를 영역 코드화 기법에 의해 부호화 할 수도 있다(S40).
이를 위해, 우선 궤적 레코드로부터 중복된 노드를 제거하여 시간 트리 구조를 구성한다.
도 3은 본 발명의 일 실시예에 의한 궤적 레코드를 시간 트리 구조로 구성한 것을 나타내는 도면이다. 도 3에 도시된 시간 트리에서는, 도 2에 도시된 트리와 달리 각 노드가 각 위치에서의 시간 정보, 즉 시작 시간 및 종료 시간에 대한 정보를 포함하며, 위치 정보뿐만 아니라 시간 정보도 동일한 노드를 중복된 노드로 본다.
도 3에 도시된 시간 트리에서, 각 노드의 상부에 쓰여진 숫자 쌍은 영역 코드화에 의한 두 숫자(시작, 종료)를 의미한다. 상기 두 숫자는 시간 트리의 루트에서부터 깊이-우선 검색(Depth-First Search)을 통해 연속적으로 할당된 것으로, '시작'은 해당 노드를 처음 방문할 때의 숫자를, '종료'는 해당 노드를 최종적으로 방문할 때의 숫자를 의미한다.
영역 코드화에 의한 두 숫자는, 두 노드 A 및 B에 대해, A가 B의 조상 노드라면, 'A.시작 < B.시작' 및 'B.종료 < A.종료'의 속성을 가진다. 이와 같은 속성 을 이용하여 시간 정보를 효율적으로 검색할 수 있게 된다.
다시 도 1을 참조하면, 마지막으로, 상술한 바에 따라 부호화된 이동 경로 및 시간 정보를 관계형 데이터베이스 관리 시스템에 저장한다(S50).
도 4는 본 발명에 의한 RFID를 이용한 공급망 관리에 있어서의 데이터를 관계형 데이터베이스에 저장하기 위한 관계형 스키마를 나타내는 도면으로, 본 발명의 일 실시예에 의한 관계형 스키마는 경로 테이블(PATH_TABLE), 태그 테이블(TAG_TABLE), 시간 테이블(TIME_TABLE) 및 정보 테이블(INFO_TABLE)을 포함한다.
경로 테이블은 각 경로별로 경로 부호화 기법에 의해 부호화된 결과를 저장하기 위한 테이블로서, 경로 ID, 엘리먼트 리스트 부호화 숫자 및 순위 부호화 숫자 애트리뷰트(Attribute)를 포함한다.
태그 테이블은 각 태그별로 해당 태그에 대한 이동 경로 정보 및 시간 정보를 저장하기 위한 테이블로서, 태그 ID, 경로 ID, 시간 정보에 대한 아이디를 나타내는 두 숫자인 시작과 종료, 제품의 유형 애트리뷰트를 포함한다.
시간 테이블은 각 위치에 대한 시간 정보를 저장하기 위한 테이블로서, 영역 코드화에 의한 두 숫자, 해당 위치, 제품이 해당 위치에 머무르기 시작한 시작 시간 및 제품이 해당 위치를 떠나는 종료 시간 애트리뷰트를 포함한다.
정보 테이블은 제품에 대한 정보를 저장하기 위한 테이블로서, 도 4에는 제품의 유형, 제품명, 제조업자 및 가격 애트리뷰트를 포함하는 것으로 도시되어 있으나, 정보 테이블의 애트리뷰트는 필요에 따라 상이하게 구성될 수도 있다.
다음의 알고리즘을 사용하면, 각 태그별 궤적 레코드를 상술한 관계형 스키마를 갖도록 관계형 데이터베이스 관리 시스템에 저장할 수 있다.
Input: trace records tr
Begin
1: for i=0; i<the number of trace records; i++
2: <path_id, store_flag>:=constructTree(tree, tr[i])
3: if store_flag == FALSE
4: store the path of trace record tr[i] in PATH_TABLE using the encoding scheme
5: store (tag identifier from tr[i], path_id) in TEMP_PATH_TABLE
6: for i=0; i<the number of trace records; i++
7: constructTimeTree(time _ tree, tr[i])
8: assign region numbers to nodes in time _ tree
9: while traversing nodes in time _ tree by the breath-first search
10: store nodes of time _ tree in TIME_TABLE
11: store (tag identifier, region numbers for node) in TEMP_TIME_TABLE for all tags attached to node
12: after joining TEMP_PATH_TABLE and TEMP_TIME_TABLE on TAG_ID, fill TAG_TABLE
end
상기 알고리즘의 입력으로 궤적 레코드가 주어지면, constructTree(Tree tree, TraceRecord tr) 함수를 이용하여 궤적 레코드로부터 트리를 구성한다(Line 2). constructTree(Tree tree, TraceRecord tr) 함수에서는, 트리 tree 내에 궤적 레코드 tr에 대한 경로가 존재하지 않으면 트리 tree 에 새로운 경로를 삽입하고, 상기 새로운 경로의 경로 ID를 반환하며, store_flag를 False 로 설정한다. 반면, 트리 tree 내에 궤적 레코드 tr에 대한 경로가 존재하면 상기 경로의 경로 ID를 반환하고, store_flag를 True로 설정한다.
store_flag가 False이면(Line 3), 경로 부호화 기법에 의해 궤적 레코드 tr에 대한 경로를 경로 테이블에 저장한다(Line 4). 이 후, 태그 ID 및 경로 ID를 임시 경로 테이블(TEMP_PATH_TABLE)에 저장하는데(Line 5), 임시 경로 테이블은 추후 태그 테이블을 구성하는데 사용된다.
이 후, constructTimeTree(TimeTree time _ tree, TraceRecord tr) 함수를 이용하여 궤적 레코드로부터 시간 트리를 구성한다(Line 7). constructTimeTree (TimeTree time _ tree, TraceRecord tr) 함수에서는, 시간 트리 time _ tree 내에 궤적 레코드 tr에 대한 경로가 존재하지 않으면 시간 트리 time _ tree 에 새로운 경로를 삽입한다. 이 후, 시간 트리 time _ tree 내의 각 노드에 너비 우선 탐색(Breath-First Search)에 의해 영역 코드화 숫자를 할당한다(Line 8).
이 후, 시간 트리 time _ tree 내의 각 노드를 시간 테이블에 저장한다 (Line 10). 또한, 태그 ID 및 해당 노드에 대한 영역 코드화 숫자를 임시 시간 테이블(TEMP_TIME_TABLE)에 저장한다(Line 11).
마지막으로, 임시 경로 테이블 및 임시 시간 테이블을 조인(join)하여 태그 테이블을 저장한다(Line 12).
다음의 표 1 내지 표 3은 상기한 실시예에 의한 궤적 레코드를 입력으로 받아 상기의 알고리즘을 이용하여 구성한 경로 테이블, 태그 테이블 및 시간 테이블을 각각 나타낸다.
경로 ID |
엘리먼트 리스트 부호화 숫자 |
순위 부호화 숫자 |
1 |
30 |
23 |
2 |
42 |
17 |
3 |
110 |
13 |
4 |
22 |
13 |
5 |
14 |
9 |
태그 ID |
경로 ID |
시작 |
종료 |
유형 |
tag1 |
1 |
3 |
4 |
|
tag2 |
1 |
3 |
4 |
|
tag3 |
1 |
3 |
4 |
|
tag4 |
2 |
5 |
6 |
|
tag5 |
2 |
9 |
10 |
|
tag6 |
3 |
13 |
14 |
|
tag7 |
3 |
13 |
14 |
|
tag8 |
4 |
12 |
15 |
|
tag9 |
5 |
16 |
17 |
|
tag10 |
5 |
18 |
19 |
|
시작 |
종료 |
위치 |
시작 시간 |
종료 시간 |
1 |
20 |
A |
2 |
3 |
2 |
7 |
B |
5 |
7 |
8 |
11 |
B |
7 |
8 |
12 |
15 |
E |
4 |
6 |
16 |
17 |
D |
4 |
5 |
18 |
19 |
D |
5 |
6 |
3 |
4 |
C |
8 |
9 |
5 |
6 |
D |
13 |
16 |
9 |
10 |
D |
14 |
18 |
13 |
14 |
C |
7 |
8 |
도 5는 본 발명에 의해 저장된 데이터에 대한 질의 처리 과정을 나타내는 순서도이다.
우선, 사용자로부터 입력받은 질의를 관계형 데이터베이스 관리 시스템에서 실행 가능한 SQL 질의로 변환한다(S60). 이 때, 사용자로부터 입력받는 질의는 다음과 같이 정의된 질의 템플릿을 기반으로 한다. 이러한 질의 템플릿을 이용하면, 제품의 이동 경로를 분석하기 위한 질의를 형식적으로 수행 및 처리할 수 있게 된다.
[1] Tracking Query= <TagID = id>
[2] Path Oriented Retrieval Query = <PathCondition, InfoCondition>
[3] Path Oriented Aggregate Query = <AggregateFunction, PathCondition, InfoCondition>
PathCondition -> (Step)*
Step-> /Loc[TimeCondition] | //Loc[TimeCondition]
AggregateFunction->count() | sum(TimeSelection) | avg(TimeSelection) | max(TimeSelection) | min(TimeSelection)
TimeSelection -> Loc.StartTime | Loc.EndTime | Loc.EndTime Loc.StartTime
이 때, 질의 템플릿은 크게 트래킹 질의(Tracking Query), 경로 지향 검색 질의(Path Oriented Retrieval Query) 및 경로 지향 집계 질의(Path Oriented Aggregate Query)로 구분되어 정의된다.
트래킹 질의는 임의의 태그에 대한 이동 경로 정보를 얻기 위한 것으로, 태그 ID를 입력으로 받는다.
경로 지향 검색 질의는 임의의 경로 조건을 만족하는 태그에 대한 정보를 얻기 위한 것으로, 경로 조건(PathCondition) 및 정보 조건 (InfoCondition)을 입력으로 받는다. 이 때, 경로 조건은 각 스텝(Step)이 나열된 형태, 즉, (Step)*이며, 각 스텝은 /Loc[TimeCondition] 또는 //Loc[TimeCondition] 형태로 표현될 수 있다. 또한, 정보 조건은 정보 테이블에 대한 검색 조건으로서, 필요에 따라 선택적으로 포함될 수 있다.
경로 지향 집계 질의는 임의의 경로 조건을 만족하는 태그에 대한 집계 정보를 얻기 위한 것으로, 상기한 경로 조건 및 정보 조건뿐만 아니라 집계함수(AggregateFunction)를 입력으로 받는다. 이 때, 집계 함수는 계수 count(), 합계 sum(TimeSelection), 평균 avg(TimeSelection), 최대값 max(TimeSelection) 및 최소값 min(TimeSelection)을 구하기 위한 함수 중 어느 하나가 될 수 있으며, 여기서 시간 선택(TimeSelection)은 해당 위치의 시작 시간(Loc.StartTime), 해당 위치의 종료 시간(Loc.EndTime) 및 해당 위치에 머무른 시간(Loc.EndTime Loc.StartTime) 중 어느 하나 일 수 있다.
상술한 바와 같이 정의된 질의 템플릿을 기반으로 한 질의를 SQL 질의로 변환하는데, 구체적인 예를 살펴보면 다음과 같다.
우선, 트래킹 질의의 경우, 이동 경로를 얻기 위한 태그 ID가 my _ tag _ id인 경우 다음과 같은 SQL 질의로 변환할 수 있다.
SELECT P.ELEMENT_ENC, P.ORDER_ENC
FROM PATH_TABLE P, TAG_TABLE T
WHERE T.TAG_ID = my _ tag _ id AND
T.PATH_ID = P.PATH_ID
한편, 경로 지향 질의의 경우에는 경로 조건이 중요하다. 예를 들어, 위치 L1, L2, ... Lk를 포함하는 이동 경로를 검색하고자 하는 경우, 경로 테이블에서‘ ELEMENT_ENC mod (L1*L2*...*Lk) = 0’조건을 만족하는 튜플을 검색하면 된다. 또한, 경로 조건에서 인접해 있는 두 개의 노드 La 및 Lb가 조상/자손 관계라면‘ELEMENT_ENC mod Prime(La) < ELEMENT_ENC mod Prime(Lb)’ 조건을, 부모/자식 관계면‘ELEMENT_ENC mod Prime(La)+1 = ELEMENT_ENC mod Prime(Lb)’조건을 추가하여 검색하면 된다.
예를 들어, 경로 지향 검색 질의 <//A//B/C>에 대한 SQL 질의는 다음과 같다.
SELECT T.TAG_ID
FROM PATH_TABLE P, TAG_TABLE T
WHERE MOD(P. ELEMENT_ENC, pA * pB * pC ) = 0
AND MOD(P.ORDER_ENC, pA ) < MOD(P.ORDER_ENC, pB )
AND MOD(P.ORDER_ENC, pB ) + 1 = MOD(P.ORDER_ENC, pC )
AND P.PATH_ID = T.PATH_ID
또한, 경로 지향 검색 질의 <//A//B[EndTime-StartTime<10]/C>에 대한 SQL 질의는 다음과 같다.
SELECT T.TAG_ID
FROM PATH_TABLE P, TAG_TABLE T , TIME_TABLE S
WHERE MOD(P. ELEMENT_ENC, pA * pB * pC ) = 0
AND MOD(P.ORDER_ENC, pA ) < MOD(P.ORDER_ENC, pB )
AND MOD(P.ORDER_ENC, pB ) + 1 = MOD(P.ORDER_ENC, pC )
AND P.PATH_ID = T.PATH_ID AND S.LOC = 'B'
AND S.START <= T.START AND T.END <= S.END
AND (S.END_TIME - S.START_TIME) < 10
또한, 경로 지향 집계 질의 <AVG(B.StartTime),//A//B/C>에 대한 SQL 질의는 다음과 같다.
SELECT AVG(S.START_TIME)
FROM PATH_TABLE P, TAG_TABLE T, TIME_TABLE S
WHERE MOD(P.ELEMENT_ENC, pA * pB * pC ) = 0
AND MOD(P.ORDER_ENC, pA ) < MOD(P.ORDER_ENC, pB )
AND MOD(P.ORDER_ENC, pB ) + 1 = MOD(P.ORDER_ENC, pC )
AND P.PATH_ID = T.PATH_ID AND S.LOC = 'B'
AND S.START <= T.START AND T.END <= S.END
이처럼, 질의 템플릿 기반의 질의를 SQL 질의로 변환하여 관계형 데이터베이스 관리 시스템으로 제공한다.
이 후, 관계형 데이터베이스 관리 시스템으로부터 상기 SQL 질의 결과를 획득하고(S70), 획득한 결과로부터 사용자가 원하는 정보, 예를 들어 임의의 제품에 대한 이동 경로를 추출하여(S80) 사용자에게 제공한다.
구체적으로 트래킹 질의의 경우, 관계형 데이터베이스 관리 시스템으로부터 엘리먼트 리스트 부호화 숫자 및 순위 부호화 숫자를 얻으면, 상기 엘리먼트 리스트 부호화 숫자를 소인수 분해하고 상기 순위 부호화 숫자를 통해 각 위치의 순위를 구하여 각 위치들을 정렬함으로써 이동 경로를 얻을 수 있다.
도 6은 본 발명에 의한 RFID를 이용한 공급망 데이터 관리 시스템(100)의 구성도로서, 상기 공급망 데이터 관리 시스템(100)은 RFID를 이용하는 공급망 관리 시스템(미도시)에서 발생하는 RFID 데이터를 상술한 데이터 저장 방법에 따라 관계형 데이터베이스 관리 시스템(140)에 저장하고, 저장된 데이터에 대한 질의를 상술한 질의 처리 방법에 따라 처리하여 사용자에게 질의 결과를 제공한다.
상기 공급망 데이터 관리 시스템(100)은 궤적 레코드 생성부(110), 부호화부(120), 위치-소수 리스트 저장부(130), 관계형 데이터베이스 관리 시스템(140) 및 질의 처리부(150)를 포함한다.
궤적 레코드 생성부(110)는 RFID를 이용하는 공급망 관리 시스템에서 발생하는 미가공 데이터를 입력으로 받아 상술한 과정에 따라 각 태그별 궤적 레코드로 변환한 후, 각 태그별 궤적 레코드를 부호화부(120)로 제공한다.
부호화부(120)는 상기 각 태그별 궤적 레코드를 상술한 경로 부호화 기법 및 영역 코드화 기법에 의해 부호화하여, 각 궤적 레코드를 엘리먼트 리스트 부호화 숫자, 순위 부호화 숫자 및 영역 코드화에 의한 두 숫자(시작 및 종료)로 부호화한다.
위치-소수 리스트 저장부(130)는 '제품의 위치 및 상기 위치에 대응하는 소수'의 리스트를 저장해 두었다가, 부호화부(120)가 경로 부호화 기법을 적용하는 경우 또는 질의 처리부(150)가 SQL 질의 결과로부터 이동 경로를 추출하는 경우에, 부호화부(120) 또는 질의 처리부(150)로 제품의 각 위치에 대응하는 소수 정보를 제공한다.
관계형 데이터베이스 관리 시스템(140)은 부호화부(120)에 의해 부호화된 궤적 레코드를 상술한 관계형 스키마를 갖는 테이블, 즉, 경로 테이블, 태그 테이블, 시간 테이블 및 정보 테이블의 형태로 저장한다. 또한, 상기 관계형 데이터베이스 관리 시스템(140)은 질의 처리부(150)로부터 SQL 질의를 입력받아 이를 실행하고 그 결과를 질의 처리부(150)로 제공한다.
질의 처리부(150)는 상술한 질의 템플릿 기반의 질의를 사용자로부터 입력받아 상술한 질의 처리 과정에 따라 SQL 질의로 변환한 후, 변환된 SQL 질의를 관계형 데이터베이스 관리 시스템(140)으로 제공한다. 또한, 질의 처리부(150)는 관계형 데이터베이스 관리 시스템(140)으로부터 SQL 질의 결과를 획득하여 이로부터 사용자가 원하는 정보, 예를 들어 임의의 제품의 이동 경로를 추출한 후 사용자에게 제공한다.
이상에서 설명한 상세한 설명 및 도면의 내용은, 본 발명의 바람직한 실시예에 한정하여 설명한 것이며, 본 발명이 이에 한정되는 것은 아니다. 본 발명의 기술적 사상 범위 내에서 본 발명에 따른 구성요소를 치환, 변경 또는 삭제가 가능할 것이다.
따라서 본 발명의 권리범위는 상기한 설명 및 도면에 의해 결정되는 것이 아니라 첨부된 특허청구범위에 의해 결정되어져야 한다.