CIS 764 Database Systems Engineering L 11 Object
CIS 764 Database Systems Engineering L 11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence models Fall 2007 http: //www. cis. ksu. edu 1
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/cd 5130/msl/2006 lp 4/reports/drafts/object_persistence. p df Fall 2007 http: //www. cis. ksu. edu 2
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). Fall 2007 http: //www. cis. ksu. edu 3
CIS 764 Database Systems Engineering Objects to relational data base (using SQL) is Object-Relational-Mapping. It can go both ways: objects -> tables -> objects (you used this in ADF assignment) Fall 2007 http: //www. cis. ksu. edu 4
CIS 764 Database Systems Engineering Fall 2007 http: //www. cis. ksu. edu 5
CIS 764 Database Systems Engineering Fall 2007 http: //www. cis. ksu. edu 6
CIS 764 Database Systems Engineering Which way do we want to go? Fall 2007 http: //www. cis. ksu. edu 7
CIS 764 Database Systems Engineering Which way do we want to go? Ans 1: Design at the conceptual level: ER conceptual domain model (class model) Ans 2: Build web applications for existing tables. Fall 2007 http: //www. cis. ksu. edu 8
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: //c 2. com/cgi/wiki? Object. Relational. Mapping http: //en. wikipedia. org/wiki/Object-Relational_impedance_mismatch Fall 2007 http: //www. cis. ksu. edu 9
CIS 764 Database Systems Engineering Impedance mismatch … some issues: * single persistent object may spans several tables ↔ * objects "ownership“ * 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 Fall 2007 relational http: //www. cis. ksu. edu 10
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. Fall 2007 http: //www. cis. ksu. edu 11
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 Fall 2007 http: //www. cis. ksu. edu 12
CIS 764 Database Systems Engineering OR tools use w attributes in objects w configuration files w development wizards ( JDev) Fall 2007 http: //www. cis. ksu. edu 13
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/Top. Link … donated for open source Eclipse project, … used for Sun EJB 3 reference implemenation …. You implicitly used it for ADF homework Fall 2007 http: //www. cis. ksu. edu 14
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 Fall 2007 http: //www. cis. ksu. edu 15
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 EJB 3. 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/Content. Express-display-ceid-61. html the major ORM tool. Fall 2007 http: //www. cis. ksu. edu 16
CIS 764 Database Systems Engineering NHibernate …. port of the core to the. NET Framework; Suspend 2 http: //www. suspend 2. net/ … Linux equivalent Fall 2007 http: //www. cis. ksu. edu 17
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/eaa. Catalog/index. html Fall 2007 http: //www. cis. ksu. edu 18
CIS 764 Database Systems Engineering Django Fall 2007 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 19
CIS 764 Database Systems Engineering … many others. end. Fall 2007 http: //www. cis. ksu. edu 20
- Slides: 20