תנועה (מערכות מידע) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
הרחבה וליטוש
שורה 4:
 
==מטרת התנועה==
כאמור, תנועה לוגית יחידה עשויה להכיל מספר פעולות על מסד נתונים. במקרה זה חשוב לשמור שהתנועה תתבצע בשלמותה או לא תתבצע כלל, כדי לשמור על תכונת האטומיות. לדוגמה, בפעולה של העברת כספים בין חשבונות [[בנק]], חשוב שאם סכום כלשהו הוחסר מהחשבון המשלם הוא יופקד בחשבון הנמען. תנועה שלא בוצעה בשלמותה מבוטלת באמצעות '''גילגול לאחור''' (Rollback), כדי להחזיר את מסד הנתונים למצב יציב שקדם לפעולה. בסיום התנועה, היא הופכת ל'''תנועה מחוייבת''' (Commited Transaction). תנועה יכולה להתבטל באמצעות גילגול לאחור כל עוד לא הפכה למחוייבת. נוסף על כך, על תנועות המתבצעות במקביל לפעול ללא הפרעה הדדית. עוד בעניין תכונות התנועה ראו בערך [[ACID]].
 
תנועת [[SQL]] פשוטה במסד נתונים מתבצעת לרוב באופן הבא:
# התחלת התנועה.
# הרצת מספר [[שאילתה|שאילתות]]. עדכוני נתונים שמבצעת התנועה אינם נראים עדיין לתנועות אחרות.
# קיבוע התנועה. אם התנועה הצליחה, עדכונים שנעשו במהלכה נראים כעת לתנועות אחרות.
# במקרה של כשל באחת מהשאילתות, עשוי מסד הנתונים לגלגל לאחור את התנועה כולה או רק את השאילתה שנכשלה. ההתנהגות המדויקת תלויה בהגדרות נוספות המתלוות לתנועה.
# כל עוד התנועה לא התקבעה, ניתן לגלגלה לאחור.
 
==תיווי==