Spatial Data Management and Design and Creation of a Database for this Purpose
COSC 3480 Lab5
Last updated: March 29, 2006
Project # 5 (total score =300)
April 13. 10a: Submit status report in class (the report should outline what you plan to do in Project5
and what has already been done)
April 24, 10a: Submit final project report electronically to Cindy
The goal of the project is to design and create a spatial database, fill it with data, develop an interface to the
database using the Oracle/C# platform 1 that allows inserting new information and correcting errors in the
database. Moreover, a small set of spatial data management functions should also be implemented in the project
and calling these functions should also be supported in the user interface. Finally, a report that summarizes the
results of the projects has to be written and Project5 short presentations and demos have been scheduled for Tu.,
April 25, 8:30-11:30a.
Your database should contain 3 different types of spatial data objects, at least one of those should be higher
dimensional describing a surface (2 dimensional) or a curve (1-dimensional). One example, could be that your
database contains (water-) wells, rivers (1-dimensional, typically these objects are described by sequences of
lines), and cities. Another example could be counties in Texas (2-dimensional, typically these objects are
described by a polygon that separates the points outside and inside the spatial object), cities, and roads (1dimensional) that connect the cities. Moreover, in addition to spatial attributes (usually longitude and lattitude is
used to represent spatial information) some meaningful non-spatial attributes should be associated with the
spatial objects in the database you will design. Your database should be filled with meaningful data, some of
which should be “real”; e.g. if your database contains rivers the Medina river which is loacted in the Hill
Country might be stored in your database. Your database should contain at 10 instances of typses of spatial
objects that are zero-dimensional, and at least 5 instances for higher dimensional spatial objects.
Moreover, 2-3 spatial data management functions should be supported by the software you develop, possible
candidates include:
1. Support for nearest neighbor queries: e.g. find the closest river to a given well
2. Support of containment queries: e.g. find all cities inside a county
3. Support for touching queries: e.g. find all neighboring counties of Harris county
4. Support for crossing queries: e.g. find all rivers that cross Harris county
5. Support for cheapest path queries: e.g. find the shortest route from Uvalde to Utopia, Texas based on a
given road graph
6. Support for distance-scans that enumerates spatial objects in increasing distance from a given query point
7. Support for non-topological queries that compute the distance, direction of two points; compute the size of
a two-dimensional spatial object, compute the length of a 1-dimensional spatial object (e.g. a river)
Finally, a “user friendly”, interactive application program front end to your database should be developed using
the Oracle C# platform that will be discussed in the 3480 Lab. The interface supports inserting new spatial
objects into your database, and allows correcting erroneous data in your database. The implementation of your
interface should check consistency constraints to avoid erroneous updates of the database, and provide error
handling capabilities in the case of an incorrect update. Finally, the interface supports calling the 2-3 spatial data
management functions you selected to support in the project.
If you do not use the C#//Oracle platform and use other software instead a penalty of 10% will be assessed on the
implementation part of the project.
Spatial Data Management and Design and Creation of a Database for this Purpose
COSC 3480 Lab5
Spatial objects are usually stored relying on object-based models in which objects are stored as tuples with their
spatial and non-spatial attributes. However, a raster / field based view also has some popularity that uses field
functions that charaterize spatial dataobjects; e.g. you could define a function f(x,y) representing Brazos-Bend
State Park, that if you input a particular longitude/lattitude pair f returns true if the location is inside Brazos
Bend State Park and false, otherwise --- sometimes, these field functions are defined on grid-structure to safe
space and to facilitate computations. Both object-based and field-based approaches are suitable for Project5!
In general, this project is defined more openly (you have more freedom in deciding what problems to solve and
how to solve them --- if you have doubts about what you plan to do feel free to talk to Cindy or Dr. Eick), and
might require some reading and search on your own --- there are a lot spatial data on the web that could be used
to fill your database. In general, the correctness, quality, originality, and complexity of your designed system
will be taken into consideration when determining the project grade; moreover, the quality of your report is also
considered. You should also be prepared to demo your system on April 25, 2006.
Hints: Initially, the focus of the project should be how to represent the 3 types of spatial objects in your databse
and on supporting the 2-3 spatial data management functions you selected. We suggest that you develop a
simple user interface for your system intitially, and then try to make it more sophisticated, depending on how
much time you have left. Moreover, add capabilities to your program to check integrity constraints with respect
to updates of the database; provide exception handlers that raise exceptions in the case that an update of the
database is incorrect. Also if you have problems completing the project, make sure that your program solves at
least some subtasks correctly, in which case you will get credit for those subtasks. Programs that are not running
at all and databases that are badly designed and contain data of poor quality will receive a very low score.
Submission guidelines and deliverables: Submit a report that addresses the following:
1. A brief description of the types of objects that are stored in your database
2. An E/R diagram for the database you designed
3. The relational database schema of your database
4. Discussion of the most critical design decisions you faced when designing the database.
5. A description of the 2-3 spatial data management functions you supported including how they were
implemented and supported in your software design.
6. A discussion on how your program handles incorrect updates of the database; also discuss what kind of error
handling / constraint checking capabilities your system provide?
7. Brief description of the capabilities of your user interface
8. Mention anything additional or interesting about your program that has not been discussed yet (optional)
9. Mention any specific part of the project for which, you believe, that your system solves this task efficiently
or “elegantly” (optional).
10. Write a 2 paragraph (5-8 sentences) executive summary listing your accomplishments in Project5
11. As appendix include a printout of the contents of your database, the source code of all the software you
developed, and a short list of what other software your system uses.