SAND Internet Browser
SAND in a Spatial And Non-spatial
Database
developed at the University of Maryland, College Park. SAND adopts a data
model inspired by the relational model, its functionality is defined by
the different types of tables and attributes it supports.
There are two ways to run Internet SAND Browser.
- The preferred way in terms of performance and reliability is to
run this program as an application. Please click here
to go to the installation page.
One of the disadvantages of this approach is that you need to reinstall
every time we make an upgrade of the client if you want to use the latest
product. So if you choose to run SAND as an application, please check
back often to make sure you are using the latest version.
- It is also possible to run Internet SAND Browser as an applet,
which is definitely easier as it involves just a simple click at the image
below. The disadvantage is that you need to always download the program
before you can run it. Java code run as applets also doesn't have access to
as much system resources as an application which may affects its
performance.
Click on the image to start the applet:
SAND kernel
The table abstraction in SAND encapsulates what in conventional
databases are known as relations and indices. SAND defines three
table types: relations, linear indices and spatial indices. Each table
type supports an additional set of operations which is appropriate to its
function in a database environment. The function of most of these operations
is to alter the order in which tuples are retrieved and, by extension,
the behavior of first and next.
Linear indices for non-spatial attributes are implemented
as B-trees. Tuples in a linear index are always scanned in an order determined
by their contents. Linear indices support the find operator, which
retrieves from the disk storage the tuple most closely resembling a tuple
value given as an argument. The find operator can also be used to
perform range searches.
Spatial indices are implemented as PMR-quadtrees.
They support a variety of spatial search operators, such as overlap
for
searching tuples that intersect a given feature, or within
for retrieving tuples in the proximity of a given feature. Spatial indices
also support ranking, a special kind of search operator whereby
tuples are retrieved in order of distance to a given feature. It is also
possible to examine the full contents of a spatial index table as quickly
as possible (i.e., without actually traversing the spatial index) by specifying
no spatial constraint.
SAND Internet Browser
SAND Browser provides a graphical user interface to
the facilities of SAND. It permits the visualization of the data contained
in a SAND relation by specifying two types of controls: the scan order
in which tuples are to be retrieved and an arbitrary selection predicate.
User manual
A Browser window is divided into several panels stacked vertically. These
are (from top to bottom):
- The command area, containing menus and buttons for several actions:
First
and Next retrieve the first/next tuple satisfying the currently
set scan order and predicate; File provides various basic operations
such as Open or Close [the current relation] or Quit [the
browser]; Display presents a menu of several activities connected
to the graphical display, such as clearing it or drawing spatial features;
Style
allows changes of drawing attributes such as line or fill color.
-
The Scan order panel contains a button that triggers the exhibition
of several ``pop-up'' dialog boxes, and a message area that displays the
currently selected scan order parameters. Each dialog box corresponds
to parameters to be used when the relation is being scanned with the help
of one of the indices defined for it.
-
The Conditions panel allows specification of a predicate to be used
to evaluate the query (the predicate must follow the syntactic rules of
Tcl expressions).
-
The info panel indicates the current line and fill colors (the colors that
will be used next time the user chooses any displaying operation from the
Display
menu). It also contains a choice which allows the user to change
the current relation (the relation that all the queries are executed with
respect to).
-
The graphical display panel is the drawing area where spatial
features are input and output. At any given moment of the interaction,
the current value of the relation's spatial attribute is displayed
in this area and highlighted by an orange rectangle. Most of the other
user interface components which hold a spatial feature value support
input by drawing on the graphical display. The display can also be panned
(with the help of the horizontal and vertical scrollbars) and zoomed in
and out.
The zoom in and zoom out operations are available through left and
middle click respectively, the right click finds the nearest object to
the location of the click from the current relation and makes it the current
tuple.
-
The info line will show various messages during the browser execution.
-
The tuple display panel contains a series of labeled entry boxes,
one for each attribute in the schema of the relation. These are updated
to reflect the value of the current tuple.
-
The layer display lists all the layers available for this relation.
Clicking on the individual entries in this list toggles displaying of the
respective layers in the graphical display area on and off.
Sample queries
Here are a few examples of how to proceed to find answers to common types of
queries:
Find all the roads in the Silver Spring database within distance
d from polygon p and return them in the order of distance from
line l
- Go to File menu and Open Relation Silver Spring.
- Press Scan order, choose line to open a dialog box
- Enable Ranking by distance from, choose line and select
the line l by drawing on the canvas.
- Enable Restrict search to lines within, choose distance
and specify a line by drawing on the screen. The length of the line will
define the distance used in this condition. Choose polygon from the
object list next to it and define polygon p by drawing it on the
canvas.
- Click OK to send off the query.
- Click First and Next to retrieve the first and all the
other lines within distance d from p ordered by distance from
l.
- You can also display the whole group at once by selecting Display
group (uses the current line color) or Display blended group
(changes the color for each returned line to indicate the order in which the
lines were retrieved).
Find all the roads that pass through some park in one of the Washington,
D.C. databases
- Open Relation that you desire to work with.
- Make sure ROADS_AND_TRAILS is your current relation (it is by
default).
- Click on Scan order, choose line, a dialog box will
appear.
- Enable Ranking by distance from, choose relation, choose
PARKS. Enable Max distance and enter 0 (zero) to the
text box below. This will look for all the lines with distance at most zero
from any park. In other words, for all lines that intersect some park.
- Click OK to send off the query.
- Set the line width and color to the desired values and use Display
group to show the results.
Find all roads that are within distance d from Georgia Avenue in
the Silver Spring database
- Open Relation Silver Spring.
- Click Scan order, choose name type. Set both the min and
max value of Name(Type) to Georgia(Ave).
- From File menu Save group under a name of your
choice.
- Click Scan order, choose line to open a dialog box.
- Enable Ranking by distance from, choose relation, choose
the relation that you just saved.
- Enable Max distance and click on the button to specify a line by
drawing on the canvas. The length of the line will define the distance d.
- Click OK to send off the query.
- Use Draw group or Draw blended group to display the result
of the query.
This SAND Internet Browser was brought to you by Frantisek
Brabec. Please send comments, suggestions and bug reports to brabec@cs.umd.edu.