A database query language for operations on graphical objects
The motivation for this work arose from the recognised inability of relational databases to store and manipulate data that is outside normal commercial appliations (e.g. graphical data). The published work in this area is described with respect to the major problems of representation and manipulation of complex data. A general purpose data model, called GDB, that successfully tackles these major problems is developed from a formal specification in ML and is implemented using the PRECI/C database system. This model uses three basic graphical primitives (line segments, plane surfaces - facets, and volume elements - tetrons) to construct grahical objects and it is shown how user designed primitives can be included. It is argued that graphical database query languages should be designed to be application specific and the user should be protected from the relational algebra which is the basis of the database operations. Such a base language (an extended version of DEAL) is presented which is capable of performing the necessary graphical manipulation by the use of recursive functions and views. The need for object hierarchies is established and the power of the DEAL language is shown to be necessary to handle such complex structures. The importance of integrity constraints is discussed and some ideas for the provision of user defined constraints are put forward.