ในโลกของระบบสารสนเทศขนาดใหญ่ ข้อมูลที่ถูกจัดเก็บและจัดการนั้นไม่ได้มีวัตถุประสงค์เพียงด้านเดียว ระบบฐานข้อมูลจึงมีการแบ่งประเภทการใช้งานตามภาระงานหลัก ซึ่งหนึ่งในการออกแบบโครงสร้างพื้นฐานที่มีความสำคัญอย่างยิ่งคือ Online Transaction Processing หรือ OLTP
OLTP คืออะไร และมีความแตกต่างอย่างไร
โดยสรุปแล้ว, OLTP หมายถึงกลุ่มของแอปพลิเคชันหรือระบบฐานข้อมูลที่ได้รับการปรับแต่งมาเพื่อรองรับกระบวนการทำธุรกรรมประจำวันของผู้ใช้จำนวนมาก (High Volume of Transactions) หน้าที่หลักของมันไม่ใช่การวิเคราะห์แนวโน้มทางธุรกิจแบบภาพรวม แต่เป็นการบันทึก จัดเก็บบันทึกรายละเอียดของการปฏิสัมพันธ์ระหว่างผู้ใช้กับระบบ เช่น การซื้อขายสินค้าออนไลน์ การเข้าสู่เข้าระบบบัญชีธนาคาร หรือการจองห้องพักโรงแรม
หัวใจสำคัญที่สุดของสถาปัตยกรรมนี้คือ ‘ความเป็นปัจจุบัน’ ของข้อมูล เพราะทุกครั้งที่มีรายการเกิดขึ้น ไม่ว่าจะเป็นยอดเงินโอน รายชื่อลูกค้าใหม่ หรือสต็อกสินค้าคงเหลือ จะต้องอัปเดตให้ถูกต้องแม่นยำในทันที ความเร็วและความสมบูรณ์เชิงปฏิบัติการณ์ จึงเป็นคุณลักษณะที่ถูกเน้นหนักกว่าปริมาณข้อมูลที่จะนำไปประมวลผล ณ เวลาใดเวลาหนึ่ง ซึ่งตรงข้ามกับการทำงานของ Data Warehouse ที่มีวัตถุประสงค์ในการรายงานและเรียกดูข้อมูลขนาดใหญ่
องค์ประกอบพื้นฐาน: คุณสมบัติ ACID ในงาน Transactonal
เพื่อให้มั่นใจได้ว่าทุก ๆ ธุรกรรมบน OLTP นั้นมีความน่าเชื่อถือสูงสุด ระบบจะต้องรักษาชุดของคุณสมบัติตามมาตรฐาน ACID อย่างเคร่งครัด นี่คือกฎทองคำ (Golden Rule) สำหรับระบบ Transactional Database:
- Atomicity (อะทอม): หมายถึงการรับประกันว่ากลุ่มของการดำเนินการทั้งหมดจะสำเร็จอย่างครบถ้วน หากขั้นตอนใดล้มเหลว การเปลี่ยนแปลงทั้งหมดก่อนหน้าก็จะถูกยกเลิกกลับสู่สถานะเดิมโดยอัตโนมัติ
- Consistency (ความสม่ำเสมอ): ข้อมูลหลังจากทำรายการเสร็จสิ้นแล้ว ต้องอยู่ในรูปแบบที่มีกฎเกณฑ์ทางธุรกิจรองรับ ไม่สามารถเกิดภาวะที่ไม่เข้ากันระหว่างตารางหรือฟิลด์ได้อย่างเด็ดขาด
- Isolation (ความเป็นอิสระ/แยกส่วน): ผู้ใช้หลายคนกำลังใช้งานระบบพร้อมกัน แต่แต่ละคนจะไม่เห็นผลกระทบจากการกระทำที่ยังไม่เสร็จสิ้นของผู้อื่น ทำให้เหมือนกับผู้ใช้ทุกคนทำงานอยู่เพียงลำพังในมุมมองข้อมูลเฉพาะตนเองขณะนั้น
- Durability (คงทน): : เมื่อมีการยืนยันและบันทึกธุรกรรมเรียบร้อยไปแล้ว แม้ว่าเซิร์ฟเวอร์หลักจะเกิดไฟฟ้าขัดข้อง ระบบก็ต้องมั่นใจได้ 100% ว่าการอัปเดตครั้งล่าสุดนี้จะต้องยังคงมีตัวตนอยู่ตลอดกาล
กลไกเพื่อเพิ่มประสิทธิภาพในการดำเนินงาน
เนื่องจาก OLTP ต้องการตอบสนองต่อคำขอจำนวนมากภายในเวลาอันจำกัด การออกแบบฐานข้อมูลจึงมุ่งเน้นให้ Query มีความรวดเร็วที่สุด โดยทั่วไป นักพัฒนามักใช้วิธีการ Normalization หรือการทำให้โครงสร้างเป็นมาตรฐานสูง เพื่อลดความซ้ำซ้อนและความผิดพลาดของการจัดเก็บ อย่างไรก็ตาม ในทางปฏิบัติจริง อาจมีความจำเป็นบางกรณีที่จะอนุญาตให้เกิด Denormalization บ้างเล็กน้อย เช่น การรวมคอลัมน์ที่ไม่ค่อยเปลี่ยนแปลงเข้าด้วยกัน ซึ่งเป็นการแลกเปลี่ยนระหว่าง ‘ระดับความเป็นปกติ’ กับ ‘อัตราเร่งของระบบอ่าน/เขียน’
- Indexing Strategy: เป็นหัวข้อที่สำคัญอย่างยิ่ง เพราะ Index ที่เหมาะสมช่วยให้อุปกรณ์สามารถค้นหาแถว (Row) ข้อมูลเฉพาะเจาะจงได้อย่างแม่นยำและฉับไว ทำให้ไม่ต้องสแกนทั้งตารางขนาดใหญ่ในทุกธุรกรรมโต้ตอบ
- Connection Pooling & Concurrency Control: ระบบจะต้องจัดการกับการเชื่อมต่อพร้อม ๆ กันของผู้ใช้งานหลายพันคนโดยไม่เกิดปัญหา Deadlock และต้องมีกลไกควบคุมเพื่อให้แน่ใจว่าเมื่อมีการแก้ไข Record เดียว จะไม่มีผู้ใช้รายอื่นเข้ามาขัดแย้งในการทำรายการเดียวกันจนส่งผลล้มเหลว