Previous article

Next article

A Language to Define External Schemas in ODMG Databases

Manuel Torres, Departamento de Lenguajes y Computación, University of Almeria, Spain
José Samos, Departamento de Lenguajes y Sistemas Informáticos, University of Granada, Spain


PDF Icon
PDF Version


ODMG is the de facto standard for object-oriented databases (OODB) but does not address the definition of external schemas. In order to provide such functionality, we have developed an external schema definition methodology that allows the definition of external schemas in ODMG databases. In this work, the language used by the schema definer to specify the schema components (e.g. classes, interfaces, and so on) is proposed. Besides, we describe the effect caused on the ODMG schema repository by the definition of external schemas using the proposed language.


ODMG standard [Catell00] addresses many OODBs issues. However, a well-known functionality of databases as is the definition of external schemas is not addressed by the standard. External schemas match with the higher level of the ANSI/SPARC architecture, providing different views of the conceptual schema for particular users or group of users.

In order to provide ODMG with that functionality, we have developed an external schema definition methodology for ODMG databases [Torres02]. This methodology allows database administrators to define external schemas in a three-step process. First, schema definers specify the classes to be included in external schemas; second, schemas are closed so that, classes do not have references to classes that are not included in the schema; third, schemas are generated obtaining inheritance relationships instead of specifying them manually, avoiding the introduction of mistakes. Schema closure and schema generation are studied in [Torres01b, Torres01a] respectively.

The methodology also introduces an extension of ODMG metadata [Torres03] to give support for defining external schemas in ODMG introducing metadata for derived classes (classes defined from existing ones customizing them, like relational views for tables in relational databases), external schemas, and so on. Therefore, a mechanism analogous to relational views must exist to define derived classes in OODBs. Many proposals have been defined for such a purpose: virtual classes [Abiteboul91, Rundensteiner92, Santos95], view classes [Bertino92, Guerrini97], and so on. However, to the best of our knowledge, only two proposals [Garcia02, Roantree99] have been defined in the ODMG framework because ODMG only has proposed the definition of named queries for that purpose. In our methodology, derived classes are defined using the mechanisms proposed in [Garcia02, Roantree99].

In this paper, a language to define external schemas in ODMG databases is proposed. The language allows the specification of external schemas selecting the components that make up an external schema. However, given that this specification process interacts closely with the repository, a brief overview of the extension to ODMG metadata introduced in [Torres03] is also described in this paper.

The remainder of this paper is structured as follows. Section 2 introduces our methodology for defining external schemas in ODMG. This section also summarizes the ODMG object model as well as an extension of ODMG metadata we have proposed to define external schemas in ODMG. In Section 3 the external schema definition language is proposed and for each operation, the effect on the extended ODMG repository is described. Finally, Section 4 summarizes the conclusions and discusses the future work.


This section is divided in three subsections. First, the ODMG object model is summarized in order to introduce the concepts we use in our methodology. Then, the external schema definition methodology we have developed for ODMG databases is briefly introduced. Finally, an overview about the extension of ODMG metadata we have proposed to support the definition of external schemas in ODMG is put forward.

ODMG object model

In the ODMG standard, the basic modelling properties are the object and the literal. Objects and literals can be categorized by their types. All elements of a type have a common range of states (the same set of properties) and a common behaviour (the same set of operations). The state of an object is defined by the values it carries for its set of properties. These properties can be attributes (e.g. name, idEmployee) or relationships with other objects (e.g. relationship between teachers and students). In ODMG, there are several ways for specifying types: an interface defines only the abstract behaviour of an object type; a literal defines only the abstract state of a literal type; a class defines the abstract behaviour and the abstract state of an object type. Because of the existence of two different object types (i.e. classes and interfaces) two sorts of inheritance relationships may be defined in ODMG, known as ISA and EXTENDS. On the one hand, ISA is a multiple inheritance relationship for behaviour inheritance between object types. On the other hand, EXTENDS is a simple inheritance relationship for state and behaviour inheritance relationships between object types.

Overview of our external schema definition methodology for ODMG databases

The methodology we have developed to define external schemas is based on the ODMG 3.0 object model [Catell00], and it explicitly considers the ODMG schema repository for defining derived classes and external schemas, making it easier the reuse of previous definitions. Derived classes are defined using the mechanisms proposed in [Roantree99, Garcia02] because ODMG does not address the definition of derived classes. (In fact, ODMG proposes the use of named queries, which do not offer the expected functionalities). In our mechanism, derived classes and derived interfaces are integrated within the repository by means of the derivation relationship [Bertino92] as described in [Samos95]. This relationship is only used in the repository to relate derived classes to their base classes (resp. interfaces), making easier the integration, and avoiding the generation of intermediate unnecessary classes as in [Scholl91, Rundensteiner92]. However, end-user schemas do not use this kind of relationship in order to preserve the object-oriented paradigm. Therefore, existing inheritance relationships between classes and interfaces of the schema must be obtained when derived classes and derived interfaces are included in external schemas. For such a purpose an external schema generation algorithm [Torres01a] is used, which obtains the existing relationships between derived classes and the remainder set of classes of the external schema. External schema specification is carried out by means of the external schema definition language proposed in this paper. The language specifies the classes and interfaces to be included in the external schema. From this specification, we obtain a set of isolated classes and interfaces. Then, a closure process is applied to this set so that no references to classes or interfaces not included in the schema exist in the schema [Torres01b].

Figure 1 illustrates a repository for an ODMG database of people. People may be clients or employees, and both groups have vehicles. In addition the adresses of people are stored as objects. Information about temporaries is also stored. Temporaries and employees have several common properties and behaviour, but different from the issues common to employees and clients, that is modelled with the interface Worker. For the sake of simplicity, attributes and operations are not depicted in the figure. Figure 1 also illustrates an external schema (the surrounded area) which replaces the class Employee with a derived class Employee’. Employee’ hides some instances and properties of Employee. The figure shows that the process for integrating derived classes is easy, and is related to connect derived classes with their base classes by means of derivation relationships. Figure 1 also shows how the derivation relationship is used in the repository but not in the external schema.

Fig. 1: Repository and external schema

Therefore, in our mechanism, unlike in [Bertino92, Kim95, Santos95, Guerrini97, Garcia02], external schemas only use relationships that are allowed in ODMG. So that, the object-oriented paradigm does not have to be extended, and unnecessary intermediate classes have not to be generated. However, metadata for derived classes and derived interfaces must be defined to define external schemas in ODMG databases.

An extension of ODMG metadata to support the definition of external schemas

ODMG defines a Schema repository (metaschema) to store descriptive information about the objects that make up the different schemas of the database, that is, metadata. Figure 2 illustrates an extract of the ODMG metaschema. This extract depicts metaclasses involved in external schema definition. Instances of those metaclasses are the types, classes, relationships, and so on, used in each schema definition. Main metaclasses of Figure 2 are MetaObject, DefiningScope, Module, Interface, Class, Attribute, Relationship, Operation and Exception. MetaObject represents the elements of the schema that are stored in the repository. DefiningScope stores instances that represent definition scopes of other metaobjects. Module includes an instance for each defined module. Interface and Class contain all the class and interface definitions, respectively. Analogously, Attribute and Relationship store the definition of each attribute and relationship specified in a class or interface. Finally, in Operation defined operations are stored, and Exception includes instances of all the exceptions that can be raised by operations.

Fig. 2: Extract of ODMG schema repository related to external schema definition

However, current ODMG metadata have some limitations to define external schemas. On the one hand, ODMG specifications do not include metadata to define neither derived classes nor derived interfaces. On the other hand, ISA and EXTENDS relationships are established in a generic way, without taking into account the schema where they take place in. Therefore, we have proposed an extension to ODMG metadata in order to give support to the definition of external schemas [Torres03]. This extension is illustrated in Figure 3 where new metaclasses and modified ones are depicted with a shaded name.

The extension introduces i) metaclasses for derived classes and derived interfaces whose instances are the derived classes and derived interfaces included in user schemas; ii) metaclasses to model the interfaces and classes of a module in the ODMG schema repository, as well as the inheritance relationships by module (EXTENDS relationships are stored in the repository as instances of ModuleClasses, indicating for each class its superclass in each schema it is included in. Analogously, ISA relationships are stored as instances of ModuleInterfaces).

Fig. 3: Extended ODMG schema repository to enable the definition of external schemas

Once we have introduced briefly the ODMG metadata extension to define external schemas in ODMG databases, next section describes the language proposed in this paper to define external schemas showing the effect produced in the extended repository when language operations are processed.


The specification of an external schema deals with the selection of classes and interfaces to be included in external schemas. In the proposed external schema definition mechanism, schema specification is carried out in the repository, in order to reuse existing classes or interfaces. The specification must allow the selection of schema components, derived or not, returning the set of classes and interfaces that initially make up an external schema. It is an initial set because that set may be modified later in schema closure [Torres01b] and schema generation [Torres01a] steps. The specification process updates the repository adding or modifying the corresponding instances in the related metaclasses (e.g. some metaclasses must be updated to reflect which classes and interfaces make up the defined schema). So, the effect caused in the repository by each schema specification operation of the proposed language must be addressed, illustrating how instances are added, modified o deleted from their metaclasses. The proposed language allows the schema definer to create new external schemas from scratch, or to modify and delete existing external schemas.

External schema definition language

Next, the EBNF syntax of the proposed external schema definition language is described. This language consists of schema-level operations and component-level (classes and interfaces) operations. Schema-level operations allow defining, modifying or deleting schemas, whereas component-level operations allow adding or deleting components from the schemas.

In order to illustrate the operations of this language, we will use an example about an external schema that hides all the data related to employees from the people database. Figure 4.a illustrates the ODMG schema of the database. Figure 4.b shows the definition of an external schema, which hides data related to employees using the proposed language. The definition of this schema in the proposed language specifies the schema name in the schema definition operation (DEFINE ES) and class names in the class addition operations (ADD CLASS).


Fig. 4: a) People database; b) External schema definition

Schema-level operations

In this subsection, the three schema-level operations DEFINE ES, MODIFY ES and UNDEFINE ES are described, which allow creating, modifying and deleting external schemas, respectively.

Schema definition. The DEFINE ES <name> operation creates a new external schema identified as name provided that in the repository does not exist a schema with that name. The definition of an external schema specifies by means of component-level operations the classes and interfaces that the schema definer wants to include in the schema. The result of this operation is the creation of a new instance in the metaclass Module. Therefore, regarding to the previous external schema, a new instance example in the metaclass Module is created.

Schema modification. The MODIFY ES <name> operation is applied to existing defined external schemas, and allows the incorporation of existing components and the deletion of previously added components. In order to modify a schema named as name, a schema with this name must exist in the repository, that is, an instance corresponding to name must exist in the metaclass Module. If the schema definer wants to add a component to the schema, such a component must be stored in the repository, so that an instance corresponding to that component must be included in the metaclass MetaObject. The includes-definedIn relationship defined between DefiningScope and MetaObject is used to avoid the inclusion of a component that already exists in that schema. The same relationship is used to avoid the deletion of a schema component that does not exist in that schema.

Schema elimination. The UNDEFINE ES <name> [AND NOT USED] operation deletes from the repository an external schema named as name. Optionally, if parameter AND NOT USED is specified, each class defined for the schema name that is not being used in other schemas is also deleted. This is an optional feature because the schema definer may want to preserve derived classes that are not used in other schemas as shorthand in queries [Guerrini97] or to be included in new external schemas.

Component-level operations

The component-level operations allow the addition of classes or interfaces to new schemas or existing ones, and allow the deletion of classes or interfaces from existing schemas. After running these operations, the usedIn-includes relationship must be updated adding or deleting the added or removed components, respectively.

Class addition. The ADD CLASS <name> operation adds the class name to a new schema or to an existing one that is being modified. Such a class must be stored in the repository, and after running this operation, the class name belongs to the set of components of the schema that is being defined.

Derived class addition. The ADD DERIVED CLASS <name> operation is analogous to the ADD CLASS <name> but for derived classes.

Interface or derived interface addition. The operations related to interfaces ADD INTERFACE <name> and ADD DERIVED INTERFACE <name> are similar to the corresponding ones for classes, except that they deal with interfaces.

Subschema addition. The ADD SUBSCHEMA ROOTED BY <class_name> in SCHEMA <schema_name> operation adds to the schema that is being created or modified each class stored in the repository as direct or indirect subclass of the class class_name in the schema schema_name. The schema schema_name must be specified because the class class_name may be included in several schemas, and then, its set of subclasses may change from one schema to another. In order to include in the schema the subschema rooted by class_name in schema_name, class_name must be included in schema_name, and this fact may be found analysing the usedIn-includes relationship.

Schema addition. The ADD ES <name> operation adds to the external schema that is being defined each class of the schema name stored in the repository.

Class and derived class deletion. The REMOVE CLASS <name> [AND NOT USED] and REMOVE DERIVED CLASS <name> [AND NOT USED] operations delete the class name from the schema that is being modified if such a class is included in that schema. If the option AND NOT USED is specified, the class name is also deleted from the repository if it is not included in another schema.

Interface and derived interface deletion. The operations related to interfaces, REMOVE INTERFACE <name> [AND NOT USED] and REMOVE DERIVED INTERFACE <name> [AND NOT USED], are similar to the corresponding ones for classes, except they are related to interfaces.

Subschema deletion. The REMOVE SUBSCHEMA ROOTED BY <name> [AND NOT USED] operation deletes from the external schema the subschema whose root is name, that is, deletes from the schema all the subclasses of name. However, this operation is executed if the class name exists in the schema that is being modified. This operation is equivalent to execute as many REMOVE CLASS as subclasses has the class name in the schema that is being modified. Similarly, like happens with previous operations, if the option AND NOT USED is specified, deleted classes are also deleted from the repository if neither are used by other classes nor are included in other schemas.

Deletion of schemas included in a schema. Finally, REMOVE ES <name> deletes the schema name from the external schema that is being modified, deleting therefore, each class and interface included in the schema name.

Effect of schema definition in the repository

Figure 5 illustrates the effect that produces the definition of the previous external schema in the repository. In addition, the figure also illustrates the definition of the conceptual schema depicted before (Figure 4.a). It can be seen that Module has two instances: one for the conceptual schema, and another for the external schema of the example. Besides, a new defining scope for the external schema with their components, as well as instances corresponding to EXTENDS relationships has also been created. In [Torres01a] the schema generation algorithm for obtaining the EXTENDS relationship existing between Client and People in the external schema is described. It can also be seen that the external schema includes all the classes specified by the schema definer but no class is defined in such a schema.

Fig. 5: Repository once defined the external schema


In this paper, an external schema definition language for ODMG databases, and its effect in the schema repository have been put forward. The language allows schema definers to create new schemas as well as to update and delete existing ones. Schema specification selects which classes, interfaces, or even schemas, are included in external schemas. The specification is based on the information stored in the repository. After defining schemas, repository information is updated to reflect the changes. The effect on the ODMG schema repository extended for enabling the definition of external schemas of each language operation has been also described. The proposed language is part of an external schema definition methodology that we have developed for ODMG databases. Currently we are working in an extension of this methodology for schema evolution in ODMG databases.


This work has been supported by the Spanish CICYT (project TIC 2000-1723-C02-02).\



[Abiteboul91] Abiteboul, S., Bonner, A. 'Object and Views'. In Proc. ACM SIGMOD International Conference on Management of Data. pp. 238-247. 1991

[Bertino92] E. Bertino. "A View Mechanism for Object-Oriented Databases" In Proc. of the 3rd EDBT. pp. 136-151. 1992

[Catell00] R.G.G. Catell. The Object Database Standard: ODMG 3.0. Morgan Kaufmann. 2000

[Garcia02] J.García Molina, M.J. Ortín Ibáñez, G. García Mateos. "Extending the ODMG standard with views" In Information and Softare Technology. Vol 44. pp. 161-173. 2002

[Guerrini97] G. Guerrini, E. Bertino, B. Catania, J. Garcia-Molina. "A Formal View of Object-Oriented Database Systems" TAPOS. Vol. 3(3). pp. 157-183. 1997

[Kim95] W. Kim, W. Kelley, "On View Support in Object Oriented Database Systems". In Modern Database Systems. pp. 108-129. 1995

[Roantree99] M. Roantree, J.B. Kennedy, P.J. Barclay. "Providing Views and Closure for the Object Data Management Group Object Model" In Information and Software Technology. Vol. 41. pp. 1037-1044. 1999

[Rundensteiner92] E.A. Rundensteiner. "Multiview: A Methodology for Supporting Multiple Views in Object-Oriented Databases" In Proc. of the 18th VLDB. pp. 187-198. 1992

[Samos95] J. Samos. "Definition of External Schemas in Object Oriented Databases" In Proc. of OOIS 1995. pp. 154-166. 1995

[Santos95] C.S. Santos, "Design and Implementation of Object-Oriented Views", In Proc. of 6th DEXA. pp. 91-102. 1995

[Scholl91] M.H. Scholl, C. Laasch, M. Tresch. "Updatable Views in Object-Oriented Databases", In Proc. of the 2nd DOOD. pp. 189-207. 1991

[Torres01a] M. Torres, J. Samos "Generation of External Schemas in ODMG Databases" In Proc. of IDEAS 2001. pp. 89-98. 2001.

[Torres01b] M. Torres, J. Samos "Closed Schemas in Object-Oriented Databases" In Proc. of DEXA 2001. pp. 826-835. 2001.

[Torres02] M. Torres. "Defining external schemas in ODMG databases". PhD Thesis. University of Almeria, Spain (2002)

[Torres03] M. Torres, J. Samos. "Extending ODMG Metadata to Define external Schemas", in Journal of Object Technology, vol. 2, no. 2, March-April 2003, pp. 183-202.


About the authors

Manuel Torres is assistant professor at the Departamento de Lenguajes y Computación of the University of Almeria. His interests include object-oriented databases, especially view mechanisms and their application to schema evolution. He can be reached at

José Samos is associate proffesor teacher at the Departamento de Lenguajes y Sistemas Informáticos of the University of Granada. He heads a research group about object-oriented databases and data warehousing. He can be reached at

Cite this article as follows: Manuel Torres, José Santos: "A Language to Define External Schemas in ODMG Databases", in Journal of Object Technology, vol. 3, no. 10, November-December 2004, pp. 181-192.

Previous article

Next article