Part 3: Object-Oriented Database Management Systems

Size: px
Start display at page:

Download "Part 3: Object-Oriented Database Management Systems"

Transcription

1 OODBMS 1/61 Part 3: Object-Oriented Database Management Systems Thomas Neumann

2 OODBMS 2/61 Literature R. Catell et al. The Object Data Standard: ODMG 3.0 Morgan Kaufmann, 2000 A. Kemper and G. Moerkotte. Object-Oriented Database Management: Applications in Engineering and Computer Science Prentice Hall, 1994 M. Stonebreaker. Object-Relational DBMSe: The Next Great Wave Morgan Kaufmann, 1996

3 OODBMS 3/61 Introduction Object-Oriented programming Why not relational? OODBMS ODMG 3.0 OQL Object-Relational DB Overview

4 OODBMS 4/ Introduction most currently used DBMSs relational assume large sets of uniform data not suited for heavily structured data OODBMSs can handle these firms don t want to switch relational DBMS become object-relational as compromise

5 OODBMS 5/ Object-oriented programming imperative languages Assembler, Fortran, C etc. sequence of commands performs operations on data object-oriented languages Smalltalk, C++, Java etc. object: combination of code and data offer an interface, hide the implementation concentrates on the algorithms

6 OODBMS 6/ Object-oriented programming (2) higher level of abstraction concentrates on behavior of objects (ADTs) easier code reuse better maintainable

7 OODBMS 7/ OOP - data encapsulation E.g. class Stack { private... public void push ( Object o ) ; public Object pop ( ) ; } objects define behavior implementation not visible implementation can easily be changed

8 OODBMS 8/ OOP - inheritance/substitutability class F i l e { public s t r i n g getpath ( ) ; } class NFAFile extends F i l e { public s t r i n g g e t S e r v e r ( ) ; } NFSFile has all features of File NFSFile can be used where File is expected code for File can handle different files code can be reused

9 OODBMS 9/ OOP - polymorphism E.g. class Container { public int g e t S i z e ( ) ; } class L i s t extends Container { public int g e t S e r v e r ( ) ; } derived class can change behavior still same interface substitutability allows generic programming

10 OODBMS 10/ Why not relational? RDBMSs store data in tables operate on sets of uniform data similar to records in imperative languages OOP usually uses more complex data RDBMS cannot store that efficient

11 OODBMS 11/61 E.g. 3 entities: Vehicle Car is-a Vehicle Bicycle is-a Vehicle Problems: which relations? queries about all vehicles? redundancy? 3.2 Generalization

12 OODBMS 12/61 E.g.3 entities PostalCode Address contains PostalCode Firm contains Address Problems different relations? different entities? contained in different entities? queries? 3.3 Aggregation

13 OODBMS 13/61 E.g. Person.Phone Car.ColorsPossible Database.Administrators Problems not supported by RDBMS must use relations cumbersome performance 3.4 Set-valued data

14 OODBMS 14/61 E.g. coordinates distance rotate translate Problems only UDTs/UDFs not complex objects separate from application cumbersome 3.5 Behavior

15 OODBMS 15/ Impedence Mismatch RDBMSs interpret data in terms of sets applications interpret data in terms of (linked) records data access has to be mapped cumbersome performance

16 OODBMS 16/ OODBMS stores application data native data access eliminates I/O code blurs the distinction between application and DBMS natural storage for OO languages

17 OODBMS 17/ OODBMS (2) Wanted features (not all OODBMSs provided all of them) persistent objects representation independence transactions queries client/server Persistent languages provide a subset

18 OODBMS 18/ Persistent objects - OID (1) In a relational database: employee name floor Smith 2 After department name floor Marketing 1 Research 2 update department set f l o o r=f l o o r +1 Smith works in Marketing. linking using values identity through contents

19 OODBMS 19/ Persistent objects - OID (2) In an object-oriented database employee department OID name floor OID name department oid 2 Marketing 1 oid 1 Smith oid 3 oid 3 Research 2 After an update Smith still works in Research. linking using a unique id object identity object independent of values

20 OODBMS 20/ Persistent objects - OODBMS vs. RDBMS A rough comparison: OODB object type (extent) OID SQL tuple relation key RDBMSs think in (multi-)sets OODBMSs think in distinct objects a key is unique in a single relation an OID is unique in the whole database

21 OODBMS 21/ Persistent objects - API application objects map directly to database objects database access is transparent database ensures pointer consistency persistence either explicit or by reachability

22 OODBMS 22/ Representation independence objects not BLOBs database knows the schema application vs. internal representation different programming languages little endian vs. big endian

23 OODBMS 23/61 As relational databases: ACID atomicity consistency isolation durability 4.4 Transactions

24 OODBMS 24/ Queries in RDBMSs data is accessed using queries in OODBMSs queries not required direct navigation possible but queries easier to use queries more efficient

25 OODBMS 25/ Client/server application and database separated optional network connection multi-user prevents some naive implementation techniques

26 OODBMS 26/ ODMG 3.0 industry standard for OODBMSs version , ODL to describe objects OQL as query language language bindings for C++, Smalltalk and Java currently only Java binding commonly used

27 OODBMS 27/ Developing general applications for OODBMSs 1. analysis/conceptual/logical design 2. physical database design in ODL 3. ODL is used to create code for application language 4. application language accesses objects via ODMG API 5. user code and generated code compiled and links Pros: language independent, rich semantics Cons: generated code, somewhat inconvenient

28 OODBMS 28/ Developing Java applications for OODBMSs 1. analysis/conceptual/logical design 2. physical database design directly in Java 3. application uses objects like normal Java objects 4. application compiled 5. database features by post-processing.class files Pros: convenient, no generated code Cons: no formal specification, language dependent, less semantics

29 OODBMS 29/ ODL - example module traffic { class Vehicle { }; class Car : Vehicle (extent cars) { attribute long kms; relationship Person owner inverse Owner::cars; // Operations }; class Person (extent persons) { attribute string name; attribute date birth; relationship set<car> cars inverse Car::owner; }; }

30 OODBMS 30/ ODL specifies data types replaces explicit create table also specifies relationships more semantically rich than for example Java operations can also be specified would require code in database (wishful thinking)

31 OODBMS 31/61 ODL specification: 5.7 ODMG Java API - example (1) class Node { attribute long value; attribute Node left; attribute Node right; };

32 OODBMS 32/61 generate Java code: 5.7 ODMG Java API - example (2) public class Node { public int value; public Node left; public Node right; static Node createsometree(); // User code static void traverse(node root); // User code }; // Some DB specific code...

33 OODBMS 33/ ODMG Java API - example (3) public class StoreTree { public static final void main(string[] args) { try { Implementation impl=mydb.getimplementation(); Database db=impl.newdatabase(); db.open( test,database.open READ WRITE); Transaction trans=impl.newtransaction(); trans.begin(); db.bind(createsometree(), root ); trans.commit(); db.close(); } catch (Exception e) { e.printstacktrace(); } } }

34 OODBMS 34/ ODMG Java API - example (4) public class RetrieveTree { public static final void main(string[] args) { try { Implementation impl=mydb.getimplementation(); Database db=impl.newdatabase(); db.open( test,database.open READ ONLY); Transaction trans=impl.newtransaction(); trans.begin(); traverse((node)db.lookup( root )); trans.commit(); db.close(); } catch (Exception e) { e.printstacktrace(); } } }

35 OODBMS 35/ ODMG - Interface public interface Implementation { Transaction newtransaction(); Database newdatabase(); OQLQuery newoqlquery(); DList newdlist(); DBag newdbag(); // Some more for collections and helpers } abstraction from the actual implementation allows to change the DBMS easily

36 OODBMS 36/61 public interface Transaction { void begin(); void abort(); void checkpoint(); void commit(); void lock(object o,int mode); // Some more } 5.9 ODMG - Transaction interface for transaction management every database operations requires an active transaction

37 OODBMS 37/ ODMG - Database public interface Database { void open(string name,int mode); void close(); void checkpoint(); void bind(object o,string name); Object lookup(string name); void unbind(string name); void makepersistent(object o); void deletepersistent(object o); } interface to the database handles actual manipulation

38 OODBMS 38/61 public interface OQLQuery { void create(string oql); void bind(object parameter)); Object execute(); } OQL interface allows parameter binding result depends on query 5.11 ODMG - OQLQuery

39 OODBMS 39/ ODMG - collections persistent collections DSet/DBag/DList/DArray/DMap base class DCollection implement java.util.{set List Map} additional set operations suited for database storage

40 OODBMS 40/ OQL declarative query language standard query language for OODBMSs aims to be similar to SQL cleaner language can handle set value attributes pointer chasing

41 OODBMS 41/ simple OQL 5 Smith 6*7 Doesn t require a select statement, any expression can be used

42 OODBMS 42/ path expressions car car.owner car.owner.birth.year car.owner.birth-today() Requires a join in SQL. An OODBMS is free to use a join or not.

43 OODBMS 43/ object creation Person(name: Smith birth:today()) struct(year:2002 month:10 day:28) bag(1,2,2,3,4) set(1,2,3,4) list(4,3,6,3)

44 OODBMS 44/ UNDEFINED assume that car.owner is nil. then car.owner.birth results in UNDEFINED. any comparison with UNDEFINED is false any other operation results in an exception check for undefined: is undefined(car.owner.birth)

45 OODBMS 45/ aggregation min, max, avg and sum can be used with sets of numbers count can be used for any set E.g. avg(cars.kms) count(persons)

46 OODBMS 46/ select-from-where select from where p persons p p.name= Smith Result: bag<person> select distinct p from persons p where p.name= Smith Result: set<person>

47 OODBMS 47/ syntax variations The following expressions are equivalent: select distinct p from persons p where p.name= Smith select distinct p from p in persons where p.name= Smith select distinct p from persons as p where p.name= Smith

48 OODBMS 48/ joins and nested queries select distinct p,(select avg(kms) from p.cars) from persons p, (select c from cars c where c.kms>100000) as c where c in p.cars joins as in SQL nested queries more powerful nesting allowed at any place

49 OODBMS 49/ quantifiers select from where select from where p persons p exists c in p.cars: c.kms> p persons p for all c in p.cars: c.kms<10000

50 OODBMS 50/ set comparisons (select from where <= (select from where p persons p exists c in p.cars: c.kms>100000) p persons p p.birth.year<1970) <= tests for subset also possible: <, =, >, >=

51 OODBMS 51/ collection operations (select from where intersect (select from where p persons p exists c in p.cars: c.kms>100000) p persons p p.birth.year<1970) also possible: union, except can be used for any collection

52 OODBMS 52/ grouping select from p (select p as p, sum(select kms from p.cars) as kms from persons p) group by many: kms> normal: (10000<=kms) and (kms<=100000) few: kms<10000 Result type: set<struct(many: bool, normal: bool, few: bool, partition: bag<person>)>

53 OODBMS 53/61 definition: 6.14 named queries define select from where drivers(min) as p persons p (select sum(kms) from p.cars)>=min usage: select p from p in drivers(100000) where p.birth.year > 1980

54 OODBMS 54/ object-relational DBMSs currently RDBMSs are used OO features would be nice / are required object-relational DBMS offer some OO features currently each vendor provides its own features SQL-99 tries to standardize currently OO features are very limited

55 OODBMS 55/ UDTs create type coord as long decimal(8,4), lat decimal(8,4) not final method distance(c coord) returns decimal(8,4); Usage: create table cities ( name varchar(100), pos coord); insert into cities values( Mannheim,coord(9.29,49.29));

56 OODBMS 56/ Methods for UDTs create method distance ( c coord) returns decimal (8,4) deterministic contains sql for coord... Usage select from where a.name, b.name cities a, cities b a.pos.distance(b.pos)<50 and a.name<b.name

57 OODBMS 57/61 create table positions of coord ref is oid; create table cities ( name varchar(100), pos ref(coord)); 7.4 Typed tables based on UDTs insert into positions values(9.24,49.29) insert into cities select Mannheim,p from positions p where p.lat==9.24 and p.long=49.29; elements of positions are objects of their own

58 OODBMS 58/ Inheritance with UDTs create type hcoord under coord as height decimal(8,4), not final; inherits all properties of coord limited substitutability no (dynamic) polymorphism

59 OODBMS 59/ Distinct types create type EURO as decimal (8,2) final create type USD as decimal (8,2) final no automatic conversion explicit casts required

60 OODBMS 60/ Further UDT features create table... under... create cast create ordering create transform (host language interface)

61 OODBMS 61/61 Summary OODBMS allow efficient handling of structured data comfortable API and query functionality ORDBMS as compromise between OODBMS and RDBMS future RDBMS will be OR, OO features will increase

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

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their products. These companies are promoting a new, extended version

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

3. Object-Oriented Databases

3. Object-Oriented Databases 3. Object-Oriented Databases Weaknesses of Relational DBMSs Poor representation of 'real world' entities Poor support for integrity and business rules Homogenous data structure Limited operations Difficulty

More information

Chapter 12 Object and Object Relational Databases

Chapter 12 Object and Object Relational Databases Chapter 12 Object and Object Relational Databases - Relational Data Model - Object data model (OODBs) - Object-relational data models Traditional data models -network - hierarchical - relational They lack

More information

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

Object Query Standards by Andrew E. Wade, Ph.D. Object Query Standards by Andrew E. Wade, Ph.D. ABSTRACT As object technology is adopted by software systems for analysis and design, language, GUI, and frameworks, the database community also is working

More information

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

ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References ITCS 3160 Jing Yang 2010 Fall Class 16: Object and Object- Relational Databases (ch.11) Slides come from: References Michael Grossniklaus, Moira Norrie (ETH Zürich): Object Oriented Databases (Version

More information

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

Systems Analysis and Design in a Changing World, Fourth Edition. Chapter 12: Designing Databases Systems Analysis and Design in a Changing World, Fourth Edition Chapter : Designing Databases Learning Objectives Describe the differences and similarities between relational and object-oriented database

More information

DATABASE TECHNOLOGY - 1DL124

DATABASE TECHNOLOGY - 1DL124 1 DATABASE TECHNOLOGY - 1DL124 Summer 2007 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-sommar07/ alt. http://www.it.uu.se/edu/course/homepage/dbdesign/st07/ Kjell Orsborn

More information

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

Course Content. Object-Oriented Databases. Objectives of Lecture 6. CMPUT 391: Object Oriented Databases. Dr. Osmar R. Zaïane. University of Alberta 4 Database Management Systems Fall 2001 CMPUT 391: Object Oriented Databases Dr. Osmar R. Zaïane University of Alberta Chapter 25 of Textbook Course Content Introduction Database Design Theory Query Processing

More information

Chapter 6 Object Persistence, Relationships and Queries

Chapter 6 Object Persistence, Relationships and Queries Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 6 Object Persistence, Relationships and Queries Object Persistence

More information

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

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs Object Oriented Database Chapter 13 1 Object DBMSs Underlying concepts: Freely sharing data across processing routines creates unacceptable data dependencies All software should be constructed out of standard,

More information

Object-Relational and Nested-Relational Databases Dr. Akhtar Ali

Object-Relational and Nested-Relational Databases Dr. Akhtar Ali Extensions to Relational Databases Object-Relational and Nested-Relational Databases By Dr. Akhtar Ali Lecture Theme & References Theme The need for extensions in Relational Data Model (RDM) Classification

More information

ORDBMS - Introduction

ORDBMS - Introduction ORDBMS - Introduction 1 Theme The need for extensions in Relational Data Model Classification of database systems Introduce extensions to the basic relational model Applications that would benefit from

More information

Introduction. Example Databases

Introduction. Example Databases Introduction Example databases Overview of concepts Why use database systems Example Databases University Data: departments, students, exams, rooms,... Usage: creating exam plans, enter exam results, create

More information

Ch. 21: Object Oriented Databases

Ch. 21: Object Oriented Databases Ch. 21: Object Oriented Databases Learning Goals: * Learn about object data model * Learn about o.o. query languages, transactions Topics: * 21.1 * 21.2 * 21.3 * 21.4 * 21.5 Source: Ch#21, Bertino93, Kim

More information

ODMG 2.0: A Standard for Object Storage

ODMG 2.0: A Standard for Object Storage Page 1 of 5 ODMG 2.0: A Standard for Object Storage ODMG 2.0 builds on database, object and programming language standards to give developers portability and ease of use by Doug Barry Component Strategies

More information

COURSE 11. Object-Oriented Databases Object Relational Databases

COURSE 11. Object-Oriented Databases Object Relational Databases COURSE 11 Object-Oriented Databases Object Relational Databases 1 The Need for a DBMS On one hand we have a tremendous increase in the amount of data applications have to handle, on the other hand we want

More information

Of Objects and Databases: A Decade of Turmoil Michael J. Carey, David J. DeWitt. Discussion by: Shervin Presentation by: Roland

Of Objects and Databases: A Decade of Turmoil Michael J. Carey, David J. DeWitt. Discussion by: Shervin Presentation by: Roland Of Objects and Databases: A Decade of Turmoil Michael J. Carey, David J. DeWitt Discussion by: Shervin Presentation by: Roland Background Michael J. Carey - DBMS performance improvements, EXODUS - OO DBMS

More information

CHAPTER 2 LITERATURE REVIEW

CHAPTER 2 LITERATURE REVIEW CHAPTER 2 LITERATURE REVIEW 2.0 OVERVIEW This literature review is initially done on OOP, RDBMS, OODBMS and ORDBMS in terms of their basic concept and capability. Later on, their inter-relationship, pros

More information

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

Introduction: OO principles. Introduction: OO principles. 3 Object Oriented Database Systems. 3.1 Introduction: Why OO Databases Introduction: OO principles 3 Object Oriented Database Systems 3.1 Introduction 3.2 The ODMG data model 3.3 OQL in a nutshell 3.4 Persistence Architectures 3.5 The Object Protocol Model OO DB model: see

More information

Hands-on immersion on Big Data tools

Hands-on immersion on Big Data tools Hands-on immersion on Big Data tools NoSQL Databases Donato Summa THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Summary : Definition Main features NoSQL DBs classification

More information

W5.L2. Week 5, Lecture 2

W5.L2. Week 5, Lecture 2 W5.L2 Week 5, Lecture 2 Part 1: ODMG and ODMG s s object model Part 2: Introduction to Object Definition Language (ODL) Part 3: Introduction to Object-Relational Database Management Systems (OR-DBMS) M.

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information

Databases. Jörg Endrullis. VU University Amsterdam

Databases. Jörg Endrullis. VU University Amsterdam Databases Jörg Endrullis VU University Amsterdam Databases A database (DB) is a collection of data with a certain logical structure a specific semantics a specific group of users Databases A database (DB)

More information

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

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 8. Data Management Layer Design Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 8 Data Management Layer Design Data Management Layer Focus on how to manage data are stored that can be handled by the programs that run the system, including:

More information

Author's Prepublication Version

Author's Prepublication Version OBJECT DATA MODELS Susan D. Urban Arizona State University http://www.public.asu.edu/~surban Suzanne W. Dietrich Arizona State University http://www.public.asu.edu/~dietrich SYNONYMS ODB (Object Database),

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and

More information

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

Chapter 13. Object-Oriented Databases (from E&N and my editing) Chapter 13 Object-Oriented Databases (from E&N and my editing) Introduction Traditional Data Models : Hierarchical, Network (since mid- 60 s), Relational (since 1970 and commercially since 1982) Object

More information

MIS Database Systems.

MIS Database Systems. MIS 335 - Database Systems http://www.mis.boun.edu.tr/durahim/ Ahmet Onur Durahim Learning Objectives Database systems concepts Designing and implementing a database application Life of a Query in a Database

More information

Object Database Standards, Languages, and Design

Object Database Standards, Languages, and Design Object Database Standards, Languages, and Design Chapter 21 March 24, 2008 ADBS: OODB 1 Announcement HW 3: 10% Due 2 nd of June. Quiz 3 3% On Saturday May 11 Chapter 21 March 24, 2008 ADBS: OODB 2 Chapter

More information

BIS Database Management Systems.

BIS Database Management Systems. BIS 512 - Database Management Systems http://www.mis.boun.edu.tr/durahim/ Ahmet Onur Durahim Learning Objectives Database systems concepts Designing and implementing a database application Life of a Query

More information

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1 Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations

More information

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 21 1 Slide 21 1 Chapter 21 Object Database Standards, Languages, and Design Chapter 21Outline 1 Overview of the Object Model ODMG 2 The Object Definition Language DDL 3 The Object Query Language OQL 4 Overview

More information

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

Chapter 21 9/4/2012. Object Database Standards, Languages, and Design. Chapter 21Outline. Chapter Objectives. ODMG Objects and Literals Chapter 21 Object Database Standards, Languages, and Design Copyright 2004 Pearson Education, Inc. Chapter 21Outline 21.1 Overview of the Object Model ODMG 21.2 The Object Definition Language DDL 21.3

More information

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd.

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd. Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB Marc Stampfli Oracle Software (Switzerland) Ltd. Underestimation According to customers about 20-50% percent

More information

Storing Java Objects in any Database

Storing Java Objects in any Database Storing Java Objects in any Database Raimund K. Ege High Performance Database Research Center School of Computer Science, Florida International University University Park, Miami, FL 33199 E-mail:ege@cs.fiu.edu

More information

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright Java Basics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Java Concepts Syntax, Grammar, Formatting, Introduce Object-Orientated Concepts Encapsulation, Abstract Data, OO Languages,

More information

Database Fundamentals Chapter 1

Database Fundamentals Chapter 1 Database Fundamentals Chapter 1 Class 01: Database Fundamentals 1 What is a Database? The ISO/ANSI SQL Standard does not contain a definition of the term database. In fact, the term is never mentioned

More information

Concepts for Object-Oriented Databases

Concepts for Object-Oriented Databases Concepts for Object-Oriented Databases Chapter 20 March 24, 2008 ADBS: OODB 1 Chapter Outline Overview of O-O Concepts O-O Identity, Object Structure and Type Constructors Encapsulation of Operations,

More information

NoSQL systems: introduction and data models. Riccardo Torlone Università Roma Tre

NoSQL systems: introduction and data models. Riccardo Torlone Università Roma Tre NoSQL systems: introduction and data models Riccardo Torlone Università Roma Tre Leveraging the NoSQL boom 2 Why NoSQL? In the last fourty years relational databases have been the default choice for serious

More information

Inheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017

Inheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017 OOP components For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Data Abstraction Information Hiding, ADTs Encapsulation Type Extensibility Operator Overloading

More information

STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING

STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING OBJECT ORIENTED PROGRAMMING STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING 1. Object Oriented Programming Paradigms 2. Comparison of Programming Paradigms 3. Basic Object Oriented Programming

More information

CS511 Design of Database Management Systems

CS511 Design of Database Management Systems Announcements CS511 Design of Database Management Systems HW incremental release starting last Sun. Class will reschedule next week: time: Wednesday Tuesday 5pm, place: 1310 DCL Lecture 05: Object Relational

More information

Today s lecture. CS 314 fall 01 C++ 1, page 1

Today s lecture. CS 314 fall 01 C++ 1, page 1 Today s lecture Midterm Thursday, October 25, 6:10-7:30pm general information, conflicts Object oriented programming Abstract data types (ADT) Object oriented design C++ classes CS 314 fall 01 C++ 1, page

More information

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc. Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures

More information

Object-relational Databases. Extend relational databases with OO features

Object-relational Databases. Extend relational databases with OO features Object-relational Databases Extend relational databases with OO features 1 Recently seen (Meijer, Bierman: CACM 4/11) SQL Children point to parents Closed world Entities have identity (extensional) Necessarily

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

SQL Interview Questions

SQL Interview Questions SQL Interview Questions SQL stands for Structured Query Language. It is used as a programming language for querying Relational Database Management Systems. In this tutorial, we shall go through the basic

More information

Transparent Java access to mediated database objects

Transparent Java access to mediated database objects Transparent Java access to mediated database objects Mattias Bendtsen & Mats Björknert Thesis for the Degree of Master of Science Majoring in Computer Science, 10 credit points Spring 2001 Department of

More information

ODMG Object Programming Language Bindings

ODMG Object Programming Language Bindings ODMG Object Programming Language Bindings 1 Objectives Implement the abstract model mapping concepts mapping types mapping collections Adapt the model whenever necessary some concepts are not supported

More information

Scott Meder Senior Regional Sales Manager

Scott Meder Senior Regional Sales Manager www.raima.com Scott Meder Senior Regional Sales Manager scott.meder@raima.com Short Introduction to Raima What is Data Management What are your requirements? How do I make the right decision? - Architecture

More information

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 49 Plan of the course 1 Relational databases 2 Relational database design 3 Conceptual database design 4

More information

Use of Inheritance Feature in Relational Database Development

Use of Inheritance Feature in Relational Database Development Use of Inheritance Feature in Relational Database Development 1 A.V.Saurkar, 2 Prof. A.R. Itkikar 1,2 Department of Computer Science & Engineering Sipna s COET, SGBAU, Amravati (MH), India Abstract Currently

More information

Inheritance and Substitution (Budd chapter 8, 10)

Inheritance and Substitution (Budd chapter 8, 10) Inheritance and Substitution (Budd chapter 8, 10) 1 2 Plan The meaning of inheritance The syntax used to describe inheritance and overriding The idea of substitution of a child class for a parent The various

More information

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

Introduction. Course Overview Evolution and History of Database Management Systems Requirements of Object-Oriented Database Management Systems Object-Oriented Oriented Databases Introduction Course Overview Evolution and History of Database Management Systems Requirements of Object-Oriented Database Management Systems 1 Organisation Michael Grossniklaus

More information

Mappings and Queries. with. Hibernate

Mappings and Queries. with. Hibernate Mappings and Queries with Hibernate Mappings Collection mapping Mapping collection of values e.g. holidays, months Association mapping Mapping of relationships between two objects e.g. Account and AccountOwner

More information

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

Object Persistence Techniques - A Study of Approaches, Benefits, Limits and Challenges Volume * No.*, 2014 Object Persistence Techniques - A Study of Approaches, Benefits, Limits and Challenges Clarence J M Tauro Deparment of Computer Science Christ University, Bangalore, India Ritesh Kumar

More information

CSC 533: Organization of Programming Languages. Spring 2005

CSC 533: Organization of Programming Languages. Spring 2005 CSC 533: Organization of Programming Languages Spring 2005 Language features and issues variables & bindings data types primitive complex/structured expressions & assignments control structures subprograms

More information

PROGRAMMING IN C++ COURSE CONTENT

PROGRAMMING IN C++ COURSE CONTENT PROGRAMMING IN C++ 1 COURSE CONTENT UNIT I PRINCIPLES OF OBJECT ORIENTED PROGRAMMING 2 1.1 Procedure oriented Programming 1.2 Object oriented programming paradigm 1.3 Basic concepts of Object Oriented

More information

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 9: Mere om SQL. 30. marts Forelæser: Esben Rune Hansen

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 9: Mere om SQL. 30. marts Forelæser: Esben Rune Hansen Databasesystemer, forår 2006 IT Universitetet i København Forelæsning 9: Mere om SQL 30. marts 2006 Forelæser: Esben Rune Hansen Today s lecture Subqueries in SQL. Set operators in SQL. Security and authorization

More information

Constructs in Oracle

Constructs in Oracle 11. Object-Relational Constructs in Oracle 11-1 Part 11: Object-Relational References: Constructs in Oracle Jeffrey D. Ullman: Object-Relational Features of Oracle [http://infolab.stanford.edu/ ullman/fcdb/oracle/or-objects.html]

More information

The functions performed by a typical DBMS are the following:

The functions performed by a typical DBMS are the following: MODULE NAME: Database Management TOPIC: Introduction to Basic Database Concepts LECTURE 2 Functions of a DBMS The functions performed by a typical DBMS are the following: Data Definition The DBMS provides

More information

CS317 File and Database Systems

CS317 File and Database Systems CS317 File and Database Systems http://dilbert.com/strips/comic/1995-10-11/ Lecture 5 More SQL and Intro to Stored Procedures September 24, 2017 Sam Siewert SQL Theory and Standards Completion of SQL in

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Bonus Content. Glossary

Bonus Content. Glossary Bonus Content Glossary ActiveX control: A reusable software component that can be added to an application, reducing development time in the process. ActiveX is a Microsoft technology; ActiveX components

More information

Lecture 6 Introduction to Objects and Classes

Lecture 6 Introduction to Objects and Classes Lecture 6 Introduction to Objects and Classes Outline Basic concepts Recap Computer programs Programming languages Programming paradigms Object oriented paradigm-objects and classes in Java Constructors

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" Chapter 13 Object-Oriented Programming I am surprised that ancient and Modern writers have not attributed greater importance to the laws of inheritance..."

More information

Lecture 7: Data Abstractions

Lecture 7: Data Abstractions Lecture 7: Data Abstractions Abstract Data Types Data Abstractions How to define them Implementation issues Abstraction functions and invariants Adequacy (and some requirements analysis) Towards Object

More information

Introduction to Databases Object and Object-Relational Databases

Introduction to Databases Object and Object-Relational Databases 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

More information

Object-Relational Modeling

Object-Relational Modeling Object-Relational Modeling Holger Pirk Holger Pirk Object-Relational Modeling 1 / 44 Purpose of this Lecture Introduce Object-Relational-Mapping Understand the problem it solves Understand the problems

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented

More information

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL

More information

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

II B.Sc(IT) [ BATCH] IV SEMESTER CORE: RELATIONAL DATABASE MANAGEMENT SYSTEM - 412A Multiple Choice Questions. Dr.G.R.Damodaran College of Science (Autonomous, affiliated to the Bharathiar University, recognized by the UGC)Re-accredited at the 'A' Grade Level by the NAAC and ISO 9001:2008 Certified CRISL rated

More information

Chapter 4 Remote Procedure Calls and Distributed Transactions

Chapter 4 Remote Procedure Calls and Distributed Transactions Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

More information

Communication and Distributed Processing

Communication and Distributed Processing Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

More information

Glossary. abort. application schema

Glossary. abort. application schema Glossary abort An abnormal termination of a transaction. When a transaction aborts, its changes to the database are erased, and the database is effectively restored to its state as of the moment the transaction

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Comparative Study on Object Persistence Methods

Comparative Study on Object Persistence Methods Comparative Study on Object Methods Clarence J M Tauro Christ University Bangalore, India N Ganesan Director (MCA) RICM, Bangalore Ritesh Kumar Sahai Christ University Bangalore, India Sandhya Rani A Christ

More information

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

Object oriented databases a natural part of object oriented software development? Bachelor thesis in computer science. By Anders Carlsson Object oriented databases a natural part of object oriented software development? Bachelor thesis in computer science By Anders Carlsson Anders Carlsson, anders@actk.net Revision 1.5 January 2003 Supervisor

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

More information

Character Stream : It provides a convenient means for handling input and output of characters.

Character Stream : It provides a convenient means for handling input and output of characters. Be Perfect, Do Perfect, Live Perfect 1 1. What is the meaning of public static void main(string args[])? public keyword is an access modifier which represents visibility, it means it is visible to all.

More information

Project # 1: Database Programming

Project # 1: Database Programming Project # 1: Database Programming CSE462 Database Concepts Demian Lessa Department of Computer Science and Engineering State University of New York, Buffalo February 21, 2011 Outline 1 Database Programming

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Functional Programming. Big Picture. Design of Programming Languages

Functional Programming. Big Picture. Design of Programming Languages Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics

More information

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

Volume 5 Issue 3 (2017) ISSN International Journal of Advance Research and Innovation IJARI Software Professionals use Object Oriented data modeling instead of traditional relational data modeling Vijay Singh Department of Computer Science, KIT, Kanpur (UP) India Article Info: Article history:

More information

What is Data? ANSI definition: Volatile vs. persistent data. Data. Our concern is primarily with persistent data

What is Data? ANSI definition: Volatile vs. persistent data. Data. Our concern is primarily with persistent data What is Data? ANSI definition: Data ❶ A representation of facts, concepts, or instructions in a formalized manner suitable for communication, interpretation, or processing by humans or by automatic means.

More information

What is Data? Volatile vs. persistent data Our concern is primarily with persistent data

What is Data? Volatile vs. persistent data Our concern is primarily with persistent data What is? ANSI definition: ❶ A representation of facts, concepts, or instructions in a formalized manner suitable for communication, interpretation, or processing by humans or by automatic means. ❷ Any

More information

Topic 3 Object Relational Database

Topic 3 Object Relational Database Topic 3 Object Relational Database Limitation of Relational Data Model Uniformity Large number of similarly structure data Record orientation Basic data consists of fixed length records Small data items

More information

SQL STRUCTURED QUERY LANGUAGE

SQL STRUCTURED QUERY LANGUAGE STRUCTURED QUERY LANGUAGE SQL Structured Query Language 4.1 Introduction Originally, SQL was called SEQUEL (for Structured English QUery Language) and implemented at IBM Research as the interface for an

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED

More information

2.1. Concepts for Object Databases

2.1. Concepts for Object Databases UNIT -- 2 UNIT II -- OBJECT AND OBJECT RELATIONAL DATABASES Concepts for Object Databases: Object Identity Object structure Type Constructors Encapsulation of Operations Methods Persistence Type and Class

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Object Oriented Database

Object Oriented Database Object Oriented Database Group 4 Mathieu Metz Palani Kumaresan Napa Gavinlertvatana Kristine Pei Keow Lee Prabhu Ramachandran Outline Object definitions Object Structures Object-oriented concepts OODBS

More information

Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing.

Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline

More information

Abstraction עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Abstraction עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון Abstraction עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Tools for Programming Complex Software Fundamentally, people use only a few simple tools to create, understand, or manage complex systems

More information