Introduction to Databases Object and Object-Relational Databases

Similar documents
ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References

Chapter 12 Object and Object Relational Databases

Chapter 11 Object and Object- Relational Databases

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

3. Object-Oriented Databases

Introduction. Course Overview Evolution and History of Database Management Systems Requirements of Object-Oriented Database Management Systems

Ch. 21: Object Oriented Databases

ODBMS: PROTOTYPES & PRODUCTS. The ODBMS Manifesto [M.Atkinson & al 89]

ObjectStore and Objectivity/DB. Application Development Model of Persistence Advanced Features

Object Database Standards, Languages, and Design

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

ODMG 2.0: A Standard for Object Storage

Volume 5 Issue 3 (2017) ISSN International Journal of Advance Research and Innovation IJARI

Systems Analysis and Design in a Changing World, Fourth Edition. Chapter 12: Designing Databases

Introduction: OO principles. Introduction: OO principles. 3 Object Oriented Database Systems. 3.1 Introduction: Why OO Databases

Course Content. Object-Oriented Databases. Objectives of Lecture 6. CMPUT 391: Object Oriented Databases. Dr. Osmar R. Zaïane. University of Alberta 4

Introduction to Programming Using Java (98-388)

Chapter 21 9/4/2012. Object Database Standards, Languages, and Design. Chapter 21Outline. Chapter Objectives. ODMG Objects and Literals

Chapter 9: Object-Based Databases

ODBMS's and ORM Tools

Object-Oriented Databases Course Review

W5.L2. Week 5, Lecture 2

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 21 1

Object Query Standards by Andrew E. Wade, Ph.D.

COURSE 11. Object-Oriented Databases Object Relational Databases

Part 3: Object-Oriented Database Management Systems

Performance investigation into selected object persistence stores

DATABASE TECHNOLOGY - 1DL124

2.1. Concepts for Object Databases

Author's Prepublication Version

Constructs in Oracle

Chapter 6 Object Persistence, Relationships and Queries

Concepts for Object-Oriented Databases

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Introduction. Example Databases

Chapter 13. Object-Oriented Databases (from E&N and my editing)

Middleware for Heterogeneous and Distributed Information Systems Sample Solution Exercise Sheet 5

Transparent Java access to mediated database objects

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

Course Logistics & Chapter 1 Introduction

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Object oriented databases a natural part of object oriented software development? Bachelor thesis in computer science. By Anders Carlsson

Outline. CUGS Core - Databases. Requirements. Work method. Databanks/Databases. Databank

object-oriented programming language groups, e.g. ANSI X3J20 (Smalltalk) ANSI X3J16 (C++)

CS317 File and Database Systems

Design issues for objectoriented. languages. Objects-only "pure" language vs mixed. Are subclasses subtypes of the superclass?

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

Enterprise JavaBeans, Version 3 (EJB3) Programming

What are the characteristics of Object Oriented programming language?

(All chapters begin with an Introduction end with a Summary, Exercises, and Reference and Bibliography) Preliminaries An Overview of Database

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington

Comparative Study on Object Persistence Methods

Storing Java Objects in any Database

Chapter 13 Introduction to SQL Programming Techniques

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

WA1278 Introduction to Java Using Eclipse

; Spring 2008 Prof. Sang-goo Lee (14:30pm: Mon & Wed: Room ) ADVANCED DATABASES

Unit 2. Unit 3. Unit 4

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

object/relational persistence What is persistence? 5

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

C++ (Non for C Programmer) (BT307) 40 Hours

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

Glossary. abort. application schema

Object Persistence Techniques - A Study of Approaches, Benefits, Limits and Challenges

Understanding Impact of J2EE Applications On Relational Databases. Dennis Leung, VP Development Oracle9iAS TopLink Oracle Corporation

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

Data about data is database Select correct option: True False Partially True None of the Above

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 8. Data Management Layer Design

Notes on. Advanced Database management system (504) Mrinal Paul Department of Computer Science Assam University, Silcher

ODMG Object Programming Language Bindings

1 ODBMS vs RDBMS 1. 3 Resources 16

Java Object Oriented Design. CSC207 Fall 2014

Review -Chapter 4. Review -Chapter 5

CHAPTER 2 LITERATURE REVIEW

CS Final Exam Review Suggestions

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Topic 3 Object Relational Database

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Introduction: Database Concepts Slides by: Ms. Shree Jaswal

The functions performed by a typical DBMS are the following:

Table of Contents. I. Pre-Requisites A. Audience B. Pre-Requisites. II. Introduction A. The Problem B. Overview C. History

FUNDAMENTALS OF. Database S wctpmc. Shamkant B. Navathe College of Computing Georgia Institute of Technology. Addison-Wesley

SQL Interview Questions

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

2. The object-oriented paradigm

Chapter 6 Object Persistence, Relationships and Queries

HAS-A Relationship. If A uses B, then it is an aggregation, stating that B exists independently from A.

Overview. Database Application Development. SQL in Application Code. SQL in Application Code (cont.)

Database Application Development

Database Application Development

UNIT 1 INTRODUCTION TO OBJECT ORIENTED DATABASE MANAGEMENT SYSTEM

II B.Sc(IT) [ BATCH] IV SEMESTER CORE: RELATIONAL DATABASE MANAGEMENT SYSTEM - 412A Multiple Choice Questions.

Introduction to Information Systems

Deccan Education Society s FERGUSSON COLLEGE, PUNE (AUTONOMOUS) SYLLABUS UNDER AUTONOMY. FIRST YEAR B.Sc. COMPUTER SCIENCE SEMESTER I

2. The object-oriented paradigm!

ACRONYMS AND GLOSSARY

Transcription:

Introduction to Databases Object and Object-Relational Databases Prof. Beat Signer Department of Computer Science Vrije Universiteit Brussel http://vub.academia.edu/beatsigner 2 December 2005

Impedance Mismatch Revisited Combination of SQL with a host language mix of declarative and procedural programming paradigms two completely different data models different set of data types Interfacing with SQL is not straightforward data has to be converted between host language and SQL due to the impedance mismatch ~30% of the code and effort is used for this conversion! The problem gets even worse if we would like to use an object-oriented host language two approaches to deal with the problem - object databases (object-oriented databases) - object-relational databases Beat Signer - Department of Computer Science - bsigner@vub.ac.be 2

Impedance Mismatch Revisited... public float getaveragecdlength() { float result = 0.0; try { Connection conn = this.openconnection(); Statement s = conn.createstatement(); ResultSet set = s.executequery("select length FROM CD"); int i = 0; while (set.next()) { result += set.getint(1); i++; } return result/i; } catch (SQLException e) { System.out.println("Calculation of average length failed."); return 0; } } Note that it would be easier to use the SQL AVG operator Beat Signer - Department of Computer Science - bsigner@vub.ac.be 3

Object Databases ODBMSs use the same data model as object-oriented programming languages no object-relational impedance mismatch due to a uniform model An object database combines the features of an objectoriented language and a DBMS (language binding) treat data as objects - object identity - attributes and methods - relationships between objects extensible type hierarchy - inheritance, overloading and overriding as well as customised types declarative query language Beat Signer - Department of Computer Science - bsigner@vub.ac.be 4

Persistent Programming Languages Several approaches have been proposed to make transient programming language objects persistent persistence by class - declare that a class is persistent - all objects of a persistent class are persistent whereas objects of non-persistent classes are transient - not very flexible if we would like to have persistent and transient objects of a single class - many ODBMS provide a mechanism to make classes persistence capable persistence by creation - introduce new syntax to create persistent objects - object is either persistent or transient depending on how it was created persistence by marking - mark objects as persistent after creation but before the program terminates Beat Signer - Department of Computer Science - bsigner@vub.ac.be 5

Persistent Programming Languages... persistence by reachability - one or more objects are explicitly declared as persistent objects (root objects) - all the other objects are persistent if they are reachable from a root object via a sequence of one or more references - easy to make entire data structures persistent Beat Signer - Department of Computer Science - bsigner@vub.ac.be 6

ObjectStore Example Persistence by reachability via specific database roots Person ariane = new Person("Ariane Peeters") db.createroot("persons", ariane); Persistence capable classes post-processor makes specific classes persistent capable Persistent aware classes can access and manipulate persistent objects (not persistent) Three states after a persistent object has been loaded hollow: proxy with load on demand (lazy loading) active: loaded in memory and flag set to clean stale: no longer valid (e.g. after a commit) Beat Signer - Department of Computer Science - bsigner@vub.ac.be 7

ObjectStore Example... Post processing (1) compile all source files javac *.java (2) post-process the class files to generate annotated versions of the class files osjcfp dest. inplace *.class (3) run the post-processed main class java mainclass Beat Signer - Department of Computer Science - bsigner@vub.ac.be 8

ODBMS History First generation ODBMS 1986 - G-Base (Graphael, F) 1987 - GemStone (Servio Corporation, USA) 1988 - Vbase (Ontologic) - Statice (Symbolics) Second generation ODBMS 1989 - Ontos (Ontos) - ObjectStore (Object Design) - Objectivity (Objectivity) - Versant ODBMS (Versant Object Technology) Beat Signer - Department of Computer Science - bsigner@vub.ac.be 9

ODBMS History... 1989 - The Object-Oriented Database System Manifesto Third generation ODBMS 1990 - Orion/Itasca (Microelectronis and Computer Technology Cooperation, USA) - O 2 (Altaïr, F) - Zeitgeist (Texas Instruments) Further developments 1991 - foundation of the Object Database Management Group (ODMG) 1993 - ODMG 1.0 standard Beat Signer - Department of Computer Science - bsigner@vub.ac.be 10

ODBMS History... 1996 - PJama (Persistent Java) 1997 - ODMG 2.0 standard 1999 - ODMG 3.0 standard 2001 - db4o (database for objects)... Beat Signer - Department of Computer Science - bsigner@vub.ac.be 11

The Object-Oriented Database Manifesto There have been different attempts to define object-oriented databases One of the efforts was the Object-Oriented Database System Manifesto by Atkinson et. al defines 13 mandatory features that an object-oriented database system must have - 8 object-oriented system features - 5 DBMS features optional features - multiple inheritance, type checking, versions,... open features - points where the designer can make a number of choices Malcolm Atkinson Beat Signer - Department of Computer Science - bsigner@vub.ac.be 12

The Object-Oriented Database Manifesto... Object-oriented system features complex objects - complex objects built from simple ones by constructors (e.g. set, tuple and list) - constructors must be orthogonal object identity - two objects can be identical (same object) or equal (same value) encapsulation - distinction between interface and implementation types and classes - type defines common features of a set of objects - class as a container for objects of the same type type and class hierarchies overriding, overloading and late binding Beat Signer - Department of Computer Science - bsigner@vub.ac.be 13

The Object-Oriented Database Manifesto... computational completeness - should be possible to express any computable function using the DML extensibility - set of predefined types - no difference in usage of system and user-defined types DBMS features persistence - orthogonal persistence (persistence capability does not depend on type) secondary storage management - index management, data clustering, data buffering, access path selection and query optimisation concurrency - atomicity, consistency, isolation and durability (ACID) - serialisability of operations Beat Signer - Department of Computer Science - bsigner@vub.ac.be 14

The Object-Oriented Database Manifesto... recovery - in case of hardware or software failures, the system should recover ad hoc query facility - high-level declarative query language The OODBS Manifesto lead to discussion and reactions form the RDBMS community Third-Generation Database System Manifesto, Stonebraker et al. The Third Manifesto, Darwen and Date Issues not addressed in the manifesto database evolution constraints object roles... Beat Signer - Department of Computer Science - bsigner@vub.ac.be 15

ODMG Object Database Management Group (ODMG) founded in 1991 by Rick Cattell standardisation body including all major ODBMS vendors Define a standard to increase the portability accross different ODBMS products Object Model Object Definition Language (ODL) Object Query Language (OQL) language bindings - C++, Smalltalk and Java bindings Rick Cattell Beat Signer - Department of Computer Science - bsigner@vub.ac.be 16

ODMG Object Model ODMG object model is based on the OMG object model Basic modelling primitives object: unique identifier literal: no identifier An object's state is defined by the values it carries for a set of properties (attributes or relationships) An object's behaviour is defined by the set of operations that can be executed Objects and literals are categorised by their type (common properties and common behaviour) Beat Signer - Department of Computer Science - bsigner@vub.ac.be 17

Types Specification properties (attributes and relationships) operations exceptions Implementation language binding a specification can have more than one implementation Beat Signer - Department of Computer Science - bsigner@vub.ac.be 18

Type Specifications Interface defines only abstract behaviour attribute declarations in an interface define only abstract behaviour (can be implemented as a method!) Class defines abstract behaviour and abstract state Literal defines abstract state Beat Signer - Department of Computer Science - bsigner@vub.ac.be 19

Objects Atomic objects user defined no built-in atomic object types Collection objects Set<t> Bag<t> List<t> Array<t> Dictionary<t,v> Structured objects Date, Interval, Time, Timestamp Beat Signer - Department of Computer Science - bsigner@vub.ac.be 20

Literal Types Atomic literals long, long long, short, unsigned long, unsigned short, float, double, boolean, octet, char, string, enum Collection literals set<t> bag<t> list<t> array<t> dictionary<t,v> Structured literals date, interval, time, timestamp user defined structures (struct) Beat Signer - Department of Computer Science - bsigner@vub.ac.be 21

Relationships One-to-one, one-to-many or many-to-many relationships with referential integrity maintained by the system class Assistant {... relationship set<exercisegroup> leads inverse ExerciseGroup::isLeadBy;... } class ExerciseGroup {... relationship Assistant isleadby inverse Assistant::leads;... } Beat Signer - Department of Computer Science - bsigner@vub.ac.be 22

Behaviour Behaviour is specified as a set of operation signatures An operation signature defines name of the operation names and types of arguments type of return value names of exceptions Beat Signer - Department of Computer Science - bsigner@vub.ac.be 23

Inheritance of Behaviour A subtype may define new behaviour in addition to the one defined in its supertypes refine a supertype's behaviour interface Contact {...} interface Person : Contact {...} interface ETHPerson : Person {...} Beat Signer - Department of Computer Science - bsigner@vub.ac.be 24

Inheritance of State and Behaviour Keyword EXTENDS A subclass inherits all the properties and behaviour of its superclass interface Contact {...} interface Student {...} class Person : Contact {...} class ETHPerson extends Person : Student {...} Beat Signer - Department of Computer Science - bsigner@vub.ac.be 25

Object Definition Language (ODL) Example hasprerequisites isprerequisitefor Course hassessions Employee Salary StudentI Assistant Professor Student isattendedby issessionof attends leads Session Lecture Exercise istaughtby isleadby teaches one-to-one one-to-many many-to-many is-a extends Beat Signer - Department of Computer Science - bsigner@vub.ac.be 26

ODL Example... module Education { exception SessionFull{};... class Course (extent courses) { attribute name; relationship Department offeredby inverse Department::offers; relationship list<session> hassessions inverse Session::isSessionOf; relationship set<course> hasprerequisites inverse Course::isPrerequisiteFor; relationship set<course> isprerequisitefor inverese Course::hasPrerequisites; }; class Salary (extent salaries) { attribute float base; attribute float bonus; }; Beat Signer - Department of Computer Science - bsigner@vub.ac.be 27

ODL Example... class Session (extent sessions) { attribute string number; relationship Course issessionof inverse Course::hasSessions; relationship set<student> isattendedby inverse Student::attends; }; class Lecture extends Session (extent lectures) { relationship Professor istaughtby inverse Professor::teaches; }; class Exercise extends Session (extent exercises) { attribute unsigned short maxmembers; relationship Assistant isleadby inverse Assistant::leads; }; Beat Signer - Department of Computer Science - bsigner@vub.ac.be 28

ODL Example... interface StudentI { attribute string name; attribute Address address; relationship set<session> attends inverse Session::isAttendeBy; }; class Student : StudentI (extent students) { attribute Address address; relationship set<session> attends inverse Session::isAttendedBy; }; class Employee (extent employees) { attribute string name attribute Salary salary; void hire(); void fire() raises (NoSuchEmployee); }; Beat Signer - Department of Computer Science - bsigner@vub.ac.be 29

ODL Example... class Professor extends Employee (extent professors) { attribute enum Type{assistant, full, ordinary} rank; relationship worksfor inverse Department:hasProfessors; relationship set<lectures> teaches inverse Session::isTaughtBy; }; class Assistant extends Employee : StudentI (extent assistants) { attribute Address address; relationship Exercise leads inverse Exercise::isLeadBy relationship set<session> attends inverse Session::isAttendedBy; }; Beat Signer - Department of Computer Science - bsigner@vub.ac.be 30

"ODMG 4.0" Standard After the ODMG 3.0 standard the group disbanded ODMG Java language binding formed basis for the Java Data Objects (JDO) specification The OMG Object Database Technology Working Group (ODBT WG) was founded in 2005 due to the new interest in object databases ODBT WG is now working on a fourth version of an object database standard Beat Signer - Department of Computer Science - bsigner@vub.ac.be 31

Object Databases Many ODBMS also implement a versioning mechanism Many operations are performed by using a navigational rather than a declarative interface following pointers In addition, an object query language (OQL) can be used to retrieve objects in a declarative way some systems (e.g. db4o) also support native queries Faster access than RDBMS for many tasks no join operations required However, object databases lack a formal mathematical foundation! Beat Signer - Department of Computer Science - bsigner@vub.ac.be 32

Object-Relational Mapping "Automatic" mapping of object-oriented model to relational database developer has to deal less with persistence-related programming Hibernate mapping of Java types to SQL types generates the required SQL statements behind the scene standalone framework Java Persistence API (JPA) Enterprise Java Beans Standard 3.0 use annotations to define mapping javax.persistence package Beat Signer - Department of Computer Science - bsigner@vub.ac.be 33

Object-Relational Databases The object-relational data model extends the relational data model introduces complex data types object-oriented features extended version of SQL to deal with the richer type system Complex data types new collection types including multisets and arrays attributes can no longer just contain atomic values (1NF) but also collections nest and unnest operations for collection type attributes ER concepts such as composite attributes or multivalued attributes can be directly represented in the object-relational data model Beat Signer - Department of Computer Science - bsigner@vub.ac.be 34

Object-Relational Databases... Since SQL:1999 we can define user-defined types Type inheritance can be used for inheriting attributes of user-defined types Beat Signer - Department of Computer Science - bsigner@vub.ac.be 35

Object vs. Object-Relational Databases Object databases complex datatypes tight integration with an object-oriented programming language (persistent programming language) high performance Object-relational databases complex datatypes powerful query languages good protection of data from programming errors Beat Signer - Department of Computer Science - bsigner@vub.ac.be 36

Homework Study the following chapter of the Database System Concepts book chapter 9 - Object-Based Databases Beat Signer - Department of Computer Science - bsigner@vub.ac.be 37

Exercise 12 General Q&A about previous exercises Beat Signer - Department of Computer Science - bsigner@vub.ac.be 38

References A. Silberschatz, H. Korth and S. Sudarshan, Database System Concepts (Fifth Edition), McGraw-Hill, 2005 R. Cattell et al., The Object Data Standard: ODMG 3.0, Morgan Kaufmann, 2000 M. Atkinson et al., The Object-Oriented Database System Manifesto, Proceedings of 1st International Conference on Deductive and Object-Oriented Databases, Kyoto, Japan, December 1989 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 39

Next Lecture Current Trends and Review 2 December 2005