Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fall 2007 1 CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence.

Similar presentations


Presentation on theme: "Fall 2007 1 CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence."— Presentation transcript:

1 Fall 2007 http://www.cis.ksu.edu 1 CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence models

2 Fall 2007 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

3 Fall 2007 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).

4 Fall 2007 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)

5 Fall 2007 http://www.cis.ksu.edu 5 CIS 764 Database Systems Engineering

6 Fall 2007 http://www.cis.ksu.edu 6 CIS 764 Database Systems Engineering

7 Fall 2007 http://www.cis.ksu.edu 7 CIS 764 Database Systems Engineering Which way do we want to go?

8 Fall 2007 http://www.cis.ksu.edu 8 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.

9 Fall 2007 http://www.cis.ksu.edu 9 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

10 Fall 2007 http://www.cis.ksu.edu 10 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. * RDBMSs are faster on global queries; object faster for small scope (single objects). * inefficient to keep objects synchronized with database

11 Fall 2007 http://www.cis.ksu.edu 11 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.

12 Fall 2007 http://www.cis.ksu.edu 12 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

13 Fall 2007 http://www.cis.ksu.edu 13 CIS 764 Database Systems Engineering OR tools use w attributes in objects w configuration files w development wizards ( JDev)

14 Fall 2007 http://www.cis.ksu.edu 14 CIS 764 Database Systems Engineering Toplink ( ~ 1995 ??) 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

15 Fall 2007 http://www.cis.ksu.edu 15 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,http://java.sun.com/products/jdo/ 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

16 Fall 2007 http://www.cis.ksu.edu 16 CIS 764 Database Systems Engineering Hibernate http://www.hibernate.org/ (~2004)http://www.hibernate.org/ 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) http://www.jboss.com/products/index integrates with Eclipse http://www.myeclipseide.com/ContentExpress-display-ceid-61.html the major ORM tool.http://www.myeclipseide.com/ContentExpress-display-ceid-61.html

17 Fall 2007 http://www.cis.ksu.edu 17 CIS 764 Database Systems Engineering NHibernate …. port of the core to the.NET Framework; Suspend2 http://www.suspend2.net/ … Linux equivalenthttp://www.suspend2.net/

18 Fall 2007 http://www.cis.ksu.edu 18 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; ttp://www.rubyonrails.org/ an "agile programming" approach... based on the Ruby language http://www.ruby-lang.org/en/ (~1995)http://www.ruby-lang.org/en/ “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

19 Fall 2007 http://www.cis.ksu.edu 19 CIS 764 Database Systems Engineering Django http://www.djangoproject.com/ (~2005) a high-level Python Web DB framework http://www.djangoproject.com/ includes ORM … configuration defined in Python code. Includes a sample app in the tutorial.

20 Fall 2007 http://www.cis.ksu.edu 20 CIS 764 Database Systems Engineering … many others. end.


Download ppt "Fall 2007 1 CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence."

Similar presentations


Ads by Google