דוגמה מעשית לשאלה 3 :
שימוש במה שנקרא מחיצות וירטואליות
בשרתי SQL בגרסת Enterprise קיימות מחיצות מובנות אבל שימוש ברעיון של מחיצות קיים כבר שנים רבות ונעשה גם בגרסאות שאין בהם מחיצות מובנות כמובן שניהול המחיצות הוירטואליות נופל עלינו המפתחים (יש לי מערכות מידע שפיתחתי למשל ומערכת שכר שפועלת בצורה זו שאציג עוד רגע שמאפשרות התקנה על גרסאות של שרתי מסדי נתונים ללא מחיצות מובנות)
הבסיס של מחיצות וירטואליות יכול להיות ונפוץ מאוד לעשות בעזרת טבלאות נפרדות עבור כל "מחיצה" (כמובן שאלו לא מחיצות מובנות ולכן נקראות מחיצות וירטואליות)
למשל אם רוצים להקים 7 מחיצות וירטואליות לפי היום בשבוע (יש לזה שימוש במערכות כבדות מאוד של מליוני רשומות שנכנסות בשנייה. אם היינו מכניסים את כל הנתונים כפי שהן לטבלה אחת היינוצריכים לבצע אינדקס מחדש על כל הטבלה והמערכת לא היתה זזה, לחילופין ניתן לעבוד על כל יום בנפרד ורק ביום המחרת כשהנתונים של היום הקודם לא יכולים כבר להישתנות אז מעבירים אותם לטבלה הסופית בצורה שאינה יוצרת שום נעילות כי עובדים על טבלה שאינה פעילה עד שבוע הבא... יותר פירוט בפעם אחרת).
במקרה זה ניתן לקבוע שטבלה ראשונה (יום א) יהיה בה שדה IDENTITY שיתחיל מ 1 ויקפוץ כל 7. בטבלה שנייה יהיה שדה דומה שיתחיל מ 2 ויקפוץ כל 7 וכן הלאה עד טבלה 7 שתתחיל ממספר 7 ותקפוץ כמובן כל 7
מה שקיבלנו זה מצב בו ניתן לגשת לנתונים כאלו הם בטבלה אחת אם רוצים. הטבלאות זהות לחלוטין במבנה שלהם וכל שאילתה פונה למשל בעזרת VIEW (ואז המשתמש לא מודע בכלל לחלוקה לטבלאות וחושב שעובד עם טבלה אחת... מחיצות וירטואליות) או ישירות לכל הטבלאות.
השדה הייחודי ממוספר בצורה רציפה ולא יכול להיות מצב שיהיה לנו חזרה על ערך מ 2 טבלאות שונות (הרי כל טבלה שומרת ערכים שונים)
כך למשל אם יכנסו לנו הרבה רשומות ביחד והן יכנסו לטבלאות השונות (בעזרת הדרך בה נבחר לנהל את המחיצות הוירטואליות... למשל התוכנה החיצונית... טריגר או כל דרך אחרת) אז התוצאה תהיה שהנתונים יכנסו למיקום הנכון ללא בעיות ובלי תלות למשל בשדה כמו זמן או שדה אחר מורכב וכבד שהיה כוללת חיבור של IDENTITY של הבטהל + נתון של מספר הטבלה... בצורה זו יש שימות ישיר רק בשדה IDENTITY
אני מקווה שהדוגמה מובנת
אם לא אני ארשום אותה בהיזדמות בצורה יותר מסודרת בבלוג או משהו כזה
* ישנם עוד הרבה מקרים מעשיים מחיי היום יום באפליקציות מורכבות שיש צורך בשימוש כזה ואם רוצים עוד דוגמאות אני אשמח לספק (דוגמאות חיות ואמיתיות בלבד
)