In contrast to regular queries that are evaluated
once, continuous queries stay active over a period of
time and have to be continuously evaluated during
this period of time. If there are a considerable
number of queries and moving objects, it is
impossible to keep evaluating each query whenever
an object moves. For this reason, Kalashnikov et al,
stated that the traditional approach is not a practical
approach for indexing moving objects. They
believed that evaluating all queries periodically with
consideration of the most recent positions of moving
objects is more preferable. In order for the results of
the continuous query to be useful, the goal of
evaluating continuous queries should be, to keep the
evaluation period as short as possible.
As the name implies, query indexing is about
indexing queries, not about indexing the locations of
moving objects. In comparison, the set of queries
change less frequently than the set of locations of
moving objects. Therefore, there is no need to
change the query index unless the set of queries
change. Furthermore, this approach does not impose
any constraints on the velocities or routes taken by
the moving objects. In other words, the moving
objects can move in any way they desire without
affecting the query performance.
Query indexing uses the simple one-level grid
index approach and the grid index is a 2-D array of
cells. The grid index is partitioned uniformly in
cells and each cell represents a space region. This is
a better approach than other traditional indexing
approaches such as Quad-tree, especially when the
data is skewed. This is because the grid structure
will not become lopsided like tree structure
.
Although this approach does not make any
assumptions about the velocity or route taken of
moving objects, it does assume that the information
about updated locations of these moving objects are
already available. How often the location
information of moving objects is updated has a
significant impact on the query performance and
precision. Without considering this factor, the actual
performance of the query indexing approach cannot
be accurately determined.
5.1 Update and Retrieval
The indexing methods mentioned in (Porkarw et al
2001, Theodoridis et al, 1998) use the tree structure
to index moving objects. Updates sometimes require
inserting or deleting nodes when there are overflows
or underflows respectively. This is an efficient
method for static objects but not for moving objects.
There can easily be overflows or underflows in the
tree structure because of the nature of moving
objects. Numerous insertions and deletions of nodes
in a tree can have significant impacts on the query
performance. Additionally, the whole tree structure
might have to be traversed before a query result can
be returned. However, this is not the case for the
grid structure. Retrieval using a grid structure can
be done in a shorter time than tree structure because
there are no nodes to traverse. The location of a
certain moving object can just be retrieved at the
appropriate cell in the grid. Likewise, when the
location of a certain moving object needs to be
updated, it can be updated at the cell where the
previous location of the moving object is stored.
5.2 Index Rebuilding
When there are numerous insertions or deletions of
nodes in a tree structure for a certain period of time,
it is very likely that the tree structure becomes
unbalanced, which leads to deterioration in query
performance. This will inevitably require
rebuilding, which reorganizes the structure of the
index to eliminate fragmentation, to maintain
optimal query performance. However, rebuilding is
an expensive operation in terms of time and I/O
resources. Since a grid index is always a balanced
structure, it does not require rebuilding no matter
how many updates there are to the index. In other
words, the grid index can maintain its optimum
query performance even without rebuilding.
6 PROPOSED METHOD
As established in previous sections, grid structures
are preferable over tree structures in terms of the
time required to update and retrieve the locations of
moving object and the need to rebuilding the index
structure. According to (Prabhakar et al., 2002), a
no-index strategy yields better performance when
querying moving objects. Therefore, instead of
developing an indexing approach which is based on
R-tree or its derivations. We propose to query
moving objects using a double-grid index structure.
The propose method is based on following two
criteria for improving query operation of moving
objects: firstly it can update and retrieve in shorter
time than the conventional tree structure approach.
Secondly it does not require periodic rebuilding.
The double-grid index structure as depicted in
Figure 1 uses two grid structures, the first grid is
called the ‘actual location grid’ and the second grid
is called the ‘storage grid’.
The actual location grid encloses the actual
moving objects (along with their IDs and pointers)
ICETE 2004 - GLOBAL COMMUNICATION INFORMATION SYSTEMS AND SERVICES
284