* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Slide Template
Survey
Document related concepts
Transcript
Chapter 16 Object-Oriented Database Processing Fundamentals, Design, and Implementation, 9/e Introduction Relational databases are not well-suited to store object-oriented programming objects because tables cannot store complex object structures including methods Object-Oriented DBMS (ODBMS or OODBMS) is a special-purpose DBMS developed in the early 1990s to provide persistent object storage – These products have not been commercially successful because existing data must be converted into ODBMS format DBMS products begin to support object-relational databases, hybrids of object and relational storage Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/2 Object-Oriented Programming Object-oriented programming (OOP) is a way of designing and coding programs Traditional programming – Views programs as sequences of instructions to be processed – Is organized around logic first and data second Object-oriented programming – Views programs as sets of data structures that have both data elements and program instructions – Is organized around data first and logic second Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/3 OOP Terminology An OOP object is an encapsulated structure having both attributes and methods – Encapsulated means that it is complete in itself • Programs external to an object know nothing of its structure and need to know nothing of its structure – Methods are sequences of instructions that the object executes • OOP objects interact by calling each other’s methods An interface is the external appearance of an object An implementation is the encapsulated interior of an object Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/4 OOP Terminology (cont.) A subclass object inherits the attributes and methods of its superclass Polymorphism allows several versions of the same method to exist – The compiler creates code to call the proper version, depending on the object class An object class is the logical structure of an object – An object class library is a group of object classes – Objects or object instances are instances of an object class Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/5 OOP Terminology (cont.) Object constructors are methods that obtain memory and create object structures Object destructors unbind objects and free memory Transient objects exist only during the execution of a program Persistent objects are saved to storage and survive the execution of a program Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/6 Example: CUSTOMER Object Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/7 Example: Object Data Structures Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/8 Object Persistence Object Persistence Requirements – Save object instance data values – Convert in-memory object pointers to permanent, unique IDs (swizzling) – Save object class methods Objects can be made persistent by using – Traditional file storage – Relational DBMS – ODBMS Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/9 Object Persistence Alternatives Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/10 Object Persistence Using Oracle Oracle supports object persistence using objectrelational database facilities Object types can be defined and used with table structures as – – – – Column objects Variable length arrays Nested tables Row objects Pure objects can also be defined to include – Variable length arrays and nested tables – Object pointers as REF attributes – Methods, which can use Oracle-supplied class libraries for processing Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/11 ODBMS Standards SQL3 – ANSI and ISO proposed SQL3 as an extension to SQL-92 – SQL3 begins with a database perspective and moves toward object thinking ODMG-93 – First published in 1993 by the Object Data Management Group – ODMG is supported by a consortium of object database vendors and other interested industry experts – ODMG begins with an object perspective and moves toward data management thinking Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/12 SQL3 Key Developments Abstract Data Types (ADT): a user-defined structure equivalent to an OOP object – Object ADTs have identifiers called OIDs SQL3 table definition extensions – SQL3 tables have a row identifier and can have subtable • A subtable is a subset of supertable and it inherits all of the columns of its supertable and may also have columns of its own – Three types of table: SET, MULTISET, LIST SQL language extensions supporting ADT methods coding Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/13 ODMG-93 Key Elements Objects are the fundamental data structure Every object has a lifelong persistent, unique identifier Objects can be arranged into types and subtypes State is defined by data values and relationships Behavior is defined by object operations Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke Chapter 16/14 Chapter 16 Object-Oriented Database Processing Fundamentals, Design, and Implementation, 9/e