160 likes | 520 Views
Introduction to Object DBMSs. Object Oriented DBMS History. Object-oriented model popularized in programming languages Simula 67, Smalltalk, C++, Java Earlier database models(hierarchical, network, relational) focused on record-oriented information
E N D
Object Oriented DBMS History • Object-oriented model popularized in programming languages Simula 67, Smalltalk, C++, Java • Earlier database models(hierarchical, network, relational) focused on record-oriented information • New database applications need more & better support for complex data.
The weakness of RDBMSs • Poor representation of ‘real world’ entities. The process of normalization generally leads to the creation of relations that do not corresponds to entities in the ‘real world’. • Semantic overloading, namely there is no mechanism to distinguish between entities and relationships, or to distinguish between different kinds of relationship that exist between entities. • Poor support for integrity and enterprise constraints.
The weakness of RDBMSs (cont) • Homogeneous data structure. The fixed structure is too restrictive for many ‘real world’ objects that have a complex structure, and it leads to unnatural joins, which are inefficient. • Limited Operations. It only has a fixed set of operations such as set and tuple – oriented operations, operations that are provided in the SQL specification. • Difficulty handling recursive queries • Impedance mismatch
Object Oriented data Model • Object is similar to an entity in ER model. If we are to implement Object Oriented DBMSs in Java, for each entity, we will create a class for it. • Object Oriented concept centers around encapsulating both data and procedures for operation on data as a single unit.
What is encapsulation? Encapsulation means that an object contains both the data structure and the set of operations that can be used to manipulate it. Often cases, adopting encapsulation hides the implementation from the users do not necessarily have to know the detail of it.
Other OOP concepts • Abstraction: Abstraction is the process of identifying the essential aspects of an entity and ignoring the unimportant properties. • Information Hiding: We separate the external aspects of an object from its internal details, which are hidden from the outside world.
Object Oriented data Model(cont) • Object: A uniquely identifiable entity that contains both the attribute that describe the state of a ‘real world’ object and the actions that are associated with it. • Set of variables • Set of methods (code to execute in response to messages). This is the main difference from the ER model.
Objects • Variables can be • Atomic values (like character, integer number, boolean value) • Objects (other user defined objects). • Reference to other objects
Objects (cont) • Object classes. Objects that have the same attributes and respond to the same messages can be grouped together to form a class • Define object type (structure and behavior) • An object is an instance of a class • Sometimes associated with a collection of all instances in class
Example Object class class timeSeries {/* variables */List* entryList; /* list of elements */time beginning;time ending;elementDescriptor elemDesc; /* element type descriptor *//* messages */elementDescriptor getElementType();Tuple getFirstElement();Tuple getLastElement();Tuple getFirstElementAfter(time t);}
Inheritance • Inheritance allows one class to be defined as a special case of a more general class. • The types of inheritance are • IS-A hierarchy idea • Single inheritance • Multiple inheritance • Repeated inheritance. A special case of multiple inheritance in which the super class inherit from a common super class. • Selective inheritance.
Polymorphism • Objects of different types can respond to same message, e.g. “print(),” in different ways. • Makes it possible to develop general, extensible software systems. • It has three types: operation, inclusion and parametric. • More important than inheritance
Object Identity • An object in an Object Oriented Database remains the same object even if some or all of its attribute values change. It is a key part of the definition of an object. • Not the same as relational DBMS, where a data vale is used for identity. • Object-oriented databases use an internally-generated object identifier to uniquely identify an object.
Other Object Oriented techniques • Overloading: allows the name of a method to be reused within a class definition or across definitions. This is a special case of the more general concept of polymorphism. • Overriding: a special case of overloading which allows the names of a property to be redefined in a subclass • Dynamic binding: Allows the determination of an object’s type and methods to be deferred until runtime.