Fall 2008 1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object...

16
Fall 2008 http://www.cis.ksu.edu 1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence

Transcript of Fall 2008 1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object...

Page 1: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 1

CIS 764 Database Systems Engineering

L18.2 : Object Relational Mapping …

….Object persistence

Page 2: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 2

CIS 764 Database Systems Engineering

Objects are transient .. they last as long as run environment is alive (as long as a middleware session)

Object persistence is the automatic save/load of object state to some persistent storage form (e.g. persisting between sessions). Example storage: binary data files (e.g. Word doc) XML files (e.g. UML XMI) relational data base (using SQL) <<<< Object data base Note: first three save only the state, not the methods.

http://www.idt.mdh.se/kurser/cd5130/msl/2006lp4/reports/drafts/object_persistence.pdf

Page 3: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 3

CIS 764 Database Systems Engineering

Object persistence

there are two issues:

the form (format) of persistent storage the mapping of scalar data values.

(e.g. Java and Oracle data types are not identical).

Page 4: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 4

CIS 764 Database Systems Engineering

Objects to relational data base (using SQL) is Object-Relational-Mapping.

It can go both ways: objects -> tables tables -> objects (you used this in ADF assignment)

Which way do we want to go?

Page 5: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 5

CIS 764 Database Systems Engineering

Which way do we want to go?

Ans1: Design at the conceptual level: ER conceptual domain model (class model)

Ans2: Build web applications for existing tables.

Ans2a: tuning the DB and sync the model

Page 6: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 6

CIS 764 Database Systems Engineering

Impedance mismatch … refers to the difference in concepts between object models and table model.

There is (IMHO) a reasonable mapping of object concepts to tables; not so clear mapping backwards.

See following for discussions of mismatch: http://c2.com/cgi/wiki?ObjectRelationalMapping

http://en.wikipedia.org/wiki/Object-Relational_impedance_mismatch

Page 7: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 7

CIS 764 Database Systems Engineering

Impedance mismatch … some issues:

  * single persistent object  may spans several  tables

        * objects "ownership“ ↔ relational               * Objects have "getters"; expensive to submit several queries for single row; use Value object w “putAll” , “getAll” methods.               * RDBMSs are  faster on global queries;              object faster for small scope (single objects).                  * inefficient to keep objects  synchronized with database

Page 8: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 8

CIS 764 Database Systems Engineering

One suggestion is to map to object database: not for 764 focus … inefficient for object persistence in 3 layer model

not likely transition for existing DB applications.

Page 9: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 9

CIS 764 Database Systems Engineering

OR tools available for most language platforms and target DBMS:

http://en.wikipedia.org/wiki/Object-relational_mapping

http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software

Page 10: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 10

CIS 764 Database Systems Engineering

Toplink  ( 1990 Smalltalk, ~ 1995 Java)  purchased by Oracle in 2002               objects and beans to DB or XML (targets multiple DBs)                integrated with JDeveloper;                http://www.oracle.com/technology/products/ias/toplink/index.html

http://en.wikipedia.org/wiki/TopLink … donated for open source Eclipse project, … used for Sun EJB3 reference implemenation

…. You implicitly used it for ADF homework

Page 11: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 11

CIS 764 Database Systems Engineering

   JDO       Java Data Objects  (~2003)     http://java.sun.com/products/jdo/                   a standard interface-based Java model abstraction of persistence;                   applications are portable, and independent of the underlying database (provided there is a JDO mapping)                    can be used with POJO  or with EJB; uses a persistence manager class;

but ... has not been a dominant technology                    

Page 12: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 12

CIS 764 Database Systems Engineering

  Hibernate   http://www.hibernate.org/    (~2004)   express queries in SQL extension (HQL) or native SQL  or with an object-oriented Criteria and Example API;          open source project ; entity manager for EJB3.0; generates a configuration file that defines the mapping key component of  JBoss  (http://www.jboss.com/products/index) 

         integrates with Eclipse   http://www.myeclipseide.com/ContentExpress-display-ceid-61.html                   the major ORM tool .

(See also Gardner Hibernate slides)                                                      

Page 13: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 13

CIS 764 Database Systems Engineering

     NHibernate …. port of  the core   to the .NET Framework;

Suspend2  http://www.suspend2.net/                       … Linux equivalent

Page 14: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 14

CIS 764 Database Systems Engineering

Ruby-on-Rails  http://www.rubyonrails.org/               a "full-stack"  framework for developing DB web applications;             follows the Model-View-Control pattern;            includes Active Record  persistence framework;                     an "agile programming" approach ... based on the Ruby language  http://www.ruby-lang.org/en/  (~1995) “Active Record” name comes from the pattern for object that wraps a DB row ( e.g. an entity ejb).

See also Enterprise patterns <<<<<<<<<<<<<<<<<<<< http://www.martinfowler.com/eaaCatalog/index.html

Page 15: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 15

CIS 764 Database Systems Engineering

Django      http://www.djangoproject.com/     (~2005)                 a high-level Python Web DB framework                    includes ORM … configuration defined in Python code.                 Includes a sample app in the tutorial .

Page 16: Fall 2008  1 CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.

Fall 2008 http://www.cis.ksu.edu 16

CIS 764 Database Systems Engineering

end.