SAND Internet Browser

Please send comments to brabec@umiacs.umd.edu
    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.
  1. 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.
  2. 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):

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
  1. Go to File menu and Open Relation Silver Spring.
  2. Press Scan order, choose line to open a dialog box
  3. Enable Ranking by distance from, choose line and select the line l by drawing on the canvas.
  4. 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.
  5. Click OK to send off the query.
  6. Click First and Next to retrieve the first and all the other lines within distance d from p ordered by distance from l.
  7. 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
  1. Open Relation that you desire to work with.
  2. Make sure ROADS_AND_TRAILS is your current relation (it is by default).
  3. Click on Scan order, choose line, a dialog box will appear.
  4. 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.
  5. Click OK to send off the query.
  6. 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
  1. Open Relation Silver Spring.
  2. Click Scan order, choose name type. Set both the min and max value of Name(Type) to Georgia(Ave).
  3. From File menu Save group under a name of your choice.
  4. Click Scan order, choose line to open a dialog box.
  5. Enable Ranking by distance from, choose relation, choose the relation that you just saved.
  6. 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.
  7. Click OK to send off the query.
  8. 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.