next up previous
Next: Construction of views Up: Issues Previous: Issues

Name Resolution

All path expressions begin with names, or entry points into the database. The problem that we will encounter is which name will a path expression reference when a user is creating a view. The name could refer to a name within either the source database or the view. One solution that we briefly discussed is to require that these name sets be disjoint. Another solution is to allow the user to specify the database from which the name originates. (For example Myview!NamedObject.Child or DB!SomeName.AChild).

The solution that we chose to adopt is that when constructing a view all names will assumed to be coming from the source database. If the user wishes to reference a name outside of the source scope then he or she will need to prefix the path expression with the name of the database followed by a ``!''. The name of the database will be called the database selectifier. Here is an example:

If the database MyDB is open then all path expressions must either begin with Frodos or Reviewer as these are the only default names that the database will recognize. However the path expression MyView!Favorites is also a valid one. The database selectifier MyView indicates that Favorites is a named object of the view MyView. By allowing this syntax with these symantics we enable a user to compose a view that has elements from many views and databases, and also allows the user to references elements within the newly created view. The self referencing issue, and all the problems that come with it, is discussed in section 3.



Jason McHugh
Fri Jan 17 10:32:41 PST 1997