Download presentation
Presentation is loading. Please wait.
1
Object Oriented Databases - Overview
ADVANCED DATABASES Object Oriented Databases - Overview Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria University (Karachi Campus) Contents for this lecture are taken from: Chapter 10 of “Database Systems: Models, Languages …”, 6th Ed.” by Elmasri and Navathe (Chapter 11 of “Fundamentals of Database Systems” 6th Ed. by Elmasri and Navathe)
2
Objectives To cover an overview of following concepts Object identity
Type constructor Encapsulation of operations Programming language compatibility Type hierarchies and inheritance Extents Polymorphism and operator overloading
3
Object and Object-Relational Databases
Object databases (ODB, previously called OODB) Object Data Management Systems (ODMS, previously called ODBMS or OODBMS Why: To cater the need for new data types for complex structures, for storing images, videos, or large textual items; longer-duration transactions, etc. To directly or seamlessly integrate with software that is developed using object-oriented programming languages. Specify: Structure of complex objects Operations that can be applied to these objects
4
Overview of Object Database Concepts
Introduction to object-oriented concepts and features Origins in OO programming languages Object has two components: State (value) and behavior (operations) Instance variables Hold values that define internal state of object Operation is defined in two parts: Signature or interface and implementation
5
Overview of Object Database Concepts (cont’d.)
Inheritance Permits specification of new types or classes that inherit much of their structure and/or operations from previously defined types or classes Operator overloading Operation’s ability to be applied to different types of objects Operation name may refer to several distinct implementations
6
Object Identity, and Objects versus Literals
Unique identity Implemented via a unique, system-generated object identifier (OID) Immutable (can not be changed) Most OO database systems allow for the representation of both objects and literals (or values)
7
Complex Type Structures for Objects and Literals
Structure of arbitrary complexity Contain all necessary information that describes object or literal Nesting type constructors Construct complex type from other types Most basic constructors: Atom: Includes basic built-in data types, such as integers, strings, floating point numbers, enumerated types, Booleans, and so on. Each value of the type is considered an atomic (indivisible) single value
8
Complex Type Structures for Objects and Literals (cont’d.)
Struct (or tuple): Made up of several components, and is also sometimes referred to as a compound or composite type. Collection Allow part of an object or literal value to include a collection of other objects or values when needed.
9
Complex Type Structures for Objects and Literals (cont’d.)
Collection types: Set - objects or literals that are a set of distinct elements {i1, i2, ..., in}, all of the same type Bag - similar to a set except that the elements in a bag need not be distinct List - an ordered list [i1, i2, ..., in] of OIDs or values of the same type Array - a fixed size, single-dimensional array of elements of the same type
10
Complex Type Structures for Objects and Literals (cont’d.)
Collection types (cont’d): Dictionary - a collection of two tuples (K, V), where the value of a key K can be used to retrieve the corresponding value V Object definition language (ODL) Used to define object types for a particular database application
12
Encapsulation of Operations and Persistence of Objects
Related to abstract data types and information hiding in programming languages Define behavior of a type of object based on operations that can be externally applied External users only aware of interface of the operations Divide structure of object into visible and hidden attributes
13
Encapsulation of Operations
Object constructor Used to create a new object Destructor operation Used to destroy (delete) an object Modifier operations Modify the states (values) of various attributes of an object Retrieve information about the object Dot notation used to apply operations to object
14
Persistence of Objects
Transient objects Exist in executing program Disappear once program terminates Persistent objects Stored in database and persist after program termination Naming mechanism (Involves giving an object a unique persistent name within a particular database) Reachability (by making the object reachable from some other persistent object. An object B is said to be reachable from an object A if a sequence of references in the database lead from object A to object B)
15
Persistence of Objects (cont’d.)
16
Type Hierarchies and Inheritance
Definition of new types based on other predefined types Leads to type (or class) hierarchy Type: type name and list of visible (public) functions Format: TYPE_NAME: function, function, ..., function
17
Type Hierarchies and Inheritance (cont’d.)
Subtype Useful when creating a new type that is similar but not identical to an already defined type Example: EMPLOYEE subtype-of PERSON: Salary, Hire_date, Seniority STUDENT subtype-of PERSON: Major, Gpa
18
Type Hierarchies and Inheritance (cont’d.)
Extent Store collection of persistent objects for each type or subtype Extents are subsets of the extent of class OBJECT Persistent collection Stored permanently in the database Transient collection Exists temporarily during the execution of a program
19
Other Object-Oriented Concepts
Polymorphism of operations Also known as operator overloading Allows same operator name or symbol to be bound to two or more different implementations Depending on type of objects to which operator is applied Can be compile time (static binding) or run time (dynamic binding) Multiple inheritance Subtype inherits functions (attributes and methods) of more than one supertype
20
Other Object-Oriented Concepts (cont’d.)
Selective inheritance Subtype inherits only some of the functions of a supertype
21
Conclusion In this Lecture, we covered following topics
Object identity Type constructor Encapsulation of operations Programming language compatibility Type hierarchies and inheritance Extents Polymorphism and operator overloading
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.