Object-Relational mapping เรียกย่อๆ ว่า ORM ซึ่งเป็นวิธีการการ map ข้อมูลในรูปแบบตารางฐานข้อมูล ให้มาอยู่ในรูปแบบ object-oriented programming เมื่อจะจัดการกับข้อมูล เราก็ทำผ่าน class ที่ map กับตารางในฐานข้อมูล โดยที่เราไม่ต้องเขียน SQL statement ใดๆ เลย
ตัวอย่าง ORM framework ของ programming language ต่างๆ Entity Framework และ NHibernate สำหรับ .NET platform Hibernate สำหรับ Java Doctrine สำหรับ PHP
ประโยชน์ต่างๆ ที่ได้จากใช้ ORM
ช่วยให้เราสร้างระบบแบบ domain driven design ได้สะดวกขึ้น เพราะ ORM ช่วยให้เราออกแบบ model หรือ class ต่างๆ ได้ตรงตาม requirement ของ business โดยที่ไม่ต้องยึดติดกับโครงสร้าง database เพราะ ORM สามารถ map business logic กับ database ได้อย่างอิสระ
เมื่อเราออกแบบระบบเป็นแบบ domain driven design เราก็สามารถทำ unit test ได้สะดวกขึ้น สามารถเขียน unit test ทดสอบ business logic ต่างๆ ได้อย่างง่ายและครอบคลุม
ช่วยให้ทำงาน CRUD (Create, Read, Update, Delete) ได้อย่างสะดวก ไม่จำเป็นต้องเขียน SQL query เลย เขียน code ในการสร้าง อ่าน แก้ไข ลบข้อมูลใน database ผ่าน C#, Java, PHP ได้เลย
การแก้ไข model ทำที่เดียวที่เดียว ไม่จำเป็นต้องไล่ตามแก้ SQL query string find and replace ตามที่ต่างๆ ใน project
ช่วยให้เรา query database ด้วย programming language เช่น C#, Java, PHP สำหรับ C# และ Java เราจะได้ประโยชน์จาก compile time check, code refactor, IDE auto complete
มี Relationship ระหว่าง parent child ให้เรา navigate relationship ได้สะดวกผ่าน model programming language เช่น properties หรือ list
มีความยืดหยุ่นในการ load ข้อมูลจาก database เช่น จะโหลดมาแค่ object เดียว หรือโหลด child object หลายๆ ตัวมาด้วย หรือ lazy load ก็ได้
มี built-in การใช้งาน object/record ของ database พร้อมกันของ users หลายๆ คน เช่น optimistic concurrency
มี built-in cache ลดการ query ข้อมูลซ้ำโดยไม่จำเป็น เพิ่มประสิทธิภาพให้ application ทำงานได้ไวขึ้น
มี transaction management ให้ใช้งาน สามารถ commit/rollback การแก้ไข เปลี่ยนแปลงข้อมูลได้ หรือยกเลิกการแก้ไขได้สะดวก
มี primary key management ที่ช่วยให้เราเลือกได้ว่าจะใช้ primary key แบบใด และจะจัดการ assign ค่า primary key ให้ด้วย
จะเปลี่ยนไปใช้ RDMS อื่นๆ ก็สะดวก ทำได้ทันที ไม่ต้องมาปรับ SQL query รองรับ RDMS ดังๆ เกือบทั้งหมด MySQL, PostgreSQL, Oracle, MS SQL Server, SQLite ตัวอย่างเช่น ระบบเดิมใช้ MySQL จะปรับไปใช้ SQL Server ก็ทำได้ทำทัน
มี function ที่เพิ่มเข้ามาเพื่ออำนวยความสะดวกเช่น pagination, หรือ LINQ to NHibernate, LINQ to EF ที่ช่วยให้เรา query ผ่าน C#/VB.NET programming language
แปลและปรับปรุงเพิ่มเติมจาก https://devblogs.microsoft.com/gblock/ten-advantages-of-an-orm-object-relational-mapper/
ถ้าสนใจเรียนรู้เรื่อง ORM ด้วย Entity Framework ด้วย C# แบบเข้าใจ และนำไปใช้งานจริงได้ ตอนนี้นี้เรามี course "จาก SQL สู่ query แบบ OOP ด้วย Entity Framework และการประยุกต์ใช้ใน ASP.NET MVC/MVC Core"
วัน เวลา สถานที่
วันเสาร์และอาทิตย์ที่ 28, 29 ก.ย. เวลา 9.00 - 18.00 น. ComSci Cafe ติด BTS Bearing
course นี้เหมาะกับใคร
ผู้ที่มีพื้นฐาน C#, Database เช่น MySQL, SQL Server ต้องการเรียนรู้ Entity Framework ORM เพื่อใช้จัดการฐานข้อมูลใน .NET application
ผู้สอน: Theeranit Pongtongmuang (Aaron Amm)
Certificates:
สามารถสมัครลงเรียนตาม link นี้ได้เลยครับผม