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