ORM หรือ Object-relational mapping คือ การ map ระหว่าง ข้อมูลที่มีความสัมพันธ์ (Relational Database) ให้มาอยู่ในรูปแบบ Object-Oriented Language และ แปลงข้อมูลที่ในรูป Object-Oriented Language กลับไปเป็น ข้อมูลที่รูปแบบข้อมูลที่มีความสัมพัมธ์ (Relational Database) ซึ่งตัวแปลงข้อมูลนี้เราจะเรียกว่า ORM
           
            หากย้อนกลับไปเมื่อก่อน การพัฒนาระบบร่วมกับ ฐานข้อมูล (SQL) มีความนิยมกันมาก เพราะทำให้ง่ายต่อกับจัดเก็บข้อมูล และก็มีภาษา SQL เข้ามาเป็นตัวกลางในการเชื่อมระหว่าง ระบบกับฐานข้อมูล เพราะสามารถจัดการได้ง่ายมากขึ้น และฐานข้อมูลที่มีอยู่ในตลาด ก็รองรับภาษา SQL กันเกือบทั้งหมด
           
           ต่อมาหลังจากนั้นก็เข้าสู่ช่วงที่แนวคิด OOP ในการพัฒนาระบบต่างๆ คือแยกทุกอย่างออกเป็น Object ซึ่งทำให้ง่ายต่อการพัฒนาระบบอย่างมาก ง่ายต่อการแก้ไขระบบต่างๆในทุกๆส่วน แต่ยังติดปัญหาตรง ฐานข้อมูลที่ยังต้องทำการแปลงข้อมูลในรูปแบบของ Object กลับไปอยู่ในรูปแบบของภาษา SQL เพื่อสั่ง Query อีกที จึงเกิดแนวคิดของ ORM ขึ้นมานั่นเอง
           
          ซึ่งการทำข้อมูลในรูปแบบ ORM นี้ จะทำให้ นักพัฒนาโปรแกรม ไม่จำเป็นต้องเข้าไปยุ่งเกี่ยวกับ SQL Statement (แต่ก็ไม่ได้ทิ้งไปซะทั้งหมด)
          ORM ไม่ใช่ภาษาใหม่ เป็นแค่แนวคิดในการแปลงข้อมูล 2 ฝั่ง กลับไปกลับมา ซึ่ง ORM นี้ก็ทำหน้าที่เป็นตัวกลาง ในการแปลงข้อมูลให้เรา จากเดินที่เราเขียนโปรแกรม แค่เขียนโปรแกรมเชื่อมต่อไปฐานข้อมูลโดยตรง ก็มาเป็น เขียนโปรแกรมเชื่อมต่อไปยังตัวกลาง(ORM) ก่อนลงไปฐานข้อมูล ขั้นตอนอาจจะมากไปหน่อย แต่ง่ายต่อการพัฒนาโปรแกรมแน่นอน
ซึ่ง ภาษา JAVA ก็จะเรียก ORM ว่า Hibernate และ ตระกูล .NET จะเรียกว่า NHibernate แต่ภาษา PHP ก็มีหลายเจ้าที่ทำออกมาใช้แต่ยังไม่แพร่หลายมากนัก (ผมคิดว่านะ)
           
            องค์ประกอบที่สำคัญของ ORM
            1.ค่อยเป็นตัวกลางในการแปลงข้อมูล ให้สลับไปสลับมาระหว่าง Object กับ Relational
            2.จำเป็นต้องมีคำสั่งพื้นฐานของคำสั่ง SQL ไว้ เช่น Select,Update,Delete,Insert
            3.สามารถรองรับการ Query ในรูปแบบต่างๆ เพื่อรองรับกับความต้องการของนักพัฒนาระบบ
           
            สรุป
           การทำงานของ ORM ก็ใช้แค่เป็นตัวเอาไว้สลับ ระหว่าง ข้อมูลที่อยู่ในรูปแบบ Object แปลงไปเป็น ข้อมูลที่อยู่ในรูปแบบ ความสัมพันธ์ และดึงข้อมูลที่อยู่ในรูปแบบความสัมพันธ์ กลับไปเป็น ข้อมูลที่อยู่ในรูปแบบ Object และก็มีเครื่องมือที่เค้าพัฒนาตัว ORM นี้กันอยู่หลายตัวอยู่แล้ว ไม่จำเป็นต้องไม่สร้างขึ้นมาเอง แต่ให้เข้าใจรูปแบบการทำงาน คุณก็สามารถพัฒนาตามรูปแบบของ ORM ได้แล้วครับ

           ในการใช้งาน ORM นี้ในจะทำให้ช่วยให้เราสะดวกขึ้นมากในการพัฒนาระบบ แต่ก็ไม่ได้ตอบโจทย์การพัฒนาระบบทั้งหมด ในบางครั้งเราก็อาจจะเขียนในรูปแบบธรรมดาเพื่อความรวดเร็วในการพัฒนา แต่ถ้าจะพัฒนาในรูปแบบ ORM นี้ได้ก็จะดีเพราะสะดวกในการแก้ไขหรือปรับเปลื่ยนข้อมูลบางอย่างก็ไม่จำเป็นต้องเข้าไปแก้ในฐานข้อมูล แต่แก้ไขเฉพาะหน้า Coding ของเราเท่านั้นเอง 
           ซึ่งใน Framework PHP ของทางเว็บก็มีการพัฒนารูปแบบ ORM ขึ้นมาใช้เอง ซึ่งก็ไม่ได้ซับซ้อนอะไรมากนัก ทำมาเพื่อความสะดวกต้องการพัฒนาในทีมงานของเรา ฟังดูอาจจะซับซ้อนและยุ่งยาก แต่ถ้าเข้าใจรูปแบบแล้ว ไม่ยากอย่างที่คิด สนใจข้อมูลก็สามารถศึกษาต่อได้ที่ http://en.wikipedia.org/wiki/Object-relational_mapping