Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC.

Slides:



Advertisements
Similar presentations
OO databases 1 Object Oriented databases. OO databases 2 Developing OODBMS - motivation motivation more and more application areas require systems that.
Advertisements

Chapter 10: Designing Databases
Database System Concepts and Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
ODMG Standard: Object Model1 OBJECT-ORIENTED DATABASE SYSTEMS ODMG Standard: Object Model Susan D. Urban and Suzanne W. Dietrich Department of Computer.
Introduction to Database Management  Department of Computer Science Northern Illinois University January 2001.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
Distributed Systems Architectures
OBJECTS Object Oriented ???????. OBJECTS Object-Oriented n OO convenient label for a collection of interconnected ideas n OO approach views computer.
Chapter 2 Database Environment.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Concurrency and Transaction Management in an Object Oriented Database Initial Presentation Author: Jeremy Torres Date: 5/30/2003.
Object-Oriented Standards OMG OMDG. Overview Object Management Group (OMG) International non profit-making consortium founded in 1989 to address object.
Object-Oriented Databases
Data Management I DBMS Relational Systems. Overview u Introduction u DBMS –components –types u Relational Model –characteristics –implementation u Physical.
1 9 Concepts of Database Management, 4 th Edition, Pratt & Adamski Chapter 9 Database Management Approaches.
Introduction to Databases Transparencies
Fundamentals, Design, and Implementation, 9/e Chapter 16 Object-Oriented Database Processing.
The University of Akron Dept of Business Technology Computer Information Systems Database Management Approaches 2440: 180 Database Concepts Instructor:
Object Oriented Databases - Overview
July 13, 2015ADBS: OODB1 Concepts for Object-Oriented Databases Chapter 20.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Overview of Database Languages and Architectures.
Object-Oriented Methods: Database Technology An introduction.
Dr. Kalpakis CMSC 461, Database Management Systems Introduction.
Chapter 1 Introduction to Databases
RIZWAN REHMAN, CCS, DU. Advantages of ORDBMSs  The main advantages of extending the relational data model come from reuse and sharing.  Reuse comes.
Chapter 4 Object and Object-Relational Databases (Part ½: Object-Oriented Concepts) Lecturer: H.Ben Othmen Department of Computer Science, Umm Al-Qura.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Object and object-relational databases 1. Object databases vs. Object-relational databases Object databases Stores complex objects – Data + functions.
Advanced Database CS-426 Week 2 – Logic Query Languages, Object Model.
Database Environment 1.  Purpose of three-level database architecture.  Contents of external, conceptual, and internal levels.  Purpose of external/conceptual.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.
Chapter 5 Lecture 2. Principles of Information Systems2 Objectives Understand Data definition language (DDL) and data dictionary Learn about popular DBMSs.
Part 3: Introduction to Object DBMSs
DBMS Lecture 9  Object Database Management Group –12 Rules for an OODBMS –Components of the ODMG standard  OODBMS Object Model Schema  OO Data Model.
CSS/417 Introduction to Database Management Systems Workshop 5.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
E.Bertino, L.Matino Object-Oriented Database Systems 1 Chapter.1 Introduction Seoul National University Department. of Computer Engineering OOPSLA Lab.
11 1 Chapter 11 Object Oriented Databases Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
1 CS 430 Database Theory Winter 2005 Lecture 17: Objects, XML, and DBMSs.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented Databases Dr. Awad Khalil Computer Science Department AUC.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
1 CS457 Object-Oriented Databases Chapters as reference.
1 Database Management Systems (DBMS). 2 Database Management Systems (DBMS) n Overview of: ä Database Management Components ä Database Systems Architecture.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
CIS/SUSL1 Fundamentals of DBMS S.V. Priyan Head/Department of Computing & Information Systems.
1 Chapter 1 Introduction to Databases Transparencies.
Object Oriented Database By Ashish Kaul References from Professor Lee’s presentations and the Web.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
The ODMG Standard for Object Databases
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
E.Bertino, L.Matino Object-Oriented Database Systems 1 Chapter 9. Systems Seoul National University Department of Computer Engineering OOPSLA Lab.
The Object-Oriented Database System Manifesto Malcolm Atkinson, François Bancilhon, David deWitt, Klaus Dittrich, David Maier, Stanley Zdonik DOOD'89,
Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
The Object-Oriented Database System Manifesto
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Data, Databases, and DBMSs
Ch 15 –part 3 -design evaluation
Dr. Awad Khalil Computer Science Department AUC
ISC321 Database Systems I Chapter 10: Object and Object-Relational Databases: Concepts, Models, Languages, and Standards Spring 2015 Dr. Abdullah Almutairi.
Data Model.
Dr. Awad Khalil Computer Science Department AUC
Presentation transcript:

Object_Oriented Databases, by Dr. Khalil 1 Object-Oriented DBMSs Dr. Awad Khalil Computer Science Department AUC

Object_Oriented Databases, by Dr. Khalil 2 Content  Object-Oriented Data Models  OODBMS Definition  Alternative Approaches for Developing an OODBMS  OODBMS Perspectives

Object_Oriented Databases, by Dr. Khalil 3 Object-Oriented Data Models  – A (logical) data model that captures the semantics of objects supported in object- oriented programming.  Object-Orientation Data Model (OODM) – A (logical) data model that captures the semantics of objects supported in object- oriented programming.  – A persistent and sharable collection of objects defined by an OODM.  Object-Oriented DataBase (OODB) – A persistent and sharable collection of objects defined by an OODM.  – The manager of an OODB.  Object-Oriented DBMS (OODBMS) – The manager of an OODB.

Object_Oriented Databases, by Dr. Khalil 4 OODBMS - Definitions Zdnick and Maier (1990)  It must provide database functionality;  It must support object identity;  It must provide encapsulation;  It must support objects with complex with complex state. Koshafian and Abnous (1990)  (1) object-orientation = abstract data types + inheritance + object identity;  (2) OODBMS = object-orientation + database capabilities. Parsaye et al (1989)  (1) high-level query language with query optimization capabilities in the underlying system;  (2) support for persistency, atomic transactions, and concurrency and recovery control;  (3) support for complex object storage, indexes, and access methods for fast and efficient retrieval;  (4) OODBMS = object-oriented system + (1) + (2) + (3).

Object_Oriented Databases, by Dr. Khalil 5 Current Commercial OODBMSs  GemStone from GemStone Systems Inc.  Itsaca from IBEX Knowledge Systems SA.  Objectivity/DB from Objectivity Inc.  ObjectStore from eXcelon Corporation.  Jasmine from Computer Associate/Fujitsu.  Versant from Versant Corporation.

Object_Oriented Databases, by Dr. Khalil 6 Alternatives Strategies for Developing an OODBMS  – This is the approach taken by GemStone which extends Smalltalk, C++, and Java with database capabilities.  Extend an existing object-oriented programming language with database capabilities – This is the approach taken by GemStone which extends Smalltalk, C++, and Java with database capabilities.  – rather than extending the language, class libraries are provided that support persistence, aggregation, data types, transactions, concurrency, security, and so on. (Ontos, Versant, and ObjectStore).  Provide extensible object-oriented DBMS libraries – rather than extending the language, class libraries are provided that support persistence, aggregation, data types, transactions, concurrency, security, and so on. (Ontos, Versant, and ObjectStore).  – this is the approach taken by the product O 2, which provides embedded extensions for the programming language ‘C’.  Embed object-oriented database language constructs in a conventional host language – this is the approach taken by the product O 2, which provides embedded extensions for the programming language ‘C’.  – SQL vendors are extending it to provide object-oriented constructs. SQL 3 supports object-oriented. Also, ODMG specifies a standard for Object SQL (SQL 3 ).  Extend an existing database language with object-oriented capabilities – SQL vendors are extending it to provide object-oriented constructs. SQL 3 supports object-oriented. Also, ODMG specifies a standard for Object SQL (SQL 3 ).  – This is the approach taken by SIM (Semantic Information Manager), which is based on semantic data model and has a novel DDL/DDL (Jagannathan et al., 1988).  Develop a novel database data model/data language – This is the approach taken by SIM (Semantic Information Manager), which is based on semantic data model and has a novel DDL/DDL (Jagannathan et al., 1988).

Object_Oriented Databases, by Dr. Khalil 7 OODBMS Perspectives  Conventional DBMSs have a two-level storage model: the application storage model in main memory, and the database model on disk.  An OODBMS tries to give the illusion of a single-level storage model, with a similar representation in both memory and in the database stored on the disk.

Object_Oriented Databases, by Dr. Khalil 8 OODBMS Perspectives  Objects, and relationships between objects, are identified by object identifiers (OIDs). There are two types of OID:  Logical OIDs that are independent of the physical location of the object on the disk.  Physical OIDs that encode the location.  In the former case, a level of indirection is required to look up the physical address of the object on disk.  In both cases, an OID is different in size from a standard in-memory pointer, which need only be large enough to address all virtual memory.  To achieve the required performance, an OODBMS must be able to convert OIDs to and from in-memory pointers. This conversion technique has become known as pointer swizzling or object faulting and the approaches used to implement it have become varied ranging from software-based residency checks to page-faulting schemes used by the underlying hardware.  – the action of converting object identifiers to main memory pointers, and back again.  Pointer Swizzling – the action of converting object identifiers to main memory pointers, and back again.

Object_Oriented Databases, by Dr. Khalil 9 Accessing an Object In conventional DBMS:  The DBMS determines the page on secondary storage that contains the required record using indexes or table scans. The DBMS then reads that page from disk and copies it into its cache.  The DBMS subsequently transfers the required parts of the record from the cache into the application’s memory space.  The application can then update the record’s fields in its own memory space.  The application transfers the modified fields back to the DBMS cache using SQL.  Finally, at an appropriate point the DBMS writes the updated page of the cache back to disk. In OODBMS:  The OODBMS determines the page on disk that contains the required object using its OID or an index, then reads that page from disk and copies it into the application’s page cache within its memory space.  The OODBMS may then carry out a number of conversions, such as swizzling references (pointers) between objects.  The application can then update the object, as required.  The OODBMS may need to carry out similar conversions, before copying the page back to disk.

Object_Oriented Databases, by Dr. Khalil 10 Issues in OODBMSs  Long-duration transactions  Versions  Schema evolution

Object_Oriented Databases, by Dr. Khalil 11 Transactions  Transactions involving complex objects can continue for several hours, or even several days.  To support long-duration transactions we need to use different protocols from those used for traditional database applications in which transactions are typically of a very short duration.  In an OODBMS, the unit of concurrency control and recovery is logically an object.  Locking-based protocols are the most common type of concurrency control mechanism used by OODBMSs.  It would be totally unacceptable for a user who initiated a long- duration transaction to find that the transaction has been aborted owing to lock conflict. Solutions:  Multiversion concurrency control protocols  Advanced transaction models

Object_Oriented Databases, by Dr. Khalil 12 Versions  There are many applications that need access to the previous state of an object.  is the process of maintaining the evolution of objects.  version management is the process of maintaining the evolution of objects.  An represents an identifiable state of an object.  An object version represents an identifiable state of an object.  A represents the evolution of an object.  A version history represents the evolution of an object.

Object_Oriented Databases, by Dr. Khalil 13 Schema Evolution  Design is an incremental process and evolves with time. To support this process, applications require considerable flexibility in dynamically defining and modifying the database schema.  For example, it should be possible to modify class definitions, the inheritance structure, and the specifications of attributes and methods without requiring system shutdown.

Object_Oriented Databases, by Dr. Khalil 14 Architecture  Many commercial OODBMSs are based on the architecture to provide data to users, applications, and tools in a distributed environment.  Many commercial OODBMSs are based on the client-server architecture to provide data to users, applications, and tools in a distributed environment.  We can distinguish three basic structures: and  We can distinguish three basic structures: Object server, Page server, and Database server.

Object_Oriented Databases, by Dr. Khalil 15 Object server  This approach attempts to distribute the processing between the two components.  Typically, the server process is responsible for managing storage, locks, commits to disk, logging and recovery, enforcing security and integrity, query optimization, and executing stored procedure.  The client is responsible for transaction management and interfacing to the programming language.  This is the best architecture for cooperative, object-to-object processing in an open, distributed environment.

Object_Oriented Databases, by Dr. Khalil 16 Page server  In this approach, most of the database processing is performed by the client.  The server is responsible for secondary storage and providing pages at the client’s request.

Object_Oriented Databases, by Dr. Khalil 17 Database server  In this approach, most of the database processing is performed by the server.  The client simply passes requests to the server, receives results, and passes them on to the application.  This is the approach taken by many RDBMSs.

Object_Oriented Databases, by Dr. Khalil 18 Storing and Executing Methods  There are two approaches to handling methods:  Store the method in external files. This approach is similar to function libraries or Application Programming Interfaces (APIs) found in traditional DBMSs, in which an application program interacts with a DBMS by linking in functions supplied by the DBMS vendor.  Store the methods in the database and are dynamically bound to the application at runtime.

Object_Oriented Databases, by Dr. Khalil 19 The Object-Oriented Database System Manifesto  Complex objects must be supported  Object identity must be supported  Encapsulation must be supported  Types or classes must be supported  Types or classes must be able to inherit from their ancestors  Dynamic binding must be supported  The DML must be computationally complete  The set of data types must be extensible  Data persistence must be provided  The DBMS must be capable of managing very large databases  The DBMS must support concurrent users  The DBMS must be capable of recovery from hardware and software failures  The DBMS must provide a simple way of querying data

Object_Oriented Databases, by Dr. Khalil 20 Advantages and Disadvantages of OODBMSs Advantages   Enriched modeling capabilities   Extensibility   Removal of impedance mismatch   More expressive query language   Support for schema evolution   Support for long-duration transactions   Applicability to advanced database applications   Improved performance Disadvantages  Lack of universal data model  Lack of experience  Lack of standards  Competition  Query optimization comprises encapsulation  Locking at object level may impact performance  Complexity  Lack of support for views  Lack of support for security

Object_Oriented Databases, by Dr. Khalil 21 Object Data Standard ODMG 3.0, 1999  Several important vendors have formed the Object Data Management Group (ODMG) to define standards for OODBMSs.  The ODMG has produced an Object Model that specifies a standard model for the semantics of database objects.  The model is important because it determines the built-in semantics that the OODBMS understands and can enforce.  The design of class libraries and applications that use these semantics should be portable across various OODBMSs that support the object model  The major components of the ODMG architecture for an OODBMS are:  An Object Model;  An Object Definition Language (ODL);  An Object Query Language (OQL);  C++, Java, and Smalltalk language bindings.

Object_Oriented Databases, by Dr. Khalil 22 Object Structure (ODMG MODEL)  In OO database systems, the values (or states) of complex objects may be constructed from other objects by using certain type constructors.  One way of representing an objects is to view each object as a triple where:  One way of representing an objects is to view each object as a triple (i, c, v), where: i : is a unique object identifier (OID). c : is a constructor (that is, an indication of how the object value is constructed). v : is the object value (or state).

Object_Oriented Databases, by Dr. Khalil 23 Object Structure (Cont’d)  There are the following types of constructors:  Basic constructors: atom, tuple, set.  Other constructors: list, array, bag.  The common constructor: domain D, that contains all basic atomic values that are directly available in the system. These typically include integers, real numbers, character strings, Booleans, dates, and any other data types that the system supports directly.

Object_Oriented Databases, by Dr. Khalil 24 Object Structure (Cont’d)  An object value v is interpreted on the basis of the value of the constructor c in the triple (i, c, v):  If c = atom, then the value v is an atomic value from the domain D of basic values supported by the system.  If c = set, the value v is a set of object identifiers {i 1, i 2,..., i n }, which are the identifiers (OIDs) for a set of objects that are typically of the same type.  If c = tuple, the value v is a tuple of the form, where each aj is an attribute name (sometimes called an instance variable name) and each i j is an object identifier (OID).  If c = list, the value v is an ordered list of object identifiers [i 1, i 2,..., i n ] of the same type.  If c = array, the value v is an array of object identifiers.

Object_Oriented Databases, by Dr. Khalil 25 Object Structure – An Example  We assume, for the following examples, that everything is an object, including basic values.  We assume that we have the constructors atom, set, and tuple.  We use i 1, i 2, i 3,... to stand for unique system-generated object identifiers.  An object is defined by a triple: (OID, type constructor, value).

Object_Oriented Databases, by Dr. Khalil 26 Object Structure – An Example

Object_Oriented Databases, by Dr. Khalil 27 Object Structure – An Example Consider the following objects: 11 O 1 = (i 1, atom, Houston) 22 O 2 = (i 2, atom, Bellaire) 33 O 3 = (i 3, atom, Sugarland) 4 4 O 4 = (i 4, atom, 5) 55 O 5 = (i 5, atom, Research) 66 O 6 = (i 6, atom, 22-MAY-78) O 7 = (i 7, set, {i 1, i 2, i 3 }) 8854 O 8 = (i 8, tuple, <DNAME:i 5, DNUMBER:i 4, 97 MGR:i 9, LOCATIONS:i 7, 1011 EMPLOYEES:i 10, PROJECTS:i 11 >) O 9 = (i 9, tuple, ) O 10 = (i 10, set, {i 12, i 13, i 14 }) O 11 = (i 11, set, {i 15, i 16, i 17 })

Object_Oriented Databases, by Dr. Khalil 28 Graphical Representation

Object_Oriented Databases, by Dr. Khalil 29 Object Management Group (OMG)  The OMG is an international non-profit-making industry consortium founded in 1989 to address the issues of object standards.  The OMG seeks to define standard object-based facilities for supporting a number of advanced features:  Concurrent execution  Distributed transactions  Versioning  Event notification  internationalization

Object_Oriented Databases, by Dr. Khalil 30 Object Management Architecture (OMA)  In 1990, the OMG first published its Object Management Architecture (OMA) Guide which specifies a single terminology for object- oriented languages, systems, databases, and application frameworks; an abstract framework for object-oriented systems; a set of technical and architectural goals; and a reference model for distributed applications using object-oriented techniques.  Four areas of standardization were identified for the reference model:  The object model (OM);  The Object Request Broker (ORB);  The Object Services;  The common facilities.

Object_Oriented Databases, by Dr. Khalil 31 The Object Model (OM)  The OM is a design-portable abstract model for communicating with OMG-compliant object-oriented systems.  A requester sends a request for object services to the ORB, which keeps track of all objects in the system and the types of service they can provide.  The ORB then forwards the message to a provider who acts on the message and passes a response back to the requester via ORB.

Object_Oriented Databases, by Dr. Khalil 32 The Object Request Broker (ORB)  The ORB handles distribution of messages between application objects in a highly interoperable manner.  The ORB is a distributed ‘software bus’ that enables objects (requesters) to make and receive requests and responses from a provider.

Object_Oriented Databases, by Dr. Khalil 33 The Object Services & The Common Facilities  The Object Services provide the main functions for realizing basic object functionality. Many of these services are database- oriented.  The Common Facilities comprise a set of tasks that many applications must perform but are traditionally duplicated within each one, such as printing and electronic mail facilities.

Object_Oriented Databases, by Dr. Khalil 34 The Common Object Request Broker Architecture (CORBA)  The Common Object Request Broker Architecture (CORBA) defines the architecture of ORB-based environment.  This architecture is the basis of any OMG component, defining the parts that form the ORB and its associated structures  Using the communication protocol GIOP (General Inter-Object Protocol) or IIOP (Internet Inter-Object Protocol), CORBA-based program can interoperate with another CORBA-based program across a variety of vendors, platforms, operating systems, programming languages, and networks.

Object_Oriented Databases, by Dr. Khalil 35 Object Data Standard ODMG 3.0, 1999  Several important vendors have formed the Object Data Management Group (ODMG) to define standards for OODBMSs.  The ODMG has produced an Object Model that specifies a standard model for the semantics of database objects.  The model is important because it determines the built-in semantics that the OODBMS understands and can enforce.  The design of class libraries and applications that use these semantics should be portable across various OODBMSs that support the object model  The major components of the ODMG architecture for an OODBMS are:  An Object Model;  An Object Definition Language (ODL);  An Object Query Language (OQL);  C++, Java, and Smalltalk language bindings.

Object_Oriented Databases, by Dr. Khalil 36 Thank you