במערכת מידע, תנועה (transaction) היא פעולה לוגית שמבצעת שינוי בנתונים.
תנועה מורכבת מסדרת פעולות בדידות. לעיתים קוראים לה גם יחידת עבודה לוגית, כי כל הפעולות בה חייבות להתבצע כקבוצה אחת או שלא להתבצע כלל. התכונה הזו נקראת אטומיות, משמעותה שלא נשאר מצב חלקי של שינויים.
השימוש בתנועות נפוץ במיוחד במסדי נתונים ומערכות ניהול תנועות. היכולת לשמור על שלמות הנתונים במצבים כאלה מכונה ACID.
מטרה מרכזית של תנועה היא לשמור על עקביות ושלמות הנתונים. לדוגמה, בעת העברת כסף בין חשבונות, חשוב שאם סכום יופחת מחשבון המשלם הוא יתווסף לחשבון הנמען. אם התהליך נקטע באמצע, המערכת עלולה להישאר במצב לא עקבי, למשל כסף הוסר אך לא הועבר.
כדי למנוע זאת משתמשים בהסגה (Rollback), פעולה שמבטלת תנועה שלא הושלמה ומחזירה את המערכת למצב היציב הקודם. בסיום תנועה מוצלחת היא הופכת לתנועה מקובעת (Committed Transaction), והעדכונים הופכים לנראים למערכות אחרות. עד שהקיבוע מתבצע, אפשר עדיין להסיג את התנועה.
תנועת SQL בסיסית עוברת בדרך כלל כמה שלבים ברורים: תחילה מתחילים את התנועה. לאחר מכן מריצים מספר שאילתות ועדכונים; עד שהקיבוע מתבצע, העדכונים לא נראים לתנועות אחרות. אם כל השאילתות עברו בהצלחה, התנועה מקובעת והעדכונים נעשים גלויים. במקרה כשל באחת השאילתות, מסד הנתונים עשוי להסיג את התנועה כולה או רק את השאילתה שנכשלה, לפי הגדרות המערכת. חשוב לזכור: כל עוד לא קובעה, ניתן להסיגה.
במערכת מחשב, תנועה היא פעולה עם כמה צעדים יחד.
תנועה (transaction) עושה שינויים בנתונים. אטומיות אומרת: או שכל הצעדים קורים, או שאף אחד לא קורה.
המטרה היא לשמור על סדר בנתונים. למשל, כשמעבירים כסף בין חשבונות, הכסף צריך לצאת מהחשבון אחד ולהיכנס לשני. אם התהליך נעצר באמצע, זה יוצר בלגן. כדי למנוע זאת משתמשים בהסגה (Rollback). הסגה מחזירה את המערכת למצב שהיה לפני התנועה. כשכל הצעדים של התנועה הושלמו, קוראים לזה תנועה מקובעת, כל השינויים נשארים.
בתנועת SQL מתחילים את התנועה, מריצים שאילתות ושינויים, ואז מקבעים (Commit). לפני הקיבוע, השינויים לא נראים לאחרים. אם משהו נכשל, המערכת יכולה להסיג את התנועה או את החלק הכושל.
מילים חשובות: תנועה, הסגה, קיבוע, SQL.
תגובות גולשים