kl800.com省心范文网

SP A Data Model for Object-Oriented Databases


A Data Model for Object-Oreinted Databases
Mano jit Sarkar and Steven P. Reiss

Department of Computer Science Brown University Providence, Rhode Island 02912 December 1992
CS-92-56

A Data Model for Object-Oriented Databases
Manojit Sarkar Steven P. Reiss Department of Computer Science Brown University Providence, RI 02912 USA
We present an object-oriented data model. The data model represents all entities as objects. The system uses internally generated object identi ers for giving objects their unique identity. An object also has a state, and a behavior. Each object belongs to a class. The class de nes the structure of the object's state, and its behavior. Classes are organized in inheritance hierarchy. An object of a class can be used where an object of 's superclass is expected. Inheritance polymorphism is provided through late binding of methods based on actual classes of objects. The data model eliminates the object-versus-values dichotomy by representing all entities as objects. This is achieved at no loss of modeling power, or performance. The data model provides for exclusive access of objects by other objects.

Abstract

1 Introduction
Object-oriented databases 2, 3, 7, 13] have been developed in response to the complex data modeling requirements in various application areas such as CAD, Graphics, and Programming Environments. We started investigating object-oriented database systems for constructing abstract information about programs, called program abstractions, by retrieving information from some form of stored representation of programs, called program database. The idea is to generate abstractions by querying the database, the answers to the queries are the target abstractions. These abstractions are subsequently visualized graphically, and our full system is a program visualization system 11]. The data model of our full program visualization system is object-oriented, and we wanted a database with a compatible data model. This paper presents the data

model. A primary goal of our data model is to combine simplicity, modeling power and performance. Our data model is conceptually simple. It avoids the objectsversus-values dichotomy found in other data models such as in the O2 data model 1, 9], and the EXTRA data model 6]. This is achieved at no extra cost. We also show that it is possible to satisfy a variety of data modeling requirements such as composite objects of ORION 3], and own, ref, and own ref objects of EXTRA 6] within the object-oriented paradigm. On the other had, neither O2, nor EXTRA provides exclusive access to objects with oid and behavior. The conceptual simplicity of the data model does not imply lower performance. It is possible to engineer internal optimizations for good performance. The data model is presented in Section 2 through Section 4. Section 5 de nes what constitutes a database. We compare our data model with some other data models in Scetion 6. Final discussions, remaining issues, and conclusions are in Section 7.

2 Values
We start a formal description of the data model with the following pairwise disjoint sets: a nite set of basic types D a countably in nite set of oids O a nite set of attribute names A a nite set of method names M a nite set of class names C

In our data model each entity is represented by an object. Each object is uniquely identi ed by an object identi er or oid. The object may have a value, or its Support for this research was provided by NSF grants value may be unde ned. Each object also belongs to a CCR9111507 and CCR9113226, by ARPA order 8225 and by class. Only structured values can be values of objects. Structured values are built from atomic values . ONR grant N00014-91-J-4052 1

following section. A set-valued object whose value is an empty-set is equivalent to an unde ned There are four basic types. These are Integer, Float, set-class. Similarly, a list-valued object object of some whose value is Boolean, and String. Hence D = Integer, Float, an empty-list is equivalent to an unde ned object of Boolean, String . The domains of basic types are all called basic domains. Basic domains are pairwise dis- some list-class. We denote the set ofV. the structured values by the countably in nite set joint. Each domain consists of a countably in nite set of atomic values. For example, the domain of type Integer consists of the set of all integer values. The atomic values in basic domains are also called basic values as opposed to oids. Each object belongs to a class . The class describes A type is either a class or a basic type. Classes are the structure of the object's value, and the object's built from basic types and classes using the Tuple, Set, behavior. The syntax for class de nitions is as follows: and List constructors. A class built using the Tuple constructor is called a tuple-class . Similarly a class <class-decl> Class <class-name> built using the Set, or the List constructor is called a Class <class-name> <class-def> set-class , or a list-class respectively. O has three special members. These are nulltuple, <class-def> Inherits <superclass-name>] nullset, and nulllist. They denote unde ned ob<class-struc> jects of all tuple-classes, set-classes, and list-classes reMethods <class-method> ] spectively. The value of an unde ned object is assumed to be unknown, or an empty-set, or an empty-list de- <class-struc> Tuple `(' <attr-def> `)' pending on the the class of the object. This will be Set `(' <basic-type> `)' further explained later. Each member of O is also an Set `(' Own] <class-name> `)' atomic value. Set `(' Own] <class-struc> `)' List `(' <basic-type> `)' List `(' Own] <class-name> `)' 2.2 Structured Values List `(' Own] <class-struc> `)' Structured values are constructed from atomic values using the Tuple, Set, and List constructors. There is <attr def> <attr-name> `:' <basic-type> one special structured value, ] which is used to denote Own] <attr-name> `:' <class-name> the value of any tuple with zero attributes. Note that Own] <attr-name> `:' <class-struc> ] and nulltuple are not the same values. The former denotes a structured value, while the later is an atomic <class-method> <method-sig> <method-body> value and the oid of an object whose value is unde ned. Structured values are de ned formally as follows: <method-sig> <method-name> `(' <param-def> `)' the value ] is a structured value `:' <result-def> each tuple of atomic values a1 : v1 ; a2 : v2 ; . . .; an : <param-def> <basic-type> vn] is a tuple-value , where n > 0, ai A and vi <class-name> for i = 1; 2; . . .; n are attribute names, and atomic <class-struc> values respectively each set of atomic values v1 ; v2; . . .; vn is a set- <result-def> <basic-type> <class-name> value , where n > 0, and vi for i = 1; 2; . . .; n are <class-struc> atomic values
f g

2.1 Atomic Values

3 Classes
!

!

!

f

g

!

f

g

!

!

!

!

!

!

!

!

!

!

!

f

g

2

!

!

!

f

g

!

!

!

each list of atomic values < v1 ; v2; . . .; vn > is a <method-body> ` ' <code> ` ' list-value where n > 0, and vi for i = 1; 2; . . .; n A class may be de ned by specifying a name, a superare atomic values class, a structure, and methods. Superclass and methThere is no order among the elements of a set, but the ods are optional. It is also possible to de ne classes elements of a list are ordered. Only homogeneous sets implicitly without any name, superclass, and methods. (lists) are allowed, i.e. the types of all members of any Example 3.1 below de nes eight explicitly declared set (list) must be the same. Types are discussed in the classes Point, Vertex, Node, Edge, SegmentedEdge,
! f g

CurvedEdge Network

, , and Graph. It also implicitly declares some classes with no name, no superclass, no methods. The class associated with the attribute bendpoints of class SegmemtedEdge is such a class with structure List(Point). It is also possible to de ne recursive classes such class Node in Example 3.1. The syntax allows a class name to be declared and used rst, and de ned later as class Edge in the same example. Example 3.1: The following are some class declarations:
Class Point Tuple (x Float, y Float) Methods fdistance (Point) Float

: :

:

class names. A class built using the Tuple constructor is called a tuple-class . Similarly, a class built using the Set constructor is called a set-class , and a class built using the List constructor is called a list-class . The value of an object of any tuple-class can only be a tuple-value. Similarly, the value of an object of any set-class can only be a set-value, and the value of an object of any list-class can only be a list-value. Any object can be potentially referenced by many other objects. Sometimes it is necessary to prohibit such sharing, and allow a class of objects to exclusively refer to other objects. This constraint can be speci ed using the \Own" quali er in attribute de nitions. An object held by an attribute quali ed as Own cannot be referenced by more than one object.

f

gg;

Class Edge; Class Vertex Tuple (Own position Point, label String, radius Float);

3.2 Methods

:

:

:

Class Node Inherits Vertex Tuple (successors Set (Node));

:

Class Edge Tuple (source Vertex, dest Vertex, label String) Methods flength () Float

:

:

:

:

f

gg;

A class declaration may have zero or more methods as a part of the class de nition. Methods de ne the object's behavior. Each method is a function, it has a signature and a body . The signature is an expression of the form c : m( 1 ; 2; . . .; n) r where c is the receiver class , m is the method name , 1 ; 2; . . .; n are the types of the parameters for some n 0, and r is the type of the return value . A method's body is a piece of code written in some programming language, and it implements the intended function. Example 3.2: Example 3.1 de nes four methods for the classes Point, Edge, SegmentedEdge, and CurvedEdge. The signatures of these methods respectively are
!

Class SegmentedEdge Inherits Edge Tuple (Own bendpoints List(Point)) Methods flength () Float f gg;

:

:

Point distance (Point) ! Float Edge length () ! Float SegmentedEdge length () ! Float CurvedEdge length () ! Float

:

:

:

:

, and

,

Class CurvedEdge Inherits Edge Tuple (Own controlpoints List (Point)) Methods flength () Float f gg;

2
A class declaration may specify a superclass as a part of its class de nition. Inheritance 4, 5] allows the user to derive new classes from existing classes. Only singleinheritance is allowed in our data model i.e., a class can have at most one superclass 1. The inheritance relationship is a partial order on the classes, i.e., it is re exive , antisymmetric and transitive . Since superclasses are optional, the class hierar-

:

:

3.3 Inheritance

Class Network Set (Edge); Class Graph Set (Node);

2

All classes must have a structure . As shown above, 1 modeling goal. structures are built using the Tuple, Set, and List We We feel single-inheritance is adequate for ourour later needs plan to incorporate multiple-inheritance if constructors from basic types, and already declared justify the additional complexity.

3.1 Structure

chy is potentially a forest of many disjoint trees, and not a single tree 2. A class inherits the attributes and the methods of its superclass by default. The structure and the method suite of the inheriting class therefore include the inherited attributes and methods respectively. The inheriting class can de ne additional attributes and methods, or rede ne inherited attributes and methods. However the resulting structure and method suite of the inheriting class must be compatible to the structure and method suite of its superclass respectively.

3.6 Subclass Relationship
Subclass relationship is denoted by the symbol \<". If c is a subclass of c , then c < c . Structure and method suite compatibility merely allow two classes to be related by subclass-superclass relationship. The actual relationship must be speci ed by the user by naming the superclass during the class de nition of the subclass.
0 0

Subclass relationships allow an object of class c to be used in any context expecting an object of class c , Structural compatibility, denoted by the symbol \ " where c is a superclass of c. In other words, an object is de ned as follows: of any class c is also an object of all the superclasses of c. for any type ,
0 0

3.4 Structural Compatibility

3.7 Substitutibility

for any three types 1; 2 ; 3, if 1 then 1 3

2 and 2
0

3,

3.8 Late Binding
Since an object of a certain class can be assigned to a variable of its superclass, given a method call on a variable, sometimes the method to be executed can only be determined at run time based on the object's actual class. This is known as late binding .

for the types i for i = 1; 2; . . .; m + n, and j for j = 1; 2; . . .; m, where m 0, n 0, if i i for all i = 1; 2; . . .; m, then Tuple(a1 : 1 ; a2 : 2; . . .; am : m ; . . .; am+n : m+n ) Tuple(a1 : 1 ; a2 : 2; . . .; am : m )
0 0 0 0

for any two types and , if
0

0

Set( )
0

, then Set(

)

3.9 Overloading
Method names can also be overloaded by de ning methods with the same name in more than one class not related by subclass-superclass relationships. Such method name overloading can be resolved at compile time based on method signatures.

for any two types and , if
0

0

List( 0)

, then List(

)

3.5 Method Suite Compatibility

The method suite of a class must also be compatible to that of its superclass. If m is a method name and c is a class, then m is de ned in c if and only if there exits a method with signature c : m( 1 ; 2 ; . . .; l ) r . A class may override its inherited methods by de ning methods with the same names. If c is a superclass of c , and they have two methods with signatures c : m( 1 ; 2; . . .; l ) r and c : m( 1 ; 2 ; . . .; k ) r , then the following must be satis ed:
!
0

3.10 Implicitly Declared Classes
Since implicitly declared classes do not have names, they cannot be declared to be subclass or superclass of any other class. The system therefore can assume that the implicitly declared classes have no subclass, and optimize the representation and access to the objects of such classes to achieve better performance. This will be further explained later.

!

0

0

0

0

!

0

l=k = i or i is a subclass of i for i = 1; 2; . . .; l where l 0
0

Two classes are equivalent if they have the same name. The system gives internally generated names to classes r = r , or r is a subclass of r declared implicitly as the class associated with the attribute bendpoints in Example 3.1. Implicitly de2 We therefore do not associate systemwide operators with any top-level class. In our model, they are prede ned operators ap- clared classes with same structures are given the same internally generated name, hence they are equivalent. plicable to any objects of compatible classes.
0 0

i

0

3.11 Class Equivalence

they are shallow-equal only if their values are id-equal. A value can be either a tuple-value, a set-value, or a We de ne a partial function which maps class then names in C to class de nitions. As an example, af- list-value. If the values are tuple-values,same, the corresponding attribute names must be the and the ter the class de nitions in Example 3.1 (Point) = corresponding attribute values must be id-equal. If the Tuple(x: Float, y: Float) Methods distance must have (Point): Float . The function is partial to two values are set-values, then theyone-to-one the same cardinality, and there must be a mapping allow for classes that have been declared but not de- between the sets such that the corresponding members ned. The database schema includes this function. are id-equal. If the values are list-values, the lengths of the lists must be the same, and corresponding members of the list must be id-equal. Shallow-equality is denoted by the symbol \=s ". An object's value may or may not be de ned. An object whose value is de ned is a triple (o; v; c) where o O Deep-Equality: Any two basic values are deep-equal if they are id-equal. Any two objects are deep-equal if is the object's oid, v V is the object's value, and c they are shallow-equal. If they are not shallow-equal, C is the object's class. If the value of the object is unde ned, then its oid and then they are deep-equal if their values contain must be nulltuple, or nullset, or nulllist. An ob- oids and the objects represented by the corresponding ject whose oid is nulltuple is an object of some tuple- oids are deep-equal. Deep-equality is denoted by the class. Similarly, an object with oid nullset is an object symbol \=d " . of some set-class, and an object with oid nulllist is The equality operators can be applied to objects of an object of some list-class. An object whose value is compatible classes or basic types. Class compatibility unde ned is called an unde ned object . We de ne a partial function from O to V. The is de ned in Section 3.7. function maps an object's oid to its value for every (de ned) object present it the database. The the interpretation of the value depends on the class. Hence 4.2 Copying assuming that the value v of any object (o; v; c) is dened Like the equality operators the system provides two copy operators, shallow-copy and deep-copy. if o is the oid for an object of any tuple-class, then (o) is a tuple-value Shallow-Copy: A shallow-copy of an object is an obif o is the oid of an object of any set-class, then ject with same value and class but a di erent oid. (o) is a set-value Deep-Copy: A deep copy of an object has the same if o is the oid of an object of any list-class, then class, a di erent oid, and possibly a di erent value created by recursively creating deep-copies of objects till (o) is a list-value the new object shares no oid with the original object. Whenever a new object is created in the database with a de ned value the map is updated. The instance of Copy operations are useful while assigning values to Own attributes by copying existing objects. An object a database schema includes the function . held by such an attribute cannot be assigned to another variable, or any value of any other variable cannot be 4.1 Equality assigned to such an attribute because of the restrictions The system provides three equality operators which on sharing. test for id-equality, shallow-equality, and deep-equality. Id-Eqiality: Two basic values id-equal if they are the same value. Two objects are id-equal when they are 4.3 Rede ning Equality and Copying de ned and they have the same oid. We use the symbol Only shallow-equality and deep-equality operators, and \ " to denote id-equality. both copy operators can be overridden by methods deShallow-Equality: Two basic values are shallow- ned in the classes. This allows the user to de ne equal if they are id-equal. Two objects are shallow- appropriate equality and copy operators for di erent equal if they are id-equal. If they are not id-equal, then classes of objects.
f f gg

3.12 Class De nition Function

4 Objects

2

2

2

Every object with a global name in G is persistent . Every object that is part of a persistent object is also A database consists of a schema and an instance. A persistent. database schema is denoted by S. An instance of the The function maps class names to class de nitions. database schema is denoted by I. There is a clear sepa- Class hierarchy in C can be constructed from the inration between the schema and the instance in our data formation available with the class de nitions. model. A database schema explicitly declares a set of classes C C. The system maintains an extension for 5.3 Instances each class in C. An instance of a database schema consists of a nite set of objects and the four functions d , ; , and . 5.1 Class Extensions The functions d ; ; , and are de ned as follows: The extension is the set of all objects of its associated class. We de ne a function d , called the disjoint oid the function d is the disjoint oid assignment assignment , from class names to extensions. If for some the function is the oid assignment inherited from n 0, o1c ; o2c ; . . .; onc is the extension of class c, then d (c) = o1c ; o2c ; . . .; onc . The function d is d called the disjoint oid assignment because, if c and c The function maps oids to values for all the deare two di erent classes in C, then d (c) d (c ) = . ned objects in the database instance Given d , the oid assignment (inherited from d ) is a function mapping each class name to a set of oids the function maps variable names in G to obsuch that (c) = d (c) d(c ) c C; c < c . In jects which are the values currently assigned to other words, maps a class name to the set of objects the variables of that class and all of its subclasses. Given , the interpretation of a class c is de ned as follows: each basic type Integer, String, Float and Boolean has its natural domain The object-oriented paradigm can represent data structures of arbitrary complexity. But it is sometimes confor each tuple-class c, domain(c) = nulltuple venient to be able to specify additional constrains on (c) the structure of the data. For example, it is sometimes for each set-class c, domain(c) = nullset (c) necessary to prohibit sharing of one object by more than one object. This is achieved in O2 1] data model for each list-class c, domain(c) = nulllist by values. O2 values cannot be shared. Similarly, in (c) EXTRA 6] attributes quali ed by the own quali er Objects of a class can have values from the domain can hold only non-shared data. Composite objects in ORION 3, 8] imply a di erent de ned by the class's structure. A structure's domain kind of constraint. In EXTRA, the own ref quali er is de ned as follows: provides the same functionality. In ORION, a referdomain(Tuple(a1 : 1 ; a2 : 2 ; . . .; an : n )) = ence is either a composite link or an ordinary link. An a1 : v1 ; a2 : v2 ; . . .; an : vn ] vi domain( i ); i = object can be referenced by any number of ordinary 0; 1; . . .; n links, but there can be at most one composite link to the object. A composite link stands for a \ownerdomain(Set( )) = v1; v2; . . .; vn vi ship" relation. Objects referenced by composite links domain( ); i = 1; 2; . . .; n are \dependent" objects whose existence depends on the existence of their owner objects. When an owner domain(List( )) = < v1 ; v2; . . .; vn > vi object is deleted all its dependent objects must also domain( ); i = 1; 2; . . .; n deleted (possibly leaving some dangling ordinary references). 5.2 Schema We think that sharing and ownership are orthogA database schema is a 3-tuple (C; ; G) where C onal issues to the issue of data representation. The C is a set of class names, is the function mapping data model should keep these issues separate from each class names to class de nitions, and G is a set of global other. Following this philosophy, our data model repvariables with associated classes. The sets C and G act resents all entities as objects, and provides a separate as the entry points to the database. quali er for prohibiting sharing. This simpli es the
2 f g f g
0

5 Database

\

0

f

0

j

0

2

0

g

6 Other Data Models

f

g

f

g

f

g

f

j

2

g

ff

g

j

2

g

f

j

2

g

2

model. It removes any possibility of confusion between objects and values such as in the O2 data model 10]. The simpli cation does not necessarily imply lower performance. It is possible to engineer internal optimizations to achieve good performance. In the O2 data model, it is not possible to express restrictions on object sharing. Also in EXTRA data model, it is possible to express restrictions on object ownership, but not on object sharing. This is a consequence of the fact that all non-shared data must be values which have no behavior, and all the shared data must be objects. In our data model, it is possible to express constraints on object sharing. Our data model, does not provide the functionality of composite or own ref objects. The data model however can be easily extended with a new quali er such as Composite to express this constraint. We do not include such facility because, we feel at this point our data modeling requirements do not justify the additional complexity which will be required to enforce such constraint.

signed to an attribute quali ed as Own only at the time of the object's creation. Similarly, an object can be made member of a set or list that requires non-shared members only at the time of the object's creation. A basic value can be thought of as an object which is always shared. The value of the object is same as the basic value, and the type of the object is the type of the basic value. Since these objects are always shared it is not necessary to assign oids to them; it is su cient to assume that they are id-equal if and only if they are of the same type and they have the same value. For example, the integer 5 can be thought of as the object ( , 5, Integer).

6.2 Objects and Basic Values

7 Conclusions

We have presented a data model. The operational part of the data model, the query language OQL, and an object algebra is in The data model and 6.1 Providing Functionality of Values OQL have been presented with12]. practical application designed a Values can be thought of as special objects which are in mind, i.e., program visualization. Keeping the data never shared and have no behavior. Since values are model simple in order to achieve a simple but powerful never shared it is not necessary to refer to them indi- query language was our primary goal. Shaping the data rectly from multiple objects. It is therefore possible to model and OQL to be an e ective program abstraction avoid indirection to access values. It is also not neces- tool will be our primary research goal in future. sary to assign oids to values, because it is su cient to assume that no two values are id-equal. Since values have to behavior, they do not carry any type related information at runtime. It is not necessary to perform a late binding of any method on a value based on its Gerd Hilderbrand has helped us to grasp the intricacies actual type. A value of any type can be assigned to of Datalog and IQL. Serge Abiteboul and Paris Kanela variable of its supertype. The assignment however lakis have patiently explained many aspects of the O2 truncates the value if necessary. data model. In our data model, a value is an object of an implicitly declared class (which speci es only a structure, but no name, no supertype and no method) and quali ed as Own. The attribute bendpoints of class SegmentedEdge in Example 3.1 holds exclusively ref1] S. Abiteboul, and P. Kanellakis. Object identity erenced objects. This provides objects that are never as a query language primitive. Proc. of ACM SIGshared and have no behavior. These objects therefore MOD Conf., 1989. can be stored and accessed like values in O2 data model. Since the implicitly declared classes have no names, 2] F. Bancilhon, C. Delobel and P. Kanellakis. there extensions are also not stored as a part of the Building an Object-Oriented Database System The database instance. We point out, however, that this Story of O2. Morgan Kaufman, pp. 61{75, 1992. is only an internal optimization. To the outside users these special objects are no di erent than the other 3] J. Banerjee, H-T Chou, J. F. Garza, W. Kim, D. objects. Woelk, N. Ballou, and H-J Kim. Data model issues for object-oriented applications. ACM TransThe restriction on sharing is easily enforced. The actions on Information Systems, 5(1), pp. 3{26, Own quali er can be used to qualify attributes, memJanuray, 1987. bers of sets, and members of lists. An object can be as-

Acknowledgements

References

4] L. Cardelli. A semantics of multiple inheritance. Information and Computation , 76(1), January, 1988. 5] L. Cardelli, and P. Wegner. On understanding types, data abstractions, and polymorphism. ACM Computing Surveys , 17(4), pp. 471-522, December, 1985. 6] M. Carey, D. DeWitt and S. Vandenberg. A data model and query language for Exodus. Proc. of ACM SIGMOD Conf., 1988. 7] D. H. Fishman, D. Beech, H. P. Cate, E. C. Chow, T. Connors, J. W. Davis, N. Derret, C. G. Hoch, W. Kent, P. Lyngbaek, B. Mahbod, M. A. Neimat, T. A. Ryan, and M. C. Shan. Iris: An object-oriented database management system. ACM Transactions on Information Systems , 5(1), pp. 48{69, Januray, 1987. 8] W. Kim, J. Banerjee, H-T Chou, J. F. Garza, and D. Woelk. Composite object support in an objecoriented database system. Proc. of ACM OOPSLA Conf., 1987. 9] C. Lecluse, and P. Richard. Modeling complex structures in object-oriented databases. Proc. of ACM PODS Symp., 1989. 10] O2 Technology. The O2 User Manual, June, 1992. 11] S. Reiss, and M. Sarkar. Generating abstractions for visualization. Technical Report CS-92-35. Computer Science Department, Brown University , September, 1992. 12] M. Sarkar, and S. Reiss. A query language for object-oriented databases with tuples, sets and lists. Technical Report CS-92-57. Computer Science Department, Brown University, December, 1992. 13] J. D. Ullman. Principles of data and knowledgebased systems. Computer Science Press . ISBN07167-8158-1, 1988.


...A Query Language for Object-Oriented Databases.pdf

A Data Model and A Query Language for Object-Oriented Databases_专业资料。We present an object-oriented data model, and a powerful declarative query ...

A query algebra for object-oriented databases.pdf

A query algebra for object-oriented databases_专业资料。We define an algebra...Our model supports object identity, abstract data types with 1 type ...

Viewpoints in object-oriented databases..pdf

In this paper, we propose a model for object-oriented databases 16, 15]...To facilitate the elaboration of a database schema, we propose to consider...

Concepts forObject-Oriented Databases_图文.ppt

Concepts forObject-Oriented Databases_经济学_高等...a real-world object and its database ...model or EER model, all objects are assumed to...

Using stored behaviour in object-oriented databases.pdf

1. A behaviour taxonomy for object-oriented databases. includes rules associated with the data model. These rules are events which are chie?y used to ...

Triple-node hierarchies for object-oriented database indexing....pdf

Object-oriented data model is a data model that...for object-oriented databases include the following...membersP class Ci;1, having a value di erent ...

...for Multi-level Object-Oriented Databases Based ....pdf

A Security Model for Multi-level Object-Oriented Databases Based on Views_...Queries and views in an Object-Oriented Data Model. International Workshop ...

...Authorization in Object-oriented Databases_图文.pdf

A Model of Methods Access Authorization in Object-oriented Databases_专业资料...SP A Data Model for Ob... 暂无评价 10页 免费 A Cost Model for Clust...

...Authorization in Object-Oriented Databases based....pdf

A Model of Content-based Authorization in Object-Oriented Databases based on...Therefore, views can be used for two purposes: data protection and user ...

An Object-Oriented Data Model for a Time Series Man....pdf

An Object-Oriented Data Model for a Time Series Management System The analysis...namely in temporal and statistical databases, does not sufficiently consider ...

A introduction to Database Management System Raghu ....doc

Wiley[U.S.] A database (sometimes sp A...Databases are structured to facilitate the storage,...object-oriented progra mming language used to ...

ROCK & ROLL A Deductive Object-Oriented Database Sy....pdf

This application domain poses a number of challenges for a data model, ...Maier, editors, Readings in Object-Oriented Databases, CA 94303-9953, 1990...

...for a Strongly Typed Object-Oriented Database Pr....pdf

Constructs to support this model for a statically and strongly typed object...1 Introduction Object-oriented databases are becoming increasingly popular as a...

...Foundations for Object-Oriented Data Modeling_免....pdf

OM Framework for Object-... 暂无评价 11页 免费 OBJECT ORIENTED APPRO... 暂无评价 2页 免费 SP A Data Model for Obje... 暂无评价 10页 免费 Dynamic...

...Foundations for Object-Oriented Data Modeling_免....pdf

OM Framework for Object-... 暂无评价 11页 免费 OBJECT ORIENTED APPRO... 暂无评价 2页 免费 SP A Data Model for Obje... 暂无评价 10页 免费 Dynamic...

...Access Method for Object-Oriented Databases_免费....pdf

-tree : A New Class Hierarchy Access Method for Object-Oriented Databases The semantic richness of the object-oriented data model has introduced many new ...

OM Framework for Object-Oriented Data Management.pdf

object-oriented data model OM together with a methodology for developing data...object-oriented databases based on the generic object data model OM and its...

Object-Oriented Design of a Database Engine for Mul....pdf

A Data Model for Object-... 暂无评价 39页 免费...Object-Oriented Design of a Database Engine for ...and retrieval of MDD in databases is followed whi...

...an Object Model on Top of Commercial Database Sy....pdf

for a model and a language for object-oriented databases: object-...system, for it provides very exible (hierarchical) clustering options SPSW90...

A Navigational Data Model for Object Modeling Techn....pdf

A Navigational Data Model for Object Modeling Technique (OMT) Development Environment...Obviously, object-oriented (OO) technology seems to be the software ...