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

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