Back to Home

DataBase System

Lesson123456791112131415

Lesson 10 : Data Integrity



Lesson Plan
Section No.
Section 1
Section 2
Section 3
Section 4
Test
PDF file
PPT File


<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

การจัดการรายการเปลี่ยนแปลงใน SQL

ภาษาในการจัดการฐานข้อมูล ดังเช่น SQL มีโครงสร้างที่ใช้ในการจัดการกับรายการเปลี่ยนแปลงเพื่ออำนวยความสะดวกให้กับโปรแกรมเมอร์ โดยที่โปรแกรมเมอร์จะต้องกำหนดลำดับการทำรายการเปลี่ยนแปลงซึ่งจะถูกนำไปปฏิบัติโดยระบบจัดการฐานข้อมูลที่ไม่มีผลเสียต่อความมั่นคงของข้อมูล

รายการเปลี่ยนแปลงใน SQL จะต้องสามารถจัดลำดับการทำงานเสมือนได้ และสามารถกู้คืนได้เมื่อเกิดความผิดพลาดใดๆ ขึ้น คำสั่งในภาษา SQL ที่ใช้ในการจัดการกับรายการเปลี่ยนแปลงโดยตรงได้แก่คำสั่งที่ใช้บอกจุดสิ้นสุดของรายการเปลี่ยนแปลง คือ COMMIT และ ROLLBACK ทั้งสองคำสั่งมีผลต่อการสิ้นสุดรายการเปลี่ยนแปลงที่แตกต่างกัน กล่าวได้ดังนี้

    • COMMIT [work] ใช้ในการยืนยันผลการเปลี่ยนแปลงที่เกิดขึ้นกับฐานข้อมูล เพื่อให้ผลลัพธ์นั้นคงอยู่ตลอดไปจนกว่าจะมีคำสั่งในการเปลี่ยนแปลงข้อมูล
    • ROLLBACK [work] ใช้ในการยกเลิกการเปลี่ยนแปลงที่มีต่อฐานข้อมูลจากการทำรายการเปลี่ยนแปลงชุดปัจจุบันจนถึงจุดสุดท้ายที่ใช้คำสั่ง COMMIT

SQL ไม่มีคำสั่งที่ใช้ในการกำหนดจุดเริ่มต้นของรายการเปลี่ยนแปลงโดยตรง การเริ่มต้นทำรายการเปลี่ยนแปลงจะถูกทำโดยอ้อมโดยการทำคำสั่ง SQL ใดๆ แต่ทุกครั้งที่มีการทำรายการเปลี่ยนแปลงจะต้องมีการใช้คำสั่งในการกำหนดจุดสิ้นสุดของรายการเปลี่ยนแปลงดังเช่นสองคำสั่งที่กล่าวข้างต้น นอกจากนี้ SQL ยังมีคำสั่งที่ใช้ในการกำหนดคุณลักษณะของรายการเปลี่ยนแปลง เช่น สิทธิการเข้าถึง และระดับของความมั่นคง

คำสั่งในภาษา SQL สามารถแบ่งออกได้เป็นหลายประเภท ได้แก่

    1. คำสั่งที่ใช้กำหนดค่าให้กับข้อมูล (Data Definition Language commands)
    2. คำสั่งที่ใช้จัดการกับข้อมูล (Data Manipulation Language commands)
    3. คำสั่งที่ใช้ในการควบคุมรายการเปลี่ยนแปลง (Transaction Control commands)
    4. คำสั่งที่ใช้ในการควบคุมช่วงการทำงาน (Session Control commands)

คำสั่ง COMMIT และ ROLLBACK เป็นคำสั่งที่อยู่ในประเภทที่ใช้ในการควบคุมรายการเปลี่ยนแปลง

ดังที่ได้กล่าวข้างต้นว่าการทำรายการเปลี่ยนแปลงใน SQL สามารถกำหนดคุณลักษณะของรายการเปลี่ยนแปลงได้ คุณลักษณะหนึ่งก็คือ สิทธิของการเข้าถึง อันได้แก่ อ่านอย่างเดียว (read only) หรือ อ่านและเขียน (read write) ถ้าไม่กำหนดสิทธิที่จะถูกใช้ก็คือ อ่านและเขียน

SQL-92 ได้กำหนดไว้ว่ารายการเปลี่ยนแปลงสามารถถูกกระทำได้ถึงแม้ว่าลำดับของรายการเปลี่ยนแปลงจะไม่ใช่ลำดับเสมือน (nonserializable) เช่น การทำรายการเปลี่ยนแปลงในระดับ read uncommitted ซึ่งอนุญาติให้รายการเปลี่ยนแปลงสามารถอ่านข้อมูลที่ยังไม่ถูก commit ได้ การกำหนดคุณลักษณะนี้จะสามารถทำได้เมื่อรายการเปลี่ยนแปลงนั้นสามารถทำได้โดยใช้ข้อมูลโดยประมาณที่ไม่ต้องการความถูกต้องแม่นยำสูงมากนัก

ระดับของความมั่นคงที่สามารถกำหนดได้ใน SQL-92 ได้แก่

    • Serializable เมื่อไม่กำหนดคุณลักษณะนี้จะถูกใช้กับทุกรายการเปลี่ยนแปลง
    • Repeatable read คุณลักษณะนี้จะใช้ได้เฉพาะกับข้อมูลที่ผ่านการ commit แล้วเท่านั้น และระหว่างการอ่านสองครั้งจะไม่อนุญาติให้มีการเปลี่ยนแปลงข้อมูลนี้จากรายการเปลี่ยนแปลงอื่น
    • Read committed คุณลักษณะนี้จะอนุญาติให้มีการอ่านข้อมูลที่ผ่านการ Commit แล้ว และไม่อนุญาติให้มีการอ่านซ้ำ ดังนั้นเมื่อมีการอ่านข้อมูลไปแล้วหนึ่งครั้ง รายการเปลี่ยนแปลงอื่นที่ผ่านการ Commit แล้วจะสามารถเปลี่ยนแปลงข้อมูลนี้ได้
    • Read uncommitted อนุญาติให้อ่านข้อมูลที่ไม่ได้ผ่านการ commit ได้
 

 

Last Updated: 12/13/2001 11:20:21 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย