1 / 16

Object-Relational Mapping in Database Systems Engineering

Understand how to persist and map objects to relational databases, address impedance mismatch, and evaluate ORM tools like Hibernate and Toplink.

etrisha
Download Presentation

Object-Relational Mapping in Database Systems Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CIS 764 Database Systems Engineering • L18.2 : Object Relational Mapping … • ….Object persistence 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 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). http://www.cis.ksu.edu

  4. CIS 764 Database Systems Engineering Objects torelational 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? 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 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 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 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. 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 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 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 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) 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 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 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 . http://www.cis.ksu.edu

  16. CIS 764 Database Systems Engineering end. http://www.cis.ksu.edu

More Related