לדלג לתוכן

תנועה (מערכות מידע)

מתוך ויקיפדיה, האנציקלופדיה החופשית
(הופנה מהדף טרנזקציה)

במערכת מידע, תנועהאנגלית: transaction) היא פעולה לוגית לשינוי נתונים המורכבת מסדרת פעולות בדידות. תנועה מכונה לעיתים גם יחידת עבודה לוגית, מכיוון שכל הפעולות הבדידות המרכיבות אותה חייבות להתבצע כיחידה אחת, או לא להתבצע כלל. תכונה זו נקראת אטומיות. השימוש בתנועות נפוץ מאוד בתחום מסדי הנתונים ומערכות ניהול תנועות, ובמידה פחותה גם במערכות קבצים. במערכות אלה, היכולת להבטיח את שלמות הנתונים מכונה ACID.

מטרת התנועה

[עריכת קוד מקור | עריכה]

כאמור, תנועה לוגית יחידה עשויה להכיל מספר פעולות על מסד נתונים. במקרה זה חשוב לשמור שהתנועה תתבצע בשלמותה או לא תתבצע כלל, כדי לשמור על עקביות הנתונים העסקיים. לדוגמה, בפעולה של העברת כספים בין חשבונות בנק, חשוב שאם סכום כלשהו הוחסר מהחשבון המשלם הוא יופקד בחשבון הנמען. אם, בשל כשל כלשהו, תהליך העברת הכספים נקטע לפני שהושלם, המערכת עלולה להיוותר במצב לא עקבי. לדוגמה, הסכום הוחסר אך לא הועבר. מטרת התנועה היא להבטיח את שלמות הנתונים, גם לנוכח מקרי כשל.

תנועה שלא בוצעה בשלמותה מבוטלת באמצעות הסגה (Rollback), כדי להחזיר את המערכת והנתונים למצב יציב שקדם לפעולה. בסיום התנועה, היא הופכת לתנועה מקובעת (Commited Transaction). תנועה יכולה להתבטל באמצעות הסגה כל עוד לא קובעה.

תנועת SQL פשוטה במסד נתונים מתבצעת לרוב באופן הבא:

  1. התחלת התנועה.
  2. הרצת מספר שאילתות. עדכוני נתונים שמבצעת התנועה אינם נראים עדיין לתנועות אחרות.
  3. קיבוע התנועה. אם התנועה הצליחה, עדכונים שנעשו במהלכה נראים כעת לתנועות אחרות.
  4. במקרה של כשל באחת מהשאילתות, עשוי מסד הנתונים להסיג את התנועה כולה או רק את השאילתה שנכשלה. ההתנהגות המדויקת תלויה בהגדרות נוספות המתלוות לתנועה.
  5. כל עוד התנועה לא התקבעה, ניתן להסיגה.

מינוח ותיווי

[עריכת קוד מקור | עריכה]
  • בהנדסת תוכנה, מערכת תוכנה התומכת בתנועות מכונה "טרנזאקציונלית".
  • מקובל לסמן תנועה באות T גדולה.