Oracle 11g New features - עמודות וירטואליות - ilDBA Portal

Oracle 11g New features – עמודות וירטואליות

21/02/2011 | פורסם על ידי

עוד חידוש מעניין בגרסת 11g – עמודות וירטואליות

בסיס הנתונים בגרסת Oracle Database 11g מציע לנו חידוש מעניין – עמודות וירטואליות.

נסביר את הנושא בעזרת דוגמא:

הניחו קיומה של טבלת מכירות בשם SALES אשר כוללת עמודה בשם SALES_AMOUNT המתארת את סכום המכירה.
כעת הניחו שבעקבות דרישה ארגונית כלשהי יש להוסיף לטבלה הנ"ל עמודה חדשה בשם SALES_CATEGORY אשר תתאר את סוג המכירה לפי הפירוט שלהלן:

1)      במידה וסכום המכירה הינו נמוך מ- 1,000 אזי סוג המכירה הינו LOW

2)      במידה וסכום המכירה הוא בין 1,000 לבין 10,000 אזי סוג המכירה הינו MEDIUM

3)      במידה וסכום המכירה הוא בין 10,000 לבין 100,000 אזי סוג המכירה הינו HIGH

4)      במידה וסכום המכירה הינו גבוה מ- 100,000 אזי סוג המכירה הינו ULTRA

כעת חישבו, כיצד הייתם עונים לדרישה הנ"ל ומוסיפים לטבלת המכירות הקיימת את העמודה החדשה ?

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

להלן קטע הקוד הרלוונטי להוספת העמודה החדשה:

SQL> ALTER TABLE SALES ADD sales_category VARCHAR2(6) GENERATED ALWAYS AS
  (CASE WHEN sales_amt < 1000 THEN 'LOW'
        WHEN sales_amt >= 1000 AND sales_amt <= 10000 THEN 'MEDIUM'
        WHEN sales_amt > 10000 AND sales_amt <= 100000 THEN 'HIGH'
        ELSE 'ULTRA' END) VIRTUAL;

לסיכום:

1)      עמודה וירטואלית מאפשרת לכם גמישות מלאה להוסיף עמודות בהתאם לצרכים עסקיים שונים וזאת בצורה פשוטה מאוד ומבלי שתצטרכו להוסיף מורכבות לאפליקציה ו/או לשנות את הקוד שלכם.

2)      למרות שהערכים של העמודה הוירטואלית אינם נשמרים בבסיס הנתונים, עדיין ניתן להתייחס אליה כמו לכל עמודה אחרת בטבלה שלכם.

3)      ניתן ליצור אינדקס על עמודה וירטואלית. האינדקס שתיצרו יוגדר כ- Function Based Index.

4)      ניתן לאסוף סטטיסטיקות על עמודה וירטואלית.

5)      ניתן לחלק את הטבלה ל- Partitions תוך התבססות על עמודה וירטואלית.

6)      לא ניתן להזין ערכים לעמודה וירטואלית.

7)      ניתן לראות את ההגדרה של העמודה הוירטואלית בטבלה user_tab_columns בעמודה data_default, לדוגמא:

SQL> SELECT column_name,data_default
    FROM   user_Tab_columns
    WHERE  table_name='SALES' AND column_name='SALES_CATEGORY';

לפרטים נוספים על הנושא:
http://wiki.oracle.com/page/Virtual+Columns

נתראה ברשומה הבאה!
עמי אהרונוביץ
ניתן ליצור קשר עם עמי דרך עמוד האודות שלו: אודות

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

MySQL

MySQL For Oracle DBA’s – בסיסי נתונים, טבלאות ומשתמשים

תודה שחזרתם, אחרי שראינו שבוע שעבר איך מתקינים את MySQL הגיע הזמן להבין קצת יותר, אז בואו נתחיל … Databases MySQL תומך בעד 32,000 בסיסי נתונים ב-Instance. כ-Oracle DBA אני משווה MySQL Database ל-Oracle Schema שכן הוא מחזיק [...]
MySQL

MySQL for Oracle DBA’s – התקנה וחיות אחרות

אני עוד זוכר שהתקנה של אורקל הייתה לוקחת יום ואפילו יומיים שלמים, גם היום להתקין אורקל יכול להיות משימה לא פשוטה במידה ומדובר ב-RAC ואו אנשי ה-SYSTEM לא סיפקו לנו סביבת Linux נאותה שיש בה את כל Packages [...]
MySQL

MySQL for Oracle DBA’s – ארכיטקטורה ומנועים

לאחר שהכרנו את ההיסטוריה של MySQL הגיע הזמן להכיר קצת יותר לעומק את הארכיטקטורה ואפילו להשוות אותה לזו של Oralce. ארכיטקטורה כ-DBA-ים מנוסים בטח תשימו לב שבדיוק כמו ל-Oracle ל-MySQL יש Optimizer שתפקידו לקבוע את [...]
MySQL

MySQL for Oracle DBA's – מבוא

פני מספר שנים רכשה אורקל את חברת SUN, רכישה זו כללה את בסיס הנתונים ה-OpenSource המוביל של אותם זמנים – MySQL. רבים שאלו אותי מה לדעתי יקרה עם MySQL האם הוא יטמע בתוך Oracle, האם אורקל  תחליט להרוג אותו או [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: