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) Deadlines: 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. 1 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.