ntroduction
มารู้จักการทำ Transaction กันก่อนน่ะครับ ว่ามันมีไว้ทำอะไร แล้วมีความจำเป็นมากแค่ไหนที่เราต้องใช้มัน
เริ่ม แรกก็ให้ลองนึกถึงการแข่งรถแรลลี่วิบากก่อนน่ะครับ จะมีการเล่น game ซึ่งจะมี check point เป็นจุด ๆ ไว้ ผู้เข้าแข่งขันจะต้องทำการเก็บ check point ไว้
การทำTransaciton มันก็คล้าย ๆ กันครับ คือจะมีการกำหนดจุด Check point ไว้ก่อน (เหมือนกับเจ้าของ game แรลลี่กำหนด) ถ้าผู้แข่งขัน (user) สามารถไปถึงจุด check point จุดนั้นได้ก็ถือว่า ผ่าน game นั้น ๆ ไปได้ครับ
Why we use this?
เอ๋ !! แล้วเจ้า Transaction เนี่ย เราจะทำไปทำไมกันน่ะ?
ตัวอย่างที่พอจะเห็นภาพชัด ๆ ก็คือ ลองนึกถึงระบบธนาคารดูน่ะครับ สมมติว่าคุณนำเงินไปฝากธนาคารจำนวน 1,000,000 บาท (มันก็มากเอาการอยู่) ในขณะที่พนักงานกำลัง save ข้อมูลจำนวนเงินฝากของเราลงไปใน database ที่ online อยู่ ถ้าเกิดในขณะนั้นมีเหตุการณ์ขัดข้องเกิดขึ้น เช่น ไฟดับ (บางคนอ้างว่า มี UPS ไม่ใช่เหรอ) งั้น ถ้าเกิดมีคนสะดุดสายไฟ UPS (มั่วไปเรื่อยนิ...) หรือถ้า Network down ขึ้นมา เอาเถอะ เอาเป็นว่ามีเหตุขัดข้องแล้วกัน ในขณะนั้น ถ้ามีการ save ข้อมูลของลูกค้าใน ตารางหลายๆ ตาราง ถ้ามีลูกค้าหลาย ๆ คน มันก็คงยากเอาการที่จะตรวจสอบว่า ก่อนที่ไฟจะดับนั้น มันได้ทำการ save ข้อมูลลงไปถึงตารางไหนแล้ว ถ้าเกิดมัน save เงินคุณได้ 500,000 บาท (ติ้งต่าง ว่า ไม่สามารถ save ทีละ 1,000,000 บาทได้) เมื่อคุณไปดูผลการฝากเงินของคุณ คุณก็จะเห็นเงินเพียง 500,000 บาท ทั้ง ๆ ที่คุณเอามา 1,000,000 บาท ซึ่งคุณคงไม่พอใจเป็นแน่
แต่ว่าหากมีการทำ Transaction เพื่อป้องกันในจุดนี้ การประมวลผลการฝากเงินของคุณจะถูกยกเลิกทันที ซึ่งมันก็คงไม่เสียหายอะไร เพราะว่าไม่มีการทำรายการ การฝากเงินของคุณ คุณก็รับเงินคืนแล้วก็ฝากใหม่แค่นั้นเอง
Transaction method หลัก ๆ
method ที่ต้องเจอแน่นอนในการทำ Transaction คือ
1. BeginTrans - ใช้เริ่มต้นการกำหนด Transaction ใหม่ เหมือนกับการตั้ง Check point นั้นเอง
2. CommitTrans - ใช้ในการบันทึกการเปลี่ยนแปลงและจบการทำ Transaction เหมือนกับผ่าน check point แล้ว
3. RollbackTrans - ใช้ในการ ยกเลิกการเปลี่ยนแปลงที่เกิดขึ้นในระหว่างการทำ Transaction และจบการทำ Transaction นั้น ๆ ด้วย เมื่อจบแล้ว เราอาจจะเริ่มทำ Transaction ใหม่ได้อีก
ที่มา:http://www.thaiadmin.org/board/index.php?topic=74217.0
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น