24 ม.ค. 2020 เวลา 01:18 • วิทยาศาสตร์ & เทคโนโลยี
Object Relational Mapping (ORM) มีความจำเป็นหรือไม่นั้นต้องมาทำความรู้จักก่อนว่ามันคืออะไร ?
1
https://na5cent.blogspot.com/2013/01/orm-object-relational-mapping-java.html
Object Relational Mapping (ORM) เป็นสิ่งที่ได้รับการกล่าวขานหรือกำลังเป็นที่นิยมอย่างมากในการพัฒนาระบบหรือแอพพิลเคชั่นในปัจจุบัน จึงมีคำถามตามมาต่าง ๆ นา ๆ ว่ามันจำเป็นที่จะต้องใช้งานจริงหรือแล้วทำไมถึงได้รับความนิยมอย่างมาก ก่อนจะสรุปว่า ORM มีความจำเป็นหรือไม่นั้นต้องมาทำความรู้จักก่อนว่ามันคืออะไร
ย้อนกลับไปเมื่อ 5-8 ปีที่ผ่านมาการพัฒนาระบบร่วมกับการใช้ฐานข้อมูลได้รับความนิยมอย่างมาก ด้วยเหตุผลคือง่ายต่อการเรียนรู้การจัดเก็บข้อมูลและมีภาษา SQL เป็นภาษากลางที่ช่วยให้การเข้าถึงฐานข้อมูลมีความง่ายมากขึ้น การพัฒนาแอพพลิเคชั่นจึงได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ มีภาษาเกิดขึ้นมารองรับการพัฒนาแอพพลิเคชั่นอย่างมากมาย และฐานข้อมูลเกือบทุกค่ายรองรับการใช้งานภาษา SQL ทำให้การเรียนรู้ภาษา SQL เพียงครั้งเดียวสามารถพัฒนาแอพพลิเคชั่นในหลาย ๆ ภาษาได้ง่ายขึ้น
ต่อจากนั้นการพัฒนาแอพพลิเคชั่นจึงเริ่มเข้าสู่ช่วงของการพัฒนาแอพพลิเคชั่นแบบ OOP ด้วยคุณสมบัติของ OOP (Inheritance,Polymorphism,Encapsulation) จึงทำให้การพัฒนาแอพพลิเคชั่นนันลดระยะเวลาของการพัฒนาแอพพลิเคชั่นลงไปได้มาก จนกระทั่งการพัฒนาแอพพลิเคชั่นแบบ OOP ร่วมกับฐานข้อมูลจึงไม่ได้อยู่เหนือความคาดหมายด้วยข้อดีของการนำ OOP มาพัฒนาแอพพลิเคชั่นด้วยฐานข้อมูลทำให้ระบบงานที่พัฒนาออกมาสามารถนำไปต่อยอดในอนาคตได้อย่างง่ายดาย บริษัทสามารถพัฒนา Product เป็นของตนเองออกมาจำหน่ายได้อย่างง่ายดาย
แต่โชคก็ไม่ได้เข้าข้างเสมอไป ในเมื่อการพัฒนาระบบงานแบบ OOP นั้นข้อมูลทุกอย่างต้องถูกจัดเก็บไว้ในรูปแบบของ Object แต่การจัดเก็บข้อมูลยังคงใช้ SQL เป็นภาษากลางในการบริหารจัดเก็บข้อมูล ทำให้ต้องเกิดการแปลงข้อมูลที่อยู่ใน Object กลับไปเป็นภาษา SQL ก่อนแล้วจึงสั่งให้คำสั่ง SQL นั้นทำงาน นึ่แหละคือฝันร้ายของการพัฒนาแอพพลิเคชั่น จึงเกิดคำถามขึ้นมาว่า "ทำไมไม่ทำให้ข้อมูลที่อยู่ใน object ไปโผล่ในฐานข้อมูลเลย จะต้องมานั่งแปลงทำไมให้เสียเวลา" จึงกลายเป็นคำถามที่ทำให้ ORM ถูกเกิดขึ้นมานั่นเอง
ด้วยคำถามที่ได้เกริ่นไปแล้ว จึงมีคนหัวใสคิดแนวความคิดของการทำ ORM ซึ่งก็คือการทำให้ข้อมูลที่อยู่ใน Object ไปโผล่ลงในฐานข้อมูล ในทางตรงกันข้ามก็สามารถทำให้ข้อมูลที่อยู่ในฐานข้อมูลไปโผล่เป็น object ในฝั่งของการเขียนโปรแกรมได้เลยโดยที่โปรแกรมเมอร์ไม่ต้องแตะหรือไม่ต้องเขียน SQL เลยแม้แต่คำสั่งเดียว นึ่แหละคือฝันอันหวานของโปรแกรมเมอร์ทั้งหลายที่ทำให้เราสามารถพัฒนาแอพพลิเคชั่นได้รวดเร็วยิ่งขึ้น
องค์ประกอบที่สำคัญของ ORM ต้องมีคือ
1. API กลางที่ช่วยทำหน้าที่ในการแปลงข้อมูลระหว่างฐานข้อมูลและ object รวมถึงคำสั่งพื้นฐานของการจัดการข้อมูลไม่ว่าจะเป็นการ Select,Insert,Update,Delete
2. ภาษาที่ใช้ในการเรียกใช้งานตัว ORM พูดง่าย ๆ คือภาษาที่ใช้ในการคิวรี่ข้อมูลภายใน object
แต่ข้อเสียที่จะเกิดตามมาเมื่อมีการนำ ORM มาใช้งานคือต้องมีการเรียนรู้ถึงภาษาของการคิวรี่ข้อมูลในแต่ละ ORM และต้องเรียนรู้ถึงวิธีการปรับแต่งความสามารถของ ORM เพิ่มเติมเนื่องจากบางครั้งความสามารถพื้นฐานที่ ORM ทำมาให้อาจจะไม่รองรับกับความต้องการที่โปรแกรมเมอร์ต้องการ ซึ่ง ORM ในปัจจุบันที่ได้รับความนิยมเช่น Hibernate,NHibernate,LINQ,SubSonic,Entity Framework,Active Record,Enterprise Library
ORM คืออะไร
ORM ย่อมาจาก Object / Relational Mapping หมายถึง
หมายถึง การ map ข้อมูลในตารางข้อมูลของฐานข้อมูลให้อยู่ในรูปของ object-oriented language ซึงจะเป็นการสร้าง Database แบบเสมือนขึ้นให้มาอยู่ในรูป language programming ทำให้ไม่ต้องไปยุ่งกับ SQL Statement ซึ่งถ้ามีการเปลี่ยนแปลงแก้ไขต้องแก้ไขที่ตัวโปรแกรมแทน และการกระทำต่างๆยังคงเป็นแบบ Relational เหมือนเดิม
เช่น มีตารางชื่อ product ก็จะแปลงมาเป็น class product คุณลักษณะ (attributes) ของตาราง product ก็จะถูแปลงมาเป็น object ใน class
ข้อดีของ ORM
จุดประสงค์หลักก้อคือ ลดการ Coding สำหรับนักพัฒนาที่ไม่ชอบไปยุ่งกับ SQL แต่ก็อย่าทิ้ง SQL นะครับ ถึงแม้ว่ามันจะมีตัวช่วยเข้ามาก็ตาม สามารถอ่านข้อมูลเพิ่มเติมได้จาก http://en.wikipedia.org/wiki/Object-relational_mapping ได้นะครับ
สรุปการนำ ORM มาใช้ในการพัฒนาแอพพลิเคชั่นในปัจจุบันนั้นเป็นเพียงแค่ตัวช่วยอำนวยความสะดวกเท่านั้นแต่ยังไม่จำเป็นต้องนำมาใช้ในการพัฒนาแอพพลิเคชั่น เพราะบางครั้งงานที่ทำต้องการความรวดเร็ว การใช้ของ SQL เดิมที่มีอยู่แล้วอาจจะช่วยให้งานเสร็จได้เร็วขึ้น ซึ่งจุดประสงค์จริง ๆ ของการนำ ORM เข้ามาใช้งานคือช่วยลดระยะเวลาของการเขียนโปรแกรมลงเท่านั้น
โฆษณา