אטומיות (מסדי נתונים)

מתוך ויקיפדיה, האנציקלופדיה החופשית

במדעי המחשב, אטומיות היא הדרישה שאוסף פעולות יתבצעו ביחד, אם בכלל. לדוגמה, אם ראובן מורה לבנק להעביר 100₪ מחשבונו לחשבונו של שמעון, מותר לבנק לסרב להוראה ומותר לו להענות לה. אך אסור לו רק לגרוע 100₪ מחשבונו של ראובן או רק להוסיף 100₪ לחשבונו שמעון מבלי לבצע את החצי השני של הפעולה. רצף הפעולות נקרא תנועה (או טרנזקציה). מקור המילה "אטומיות" הוא יוונית: ἄτομος, שפירושו "לא ניתן לחיתוך" - "א" (לא ניתן) "טומי" (חתך), כמו במילה אטום. דרישת האטומיות משמשת במערכות רבות להבטחת תקינותם של הנתונים.

דרישת האטומיות היא אחת מארבע דרישות ACID (ביחד עם עקביות, בידוד ועמידות) שהן דרישות אמינות מקובלות ממסדי נתונים. במערכות מסדי נתונים מקובל שכל התחברות למסד הנתונים נעשית בתנועה נפרדת. בכל רגע המשתמש יכול לבחור לבטל (Abort) את התנועה. בסופה הוא מצהיר על התחייבות (Commit) לתנועה. משתמשים מחיבורים אחרים יראו את השינויים מהתנועה כשינוי נקודתי שנעשה ברגע ההתחייבות[דרוש מקור: התיאור כנראה לא לגמרי מדויק].

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

מונחים קרובים קיימים גם בתחומים אחרים של מדעי המחשב:

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