ORM (Object-Relational Mapping) คืออะไร?
ORM หรือ Object-Relational Mapping เป็นเทคนิคหนึ่งในการเขียนโปรแกรมที่ช่วยให้นักพัฒนาสามารถจัดการกับข้อมูลในฐานข้อมูลได้โดยใช้วิธีคิดแทนการใช้ภาษา SQL อย่างไร้สาระที่ดูยุ่งยากสำหรับหลายๆ คน
ถ้าเราจะอธิบายให้เข้าใจง่ายๆ ล่ะก็ ORM เหมือนเป็นตัวแปลภาษาที่ช่วยให้สองกลุ่มเพื่อนที่พูดภาษาต่างกันสามารถสื่อสารกันได้ สมมุติว่ามีเพื่อน 2 คน คนหนึ่งพูดภาษาคน (Object) และอีกคนพูดภาษาฐานข้อมูล (Relational Database) ORM ก็จะคอยแปลคำสั่งจากภาษาคนให้กลายเป็นภาษาฐานข้อมูล ทำให้ทั้งสองคนเข้าใจกันได้ง่ายขึ้นนั่นเอง
ในทางเขียนโปรแกรม มีประโยชน์อย่างไร?
อ้างอิงจากตัวอย่างที่เราพูดถึงกันครู่นี้ เราจะมองเห็นประโยชน์ของ ORM จากจุดที่มันทำให้การทำงานร่วมกันระหว่างโค้ดที่เราเขียนกับฐานข้อมูลสามารถทำได้แบบไร้รอยต่อ เราไม่ต้องคิดเรื่องภาษา SQL ที่ซับซ้อน ไม่ต้องกังวลเรื่องการเขียนโค้ดที่อาจจะส่งผลเสียต่อความปลอดภัยของข้อมูล, การจัดการข้อมูลง่ายขึ้น, และการโค้ดสามารถอ่านได้ง่ายและบำรุงรักษาได้สะดวกกว่า
ยกตัวอย่างแบบง่ายที่สุด
ลองนึกภาพถ้าเราไปร้านขายของแล้วเราต้องการซื้อของ แต่เราไม่รู้ว่าของชิ้นนั้นอยู่ที่ไหนในร้าน เราก็สามารถถามพนักงานและพนักงานจะนำของนั้นๆ มาให้เรา
ในการเขียนโปรแกรม เราอาจจะมีโค้ดพื้นฐานที่ต้องการดึงข้อมูลผู้ใช้ทั้งหมดจากฐานข้อมูลมาแสดงในแอปพลิเคชัน ถ้าถามจากฐานข้อมูลโดยใช้ SQL เราอาจจะเขียนประมาณนี้:
SELECT * FROM users;
แต่ถ้าใช้ ORM ที่เราเขียนด้วยภาษา Python และใช้ไลบรารีชื่อ SQLAlchemy (ซึ่งเป็นไลบรารี ORM ชื่อดังในภาษา Python) โค้ดจะเป็นแบบนี้:
users = session.query(User).all()
จะเห็นได้ว่า ORM ช่วยให้เราไม่ต้องจำรายละเอียดทางเทคนิคเกี่ยวกับ SQL แต่ใช้การสื่อสารที่เป็นธรรมชาติของภาษาโปรแกรมอย่าง Python ในการจัดการข้อมูล
สรุปแล้ว ORM เป็นเครื่องมือที่ช่วยให้นักพัฒนาไม่ต้องใช้เวลากับเรื่องที่ซับซ้อนซึ่งไม่จำเป็น ช่วยให้สามารถโฟกัสที่การสร้างฟีเจอร์และการทำให้โปรแกรมของเราทำงานได้ดีขึ้นได้ นี่คือเหตุผลที่การเรียนรู้เทคนิคเหล่านี้ รวมถึงหลักการและแนวคิดต่างๆ ในการเขียนโปรแกรมคือสิ่งที่จะทำให้คุณมีข้อได้เปรียบและสามารถพัฒนางานด้วยคุณภาพที่สูงขึ้น
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM