37
Moving Objects Moving Objects Databases Databases Worcester Polytechnic Institute Worcester Polytechnic Institute Worcester, MA Worcester, MA April 8, 2004 April 8, 2004 Presented by Presented by Rimma Kaftanchikova Rimma Kaftanchikova [email protected] [email protected]

Moving Objects Databases

  • Upload
    duff

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

Moving Objects Databases. Worcester Polytechnic Institute Worcester, MA April 8, 2004 Presented by Rimma Kaftanchikova [email protected]. Where are we?. Roadmap. Location-Based Services Why this is a hot technology? Overview Moving Objects Databases Problems with current databases - PowerPoint PPT Presentation

Citation preview

Page 1: Moving Objects Databases

Moving Objects Moving Objects DatabasesDatabases

Worcester Polytechnic InstituteWorcester Polytechnic InstituteWorcester, MAWorcester, MAApril 8, 2004April 8, 2004

Presented byPresented byRimma KaftanchikovaRimma Kaftanchikova

[email protected]@wpi.edu

Page 2: Moving Objects Databases

CS561

Where are we?Where are we?

Page 3: Moving Objects Databases

CS561

RoadmapRoadmap

►Location-Based ServicesLocation-Based Services►Why this is a hot technology?Why this is a hot technology?►OverviewOverview►Moving Objects DatabasesMoving Objects Databases►Problems with current databasesProblems with current databases►SolutionSolution►MOST+FTLMOST+FTL►QuestionsQuestions

Page 4: Moving Objects Databases

CS561

Location Based Services Location Based Services CategoriesCategories

► Information ServicesInformation Services Identify and provide directions to the nearest restaurants, Identify and provide directions to the nearest restaurants,

ATMs or gas stationsATMs or gas stations Allow travelers to obtain other information specific to their Allow travelers to obtain other information specific to their

locationlocation

► Corporate applicationsCorporate applications Enable enterprises to better manage mobile assets to Enable enterprises to better manage mobile assets to

optimize services or cut costsoptimize services or cut costs E.g., fleet or asset trackingE.g., fleet or asset tracking

► Entertainment/Community ServicesEntertainment/Community Services Allow mobile users to create a localized community of people Allow mobile users to create a localized community of people

with similar interestswith similar interests Notify a user when a group member is close-by, e.g. friend-Notify a user when a group member is close-by, e.g. friend-

finderfinder

Page 5: Moving Objects Databases

CS561

Location Based Services Location Based Services Categories (cont.)Categories (cont.)

► Mobile Commerce ServicesMobile Commerce Services Help users shop or purchase goods/services from the Help users shop or purchase goods/services from the

retailer closest to their current location.retailer closest to their current location. (Businesses can) send special offers to users in proximity (Businesses can) send special offers to users in proximity

to one of their establishmentsto one of their establishments..

► Safety Related ApplicationsSafety Related Applications Help public or private safety organizations find or track Help public or private safety organizations find or track

mobile users in need of assistance.mobile users in need of assistance. Help locate stolen property.Help locate stolen property.

Page 6: Moving Objects Databases

CS561

Location Based Services Location Based Services ExamplesExamples

Examples:Examples: Where is closest gas station? How do I get there?Where is closest gas station? How do I get there?

What is the average speed on the highway 1 mile ahead? What is the average speed on the highway 1 mile ahead?

What are the available parking slots around me?What are the available parking slots around me?

Mobile E-CommerceMobile E-Commerce

Remind me to buy drinks when I’m close to a supermarketRemind me to buy drinks when I’m close to a supermarket Send a coupon (10% off) to a customer with interest in Send a coupon (10% off) to a customer with interest in

Nike sneakers that is close to the storeNike sneakers that is close to the store Alert a person entering a bar if two of his “buddies” Alert a person entering a bar if two of his “buddies”

( (wife and girlfriendwife and girlfriend) are both in the bar; ) are both in the bar; he may want to turn around he may want to turn around

Generally, queries involve Generally, queries involve spatial objectsspatial objects (e.g. points, lines, regions, polygons) (e.g. points, lines, regions, polygons)““Retrieve the objects that will intersect the polygon within 3 minutes”Retrieve the objects that will intersect the polygon within 3 minutes”““Retrieve the objects that will intersect P within 3 minutes and stay in the polygon Retrieve the objects that will intersect P within 3 minutes and stay in the polygon for 1 minute, and 5 minutes later enter another polygon Q”for 1 minute, and 5 minutes later enter another polygon Q”

Page 7: Moving Objects Databases

CS561

Why now?Why now?

► E911 – FCC mandate E911 – FCC mandate (In 1996, the Federal Communications (In 1996, the Federal Communications Commission (FCC) mandated that all wireless carriers offer a 911 Commission (FCC) mandated that all wireless carriers offer a 911 service with the ability to pinpoint the location of callers making service with the ability to pinpoint the location of callers making emergency requests)emergency requests)

►Drop in equipment/service pricesDrop in equipment/service prices

► Portable/wearable/wireless device Portable/wearable/wireless device proliferationproliferation

► Vehicular communication networks (UWB, Vehicular communication networks (UWB, 802.11) 802.11)

Page 8: Moving Objects Databases

CS561

OverviewOverview

Spatial information Temporal information

Moving objects databases

Location management

Source: http://www.cs.uic.edu/~wolfson/html/mobile.html

A spatial database is a collection of spatially referenced data that acts as a model of reality

A temporal databasecan store and retrieve temporal data, that is, data which depends on time in some way.

A moving objects databaserepresents information about moving objects and their location

Database Perspective – how to manage and querythe data?

Page 9: Moving Objects Databases

CS561

Problems With Current Problems With Current DatabasesDatabases

Moving Objects: “Objects whose position changes continuously over time”Database Perspective – how to

manage and query the data?

Not well equipped to handle Not well equipped to handle continuously changing data continuously changing data (e.g position of moving objects)(e.g position of moving objects)

Reason:Reason: data is assumed to data is assumed to be constant unless it is be constant unless it is explicitly modifiedexplicitly modified

Page 10: Moving Objects Databases

CS561

Problems With Current Problems With Current Databases (cont.)Databases (cont.)

To represent a moving object in To represent a moving object in a database, you have to update a database, you have to update very frequently the position of very frequently the position of the moving objectthe moving object

THIS IS A PROBLEM!THIS IS A PROBLEM!

• Serious performance and Serious performance and wireless-bandwidth wireless-bandwidth overheadoverhead

• If not, the answer to queries is outdated.

SOLUTION???SOLUTION???

Page 11: Moving Objects Databases

CS561

TrajectoryTrajectory

►SolutionSolution represent the position as represent the position as a function of time (it changes as time a function of time (it changes as time passes, even without an explicit passes, even without an explicit update)update)

Page 12: Moving Objects Databases

CS561

Model of a trajectoryModel of a trajectory

Geometrical representation in 3D space (2D spatial + 1D temporal)

The resulting line segments comprise a polyline in 3D, the trajectory of the moving point object.

Page 13: Moving Objects Databases

CS561

Trajectory constructionTrajectory construction► Moving objects create trajectoriesMoving objects create trajectories► Trajectory: a sequence of 2 or 3-dim locationsTrajectory: a sequence of 2 or 3-dim locations► Based on GPS points (x1,y1,z1,t1), (x2,y2,z2,t2),…Based on GPS points (x1,y1,z1,t1), (x2,y2,z2,t2),…► ““Snap” points on road networkSnap” points on road network

► Find shortest path on map between consecutive gps pointsFind shortest path on map between consecutive gps points► Usually we can sample the positions of the objects at periodic time Usually we can sample the positions of the objects at periodic time

intervals intervals tt► Linear Interpolation:Linear Interpolation: easy and usually accurate enough easy and usually accurate enough► For vehicles moving on road networks, construction uses a For vehicles moving on road networks, construction uses a mapmap..

Page 14: Moving Objects Databases

CS561

MapMap

► A relationA relationtuple <----> block, i.e. tuple <----> block, i.e.

section of street between section of street between two intersectionstwo intersections

bidbid polylinepolyline namename categorycategory Avg Avg speedspeed one_wayone_way … …… …

167980167980 INSTITUTE INSTITUTE RD.RD. A40A40 2525 NoNo … …… …

167985167985 HIGHLAND HIGHLAND ST.ST. A40A40 2525 NoNo … …… …

167982167982 WEST RD.WEST RD. A31A31 2525 NoNo … …… …

167981167981 DEAN ST.DEAN ST. A31A31 2525 NoNo … …… …

Page 15: Moving Objects Databases

CS561

Trajectory Reduction Trajectory Reduction

►Line simplification:Line simplification: approximate a approximate a trajectory by another which is not trajectory by another which is not farther than farther than εε..

Page 16: Moving Objects Databases

CS561

Three Time-series Prediction Three Time-series Prediction MethodsMethods

► Two widely used methods:Two widely used methods: Moving Averages:Moving Averages: the next predicted value is the the next predicted value is the

average of the latest average of the latest hh values of the series values of the series

Exponential Smoothing:Exponential Smoothing: The next predicted value The next predicted value is the weighted average of the latest is the weighted average of the latest hh values, values, and the weights decrease geometrically with the and the weights decrease geometrically with the age of the valuesage of the values

►Neural-Fuzzy Inference Systems (NFIS)Neural-Fuzzy Inference Systems (NFIS) Fuzzy rule based inference +Fuzzy rule based inference + Neural back-propagation rule base learningNeural back-propagation rule base learning

Page 17: Moving Objects Databases

CS561

Moving Objects Spatio-Temporal Moving Objects Spatio-Temporal (MOST) data model(MOST) data model

► MOST modelMOST model is designed for databases with is designed for databases with dynamic attributes, i.e. attributes that change dynamic attributes, i.e. attributes that change continuously as a function of time, without being continuously as a function of time, without being explicitly updated.explicitly updated.

► Answer to a query depends on:Answer to a query depends on: Database contentDatabase content Time at which the query enteredTime at which the query entered

► Advantage of this model:Advantage of this model: Future queries Future queries Example:Example: Retrieve all the airplanes that will come within 30 Retrieve all the airplanes that will come within 30

miles of the airport in the next 10 minutes.miles of the airport in the next 10 minutes.

Page 18: Moving Objects Databases

CS561

The MOST data modelThe MOST data model

►DatabaseDatabase=set of object-classes=set of object-classes

► Special database object Special database object timetime

►Object classObject class=set of attributes (MOTELS(name, =set of attributes (MOTELS(name, location, num_of_rooms, price_per_room))location, num_of_rooms, price_per_room))

► Some object-classes are Some object-classes are spatialspatial w/ 3 attributes: w/ 3 attributes: X.POSITION, Y.POSITION, Z.POSITIONX.POSITION, Y.POSITION, Z.POSITION Set of spatial methods associated w/ them (e.g. Set of spatial methods associated w/ them (e.g.

INSIDE(o,P), OUTSIDE(o,P), DIST(o1,o2))INSIDE(o,P), OUTSIDE(o,P), DIST(o1,o2))

Page 19: Moving Objects Databases

CS561

Dynamic AttributesDynamic Attributes► Attributes:Attributes:

StaticStatic (changes only when an explicit update of the database occurs) (changes only when an explicit update of the database occurs) DynamicDynamic (changes over time according to some given function, even if it is not explicitly updated) (changes over time according to some given function, even if it is not explicitly updated) ExampleExample: a moving object whose position in 3D space at any point in time( x, y, z are dynamic : a moving object whose position in 3D space at any point in time( x, y, z are dynamic

attributes)attributes)

► Dynamic attributeDynamic attribute A is represented by 3 sub-attributes: A is represented by 3 sub-attributes: A.value (depends on time)A.value (depends on time) A.updatetimeA.updatetime A.function (function of a single variable t that has a value 0 at t=0)A.function (function of a single variable t that has a value 0 at t=0)

► A.value: A.value: At time A.updatetime the value of A is A.value, and At time A.updatetime the value of A is A.value, and until the next update of A the value of A at time A.time+tuntil the next update of A the value of A at time A.time+t0 0 is given by A.value+A.function(tis given by A.value+A.function(t00))

► An explicit update of a dynamic attribute can change An explicit update of a dynamic attribute can change A.value, A.value, A.function A.function or both.or both.

► Advantage to this approachAdvantage to this approach: : user can query each sub-attribute independently user can query each sub-attribute independently can ask “Retrieve all objects for which X.POSITION.function = 5*t, i.e. the objects whose speed in can ask “Retrieve all objects for which X.POSITION.function = 5*t, i.e. the objects whose speed in

the X direction is 5”the X direction is 5”

Page 20: Moving Objects Databases

CS561

Three types of queries in Three types of queries in MOSTMOST

► Instantaneous Instantaneous - - answer as of that time Example: the motels within 5 miles of my

current location

► ContinuousContinuous - - the answer of the query is needed at each of the future instances. Query pertains to snapshot database

► Persistent Persistent - - Like a continuous query but

uses past as well future history.

Page 21: Moving Objects Databases

CS561

Database HistoriesDatabase Histories► Traditional databases:Traditional databases: queries refer to the current database queries refer to the current database

state (i.e. query languages are nontemporal, i.e. limites to state (i.e. query languages are nontemporal, i.e. limites to accessing a single (current) database state)accessing a single (current) database state)

► MOB database:MOB database: database implicitly represents future states of database implicitly represents future states of the system being modeled (e.g future positions of moving the system being modeled (e.g future positions of moving objects)objects)

► Can have queries pertaining to the future (a moving car can Can have queries pertaining to the future (a moving car can request all the motels it will reach in the next 20 minutes)request all the motels it will reach in the next 20 minutes)

► To interpret this type of queries , authors use the notion of a To interpret this type of queries , authors use the notion of a database historydatabase history, i.e. a sequence of database states (abstract , i.e. a sequence of database states (abstract concept).concept).

► A A database statedatabase state is a mapping that associates a set of objects is a mapping that associates a set of objects of the appropriate type to each object class.of the appropriate type to each object class.

Page 22: Moving Objects Databases

CS561

Database Histories (cont.)Database Histories (cont.)► Each Each database statedatabase state has an associated has an associated time stamptime stamp..

► In the state, the value of a dynamic attribute is In the state, the value of a dynamic attribute is value of the attribute at the time t=time stampvalue of the attribute at the time t=time stamp..

► Queries are interpreted over database histories (A Queries are interpreted over database histories (A database historydatabase history is an infinite sequence of database states, one for each clock tick)is an infinite sequence of database states, one for each clock tick)

► The time stamps along the database history are strictly increasingThe time stamps along the database history are strictly increasing

► At a particular point in time t, At a particular point in time t, the database states with a lower time-stamp than t are called the database states with a lower time-stamp than t are called past-past-

database historydatabase history states with a time-stamp higher than the current time t are called states with a time-stamp higher than the current time t are called future future

database historydatabase history..

► Each state in the future history is identical to the state at time t, Each state in the future history is identical to the state at time t, except for the value of the dynamic attributes. except for the value of the dynamic attributes.

Page 23: Moving Objects Databases

CS561

Future Temporal Logic (FTL) Future Temporal Logic (FTL) LanguageLanguage

► Motivation:Motivation: Expressing Expressing temporal queries on moving temporal queries on moving objects using SQL and OQL objects using SQL and OQL are cumbersomeare cumbersome

► New query language for New query language for moving objects database -moving objects database ->>FTLFTL (query in FTL is (query in FTL is simpler and more intuitive)simpler and more intuitive) Answer to future queries is Answer to future queries is

tentativetentative

What are the traffic conditions 2 miles ahead of me in the next 3 minutes?

How many cars will arrive to WPI’s parking lot in the next 5 minutes?

Page 24: Moving Objects Databases

CS561

FTL (cont.)FTL (cont.)

►Syntax: Retrieve <target-list> where <condition>

►FTL employs spatial and temporal predicates and operators

INSIDE(O,P), DISTANCE(O1,O2)<=5

EVENTUALLY-WITHIN-C, UNTIL g, ALWAYS-FOR-C, etc.

Page 25: Moving Objects Databases

CS561

Future Temporal Logic (FTL) Future Temporal Logic (FTL) LanguageLanguage

► The answer is regarded as correct according to The answer is regarded as correct according to what is what is currentlycurrently known about the real world, but known about the real world, but this knowledge (the motion vector) can change.this knowledge (the motion vector) can change.

► Query=“Retrieve the pairs of objects o and n such Query=“Retrieve the pairs of objects o and n such that the distance between o and n stays 5 miles that the distance between o and n stays 5 miles until they both enter polygon P”until they both enter polygon P”

FTL syntax:FTL syntax:RETRIEVE o,nRETRIEVE o,nWHERE DIST(o,n)WHERE DIST(o,n)≤5≤5Until(INSIDE(o,P)^INSIDE(n,P))Until(INSIDE(o,P)^INSIDE(n,P))

Page 26: Moving Objects Databases

CS561

Problems with FTLProblems with FTL

► Can only query about the future states, not the "past" states. For example, if we want to query: " who has been in

polygon area A one hour ago?"

► The General idea of solution is for the "immediate" past history, we can using the same

indexing function to trace back. for the "longer" past history, What can we do?

► Question not addressed in the paper: how to record the past states of the database efficiently and accurately and how the query logic would look like?

Page 27: Moving Objects Databases

CS561

Continuous QueriesContinuous Queries► Example:Example:

Consider a relation Consider a relation MOTELS (geographic_coordinates, room_price, availability)MOTELS (geographic_coordinates, room_price, availability) Consider a moving car issuing a query “Display motels (with Consider a moving car issuing a query “Display motels (with

availability and cost) within a radius of 5 miles”availability and cost) within a radius of 5 miles” Query is continuous!!! The car requests the answer to the Query is continuous!!! The car requests the answer to the

query to be continously updated.query to be continously updated.

► As the car moves, the answer changes, so As the car moves, the answer changes, so WHENWHEN and and HOWHOW often should the query be reevaluated?often should the query be reevaluated?

► Authors’ Solution:Authors’ Solution: Single evaluation of the query Single evaluation of the query Reevaluation has to occur only if the motion vector of the car Reevaluation has to occur only if the motion vector of the car

changes.changes.

Page 28: Moving Objects Databases

CS561

IndexingIndexing

► For performance consideration, in answering the For performance consideration, in answering the queries we would like to queries we would like to avoid examining each avoid examining each moving objectmoving object in the database (i.e. would like to in the database (i.e. would like to index dynamic attributes)index dynamic attributes)

► Problem:Problem: since objects are continuously moving, the since objects are continuously moving, the spatial index has to be continusly updated spatial index has to be continusly updated

UNNACCEPTABLE SOLUTION!UNNACCEPTABLE SOLUTION!

► Authors’ solution:Authors’ solution: a method of indexing dynamic a method of indexing dynamic attributes which guarantees logarithmic (in the # of attributes which guarantees logarithmic (in the # of objects) access time.objects) access time.

Page 29: Moving Objects Databases

CS561

Indexing dynamic attributesIndexing dynamic attributes► Objective:Objective: enable answering queries of the form “Retrieve the objects that enable answering queries of the form “Retrieve the objects that

are currently in the polygon” are currently in the polygon” without examining all the objectswithout examining all the objects..

► Authors’ solution:Authors’ solution: Plot all the functions representing the way a dynamic attribute A changes with time.Plot all the functions representing the way a dynamic attribute A changes with time. Use spatial index for each dynamic attribute A Use spatial index for each dynamic attribute A Spatial indexes use a hierarchical recursive decomposition of space, usually into Spatial indexes use a hierarchical recursive decomposition of space, usually into

rectangles; rectangles; The id for each object o is stored in the records representing the rectangles crossed The id for each object o is stored in the records representing the rectangles crossed

by the A.function of o.by the A.function of o.

► Example:Example: “Retrieve the objects for which currently 4<A<5” is entered at “Retrieve the objects for which currently 4<A<5” is entered at time 1:00AMtime 1:00AM

► Then using the index we retrieve the records representing the rectangles that Then using the index we retrieve the records representing the rectangles that intersect the rectangleintersect the rectangle 4<A<54<A<5 And 1-And 1-εε<t<1+ <t<1+ εε For each object id in these records we check whether “currently” 4<A<5.For each object id in these records we check whether “currently” 4<A<5.

Page 30: Moving Objects Databases

CS561

Indexing dynamic attributes Indexing dynamic attributes (cont.)(cont.)

► Update of o.AUpdate of o.A causes the following: causes the following:

Updating the records representing rectangles Updating the records representing rectangles ending after time t;ending after time t;

O is removed from the records representing O is removed from the records representing rectangles crossed by the old functon-linerectangles crossed by the old functon-line

And is added to the records representing And is added to the records representing rectangles crossed by the new function-line.rectangles crossed by the new function-line.

Page 31: Moving Objects Databases

CS561

Indexing of dynamic attributeIndexing of dynamic attribute

►Note:Note: spatial indexing is limited to finite space. spatial indexing is limited to finite space.

► In order to use this scheme we have to consider In order to use this scheme we have to consider the time dimension starting at 0 and ending at some the time dimension starting at 0 and ending at some

time-point T. time-point T.

Consequently, the index needs to be reconstructed Consequently, the index needs to be reconstructed every T time units. every T time units.

Choosing an appropriate value for T is an important Choosing an appropriate value for T is an important future-research questionfuture-research question..

Page 32: Moving Objects Databases

CS561

Implementing MOST on top of Implementing MOST on top of DBMSDBMS

Assumption: the relational model and SQL for the underlying DBMS (can be extended to OO model).Store each dynamic attribute A as three DBMS attributes A.value, A.updatetime, A.function

1. If the query does not contain a reference to a dynamic attribute nor does it contain temporal operators the query is simply passed to the DBMS and the answer returned to the user.

2. Query contains references to dynamic attributes, but not temporal operators:

“SELECT A” : The MOST system retrieves the attributes for A and computes the value of A for each retrieved object before returning it to the user

Page 33: Moving Objects Databases

CS561

Implementing MOST on top of Implementing MOST on top of DBMS (cont.)DBMS (cont.)

“WHERE clause F” (e.g. A>5): ►F is a boolean combination of atoms ►DBMS replaces Q (original query) by two queries Q1 and

Q2.►Transformation is F=(F’^p) and (F’’ ^ ~p) i.e. (true)

and (false)►Q1 and Q2 are defined as follows:

The target list of Q1 and Q2 consists of the target list of Q, plus the subattributes of the dynamic attributes in p.

►The FROM clause of Q1 and Q2 is identical to that of Q. The WHERE clause of Q1 is F’ and that of Q2 is F’’.

►Q1 and Q2 are submitted to the underlying DBMS, and the results are processed as follows before returning them to the user.

Page 34: Moving Objects Databases

CS561

Implementing MOST on top of Implementing MOST on top of DBMS (cont.)DBMS (cont.)

► The atom p is evaluated on each tuple in the result of Q1 Q1 , and the atom ~p is evaluated on each tuple in the result of Q2 Q2

► The tuples that do not satisfy the respective atoms are eliminated, and the projection of the union of the resulting tuples on the original target list is returned to the user.

► If the WHERE clause has multiple atoms referencing dynamic attributes then we can give a function EVAL(Q) that performs the above procedure recursively, each time eliminating one of the atoms containing a dynamic variable.

► If the original query has k atoms referring to a dynamic variable then, in the worst case, this might mean evaluating up to 2^k queries that do not contain dynamic variables. However, if k is small this may not be a serious problem.

Page 35: Moving Objects Databases

CS561

Evaluating a QueryEvaluating a Query► Observe that the above procedure does not use indexing of the

dynamic attributes. In other words, the results of Q1 and Q2 are are examined in their entirety. If indexing on the dynamic attributes is available, then we can modify the above procedure as follows. Instead of evaluating the atoms p and ~p on each tuple retrieved by Q1 and Q2 respectively, we retrieve the tuples that satisfy p and ~p respectively.

► Then we join the relation returned by Q1 with the relation that satisfies p; similarly, we join the relation returned by Q2 with the relation that satisfies ~p.

► Observe that in order for this procedure to produce correct results, we must ensure that F’ F’ and p are satisfied for the same tuple in the cartesian product of the FROM relations. We ensure this by including in the target list of all four queries, a key of each relation in the FROM clause. The above method can extended to nested SQL queries as well.

Page 36: Moving Objects Databases

CS561

New Research Topics in New Research Topics in Moving Objects DatabaseMoving Objects Database

► Distributed/Mobile query and trigger processingDistributed/Mobile query and trigger processingwith incomplete/imprecise location informationwith incomplete/imprecise location information

► Extensible and visual languagesExtensible and visual languages► Comparison of indexing methodsComparison of indexing methods

► Uncertainty for moving objects that do not report their Uncertainty for moving objects that do not report their locationlocation

► Data MiningData Mining► Privacy/Security Privacy/Security ► Location predictionLocation prediction► Performance/indexing for join queriesPerformance/indexing for join queries► ……and many more (not listed here)and many more (not listed here)

Page 37: Moving Objects Databases

CS561

Thank youThank you