CSC/ECE 517 Fall 2010/ch2 2a aa

From Expertiza_Wiki
Revision as of 00:39, 21 September 2010 by Aamarna2 (talk | contribs)
Jump to navigation Jump to search

Language extensions for ORM


  1. Introduction to Object Relational Mapping.
  2. Why ORM, why not another solution?
  3. Flavors of ORM.
  4. ORM implementation in specific languages
    1. Groovy, Grails and GROM
      1. Creating classes and tables
      2. Basic CRUD
        1. Creating objects
        2. Reading objects
        3. Updating objects
        4. Deleting objects
    2. PHP
      1. Creating classes and tables
      2. Basic CRUD
        1. Creating objects
        2. Reading objects
        3. Updating objects
        4. Deleting objects


Introduction to Object Relational Mapping.

Object Relational Mapping is a technique of mapping the solution entities of an object oriented system, [1]objects to [2] relational database tables. This technique came into existence as an answer to the problem of lack of persistence of objects across session in [3]Object Oriented Programming Systems. For instance in a software solution to manage the order and inventory systems of a company, the objects that are part of the systems (orders, customers . . .) must be accessible even if the system was temporarily shut down for a while. [4]ORM helps in achieving this very essential requirement by bringing the database into the picture, more specifically bringing the RDBMS into the picture.


Why ORM, why not another solution?

The answer to this is quite an obvious one. ORM brings to the table something(s) that another solution hasn’t done so far. These “something(s)” that ORM contributes are listed below:

  1. Alleviates the problem that hinders a transition from one database provider to another database vendor or even another database product.
  2. Enables to perform most of the database operations ([5]mainly CRUD) without having to write any [6]SQL statements, thereby permitting a shift from one SQL dialect to another. This also allows the software solutions to focus more on the actual problem being solved rather that performing supplementary functions extensively.


Flavors of ORM solutions.

The term ORM is a very generic name for the class of solutions. Typically, ORM support in object oriented languages comes in two flavors; one that comes in separate packages which can be imported into our application, the other is the variety that comes incorporated into a language. When there is an option of choosing among the two flavors, the solution that come incorporated into the language is preferred. This choice may be quite an obvious one depending on the language that is being considered. Though the difference between the two might not be that apparent in the outset, the reason for this predilection towards the language incorporate solution over the other has mainly to do with design paradigm of the modern day software development of [7]“convention over configuration”. This paradigm emphasizes on the development by convention rather than development by configuration. The fact that the solution involving external packages and libraries involve a lot of configuration files which play the instructing role. In the language incorporated solution, such a problem doesn’t arise as the involvement of configuration files in the entire system itself is scanty. In the following sections we will take a look at two of the preferred language incorporated solutions.