A method and apparatus for applying an application of a database service,
such as X.500 or LDAP, to a relational database, a database design and
use of the database to perform such services. Specifically addressed is
the problem of database searching, particularly search speed and
complexity of search. The method and apparatus concern searching a
directory service database, in which the scope of search area is
initially prescribed and/or in which a filter is applied over the search
area. Moreover, in dealing with an alias during a search, a unique set of
areas is found which define areas of a search tree that need to be
searched. A FLAG column is used to indicate if an alias points inside a
subtree. The method and apparatus also enable single pass resolution in
any one of a search, filter or subtree search of a directory service, the
method and apparatus including the use of a path column to simultaneously
apply an arbitrary filter over an arbitrary subtree. Further disclosed is
a method and apparatus of retrieving data from a directory service
database, which includes conducting search, collecting all entries that
need to be retrieved, and retrieving entries in parallel.