בסיסי נתונים – עקרונות, מודלים ויישומים

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

OCR (הסבר)
בסיסי נתונים עקרונות, מודלים ויישומים רז הייפרמן ערך "צחק עמיהוד ספרי לימוד והכשרה במדעי המחשב הוצאת הוד-עמי בשיתוף המכון לפריון העבודה והייצור ו בסיסי נתונים עקרונות, מודלים ויישומים מוקדש באהבה ובהוקרה לאמי בסיסי נתונים עקרונות, מודלים ויישומים מאת רז הייפרמן ערך יצחק עמיהוד ספרי לימוד והבשרה במדעי המחשב הוצאת הוד-עמי בשיתוף המכון לפריון העבודה והייצור 5 דה 5חסוז8ס!!סכ 0ח8 1006|5 ,6006016 חההוחז6)ו16] ₪32 עס סטחווח ג אהּה2!! עס 601160 5 כל הזכויות שמורות הוצאת הוד"עמי לספרי מחשבים ת.ד. 560 רמת-גן 105 52 0 8זחשוה וו |וח/-100] ח8)-81וח8] ,560 אסם.0.ק אין להעתיק ולפרסם חלקים מספר זה ללא רשות בכתב מאת ההוצאה אלא לשם ציטוט קטעים קצרים בציון שם המקור הודפס בישראל תמוז תשמ''ד, יולי 1984 1 4 ,וט ו הקדמה אחד הכלים לניהול יעיל של ארגונים עסקיים ואחרים הוא השימוש הנכון בנתונים (0818) ובמידע (חסווגוחזסוחו) המופק מנתונים אלו. השימוש בנתונים ובמידע בתהליך קבלת ההחלטות היה קיים, כמובן, גם בעבר, לרוב לא באופן מודע ונחשב יותר ל"אינטואיציה" או ל'"חוש טוב לעסקים". ההתפתחות של המחשב האלקטרוני בתחום החומרה ותוכנת מערכות ההפעלה היתה, והינה מלווה, בהתפתחותם של כלי עזר לניהול נתונים. כלים אלו הולכים ומשתכללים כל העת ומטרתם להפוך את הנתונים והמידע המופק מהם לאחד המשאבים (088זט8650) העומדים לרשותו של המנהל. למשאבים הקלסיים המקובלים של עבודה, הון ונכסים מצטרף מעתה המשאב הנוסף של המידע. כלים משופרים אלו נקראים בשם הטכנולוגיה של בסיסי הנתונים (ע0!00חח60 1 8856 0818), ובהם דן הספר שלפנינו. אנו עדים כל הזמן להופעת אוסף של עקרונות, כלים וטכניקות אשר מטרתם לאפשר ניהול כמויות עצומות של נתונים בעלי מבנה וקשרים מורכבים מאד. כל אלה מרכיבים מערכות תוכנה מיוחדות -- מערכות לניהול בסיסי נתונים (זַחסוִַפסְח8!/! 2856 בוה -- פשומס 8). הופעתן ומידת השימוש בהן נבעו מן הצורך להקים מערכות מידע ממוחשבות ולהרחיב כל העת את שירותיהן. עם הופעת מערכות אלה האמינו הארגונים שזאת התשובה לבעיות עיבוד הנתונים. במהרה התברר שהציפיות וההכרזות אודות טכנולוגיה זו לא עלו בקנה אחד עם יכולתה. התברר שמערכות אלה לא פתרו את כל הבעיות שהיו ידועות, ואף הציבו בעיות חדשות. עם זאת, למרות המגרעות של טכולוגיית בסיסי-הנתונים, אין היום ספק שהיא מהווה קפיצה קדימה באפשרויות ניהול הנתונים לעומת הטכנולוגיה שקדמה לה. היום ניחן למצוא מערכות לניהול בסיסי נתונים ברוב הארגונים העיסקיים הגדולים אשר מפעילים מערכות מידע מורכבות, במערכות תיב"ם (תכנון ייצור באמצעות מחשב), במערכות לתמיכה בקכלת החלטות, במערכות וידאו-טקס ועוד. מטןתיספר זה להציג בפני הקורא את העקרונות של טכנולוגיית בסיסי הנתונים ואת הצורה שבה עקרונות אלה יושמו במציאות באמצעות המערכות לניהול בסיסי נתונים. הספר נועד כספר לימוד, בהמשך לנושא ארגון נתונים וניהול קבצים, וכמקור ללימוד עצמי לכל מי שעוסק במערכות מידע ומעוניין להכיר ולהבין טוב יותר את התפיסה העומדת מאחורי טכנולוגיה זו. הספר מחולק לשני חלקים: החלק הראשון עוסק בצד העקרוני ומציג את התפיסה והרעיונות המרכזיים של המערכות לניהול בסיסי נתונים. מוצגים המודלים השונים של הנתונים תוך דיון מעמיק בכל אחד מהמודלים המוכרים והשימושיים. הפרק הראשון מציג את גישת בסיס הנתונים מול הגישה המקובלת לניהול קבצים ומסביר את המושג המרכזי של גישה זו, אי התלות בנתונים. הפרק השני מהווה סקירה קצרה של הטכניקות לאחסון וניהול קבצים אשר מהוות בסיס להבנת עקרונות הפעולה של המערכות לניהול בסיסי נתונים. הקורא המעונין להעמיק ולבסס את ידיעותיו בנושא זה מופנה אל הספר "ארגון נתונים וניהול קבצים" מאת המחבר בהוצאת הוד"עמי, 1982. הפרק השלישי מציג את מודל הנתונים ואת מושגי היסוד הדרושים להבנת נושא חשוב זה. הפרק הרביעי מציג מודל כללי של מערכת לניהול בסיסי נתונים ומסביר מושגים כגון סכימה, תת-סכימה, שפה להגדרת נתונים, שפה לטיפול בנתונים, ואת עקרונות הפעולה של מערכות אלה. הפרקים החמישי, השישי והשביעי כוללים דיון מעמיק יותר בכל אחד משלשת המודלים העיקריים של הנתונים. הפרק השמיני מציג את נושא תכנון מודל הנתונים ומציג לקורא את הטכניקה של חיקנון ( ח0ו281ו8חחזסא) מבנה הנתונים. הפרק התשיעי מתאר בקצרה את נושא הבטיחות ושלימות הנתונים במערכת לניהול בסיסי נתונים. הפרק העשירי מציג מספר מגמות וכיוונים עתידיים אפשריים לטכנולוגיה זו, בחלק השני מוצגות מספר מערכות מסחריות המהוות יישום של הרעיונות שהוצגו בחלק הראשון. אין הספר מתיימר להציג מערכת כלשהי בצורה שלימה ומלאה. המטרה היא לאפשר לקורא לרכוש הבנה נוספת במערכות לניהול בסיסי נתונים על-ידי הכרת מערכות נפוצות. המערכות ₪15 8ואס) ]זסה 04845א, 501/05 מוצגות כשיטות ליישום של מודל נתונים מתוך אלו שנסקרו. התיאור מבוסס על המידע הרשמי המופץ לציבור על-ידי יצרניות התוכנה. בסיום הספר ניתנים נספחים הכוללים טבלה המציגה נתונים בסיסיים עבור רוב המערכות הקיימות לניהול בסיסי נתונים, אינדקס, ביבליוגרפיה ומילון נתונים. תקוותי שספר זה ימלא את החסר בספרות המקצועית בשפה העברית ויתרום לקהיליית המשתמשים במחשבים, לסטודנט ולתלמיד ולכל מי שמעונין בנושא חשוב זה. הספר מבוסס על נסיון שרכשתי במשך שנות עבודתי כמנתח מערכות ביישום מערכות מידע גדולות באמצעות טכנולוגיה זו. כמו כן מבוסס הספר על רשימות הרצאותי בקורסים לניהול בסיסי נתונים במכון לפריון העבודה והייצור ובטכניון בתל-אביב. תודתי לכל התלמידים אשר העירו את הערותיהם ותרמו בצורה זו או אחרת לעיצוב ספר זה. לא אוכל לסיים הקדמה זו ללא תודה מיוחדת לאשתי אשר עודדה אותי ועזרה לי במשך כל התקופה הארוכה שבה כתבתי את הספר. תוכן הענייניס חלק ראשון: עקרונות של מערכות לניהול בסיסי נתונים פרק א: גישת בסיס הנתונים 1. מבוא 2. הגישה המקובלת לניהול נתונים 17 3. גישת בסיס הנתונים 21 4. אי-תלות בנתונים 66 5. ציוני דרך בהתפתחות מערכות לניהול נתונים 1 6. מנהל בסיט הנתונים 16 7. סיכום / 17 8 שאלות 8 פרק ב: אחסון נתונים וארגון קבצים 1. מבוא : 11 2. מושגי יסוד 2 3 ארגון קבצים בסיסי 17 4. ארגון קבצים עילי 20 5. שאלות 66 פרק ג: מודל הנתונים 1. מבוא . 99 2. מושגי יסוד 00 3. מודל ישויות -- קשרים 10 4. מודל הנתונים 329 5. המודלים הלוגיים העיקריים 6 6. סיכום 59 7. שאלות 1 פרק ד: מערכות לניהול בסיסי נתונים -- מרכיבים ועקוונות פעולה מבוא 41 55 2 מודל כללי של מערכת 18א8 6 3 הסכימה . 8 4. תת-סכימה 12 5. סכימה פנימית 13 6. שפה לטיפול בנתונים 14 7. עקרונות הפעולה של מערכת 15א8 177 8 מילון נתונים 9 שפת שאילתות 0. שאלות פרק ה: מודל נתונים היררכי (|66סו₪ הבכ |גסוהסזפזסוה) .10 .1 מבוא המודל ההיררכי -- הגדרה ייצוג קשרים :א במודל נתונים היררכי שיטות לייצוג מבנה היררכי שפה לטיפול במבנה היררכי שאלות מבוא מודל הנתונים הרשתי -- הגדרה מושגי יסוד במודל הרשת מבנים לוגיים המבוססים על חבורות ייצוג קשרים |א:א במודל נתונים רשתי שטחי אחסון בבסיס הנתונים שיטות לאיתור רשומות זיהוי חבורה שפה לטיפול בנתונים סיכום שאלות פרק ז: מודל הנתונים הטבלאי (061ס₪ בוב [4חסו₪9!91) = ₪ ₪ > ₪ ם מבוא המודל הטבלאי -- הגדרה ומושגי יסוד שפות לטיפול ביחסים ₪ ה9816 סיכום שאלות פרק ח: תכנון מודל הנתוניס (ח65:4כ |06סוש הּוּהם) 41 2 3 מבוא תהליך תכנון בסיס הנתונים תלות בין נתונים פרק ט: שלימות ובטיחות נתונים 41 מבוא 14 115 1:39 120 13 16 1:8 11 15 156 117 14 1417 10 11 12 134 19 100 13 14 19 10 15 146 1|9 10 13 209 ₪ 5 ₪ ם שלימות נתונים טכניקות לשמירה על שלימות הנתונים גיבוי והתאוששות בטיחות נתונים סיכום פרק י: מערכות 8%15ם -- מגמות וכיוונים לעתיד 1 4 3 4 מבוא מכונות בסיס הנתונים מערכות בסיסי נתונים מבוזרים סיכום חלק שני: מערכות 86 מסחריות פרק *א: וח5510 1הסוח6פָ3ח3 1 הסוופוחזס!ה! -- 5 2 ₪ ₪ 5 0 5 ב פרק ₪ = רס מבוא מושגי יסוד מבנים פיסיים קשרים לוגיים שפה להגדרת נתונים שפה לטיפול בנתונים סיכום ב וה510ץ5 1ה6וה300ח3!) 03140856 16919166ח! -- פופו מבוא מושגי יסוד מבנים פיסיים מבנים לוגיים של נתונים שפה להגדרת נתונים שפה לטיפול בנתונים סיכום יג: ו4זסד מבוא מושגי יסוד מבנים פיסיים מבנים לוגיים של נתונים שפה להגדרת נתונים שפה לטיפול בנתונים 220 222 227 2133 206 209 20 205 27 7. השוואה בין | דסד לבין המלצות 00048 8 סיכום פרק י: הח516ץ5 ₪356 הּ1ה03 031316 -- 5 הס 1. מבוא מושגי יסוד מבנה פיסי של בסיס הנתונים מבנים לוגיים שפה להגדרת נתונים שפה לטיפול בנתונים סיכום ₪ ₪ 5 ₪ 5 ב פרק טו: וח516ע5 0318 /90486ח3.! עזסט) 60זטוסטזו5 -- 501/05 מבוא הגדרת נתונים טיפול בנתונים בטיחות נתונים סיכום 3 5 ₪ ₪ = 6 מערכות לניהול בסיסי נתונים 6 רשימה ביבליוגרפית 6 מילון מונחים ואינדקס 10 114 117 118 1.09 412 24 5 1108 1 2 4 1500 2 1.3 1207 21 חלק ראשון עקרונות של מערכות לניהול בסיסי נתונים פרק א גישת בסיס הנתונים 1. מבוא 2. הגישה המקובלת לניהול נתונים 3 גישת בסיס הנתונים 4. אי-תלות בנתונים 5. ציוני דרך בהתפתחות מערכות לניהול נתונים 6. מנהל בסיס הנתונים 7. סיכום 8. שאלות 3 1. מבוא *קופרניקוס, האסטרונום והמתמטיקאי הידוע, פרסם בשנת 1543 את ספרו פַהוחז0חס - 1 |0201681/8) 01 פחסווט!סע6 6ח1 שהציג תיאוריה חדשה אודות התנועה הפיסית של כדור הארץ, הכוכבים והשמש. תיאוריה זו היתה מנוגדת לחלוטין לתיאוריה של מרכזיות כדור הארץ, שהיתה מקובלת כבר כ-1400 שנה. התיאוריה של מרכזיות השמש שהוצעה ע"י קופרניקוס התקבלה בביקורת רבה, וספרו של קופרניקוס הוכנס לרשימת הספרים האסורים ונשאר שם כ-200 שנה. השתמשתי בדוגמא של קופרניקוס כדי להדגים דיעה הרווחת בעולם מערכות המידע. מערכות אלה, וכל החשיבה והתכנון הקשורים להן, היו מבוססים על עקרון מרכזיות המחשב בלבד. כפי שהאנשים הקדומים ראו או השמש כסובבת סביב כדור הארץ, כך ראו אנשי מערכות המידע הראשונים את המחשב וסביבו קובץ סדרתי. כל אחד מהמודלים האלה התאים לזמנו ולמקומו. לאחר זמן מה הוא נמצא כלא נכון והיה צורך להחליפו במודל אחר, אשר ייצג בצורה נכונה יותר את ההתנהגות האמיתית של העולם. קופרניקוס הציג נקודת מבט חדשה והניח את הבסיס למכניקה המודרנית. נקודת מבט זו נתנה לנו הבנה במסתרי תנועת השמש והכוכבים ברקיע. בסיס חדש להבנה קיים היום גם בשטח מערכות המידע והוא מושג על ידי מעבר מנקודת המבט של מרכזיות המחשב לנקודת מבט של מרכזיות בסיס הנתונים". עד כאן מובאה (בתרגום חופשי) ממאמרו של ח08חח880 .)) 65!ז8חס, אחד מאבות המערכות לניהול בסיסי נתונים, אשר הוצג בשנת 1973 בעת קבלת הפרס היוקרתי ביותר בתחום המחשבים -- 6זפשו4/ פַחוזטד ו0א. המובאה מציגה בצורה בולטת את ההבדל בין מערכות מידע המבוססות על מערכות ניהול נתונים מסורתיות, לבין אלה המבוססות על מערכות לניהול בסיסי נתונים. בארגון המודרני, בנוסף למשאבים הכלכליים הקלסיים של עבודה, הון ונכסים ממשיים כוללים משאב חשוב נוסף -- הנתונים. נתונים על פעילויות, מוצרים, מצב פיננסי, מתחרים, וכדומה משמשים את הארגון לתפעול שוטף ולקבלת החלטות. שימוש יעיל בנתונים אשר זמינים במועד ובמידת אמינות גבוהה יכול לעזור לארגון בהשגת מטרותיו. לאחר הופעת המחשבים ה"מסחריים" הראשונים, בתחילת שנות ה-50, הבין עולם העסקים את יכולתם לייעל ולשפר את התהליכים של זרימת ועיבוד הנתונים ובכך לתרום לפעילות העסקית. עיבוד נתונים עסקי מחייב את הארגון לאסוף, לצבור ולעבד כמויות גדולות של נתונים. השימוש במחשב מחייב שכמות אדירה זו של נתונים תנוהל בצורה המובנת למחשב, כלומר בצורת רישום מגנטית כלשהי. מערכות המידע הממוחשבות הראשונות השתמשו בקבצים סדרתיים המאוחסנים בסרטים מגנטיים. אפשרות לגישה מהירה יותר לנתונים ובעיקר -- גישה באופן ישיר הושגה על ידי ההתקדמות שחלה בשטח החומרה עם הופעת טכנולוגית הדיסק המגנטי. שיפור בשיטות הארגון של הנתונים והגישה אליהם הושג עם ההתקדמות בתוכנה התומכת במערכות המידע ובעיקר על ידי המערכות לניהול קבצים. מערכות אלה שחררו את המשתמש מפעולות הקשורות בייצוג הפיסי של הנתונים ביחידות האחסון ומן הטיפול באחזקתם. המערכות לניהול קבצים היוו צעד גדול קדימה בטכנולוגיית עיבוד הנתונים ובכך איפשרו פיתוח מערכות מידע ממוחשבות ביתר קלות. ריבוי המחשבים והרחבת השימוש בהם במגזר העסקי גרם לצמיחה מהירה מאד בכמות הנתונים המאוחסנים ביחידות האחסון של המחשב. ניהול משאב הנתונים בצורה יעילה הפך לאחד האתגרים הגדולים של הארגון העסקי. במערכות לניהול נתונים התעוררו בעיות אשר 15 נגרמו עקב התלות הרבה שבין הנתונים לבין תהליכי עיבוד הנתונים. כך ניתן התמריץ לפיתוח טכנולוגיה חדשה לניהול נתונים, מערכות לניהול בסיסי נתונים (8856 818ס--5/ו8ס ₪8 וחִפַחִַסִחַָהח3//). מערכות אלו מקנות מספר יתרונות על פני צורות ניהול נתונים אחרות והן פותחות בפני הנהלת הארגון דרכים חדשות לניהול ולאחזור מידע עסקי. המערכות לניהול בסיסי נתונים עדיין אינן כלי נפוץ והן קיימות אצל מיעוט משתמשים, בעיקר הגדולים שבהם, אשר להם מערכות מידע מורכבות אשר פותחו מאמצע שנות ה-70. עם זאת, אין ספק שנהיה עדים למספר הולך וגדל של מערכות מידע המבוססות על בסיסי נתונים. ככל שההכרה בחשיבות הנתונים כמשאב מרכזי בארגון תלך ותגדל, גם השימוש בטכנולוגיית בסיסי הנתונים יהיה נפוץ יותר. המערכות לניהול בסיסי נתונים כוללות פונקציות שירות רבות ועל כן הן צורכות משאבי מחשב (זכרון, זמן יע"מ) רבים יותר מאשר מערכות התוכנה לניהול קבצים. המחשבים החדשים המגיעים לשוק זולים יותר באופן יחסי ובכך מאפשרים את יישום טכנולוגיית בסיסי הנתונים. במקביל נעשים נסיונות להפעלת מחשבים מיוחדים למתן שרותי בסיס נתונים (800/009/| 8856 ּו0--/ו8ס) באמצעות חומרה, בצידם של המחשבים המרכזיים המבצעים את פעילות עיבוד הנתונים. מאפייני מירע = - רחב טווח ארוך - סיכומי . (5 שנים) - גמיש - דוחות חריגים טקטי - מדדים (שנה אחת) - מפורט - מסויים יומיומי - מובנה תרשיס 0 -1: צרכי המידע בארגון 16 2. הגישה המקובלת לניהול נתוניס החלוקה המקובלת של הארגון העסקי מבחינת תהליכי קבלת החלטות היא לשלש רמות: הרמה התפעולית, הרמה הטקטית והרמה האיסטרטגית. ברמה התפעולית מתקבלות ההחלטות היום-יומיות הקשורות בתפעול שוטף של הארגון. בדרך כלל, תהליכי קבלת החלטות בדרג זה הינם פשוטים יחסית מאחר וכללי ההחלטה הינם ברורים ופשוטים. ברמה הטקטית מתקבלות ההחלטות הקשורות בהקצאת משאבים ותכנון, כגון קביעת תקציבים, ניהול כוח אדם, מדיניות פרסום וכדומה. ההחלטות ברמה זו מורכבות יותר ומבוססות בעיקרן על הערכות לגבי העתיד מבחינת התפתחויות צפויות. ברמה האיסטרטגית מתקבלות ההחלטות מבחינת מדיניות הארגון לטווח הארוך יותר ולכן הן מורכבות עוד יותר. מבחינת המבנה הארגוני, החלוקה המקובלת של הארגון העסקי היא למחלקות, אגפים, חטיבות וכדומה. חלוקה זו מתאימה לפעילותן העסקית של יחידות ארגוניות אלה. לדוגמא, מחלקת כוח אדם עוסקת בכל ההיבטים הקשורים לניהול כוח אדם (הדרכה, קידום עובדים, תקנים ועוד) בעוד מחלקת הפרסום עוסקת בכל ההיבטים, הקשורים בפעילות הפרסום של הארגון. מערכות המידע המקובלות חולקו גם הן בהתאם לשתי החלוקות: רמת קבלת החלטות והמבנה הארגוני. ניתן לסווג את רוב מערכות המידע המקובלות כמערכות המשרתות בעיקר את הרמה התפעולית בהתאם לחלוקה הארגונית. מערכות אלה מטפלות בכמויות גדולות של נתונים בתהליכים פשוטים יחסית ומוגדרים היטב. לדוגמא, מערכות להנהלת חשבונות, מערכות ניהול מלאי וכדומה. ההצלחה נובעת בעיקר ממהירות העבודה העצומה של המחשב ויכולתו לטפל ביעילות ובדיוק בכמויות גדולות של נתונים. החלוקה בהתאם ליחידות ארגוניות הביאה להקמת קבצים נפרדים לכל יישום בהתאם להשתייכות הארגונית של היחידה שעבורה הוקמה מערכת המידע. תרשים 1-1 מציג את הגבולות שנוצרו בין היישומים השונים באותו ארגון עסקי. לדוגמא, קובץ כוח אדם המשרת את מחלקת כוח אדם בלבד. מחלקת השכר מנהלת קובץ נפרד המשרת אותה בלבד, אך מכיל גם חלק מהנתונים שנמצאים בקובץ כוח האדם. 7 6 חוכניות הנהלת יישום חשבונות תוכניות ארם יישומם 8 וצור תרשים 1 - 1: גישת "הקובץ שליי 17 החלוקה הארגונית השפיעה על התוכן ועל המבנה של הקובץ, אשר נקבעו בהתאם לדרישות המידע של היחידה הארגונית שאותה משרתת מערכת המידע ובהתאם לשיטות העיבוד. לדוגמא, בקובץ כוח אדם ניתן למצוא נתונים כגון מספר זהות, שם העובד, כתובת, המחלקה שבה הוא מועסק, תפקיד וכדומה, אך לא נמצא בקובץ זה נתונים הקשורים לחישוב משכורת העובד מכיון שהקובץ אינו מיועד למטרה זו. נתונים אלה נמצאים בקובץ השכר שממנו מופקת משכורת העובד. מערכות המידע חייבות לשאת שינויים מתמידים בדרישות המידע ובנוהלי עיבוד המידע. תוך כדי הפעלת המערכת מתעורר הצורך בנתונים חדשים או בעיבודים חדשים של נתונים קיימים. מבנה הקבצים נוטה להתאים ליישומים המקוריים שעבורם תוכנן אבל אינו מתאים לרוב ליישומים החדשים. קובץ כוח אדם למשל, המשרת את מחלקת כוח אדם מכיל מספר רב של נתונים וממוין לפי מספר זהות העובד שהוא סדר המיון הנוח לרוב תוכניות היישום. כל תוכניות חיישום במחלקת כח האדם משתמשות באותו קובץ אך מכיון שאין הן זקוקות לכל הנתונים הכלולים בו, הן מתעלמות מחלק מהם. תרשים 2--1 מציג דוגמא של קובץ כוח אדם אשר משרת שתי תוכניות יישום, אחת -- להפקת דוח אלפון עובדים (רשימת עובדים ממויינת לפי שמות העובדים) ואילו השניה -- להפקת דוח עובדים לפי המחלקות. כל תוכנית "מתעלמת" מהנתונים שאינם דרושים לה וממיינת את הקובץ לפי סדר המיון המבוקש. מחלקה | שם מספר עובד | זהות מיון לפי שם תוכנית יישום עובדים לפי מחלקה תרשים 2 - 1: רשומה זהה המשמשת תוכניות יישום שונות 8 נשתמש בדוגמה של הוספת נתונים לקובץ על אודות הנסיון המקצועי הקודם של העובד. קיימות שתי חלופות (אלטרנטיבות) לביצוע השינוי המבוקש. 1. הוספת הנתונים החדשים לקובצ בשיטה זו "מרחיבים" את הרשומה הקיימת כדי שתכיל גם את הנתונים החדשים. מכיוון שמבנה הרשומה משתנה, יש לשנות בהתאם את כל תוכניות היישום המשתמשות בקובץ. בדרך כלל יש לבצע הידור (חסוז8!וסוחס) מחדש של תוכניות היישום, אך יתכן שיש צורך בביצוע שינויים מורכבים יותר. למרות ששינוי כזה לא נראה מסובך הוא גורר אחריו שינויים בתוכניות יישום רבות המשתמשות בקובץ וכתוצאה -- כמות העבודה שיש להשקיע לביצוע השינוי היא רבה. במערכות מידע אלו נוטים להשתמש במבני רשומות לא מעודכנים, או במבני נתונים שאינם מתאימים, מכיוון שדוחים ככל האפשר את הכנסת השינויים הדרושים או שמחליטים שלא לבצע אותם כלל. שינוי מבנה הקובץ ממבנה קיים למבנה חדש קרוי הסבה (חסו9ז8/ח00). מבנה חרש מבנה קיים נסיון ‏ | מחלקה || שם | מספר מקצועי עובד | זהות הסבה מחלקה || שם | מספר עובד | זהות הבה נחשב: 0 תוכניות לפי א שעות אדם לתוכנית ולפי ָ שעות מחשב לתוכנית = עלות ההסבה אנו רוצים לקבל מירע על נסיון מקצועי של העוברים שלנו מומחה עובד מקצועי בארגון עיבוד-נתונים (המשתמש) תרשים 5 - 1: שינוי מבנה הרשומה 19 2. בניית קובץ חדש חלקי מקימים קובץ חדש אשר מכיל רק את הנתונים הדרושים מתוך הקובץ הקיים ואת הנתונים החדשים. בשיטה זו אין צורך לשנות את כל התוכניות הקיימות ולהסב את מבנה הקובץ. החסרון של השיטה הוא כפילות הנתונים אשר עלולה לגרום להיווצרות שתי גרסאות של הנתונים כתוצאה של תהליכי עדכון ועיבוד הנפרדים. קובץ עבור היישום החדש קובץ כח-אדם קיים נסיון. | מחפכ = | מספר מחלקה | שם | מספר מקצועי קה | זהות עובר | זהות שנתיים [ תכנון הייצור שנתיים [ מחסן תרשים 4 - 1: פתרון על-ידי יצירת כפילות נתונים בעיות: - מספר גרסאות של "האמת" - אחזקת נתונים כפולים היא מורכבת ויקרה יש לציין שכפילות הנתונים קיימת גם אם נבחר באלטרנטיבה הראשונה. הכפילות נובעת מהעובדה שהחלוקה הפונקציונלית, כלומר אוסף הפעילויות העסקיות בעלות אופי דומה, לא תמיד זהה לחלוקה הארגונית. לדוגמא, נתונים הקשורים למכירות מעניינים את מחלקת השיווק, מחלקת הייצור ומחלקת הנהלת חשבונות. מאחר ואלה יישומים נפרדים הם קשורים לקבצים נפרדים, שבחלקם מכילים נתונים זהים. האחריות לניהול הקבצים נמצאת בידי צוותים מקצועיים שונים, המקבלים נתונים ממקורות שונים ומעדכנים לפי נוהלים שונים. במצב זה עלולה כפילות הנתונים לגרום להיווצרות "מספר גרסאות של האמת", לחוסר אמינות ועקביות של הנתונים ובסופו של דבר -- להתמוטטות מערכת המידע. מצב זה מודגם בתרשים 4--1. במשך הזמן החלו להופיע מערכות מידע אשר תומכות גם בתהליכי קבלת החלטות ברמה הטקטית. הן השתמשו בדרך כלל בנתונים המופיעים ביישומים שונים, אך מכיון שכל קובץ היה באחריות צוות מקצועי שונה היה צורך בתיאום עם "בעלי.הקובץ". זמן מחשב רב בוזבז לביצוע מעברי מיון ומיזוג לקבלת מבנה נתונים המאפשר הפקת מידע משולב מנתונים שנמצאים בקבצים שונים. בגלל הקושי בהגדרת דרישות המידע לרמה ניהולית זו, והצורך לשלב נתונים ממקורות שונים לשם הפקתו, התעוררו בעיות טכניות בהקמת מערכות מידע אלו 20 וקצב התפתחותן היה איטי מאד. מערכות מידע התומכות גם בתהליכי קבלת החלטות ברמה האיסטרטגית כמעט ולא ניתן למצוא. הקושי בהגדרת הדרישות ובהענות לדרישות מידע מורכבות ביותר בזמן תגובה קצר גרם לכך שהרמה הניהולית הבכירה כמעט ואינה יכולה להסתייע במחשב באופן מלא. השימוש במחשב הוא לקבלת מידע חלקי בלבד. לסיכום ניתן לומר, שהגישה המקובלת לניהול נתונים הציבה מספר בעיות בפני המשתמשים. חלוקת מערכת המידע של הארגון למספר מערכות מידע, בהתאם לחלוקה הארגונית גרמה לכפילות נתונים רבה ולקשיים רבים בהענות לדרישות מידע אמין בזמן תגובה קצר. הצורך בתיאום הגישה לקובץ עם "בעלי הקובץ" יצרה מצב שבו נתונים היו ב'"בעלותיי היישום ולא בבעלות הארגון. 3 גישת בסיס הנתוניס גישת בסיס הנתונים (ח080זקק4 8856 בּ081) מהווה גישה חדשה לניהול נתונים. היא התפתחה כמענה לבעיות הקיימות בגישה המקובלת ובעקבות המגמות של שילוב קבצי הנתונים למערכת אינטגרטיבית אחת תוך מתן אפשרות לגישה מהירה לנתונים במגוון רחב של חתכים. מטרות הגישה החדשה לניהול נתונים הן צמצום כפילויות הנתונים והגדלת אמינותם וזמינותם, תוך בניית מסגרת שתאפשר הענות מהירה לצרכים המשתנים של עיבוד הנתונים בארגון המודרני. 1 הגדרה מערכת לניהול בסיס נתונים (הח5/510 זחסחִסַסְבח8)!)! 8856 0818 -- 8/5) הינה מערכת אשר מאפשר גישה בו-זמנית של מספר רב של משתמשים שונים למאגר מרכזי אחד של נתונים (1970 ,פפופֶחם ). נבחן את המרכיבים העיקריים של ההגדרה. --מאגר מרכזי: ריכוז הנתונים במאגר נתונים אחד כללי הינה אחת הסיבות העיקריות לגישת בסיס הנתונים. גישה זו מתייחסת אל כל הנתונים כשייכים למאגר אחד כללי הקרוי בסיס הנתונים, ומנתקת את הקשר שהיה קיים בין מבנה הקובץ לבין מבנה הנתונים הדרוש לתוכניות היישום. בסיס הנתונים יוגדר כאוסף של נתונים הקשורים ביניהם תוך כפילות נתונים מבוקרת, ומיועדים לשרת מספר רב של תוכניות יישום. הנתונים מאוחסנים בצורה בלתי תלוייה בתוכניות היישום המשתמשות בנתונים. בגלל הניתוק שבין צורת האחסון לבין תוכניות היישום ניתן לבצע שינויים מסויימים במבנה הנתונים מבלי שתהיה לכך השפעה על תוכניות היישום המשתמשות בהם. אין זה מעשי תמיד לרכז את כל הנתונים של הארגון במאגר אחד. עם זאת, בניית מאגר נתונים משולב הינו אחד התפקידים החשובים בארגון. על ידי הקמת מאגר מרכזי מוציאים את 21 הנתונים מ"בעלות" היישום ומעבירים אותם לפונקציה מרכזית האחראית על ניהול הנתונים, מנהל בסיס הנתונים (ז910ז91וחווח0 8886 01 -- /08). ריכוז הנתונים במערכת משולבת אחת עשוי להביא לצמצום בכפילות הנתונים ולהעלות את אמינותם. תהליך הקמת המאגר המרכזי יכול להיות מורכב מאד, ועל-כן מחייב שיתוף פעולה ושיתוף נתונים בין קבוצות שונות של משתמשים שבגישה המקובלת היו אחראים על הנתונים שלהם. כשלון ביצירת שיתוף זה עלולה לגרום לכשלון בהקמת יישומי פוא08. הצלחת גישת בסיס הנתונים מחייבת תיאום מתמיד בין משתמשים שונים ובקרה מרכזית על הנתונים, תפקידים שהוטלו על מנהל בסיס הנתונים. -- נתונים: אם בסיס הנתונים צריך לייצג נתונים מועילים אודות העולם המציאותי עליו לייצג אותם כפי שהם קיימים בעולם זה. במשך שנים היו הנתונים מיוצגים בעיקר בהתאם לנוחות העיבוד במחשב, כמו למשל החלוקה ליחידות (רשומות) של 80 תווים בהתאם לגודל כרטיס ניקוב. במציאות הנתונים אינם קיימים ביחידות של 80 תווים אך אפשרויות העיבוד במחשב כפו מבנה זה. הייצוג של העולם המציאותי הינו לעיתים קשה מאד. מערכות ניהול בסיסי הנתונים חייבות להתגבר על מורכבות זו כדי לספק למשתמשים השונים את הנתונים כפי שהם רוצים בהם. דוגמא למורכבות המציאות הינה הטיפול והעיבוד של נתונים החוזרים על עצמם. ביישום של רכש למשל, ללקוח אחד יכולים להיות מספר רב של הזמנות. אם נתוני הלקוח יחזרו על עצמם כמספר ההזמנות שלו, תהיה בעייה של כפילות הנתונים. המערכת לניהול קבצים מספקות בדרך כלל שני פתרונות: רשומות באורך משתנה, או הפרדה בין קובץ הלקוחות לבין קובץ ההזמנות. שני פתרונות אלה אינם מספקים, ולכן במערכות ניהול בסיסי נתונים אפשריים גם פתרונות אחרים לבעיית ייצוג המציאות. --משתמשים שונים: התכנון של רוב מערכות 08/5 מכוון לאפשר למספר רב של משתמשים שונים הפועלים בשטחים פונקציונליים שונים של הארגון להשתמש באותם הנתונים. כלומר, שיתוף הנתונים (פָחוז8ח8 0818 ) הוא מרכיב חשוב במערכת. -- גישה בו-זמנית: גישה בו-זמנית לנתונים דרושה כאשר יישומים אחדים הפועלים באצווה עשויים לשלוף ולעדכן נתונים משותפים באותו זמן. ביישומים מקוונים (עיבוד בתקשורת, 6חז!-חס) נדרשת גישה בו-זמנית לנתונים על ידי משתמשים רבים גם כאשר הם פועלים באותו יישום. הדרישה לאפשר גישה בו-זמנית לנתונים קיימת בכל המערכות המקוונות לסוגיהן השונים. מערכות 08%18 מציעות פונקציות מסויימות של נעילה, התאוששות ובטיחות נתונים ובכך הן בעלות יתרון ניכר על פני מערכות רגילות לניהול קבצים בסביבה של תקשורת נתונים. 22 שם עובד 'בסיס הנתונים מכיל את כל הנתונים של הארגון מערכת המאפשרת לכל יישום ל"ראות" מבנה נתונים המתאים לו מערכת לניהול בסיס נתונים שם מספר עובד זהות אלפון עובדים שם | מחלקה עובד רשימת עובדים לפי מחלקות נסיון | מחלקה | מספר מקצועי זהות התפלגות עובדים לפי נסיון מקצועי תרשים 5 - 1: התאמת מבנה נתונים לכל יישום 23 2 מודל של מערכת לניהול בסיס נתוניס מערכת לניהול בסיסי נתונים הינה תוכנת מחשב אשר מאפשרת לנהל את מאגר הנחונים ולקיים משטר בטיחות והתאוששות בעת תקלה. הניתוק בין תוכניות היישום לבין מבנה הקובץ מתאפשר על-ידי הגדרת מודל נתונים כללי אשר מתאר את כל הנתונים המאוחסנים במאגרי הנתונים, ועל. ידי הגדרת מודלים חיצוניים ייחודיים אשר נותנים לכל משתמש או תוכנית יישום את תמונת הנתונים שהם זקוקים להם. הקשר בין מבנה הנתונים הפיסי אשר נמצא ביחידות האחסון לבין תמונת הנתונים המוצגת לתוכניות היישום או למשתמש בתקשורת מנוהל על ידי המערכת לניהול בסיס הנתונים. מבנה הנתונים במאגר מאפשר להוסיף נתונים הנדרשים ליישומים קיימים, או לשם פיתוח יישומים חדשים, מבלי שיהיה צורך לפגוע ביישומים המשתמשים בנתונים הקיימים. מערכת התוכנה לניהול בסיסי נתונים גם מאפשרת למשתמשים גישה אל הנתונים המאוחסנים בבסיס הנתונים. מערכת התוכנה מהווה מישק (1806ז6וח!) בין המשתמש לבין בסיס הנתונים והיא מאפשרת לו להגדיר את דרישות העיבוד מבלי שיהיה עליו לטפל בייצוג הנתונים ביחידת האחסון. התוכנה הינה אוסף של תוכניות מחשב לשם ביצוע פונקציות שונות כמו בניית בסיס הנתונים, אחזור ועדכון הנתונים בהתאם לדרישות המשתמש. . חובנית יישום ו תוכנית יישום 1 תוכנית יישום 3 מורלי חיצוני ו מודל חיצוני ג מורל חיצוני 3 ן תוכנה לניהול בסיס נתונים ₪ בסיס נתונים ג מורל פיסי כללי של הנתונים מודל כללי של הנתונים תרשים 6 - 1: מודל כללי של מערכת לניהול בסיס נתונים ברקע של תהליכי העיבוד השוטפים המשרתים ישירות את המשתמש, כוללת מערכת פס מספר פונקציות נוספות. הן מאפשרות לה לתפקד בסביבה דינמית של יישומים ומשתמשים, מבטיחות את מתן השירות הנדרש ומגינות על בסיסי הנתונים מפני פגיעה בשוגג או במזיד. --בטיחות נתונים (עווזט860): כל הנתונים נמצאים במאגר אחד מרכזי ולכן נדרש פיקוח על הגישה אליו. המערכת צריכה לאפשר גישה למשתמשים המורשים בלבד ולהציג להם רק את הנתונים שהם מורשים להם לשם עיון ולשם עדכון. מערכת 08/8 צריכה לאפשר לארגון לשמור על סודיות הנתונים המאוחסנים בבסיס הנתונים מפני פגיעה מכוונת או באקראי. --אמינות ושלימות (עוזפָטוח!): מערכת 88 מאפשרת הגנה על אמינות ושלימות 24 הנתונים המאוחסנים בבסיס הנתונים. ניתן להטיל עליה לבצע חלק מבדיקות התקינות והסבירות של הנתונים לפני כתיבתם בבסיס הנתונים. קיימות בדיקות מסויימות מורכבות יותר אשר לא ניתן לבצען בצורה אוטומטית על ידי התוכנה הסטנדרטית והן מתבצעות בתוכניות היישום השונות. --התאוששות (ץז8800%6): בסיס הנתונים משרת את כל הארגון ועל כן כל פגיעה בו או הפסקת פעילותו הינם חמורים. המערכת צריכה לאפשר החזרתו לתפקוד לאחר תקלה. רוב המערכות מאפשרות את המשך התפעול גם כאשר חלק מבסיס הנתונים אינו תקין -- על ידי עקיפת הקטע שנפגע. במקרים אחרים מאפשרת המערכת התאוששות מהירה של בסיס הנתונים והחזרתו לכשירות לאחר גילוי תקלה, כמו למשל הפסקת פעילות המחשב בעת העיבוד, תקלה פיסית בתקליט מגנטי, שיבוש בתוכנה וכד'. -- שיתוף נתונים (חַחוז8ח5 0818): מערכות 0818 צריכות לאפשר למספר רב של תוכניות יישום להשתמש בו זמנית בבסיס הנתונים מבלי לפגום בסודיות, באמינות ונכונות הנתונים המאוחסנים בו. רוב המערכות מספקות כלים למניעת עדכון בו זמני של הנתונים על- ידי מספר תוכניות יישום שונות. מניעת העדכון מתבצעת על ידי סינכרוניזציה של התוכניות או על ידי חסימת קטעי מאגר. רמת שיתוף גבוהה יותר היא גישה בו"זמנית על ידי משתמשים רבים במערכות תוכנה מקוונות. המטרות העיקריות לפיתוח והפעלה של מערכות לניהול בסיסי נתונים הן: א. הגדלת זמינות הנתונים: מתן אפשרות למשחמש המנוסה ולמשתמש הפחות מנוסה לגשת בקלות ובנוחות יחסית לנתונים. רוב מערכות 0818 מספקות כלים כגון שפות שאילתות מתוחכמות ומילון נתונים (עְזחסווסו0 0818 ) המכיל מידע על הנתונים המאוחסנים בבסיס הנתונים כמו למשל שמות הנתונים, משמעותם וכיצד ניתן לגשת אליהם. ב. יכולת לנהל את המבנה האמיתי של הנתונים: בין הנתונים קיימים קשרים שונים, כמו למשל הקשר שבין קובץ הלקוחות לבין קובץ הזמנות, מכיון שההזמנות שייכות ללקוחות מסויימים. בגישה המקובלת לניהול נתונים קשרים אלה מנוהלים על ידי תוכניות היישום, ובגישת בסיס הנתונים אחריות ניהול הקשרים הועברה למערכת 8/8ם. ניהול הנתונים על- ידי התוכנה הסטנדרטית מגדיל את אמינות ונכונות הנתונים מחד, ומפשט את תוכניות היישום מאידך. ג. הקטנת עלויות וזמן תגובה: מערכות 88 מאפשרות בדרך כלל את הקטנת זמן התגובה מרגע קבלת דרישה למידע ועד לאספקת המידע למשתמש. מכיון שגישת בסיס הנתונים מבוססת על מידה רבה של אי-תלות במבנה הנתונים גם יעילות צוות התכנות עולה. במערכות 8₪5 מתקדמות ניתן שירות של שפת שאילתות ודיווח המאפשרת גם למשתמש שאינו מיומן להציג את דרישותיו למידע ולקבל תשובה בפרק זמן קצר יחסית. לעומת האפשרות של הקטנת זמן התגובה למשתמש המבקש מידע, יתכן שידרש זמן מחשב ארוך יותר לביצוע העיבוד בגלל הגמישות של המערכת ואי התאמה בין הדרישה לארגון הפיסי של בסיס הנתונים. ד. כפילות נתונים מבוקרת: רמת כפילות נתונים גבוהה גוררת בעיות בעיבוד הנתונים ובאמינותם. גישת בסיס הנתונים מביאה רמה זו למינימום הדרוש. לעיתים, כפילות נתונים מזערית מסייעת לשיפור הביצועים של המערכת לניהול נתונים. מטרת מערכות 85 הוא לאפשר רמת כפילות נתונים מבוקרת כדי שתהיה מוצדקת גם מבחינה כלכלית. 25 4. אי-תלות בנתוניס אי-תלות בנתונים (06ח06ח0606ח! 0918 ) מוגדרת כיכולת להשתמש בנתונים מבלי להכיר את פרטי שיטת אחסונם. בסעיף זה נרחיב את הדיון במושג זה שהינו אחד המושגים החשובים ביותר בהבנת מערכות לניהול בסיסי נתונים. לנתונים שני סוגי מבנים, המבנה הלוגי והמבנה הפיסי. מבנה לוגי (6זט!סטז51 0318 !1.09108) המבנה הלוגי מציג מבנה נתונים כפי שהוא נראה מנקודת מבט או מתצפית המשתמש. המשתמש יכול להיות עובד מקצועי חסר ידע במחשבים אשר מנסח שאילתא באמצעות מסוף, או מתכנת הכותב תוכנית יישום. המבנה הלוגי הוא מבנה מופשט הקיים בדמיונו של המשתמש ומהווה הפשטה מסויימת של המציאות. במערכת לניהול מלאי למשל, מרכזים נתונים על רמת המלאי בכל המחסנים לכל פריט, ההזמנות לכל לקוח ועוד. כל אלה הם מושגים מופשטים אשר מיועדים לייצג את המציאות. המשתמש רואה תמיד את הנתונים במבנה מסודר כלשהו, למשל במבנה דוח על יתרות המלאי של הפריט. התוכניתן רואה בדמיונו מבנה רשומה שמכיל את הנתונים הדרושים בסדר קבוע כלשהו במסגרת הקובץ. תמונה זו יכולה להיות שונה מהמציאות מכיון שהאחסון הפיסי של הנתונים אינו בהכרח בצורה ובסדר שבה הם מוצגים במבנה הרשומה. את המבנה הלוגי של הנתונים ניתן לתאר בצורתו המופשטת בעזרת כללים מסויימים. תיאור זה הינו מודל הנתונים שעליו נרחיב את הדיון בפרקים הבאים. נוכל להבחין בשני סוגים של ל | מודלים: א. מודל כללי אשר מתאר את כל הנתונים המאוחסנים במערכת. מכיון שהוא מתאר את כל הנתונים של הארגון, קיים רק מודל אחד כזה לבטיס הנתונים. ב. מודל חיצוני אשר מגדיר את התצפית של המשתמש (שסו/ ז6פט) על הנתונים. המשתמש מתייחס בדרך כלל רק לחלק מהנתונים המופיעים במודל הכללי. לכל משתמש תצפית המתייחסת בדרך כלל רק לחלק מהנתונים המופיעים במודל הכללי. לכל משתמש תצפית שונה ולכן קיימים מספר רב של מודלים כאלה. ו מבנה נתונים לוגי אינרקס מכנה הנחונים כפי שנמצא ביחירת האחסון תרשים 7 - 1: תרגום מבנה פיסי למבנה לוגי מורל נתונים - 7 לצ 4 מבנה הנחונים שמופיע ברמיונו של המשתמש 26 במערכות לניהול קבצים קיים רק מודל חיצוני והוא חייב להיות זהה למבנה הקובץ. רק מערכות ניהול בסיסי נתונים מאפשרות את השימוש בשני מודלים אלו. אי-תלות פיסית מושגת על-ידי שימוש במודל אשר מבצע את התרגום בין המבנה הלוגי לבין המבנה הפיסי. תרגום זה הינו מיפוי (פַחוסס8/) של מבנה נתונים אחד במבנה נתונים אחר, כשם שהמפה הגיאוגרפית :הינה מיפוי של שטח פיסי בתרשים נייר דודממדי. רוב המערכות לניהול קבצים מספקות רמה זו של אי-תלות פיסית. התהליך של איתור רשומה "שקוף" בדרך כלל מבחינת המשתמש, והוא פונה אליה באמצעות השם ותוכן המפתח בלבד. צורת התרגום בין מפתח הרשומה לכתובתה ביחידת האחסון "שקוף" מבחינתו. מערכת 54/ (00ח61/ 400055 806זס51 |פטזזו/) של יבמ למשל, מנהלת באופן אוטומטי אינדקס לאיתור מהיר של הרשומות. המערכת מתרגמת את המפתח לכתובת הפיסית על-ידי ביצוע סריקות במספר רמות של אינדקסים אשר מנוהלים על ידה. נתונים 5 סורק את האינרקסים. ניגש לגוש המתאים ביחידת אחסון. מעביר אותו לוכרון ושולף מתוכו את הרשומה עם מפחח 1357 אינדקס ה האינרקס והנתונים מאוחסנים בריסק ומנוהלים על-ירי !5/4 תרשים 8 - 1: איתור רשומה לפי מפתח על ידי ו54₪/ קיימים שינויים במבנה הפיסי אשר מחייבים שינוי בתוכניות היישום. מעבר משיטת ארגון קובץ אינדקס סדרתי לקובץ בגישה ישירה מחייב שינוי בתוכניות מכיון שהלוגיקה שלהן מניחה שהקובץ ממויין, דבר שאינו נכון בקובץ לגישה ישירה. מבנה פיסי (6זט!סטז51 0319 |בסו5עחק ) מבנה פיסי מציג מבנה נתונים כפי שהוא מופיע ביחידות האחסון, דיסק או סרט מגנטי למשל. מבנה זה מכיל את הייצוג הבינרי של כל הנתונים המאוחסנים במערכת ורק הוא קיים באמת במחשב. רשומת עובד למשל מאוחסנת ביחידת האחסון כרצף של סיביות (88) בכתובת פיסית של דיסק. כתובת זו מורכבת ממספר הדיסק, מספר הגליל, מספר המסילה והמקום היחסי בתוך המסילה. הטיפול במבנה פיסי מחייב התייחסות לנושאים כגון אורך 217 הרשומה, גודל הגוש, תוכן שדות, מצביעים, אינדקסים וכדומה. טיפול בסוג זה של מבנים הינו מורכב מאד, טכני מאד ומעל ליכולתו ועניינו של המשתמש. המשתמש מעדיף לחשוב במונחים של מבנים לוגיים כגון קבצים ורשומות ולא במונחים של סיביות. המבנה הפיסי יכול להיות שונה מאד מהמבנה הלוגי. אי-תלות פיסית (00ח66ח4600ח! 818 |4סופעחק ) אי-תלות פיסית מוגדרת כיכולת לבצע שינויים במבנה הפיסי מבלי שיהיה צורך לשנות את תוכניות היישום. אי-תלות פיסית נוצרת בגלל היכולת לתאר את המודל הכללי והמודל החיצוני במונחים לוגיים ללא התייחסות למבנה הפיסי. כך ניתן לתאר את קובץ העובדים במונחים של רשומות ושדות בתוך הרשומות מבלי לתאר את צורת האחסון. מכיון שהמודל אינו מתייחס להיבטים פיסיים של אחסון הנתונים נוצרת רמה מסויימת של אי-תלות במבנה הפיסי שלהם. אפשר לבצע מספר שינויים במבנה הפיסי מבלי שיהיה צורך לשנות במקביל גם את המבנה הלוגי: --שינוי גודל הגוש כדי שיכיל מספר רשומות גדול יותר, -- העברת הקובץ ליחידת אחסון חדשה, למשל מדיסק 3330 לדיסק 3350 של יבמ, -- ארגון מחדש של קובץ אינדקס-סדרתי כדי שכל הרשומות שגלשו תהיינה בשטח האחסון הראשי של הקובץ, --שינוי השיטה לטיפול ברשומות גולשות, --שינוי שיטת הארגון לשיטה דומה, למשל מ-51! ל-5/1/, --הוספת אינדקסים משניים לקובץ בכדי לאפשר גישה לפי מפתחות נוספים. אי-תלות לוגית (06267006000ח! 0314 !09108 1) אי-תלות לוגית מוגדרת כיכולת לבצע שינויים במודל הכללי של הנתונים מבלי שיהיה צורך לשנות את תוכניות היישום. אי-התלות הלוגית קיימת בעיקר במערכות 08/8 שבהן אפשרי מודל חיצוני אשר מתווך בין תוכנית היישום לבין המודל הכללי של הנתונים. המערכות לניהול קבצים אינן מאפשרות אי-תלות לוגית ורוב הבעיות שנוצרו במערכות אלה נובעות מסיבה זו. אפשר לבצע שינויים שונים במודל הנתונים הכללי ולכל אחד מהם השפעה שונה על תוכניות היישום: -- הוספת סוג רשומה חדש למודל הכללי. אין כל שינוי בתוכניות היישום הקיימות מכיון שבמודל החיצוני סוג רשומה זה לא מופיע, -- ביטול סוג רשומה קיים מהמודל הכללי. יש צורך לשנות בהתאם את כל תוכניות היישום אשר משתמשות בסוג רשומה זה, -- הוספת שדה חדש לרשומה קיימת. אין כל שינוי בתוכניות היישום הקיימות אשר המודל החיצוני שלהן אינו כולל שדה זה, ְּ -- שינוי שם השדה במודל הכללי. אין כל שינוי בתוכניות היישום הקיימות מכיון שהתרגום בין שם השדה במודל לבין שמו במודל החיצוני מתבצע אוטומטית על-ידי מערכת 5פם, -- שינוי גודל שדה כלשהו. יש צורך לשנות את כל תוכניות היישום אשר משתמשות בשדה זה. אין כל שינוי בשאר תוכניות היישום אך יתכן שיהיה צורך בהידור כי יש שינוי במיקום שאר השדות ברשומה. 8 - שינוי מפתח הרשומה. יש לשנות את כל תוכניות היישום מכיון שהן משתמשות במפתת לאיתור הרשומה. כפי שניתן לראות, שינויים מסויימים במודל הכללי מחייבים שינוי בתוכניות היישום אשר משתמשות במבנה הלוגי המתאים. עם זאת קיימים מספר שינויים שאינם מחייבים שינוי בתוכניות היישום מכיון שהן משתמשות במודל החיצוני. במערכות לניהול קבצים לא קיימים שני המודלים ולכן הוספת השדה "נסיון מקצועי" לרשומת העובד מחייבת שינוי בכל תוכניות היישום המשתמשות בקובץ, גם אם אין הן משתמשות בשדה זה. הצורך בשינוי נובע מהעובדה שמערכות אלה מציגות למשתמש את כל הרשומה במבנה שטוח אחד, או כפי שהיא קרוייה: רשומה שטוחה (0ז8600 8%=). כל רשומה פיסית מהווה גם רשומה לוגית ולכן קל יחסית לבצע את התרגום. על המשתמש להכיר את מבנה הקובץ ומבנה הרשומה, כי ללא ידיעת סדר הופעת השדות ברשומה אין הוא יודע לפענח את תוכנה. מבנה פיסי מכנה לוגי שם מספר העובר זהות |מט| א 5 -- גביש משה מערכת לניהול 8 0 = : א | תרשים פ- : תרגום מבנה פיסי ולוגי עבור רשומות שטוחות במערכות 08₪/8 שבהן קיים מודל חיצוני הוספת שדה חדש לרשומה אינה מחייבת שינוי בתוכניות היישום שאינן מטפלות בשדה זה. המודל החיצוני מבודד את תוכנית היישום מהשינוי במודל הנתונים הכללי. ככל שרמת אי-התלות הלוגית גבוהה יותר, עלות ביצוע התרגום בין המבנה הלוגי והמבנה הפיסי גבוהה יותר. השאיפה היא להגיע לרמת אי-תלות כזאת המהווה פשרה בין היתרונות הנובעים ממנה לבין עלות ביצוע התרגום. נסכם את היתרונות והחסרונות של אי-תלות בנתונים: יתרונות -- נוחות שימוש מנקודת מבט המשתמש אשר אינו מטפל בבעיות הטכניות של אחסון הנתונים. פונים אל הנתונים בשמות סימליים (של רשומות, של שדות) ולא בציון כתובת ותכונות פיסיות של הרשומה. 29 -- ניתחן לבצע שינויים במבנה הפיסי של הנתונים ללא השפעה על תוכניות היישום או על איכות הפלט של התוכניות. -- ניתן לבצע שינויים מסויימים במודל הנתונים הכללי ללא צורך בביצוע שינויים בתוכניות היישום. -- אפשרות כיוונון (פַחוחטד) של המערכת לניהול נתונים כדי להעלות את יעילות הביצוע של תוכניות קריטיות על חשבון תוכניות פחות קריטיות. חסרונות -- מכיון שהמשתמש אינו מכיר את המבנה הפיסי של הנתונים הוא עלול להשתמש במערכת בצורה לא יעילה. למשל בקשה לשליפת רשומה לפי שדה שאינו שדה מפתח תגרום לסריקות סדרתיות בקובץ, וכתוצאה -- לזמן עיבוד ארוך מאד. נסיון .שם מספר מקצועי | עובר | זהות ו = 1 ו 1 מודלי חיצוני 1 בב וי מערכת לניהול [ שיתיים | בסיסי נתונים ו | > | | טט | | 1 ו בסיס הנתונים כולל את השרה החרש *שנות נסיון מקצועי- תוכנית יישום זו ממשיכה לראות את המכנה הלוגי הקורם מכיון שהמורל החיצוני שלה לא השחנה תרשים 10 - 1: תרגום מבנה פיסי ולוגי במערכות 5ו8ספ 0 5. ציוני דרך בהתפתחות מערכות לניהול נתוניס נסקור בקצרה את המערכות לניהול נתונים ונדגיש את המאפיינים שלהן. 1 מערכות בסיסיות לניהול נתוניס מערכות אלו היו קיימות עד תחילת שנות ה-60. הן דומות יותר לאוסף של הוראות קלט ופלט מאשר למערכת ניהול נתונים. כל תוכנית יישום טיפלה בקובץ אחד או יותר בהתאם לדרישות היישום וכל גישה לנתונים, הן הלוגית והן הפיסית, היתה לחלק בלתי נפרד מהתוכנית עצמה באמצעות שגרות קלט/פלט שהיו משולבות בה. השגרות נכתבו על-ידי התוכניתנים בעמל רב מכיון שטפלו ברמה הבסיסית של התכנות ובקשר שבין התוכנה לחומרה. תוכנית היישום תרשים 11 - 1: מערכת בסיסית לניהול נתונים תוכניות אלה היו תלויות תלות מוחלטת בצורת האחסון הפיסית של הנתונים. שיתוף נתונים בין יישומים שונים היה כמעט בלתי אפשרי. מגבלה זו גרמה לכך שקבצים שונים הכילו נתונים זהים בהתאם לצרכי היישום ולעיתים אותם הנתונים הופיעו בהם במבנים שונים (שם משפחה בקובץ אחד הכיל 40 תווים, ובשני -- 35 תווים). ככל שמספר היישומים הלך וגדל, כן גדלה גם כפילות הנתונים ונפגעה אמינותם. תוכניות שונות עדכנו בנפרד את אותם הנתונים שהופיעו בקבצים שונים יגרמו לעיתים לאי התאמה. המאפיין המרכזי של מערכות אלה היה הקושי הרב לגישה לנתונים ולניהולם. 2 מערכות לניהול קבציס מערכות ניהול קבצים (5/510₪08 וחפחִסְפַח8!/ 6וו=--15=) הופעלו מתחילת שנות ה607 והן נמצאות עדיין בשימוש נרחב. הן מציעות למשתמש מגוון קטן יחסית של מבנים לוגיים אך משחררות אותו מטיפול במבנה הפיסִי של הנתונים. מערכות אלו מטפלות בהצלחה בקבצים בעלי תבנית רשומה זהה או משתנה ומספקות כלים תקניים ליצירת ואחזקת הקובץ. תוכניות היישום אינן מתייחסות כלל למבנה הפיסי של הנתונים אלא בעיקר למבנה הלוגי שלהם. הן משיגות זאת באמצעות שגרות סטנדרטיות לגישה לנתונים אשר מהוות חלק מהמערכת לניהול קבצים. דוגמאות אופייניות למערכות אלה הן |/54₪/ ר- 8ו של יבמ. 31 מערכת לניהול קבצים מבנה לוגי תרשים 12 - 1: מערכת לניהול קבצים במערכות לניהול קבצים קיים קשר הדוק בין המבנה הפיסי לבין המבנה הלוגי. תוכניות היישום "מָכירות" את התכונות הפיסיות של הקובץ כגון מבנה הרשומה, מפתחות הקובץ, שיטת גישה לרשומות ועוד. הקשר הקיים בין רשומות שונות בא לידי ביטוי בתוכניות היישום ובתוכניות מערכת התוכנה אשר מאחזרות את הרשומות המבוקשות. שינויים בארגון הקובץ ובסוג יחידת האחסון חייבו שינוי מקביל בתוכניות היישום. לדוגמא, כאשר בארגון מסויים נדרשים נתונים אודות התשלומים של הלקוחות יש לבדוק באילו קבצים נמצאים הנתונים. נניח שבמקרה זה הם נמצאים בשני קבצים שונים: קובץ הלקוחות שמכיל את פרטי הלקוחות וקובץ התשלומים שמכיל את פרטי התשלום של כל הלקוחות. הקשר בין שני הקבצים האלה יתבצע על-ידי מספר הלקוח שנמצא בשני הקבצים. על המתכנת להכיר את מבנה הרשומות והשדות בשני הקבצים ואת שיטת הגישה לכל אחד מהם כדי לכתוב את הוראות הקלט/פלט המתאימות ואת הוראות העיבוד. כ כוח"אדם משימות שלא (ב"א) ניתן לבצע מחוסר כ"א כוח"אדם קיים כ"א דרוש לאחזקה תרשים 15 - 1: הקצאת משאבי כח-אדם ביחידות ענ"א 2 תיאור הנתונים שהתוכנית השתמשה בהם והמבנה הפנימי של כל הרשומה היו לחלק ממנה ללא אפשרות להתעלם מנתונים אפילו אינם דרושים. עם זאת שחררו מערכות אלה את התוכניתן מבעיות של הצגה פיסית של הנתונים ביחידת האחסון. שיתוף נתונים בין יישומים שונים התאפשר ע"י השימוש במערכת לניהול קבצים והושג צמצום מסויים בכפילות הנתונים. בעיות בניהול מערך הנתונים עדיין נותרו, וביניהן תיאום בין המשתמשים השונים לשם עריכת = כל שינוי במבנה. הוספת נחון לקובץ גרר שינוי במספר רב של תוכניות, גם אם הנתון לא נדרש להן, והסיבה---שינוי מבנה הרשומה. הקושי בביצוע שינויים ברשומות גרם לכך שהיתה נטייה לדחות ביצוע שינויים בקבצים לאחר הפעלת היישום, וכתוצאה מכך -- תכולתם לא התאימה לדרישות הצרכנים. תרשים 13--1 מציג את המצב האופייני ברוב היחידות המשתמשות במערכות לניהול קבצים. כמות כוח האדם הדרושה לפיתוח יישומים חדשים ולאחזקת יישומים קיימים גדולה מכמות כוח האדם הקיימת ביחידה ולכן חלק גדול מעבודות הפיתוח אינו יכול להתבצע. 3 מערכות לניהול בסיסי נתונים מערכות ניהול ניהול בסיסי נתונים הופיעו לראשונה בסוף שנות ה607. היו אלו 5!או של יבמ ו- 6ס! של הוניוול. הן הקלו במעט על המשתמשים אם כי עדיין לא הציגו רמה גבוהה של אי-תלות בנתונים. מאמץ מחקר רב הושקע על-ידי מוסדות מחקר, בתי תוכנה וארגונים שונים לקידום הידע ולהגדרת הדרישות ממערכות לניהול נתונים. בתחילת שנות ה-70 פורסמו ההצעות וההמלצות הראשונות למבנה רצוי של מערכת 818כ, מבנה שפות להגדרת נתונים ונושאים נוספים הקשורים בנושא בטיס הנתונים. בשנת 1970 גובשה ההצעה המשותפת של שני ארגוני המשתמשים שפו60 ו ₪5 903. לאחר מכן הוגשו ההמלצות של 1צ00046 (5)60צ6 800 2818 ח0 06ח6ז6וה0ס 68 הארגון שהיה אחראי לפיתוח וקביעת תקנים של .60801 והחליט לעסוק גם בבעיות של ניהול נתונים. )60048 הקים צוות משימה מיוחד (188% 8880 0818--6דםס סטסז) לשם הגשת הצעה למודל נתונים רצוי במערכת לניהול בסיסי נתונים. הצוות חקר מספר מערכות ניהול קבצים וניהול בסיסי נתונים שהיו קיימות ובשנת 1971 פרסם דוח שבו הגיש את המלצותיו. הדוח כלל ניסוח פורמלי של מודל הנתונים הרשתי וקבע את החלוקה בין הסכימה המתארת את המודל הכללי לבין תת-הסכימה המתארת את המודל החיצוני ואת מבנה השפה להגדרת נתונים. מודל הנתונים של 0008%1 זכה להערכה רבה מאחר והוא הציג לראשונה כיוון כללי לתכנון בסיסי נתונים וטפל במספר בעיות עקרוניות חשובות. למרות שהמודל זכה גם לביקורת רבה הוא מהווה ללא ספק ציון דרך בהתפתחות מערכות 8818 ונראה שהוא ישפיע גם על מערכות 88כ עתידיות. בשנת 1975 הוצגה העבודה של ארגון התקינה הלאומי של ארה"ב -- |485 (חפסוזסוח ג 86 5180808 |החסווא). במסגרת הארגון פעלה קבוצת מחקר למערכות מחשב ומידע, צוות 3א/6540 (חס 108 00 18ה6וח6זוט₪60 300 ההוהחגוק 05ז08חה8ו5 פָחו00959זק הסו!)הוזס)ה| טח8 8זסזטקו 00), שעסק בגיבוש מסגרת לארכיטקטורה של מערכת 5וו8. עבודה זו הציגה באופן פורמלי מערכת 0818 המורכבת משלש רמות שונות. ברמה העליונה נמצאות מספר סכימות חיצוניות המתאימות למבנה הנתונים המבוקש על"ידי המשתמש. ברמת הביניים נמצאת סכימה מושגית (|090108ח00) אשר מציגה את המודל הכללי של הנתונים ואינה תלוייה בתוכניות היישום המשתמשות בהם. ברמה הנמוכה 3 ביותר נמצאת סכימה פנימית המתארת את המבנה הפיסי של בסיס הנתונים. בין שלש הרמות האלה מבצעת מערכת 8₪08ם את כל המיפויים או התרגומים הדרושים. מודל 3 ופא הינו מודל מקובל כיום לארכיטקטורה של מערכת 08/8 מכיון שהוא מאפשר מידה רבה של אי-תלות בנתונים, הן מבחינה הפיסית והן מהבחינה הלוגית, באמצעות שיטת המיפוי בין שלש רמות המודל. תרשים 6 - 1 מציג את הארכיטקטורה של מערכת 5 המבוססת על מודל זה. המודל של ופא היה רעיון חדשני ופריצת דרך חשובה במובן העקרוני של הבנת מבנה מערכת בסיס נתונים, אך הוא לא שימש בסיס למערכת תוכנה כלשהי. רוב המערכות המסחריות הקיימות לא מבצעות את ההפרדה לשלשת הרמות. בדרך כלל הן משלבות את המודל הפנימי עם המודל הכללי ולעיתים גם לא מספקות כלל מודל חיצוני. זו אחת הסיבות | לכך שברוב המערכות הקיימות עדיין לא הושגה רמה משביעת רצון של אי-תלות בנתונים. יש להניח שבעתיד תופענה מערכות המבוססות על ארכיטקטורת 5|/804₪0/8א4 והמשתמש ישיג רמה גבוהה יותר של אי-תלות פיסית ולוגית. המפתח להצלחת מערכות פוא8כ עתידיות יהיה בשני מישורים: אי"התלות בנתונים ואחזור נוח של נתונים. הן חייבות לספק מגוון כלים שיאפשרו גישה מהירה ונוחה, בעיקר לשאילתות מזדמנות, עבור משתמשים בלתי מנוסים. המערכות הקיימות מטפלות בשתי בעיות אלה ברמות שונות של הצלחה. המערכות המבוססות על מודל הנתונים הטבלאי ושפות השאילתות שלהן הינן הפיתוח האחרון בשלב זה ומכוונות להגשמת הדרישות האלו. הבעייה העיקרית במערכות פומ היא שהציפיות של המשתמשים והצרכנים היו גבוהות מאשר יכולת ההגשמה שלהן בפועל. ארגונים שהאמינו שמערכות אלה מהוות את התשובה לכל בעיות עיבוד הנתונים התאכזבו עד מהירה. בעיות מסויימות אמנם נפתרו אולם בעיות חדשות צצו. למרות זאת אין ספק שמערכות 08/8 מהוות אבן דרך חשובה בהתפתחות המערכות לניהול נתונים בפרט ומערכות עיבוד הנתונים בכלל. 48 מאפיינים של מערכות לניהול נתוניס א. מערכות בסיסיות לניהול נתונים -- קבצים מאורגנים במבנה סדרתי, -- מבנה פיסי הדומה למבנה הלוגי, -- עיבוד אצווה ( ח8810) בלבד, -- שמירת מספר עותקים של אותו קובץ בשיטת אב-בן, -- מערכות הפעלה תומכות בפעולות קלט ופלט בסיסיות בלבד, -- שינוי במבנה הנתונים מחייב תכנות מחדש של תוכניות היישום או ביצוע שינויים גדולים בתוכניות אלו, -- מבנה הנתונים נקבע לפי צרכי יישום אחר בלבד, או בעיקר לפי צרכי יישום זה, -- כפילות רבה של נתונים. ב. | מערכות לניהול קבצים -- גישה סדרתית או ישירה לרשומות, -- קיימת אי-תלות פיסית מסויימת, ניתן לשנות יחידת אחסון למשל ללא שינוי כלשהו בתוכניות או שינוי מועט בקטעי הגדרה של יחידת האחסון, 4 ג. -- עיבודי אצווה ועיבודים מקוונים (8ח!-חס), -- מערכת ההפעלה מספקת את הניהול הפיסי של יחידות האחסון, -- מבנה הנתונים נקבע לפי צרכי יישום אחד בלבד או בעיקר לפי צרכי יישום זה, -- כפילות רבה של נתונים, -- אחזור נתונים בדרך כלל לפי מפתח אחד, -- ניהול הקשרים בין הנתונים באחריות תוכניות היישום. מערכות לניהול בסיסי נתונים: -- ניתן לבנות מספר קבצים לוגיים שונים מאותו מבנה פיסי, -- מידה רבה של אי-תלות פיסית, -- איתלות לוגית מסויימת, קיימים שינויים כלשהם במבנה הלוגי שאינם גוררים שינויים בתוכנות היישום, -- עיבודי אצווה ובעיקר עיבודים מקוונים, -- שימוש בטכניקות ארגון קבצים מורכבות ללא ביטוי בתוכניות היישום, -- שיתוף נתונים בין מספר רב של יישומים, -- כפילות נתונים מבוקרת, -- כללים להרשאת גישה של המשתמשים בבסיס הנתונים, -- ניהול הקשרים בין הנתונים נעשה במערכת התוכנה ולא בתוכניות ביישום. 55 6. מנהל בסיס הנתוניס בגישה המסורתית לניהול נתונים היתה האחריות לנתונים נתונה בידי המחלקות או היישומים השונים. כל מנהל יישום שמר וניהל בהתאם לצרכיו את הנתונים אשר נדרשו לו בתהליכי העיבוד השונים. הגידול המתמיד במורכבות ובגודל היישומים הציב בעיות שליטה קשות בפני מנהלי היישומים, אך רק הופעת מערכות 08/8 הביאה לשינוי בגישה המקובלת לניהול נתונים. אפשרות ריכוז הנתונים של הארגון במאגר אחד גרמה לכך שהם הוכרו כמשאב של הארגון והופקעו מבעלות מחלקתית. המורכבות הרבה של מבני הנתונים, הקשרים ביניהם והרגישות הנובעת מריכוזם למאגר משותף אחד הביאו ליצירת תפקיד חדש, מנהל בסיס הנתונים (ז810ז81!חוח 6 אום.- -284). חשוב להדגיש שמנהל בסיס הנתונים אינו הבעלים של הנתונים שנמצאים במאגר אלא רק אחראי לניהולם התקין והיעיל ולאבטחתם. תוכן הנתונים במאגר נשאר באחריות היישומים השונים אשר כוללת הזנה, עדכון והרשאת שימוש בהם. מנהל בסיס הנתונים מעורב בכל שלבי ההקמה, התכנון, היישום והבקרה של מערכות 68. מעורבותו נובעת מריכוז כל הנתונים במאגר אחד ומהצורך שמומחה מקצועי יתפעל ויפקח באופן שוטף על מערכת פאס ויסייע לבעלי היישומים המשתמשים במאגר הנתונים. חשיבות התפקיד עולה ככל שהמערכת מורכבת יותר, ובמערכות גדולות ומורכבות ממלא את התפקיד צוות אנשי מקצוע בתחום מאגרי נתונים, כל אחד בעל תחום התמחות שונה. למנהל בסיס הנתונים תפקיד חשוב בשלבי התכנון והבחירה, בשלב עיצוב בסיס הנתונים ובעת ההפעלה השוטפת של המערכת לניהול בסיס הנתונים. ּ בשלב התכנון הראשוני והבחירה של מערכת 08/8 משתתף מנהל בסיט הנתונים בקביעת המערכת אשר תתאים ביותר לצרכי הארגון. הוא משתתף בתהליכי התכנון לטווח ארוך של צרכי המידע בארגון ובכך יכול לשלב את צרכי הארגון עם אפשרויות היישום במערכות ניהול בסיסי נתונים לטווח הקרוב ולטווח הרחוק. בשלב עיצוב בסיס הנתונים שותף מנהל בסיס הנתונים בתהליך הגדרת המודל הכללי של הנתונים בארגון אשר מבוסס על צרכי המידע ועל דרישות העיבוד של המשתמשים השונים. מנהל בסיס הנתונים אחראי על הקמת מודל הנתונים הלוגי אשר מתאר את הנתונים של הארגון בצורה עקבית ושלימה ומהווה בסיס לפיתוח כל היישומים העתידיים. השלב הבא הינו הגדרת המודל הפיסי של הנתונים. מכיון שלא ניתן לפתח מבנים פיסיים שיאפשרו עיבוד יעיל בכל היישומים עליו לקבוע אילו יישומים עדיפים מבחינת דרישות העיבוד ובהתאם לכך לבנות את בסיס הנתונים. מנהל בסיס הנתונים מגדיר בתיאום עם בעלי היישומים את כללי הבטיחות במערכות ואת נוהלי הגישה לנתונים לקריאה ולעדכון. בשלב הפעלת המערכת עורך מנהל בסיס הנתונים מעקב מתמיד כדי לשפר ולייעל וכדי להעלות את רמת האמינות והזמינות. עליו להציע שינויים שונים בנוהלי הפעלה או בתוכנה או בחומרה לאחר שהוא מעריך את התועלת הצפוייה לעומת עלות השינוי. לדוגמא, יתכן שניתן להוסיף אינדקס משני כדי ליעל את הגישה לנתונים מסויימים אבל מאידך אינדקסים אלה משפיעים על זמן העדכון וצורכים שטחי אחסון. דוגמא אחרת יכולה להיות החלטה על כפילות נתונים במטרה ליעל ולשפר את זמן הגישה. מכיון שקיימת אי-תלות פיסית המשתמש אינו מכיר את המכנים הפיסיים ולכן אינו יכול להחליט אם הוא משתמש בבסיס הנתונים בצורה יעילה, למנהל בסיס הנתונים יש את הידע על המבנה הפנימי ולכן הוא צריך לשקוד על שיפורו המתמיד. עליו לבצע שינויים שונים במודל הנתונים בהתאם לצרכים המשתנים של הארגון ולתת תמיכה לפיתוח יישומים חדשים. 66 תפקיד נוסף הוא פיתוח כלים לשמירת אמינות בסיס הנתונים על-ידי שימוש בחומרה ובתוכנה לגיבוי והתאוששות ולמצקב אחר גישת המשתמשים לבסיס הנתונים. 7 סיכוס מערכות המידע מבטאות יחסי גומלין בין אנשים, נתונים, כללים לעיבוד נתונים ומכונות לעיבוד נתונים. מטרות מערכת המידע הן לאחסן, לעבד ולשלוף נתונים הן לצרכים תפעוליים של הארגון והן להקטנת מרכיב אי-הודאות בתהליך קבלת החלטות בדרגי הניהול השונים. להשגת המטרות, משתמשת מערכת המידע באנשי מקצוע, הן בנושאים יחודיים לארגון והן בנושאי מחשב, ובתוכניות יישום המשמשות לרישום לעיבוד ולאחזור נתונים בהתאם לדרוש. החלק הקריטי ביותר במערכת מידע הינו בדרך כלל החלק המטפל באחסון ובאחזור הנתונים, בעדכון ובהגנה על שלימותם. בתחילת תקופת השימוש במחשבים לעיבוד נתונים מסחריים כל תוכנית יישום טיפלה באופן ישיר בנתונים. כתוצאה מכך נוצרה כפילות נתונים רבה והושקע מאמץ ניכר בפיתוח יישומים. שיתוף נתונים בין יישומים שונים היה קשה מאד וכמעט בלתי אפשרי. כתוצאה מכך התפתחו המערכות לניהול קכבצים אשר שחררו את המשתמש מטיפול ישיר במבנה הפיסי. למרות זאת, גם הן חייבו ידע מסויים מצד המשתמש על צורת אחסון הנתונים ועל שיטות הגישה אליהם, על מבנה הרשומה וסדר השדות בה ועוד. עם זאת, הושגה התקדמות רבה בתחום אי-התלות הפיסית של תוכניות היישום אשר ביטאו במידה רבה יותר את התהליך הלוגי של הטיפול בנתונים. מערכות 818 התפתחו כדי לאפשר גישה קלה ונוחה יותר לנתונים. מערכות אלה משמשות כמישק בין תוכנית היישוס לבין המבנה הפיסי של בסיס הנתונים. המשתמש מציין באילו נתונים הוא רוצה מבלי שיהיה עליו לפרט היכן הם נמצאים וכיצד יש לגשת אליהם. חשוב להדגיש שלמרות העובדה שמערכות 18א08 אינן מערכות מידע הן מהוות כלי טכנולוגי חשוב בדרך ליישום מערכות מידע יעילות. היישום המוצלח של מערכות 08/8 מחייב תכנון מפורט תוך שימת דגש לתכנון בסיס הנתונים, פיתוח מודולרי של היישומים ותמיכה טובה של אנשי תוכנה. לא כל היישומים של מערכות 0815 היו מוצלחים ויש ארגונים שאינם מעיזים להפעיל מערכות אלה. לעומת זאת ניתן למצוא מספר רב של הצלחות בהקמת מערכות 088 והפעלתן במשך שנים רבות. המעבר ממערכת לניהול קבצים למערכת 8ומם, כלומר לבסיס נתונים משולב מהווה שינוי משמעותי בתהליך עיבוד הנתונים בארגון. אין להתעלם גם מהמרכיב הכספי הכרוך בשינוי זה -- צורך במומחים בנושא, עלות התוכנה וצריכת משאבים גדולה יותר. גורמי העלות ניתנים לזיהוי ולכימות בקלות יחסית לעומת גורמי התועלת. בין גורמי התועלת הישירים אפשר למנות את החסכון בתכנות של המערכות לניהול קבצי הנתונים ושילובם למטרות הארגון, חסכון באחזקה ובשינויים מקיפים כאשר נדרש שינוי במערכת או בחומרה ועוד. התועלת העקיפה הינה בהעלאת רמת האמינות והזמינות של המערכת, גמישות יחסית לשינויים בנתונים, ביישומים או בחומרה. בחירת מערכת 8/8 מתאימה לארגון הינה החלטה חשובה מאד כי היא קובעת את שיטת ניהול הנתונים לטווח ארוך. מערכת זו הינה "קו הייצור" של המידע בארגון וכשם ששינוי קו ייצור כרוך בקשיים כן מעבר ממערכת 88 אחת לאחרת. 17 8 88 שאלות מהו המונח המתאים להגדרת "בסיס נתונים": -- בלתי תלוי בחומרה של המחשב ובאילוצי תוכנה. -- מכסה את כל סוגי הנתונים עבור כל המשתמשים. -- הנתונים המאוחסנים חייבים לייצג את המציאות. -- יש לדאוג לא לאבד נתונים מאוחסנים ולתת להם להפוך לבלתי אמינים בעקבות שגיאת מחשב או אדם. -- אנשים וארגונים מצפים שהנתונים אודותיהם לא ישמשו למטרות אסורות ולא יוצגו בפני אנשים בלתי מורשים. מדוע רצוי שבסיס הנתונים יאחסן כל עובדה פעם אחת בלבד? תאר את ההבדל בין אי-תלות לוגית לאי-תלות פיסית. האם ניתן להשתמש בגישת בסיס הנתונים רק בארגונים גדולים? מה מידת החשיבות וההגיון בגישה זו עבור ארגונים קטנים? במה שונה בסיס הנתונים מקובץ המכיל רשומות הבנויות לשירות יעיל של יישום מסויים בלבד? הצג אוסף של טיעונים בהם היית משתמש כדי לשכנע מנהל להשתמש בגישת בסיס הנתונים למערכות המידע של הארגון. פרק ב אחסון נתונים וארגון קבצים 1 מבוא 2. מושגי יסוד ניין . ארגון קבצים בסיסי . ארגון קבצים עילי 0 - . שאלות 59 1. מבוא הגורמים המשפיעים בצורה ניכרת על הביצועים של תוכניות היישום המופעלות בסביבת בסיס הנתונים הם שיטות אחסון הנתונים ושיטות הגישה אליהם. מערכות 088 משתמשות במודל נתונים פנימי כלשהו המיושם באמצעות שיטות הגישה התקניות של מערכת ההפעלה. רוב המערכות מציעות למתכנן מספר שיטות גישה שונות ועליו לבחור את השיטה המתאימה לו ביותר. מטרת התכנון של המבנה הפיסי של בסיס הנתונים היא בניית בסיס נתונים אשר יכול להשיג את הביצועים הטובים ביותר בעלות הנמוכה ביותר. ככל שבסיס הנתונים.יהיה יותר קטן מבחינת נפח אחסון יהיה צורך בפחות יחידות אחסון ולכן העלות של אחזקת הנתונים תהיה נמוכה יותר. מבנה נתונים אשר מאפשר איתור מהיר של רשומות יקטין את עלות העיבוד ויעלה את שביעות רצון המשתמשים. חשוב לזכור שבסיס הנתונים משרת מספר רב של יישומים בעלי דרישות עיבוד שונות ולכן מבנה הנתונים חייב לייצג מידה מסויימת של פשרה כדי להשיג אופטימום על פני כל היישומים ולא עבור יישום אחד בלבד. בדרך כלל הטכניקות המאפשרות גישה מהירה לרשימות מחייבות אחסון של אינדקסים או מצביעים (בכך מגדילים את נפח האחסון של בסיס הנתונים). שיפור זמן הגישה לרשומות יכול לבוא לעיתים על חשבון זמן העדכון בגלל הצורך לנהל אינדקסים נוספים. המתכנן חייב לדעת את היתרונות והחסרונות של שיטות הגישה השונות ולבחור את השיטה המשיגה את הביצועים הטובים ביותר, בעלות הנמוכה ביותר עבור כל היישומים המופעלים והמתוכננים במערכת. בפרק זה נסקור את השיטות השונות לארגון קבצים ואת שיטות הגישה לנתונים המיושמות ברוב מערכות פ8וא8. השיטות נסקרות בקצרה רבה והקורא המעוניין מופנה לספרות העניפה בנושא ארגון קבצים ומבנה נתונים, ואל הספר "ארגון נתונים וניהול קבצים" מאת המחבר (הוצאת "הוד"עמי", 1982). 41 2 מושגי יסוד בסעיף זה נציג את מושגי היסוד הקשורים באחסון ובניהול נתונים. מקובל לחלק את המושגים לשתי קבוצות: --מושגים הקשורים ליחידות האחסון, כלומר לחומרה המשמשת לאחסון הנתונים. --מושגים הקשורים למבנה הנתונים. בקבוצה זו מקובל להבחין בין מבנה הנתונים כפי שהם מאוחסנים ביחידות האחסון--המבנה הפיסי, לבין מבנה הנתונים כפי שהוא מוצג למשתמש---המבנה הלוגי. 1 מושגי יסוד ביחידות אחסון נתוניס הזכרון הפנימי של המחשב הינו קטן יחסית בהשוואה לכמויות הנתונים שיש לאחסן ויקר מאד לאחסון נתונים לאורך זמן. לכן פותחו יחידות אחסון חיצוניות המשמשות לאחסון כמויות גדולות מאד של נתונים בעלות נמוכה יחסית. יחידות אחסון אלו כוללות מספר סוגי ציוד: סרטים מגנטיים, דיסקים מגנטיים, תופים מגנטיים, קסטות, תקליטונים וכדומה. בהמשך נדון ביחידות הדיסקים (8ווח/ 018% סופַחחָ8/) מכיון שבסיסי הנתונים מאוחסנים ביחידות אלה אשר מאפשרים גישה ישירה לנתונים ובכך מספקים זמן גישה קצר. יחידת אחסון בגישה ישירה (109ש08 8107806 400088 601זום--0450) היא יחידה שבה ניתן לגשת בצורה ישירה. לנתונים הדרושים באמצעות כתובת, בלי צורך לסרוק או לקרוא את כל הנתונים בקובץ. דיסקים ותקליטונים הם יחידות אחסון בגישה ישירה. סרט מגנטי למשל, אינו מאפשר גישה ישירה לנתונים כדי לאתר נתונים בסרט מגנטי יש לקרוא את כל הנתונים עד שמגיעים לנתונים המבוקשים. מערכת הדיסק המגנטי מורכבת ממספר תקליטים בעלי משטחי מיגנוט (הדומים לתקליטי מוסיקה) הסובבים על ציר משותף. כל משטח מגנוט מחולק למסילות (80%8ז7) שבהן ניתן ל"רשום" את הנתונים. לכל משטח מגנוט יש ראש קריאה/כתיבה המאפשר את כתיבת הנתונים במסילות ואת קריאתן לאחר מכן. ראשי הקריאה/כתיבה של כל משטחי המגנוט קשורים לזרוע אחת. אוסף כל המסילות בכל משטחי המגנוט שניתן לקרוא או לכתוב מבלי להזיז את ראשי הקריאה/כתיבה הוא גליל (זפסחווץס). חקליט המורכב ממשטח מגנוט עליון ותחתון // --₪ ן ביר | צצט צצצ ל 2 מנוע ב יצ \ צּ וו מנוע המסובב את כל התקליטים במהירות קבועה תרשים 1 -2: מבנה דיסק מגנטי 2 זמן הגישה לנתונים בדיסק מורכב משתי יחידות: זמן הזזת הזרוע עד להבאת ראשי הקריאה/כתיבה אל הגליל שמאחת ממסילותיו יש לקרוא והזמן הדרוש לתנועת הסיבוב של המערכת עד שהנתונים עוברים מתחת לראש הקריאה/כתיבה. זמן הזזת הזרועות הינו הגדול מביניהם ולו השפעה רבה על זמן הגישה הנתונים בדיסק. הזמן הממוצע המקובל ביחידות דיסקים חדשות הוא כ207 אלפיות שניה. כדי לקצר את זמן הגישה פותחו מערכות דיסקים שבהן יש לכל מסילה ראש קריאה/כתיבה נפרד ולכן אין צורך בהזזת הזרועות. בדיסקים אלה זמן הגישה הינו מהיר יותר אבל היחידות יקרות יותר. בכמה ממערכות הדיסקים המוצעות בשוק ראש ראשי קבועים רק לחלק מהגלילים. בתחום ה"כיסוי" שלהם משתמשים לאחסנת קטעים ממערכות ההפעלה, שטחי עבודה של מערכות תקשורת ובמערכות ניהול נתונים מאחסנים בשטח זה את האינדקסים. 2 מושגי יסוד במבנה נתוניס הנתונים נרשמים ומאוחסנים ביחידות האחסון החיצוניות לפי התכונות הפיסיות שלהן (בדיסק למשל אלו הם בגליל, המסילה והגוש) ולכן זהו המבנה הפיסי של הנתונים. המבנה הפיסי מוכתב, אם-כך, על ידי תכונות אמצעי האחסון ולא על ידי דרישות לוגיות של תוכנת היישום של המשתמש. כדי לסייע למשתמש לטפל במבנה הנתונים פותחה תוכנה לניהול נתונים אשר מאפשרת לו להציג מבנים מופשטים או לוגיים. מבנים אלו שונים בדרך כלל מהמבנה הפיסי המוצג ביחידת האחסון. לכן חייבת התוכנה לבצע את ההמרה בין המבנה הפיסי של הנתונים לבין המבנה הלוגי שלהם אשר מוכר למשתמש. המבנים הלוגיים מתארים עובדות, עצמים ואירועים שאודותם רוצים לאסוף מידע. אלו הן הישויות (₪088ח5) של מערכת המידע. --מבנה לוגי: יחידת המידע הקטנה ביותר המעניינת את מתכנן בסיס הנתונים היא שדה (16!6=). לכל תכונה של ישות המיוצגת בבסיס הנתונים יש שדה מקביל אשר מאחסן את הערך של התכונה. השדה יכול להיות בעל אורך כלשהו ולהכיל נתונים נומריים או אלפא נומריים. את השדות המתארים יישות לוגית אחת נהוג לקבץ למבנה הנקרא רשומה (6זסס6ח) לדוגמא, כל השדות המתארים את העובד במפעל יקובצו לרשומת העובד. השדה או השדות המזהים בצורה חד- משמעית את הרשומה יקראו שדות מפתח (₪16!68 עָסא). אוסף כל הרשומות המתארות ישות לוגית אחת יקרא קובץ (6!ו=). לדוגמא, כל רשומות העובד מרכיבות את קובץ העובדים. --מבנה פיסי: יחידת המידע הבסיסית ביחידת האחסון היא הסיבית (סיפרה בינרית -- /8). הבית (פוּע) הינו אוסף של סיביות שניתן לפנות אליהן ככתובת והוא מכיל 8 סיביות. המחשב אינו קורא או כותב ליחידת האחסון רשומות לוגיות אלא רשומות פיסיות. רשומה פיסית או גוש (006ו8) הינם אוסף של אחת או יותר רשומות לוגיות אשר נכתבות או נקראות בפעולות קלט/פלט אחת. בין הגושים ביחידת האחסון נרשם מרווח (ק68) המאפשר ליחידת הבקרה של יחידת האחסון לבצע פונקציות בקרה שונות בין קריאת או כתיבת גוש אחד למשנהו. המשתמש פונה אל הרשומות הלוגיות בציון תוכן המפתח של שדה המפתח. על התוכנה לניהול נתונים להפוך מפתח זה לכתובת פיסית של הרשומה על הדיסק. 33 תרשים 2 - 2: רשומות לוגיות ופיסיות בריסק --ארגון הקובץ: הקובץ הינו אוסף של רשומות השייכות לנושא אחד אשר מאוחסנות ביחידת אחסון חיצונית. האחסון החיצוני נובע מן הצורך באחסון לאורך זמן ולשימוש חוזר. קבצים קטנים (טבלאות) נקראים בשלימותם לזכרון בעת העיבוד, אך קבצי הנתונים נקראים בחלקים כפי הצורך. ארגון הקובץ קובע את אפשרויות הגישה והעיבוד של הנתונים. בסרט מגנטי למשל, ארגון הקובץ מוגבל למדי. הרשומות נכתבות לפי הסדר שהן מגיעות ולכן לקריאת רשומה יש לקרוא את הרשומות שלפני הרשומה המבוקשת. הוספת רשומה חדשה אפשרית רק על ידי העתקת כל הקובץ לקובץ חדש וביצוע ההוספה תוך כדי ההעתקה אל הקובץ החדש. דיסקים מגנטיים מאפשרים גישה מהירה אל הרשומות על סמך ידיעת כתובתן הפיסית. רשומה זו אפשר לקרוא או לעדכן "במקומה" על ידי כתיבת רשומה חדשה באותו מקום פיסי בדיסק. ּ יצרני המחשבים מספקים, כחלק ממערכת ההפעלה של המחשב, שגרות מיוחדות המאפשרות בניית קבצים, גישה לרשומות בקובץ ותחזוקת הקובץ. לשגרות אלה מקובל לקרוא שיטות גישה (00ח)0) 00058 ) או שגרות לארגון וניהול רשומות (ז806ח8!! 0ז6/600ון]). שגרות אלו אינן מטפלות במבנה הפנימי של הרשימה, אלא רואות אותה כיחידת נתונים שלימה. פענוח המבנה הפנימי של הרשומה נעשה על ידי תוכנית המשתמש. השגרות מאפשרות למשתמש לארגן את הקובץ לפי מספר שיטות המאופיינות בעיקר לפי מהירות הגישה לרשומות והסדר לפיו ממויינות הרשומות בקובץ. בהמשך יפורטו מספר שיטות נפוצות לארגון קבצים. 3 גישה לרשומות במערכת פוַ8ס תוכנית היישום מציגה בקשה כלשהי לגישה לבסיס הנתונים, כלומר -- לרשומה מסויימת, ומעבירה אותה למערכת 65. המערכת משתמשת במודל הנתונים החיצוני, באלגוריתם ההמרה ובמודל הנתונים הפנימי כדי לדעת אילו נתונים דרושים, היכן הם מאוחסנים ואיזו +4 שיטת גישה יש להפעיל כדי לקרוא אותם. לאחר פענוח הבקשה פונה מערכת 08/8 אל שיטת הגישה של מערכת ההפעלה (ו/5ו, /א84ע, אגסם וכדי) לשם ביצוע הקריאה או הכתיבה בפועל. הגישה לנתונים ביחידות האחסון נעשית באמצעות שגרות קלט ופלט ובסופה של הפעולה מועבר גוש אחר או יותר של נתונים אל מאגרי קלט/פלט שבזכרון במחשב (בפעולת כתיבה יועבר גוש הנתונים מהזכרון אל יחידת האחסון). מתוך מאגרים אלה מעבירה מערכת 0815 את הנתונים המבוקשים לתוכנית היישום. אלגוריתם שיטות גישה של מערכת הפעלה תרשים 3 - 2: גישה לבסיס הנתונים במערכת 885 בהמשך נסקור את שיטות הגישה המקובלות ברוב מערכות ההפעלה, אשר משמשות כבסיס למודלים הפנימיים המתוחכמים של מערכות 08/8. מקובל לחלק את שיטות הגישה לשתי קבוצות עיקריות: שיטות גישה בסיסיות ושיטות גישה עיליות. שיטות הגישה הבסיסיות מיושמות היום ברוב שפות התכנות העיליות (כגון 0080 ,1/ ו₪) והן כוללות שיטות הארגון הסדרתי, אינדקס סדרתי וגישה ישירה. שיטות אלה מציעות אפשרויות מוגבלות יחסית לשליפת רשומות על פי מפתח אחד אשר נקבע בעת בניית הקובץ ומכיל שדה אחד או רצף של שדות. שיטות אלה אינן עונות על בקשות שליפה מורכבות יותר, על פי שני שדות או יותר. לדוגמא, בקשה מורכבת לשליפה: +5 "הצג את כל העובדים אשר מועסקים במחלקה 536, גילם מעל 25 אשר עברו השתלמות בהכרת המפעל," אם המפתח של קובץ העובדים הוא מספר תעודת זהות יש לבצע טריקה של כל הקובץ כדי לענות על שאילתא זו. כלומר, לשם פתרון בעייה כפי שמוצגת בשאילתא זו יש לאפשר גישה אל נתונים בחתכים שונים. הצורך באחזור נתונים יעיל לפי מספר חתכים או קשרים בין הרשומות הביא לפיתוח שיטות ארגון קבצים עיליות (005ח01 ח0וו28וח98זס 6!ו= ו166-חפָוז). מטרתן לאפשר גישה לנתונים על פי מספר מפתחות ועל פי קשרים בין רשומות. שיטות ארגון קבצים אלו מיושמות במערכות 5ו8פ. % 5% תרשים 4 - 2: שיטות ארגון קבצים 46 3. ארגון קבציס בסיסי קיימות שלש שיטות בסיסיות לארגון נתונים בקבצים: -- ארגון סדרתי, -- ארגון אינדקס סדרתי, -- ארגון לגישה ישירה. בהמשך נסקור בקצרה כל אחת משיטות אלו. 1 ארגון סדרתי (ח0ו28/ 07080 |1(9ח59006) השיטה הפשוטה ביותר לאחסון רשומות היא שיטת הארגון הסדרתי שבו הרשומות נכתבות אחת לאחר השניה בקירבה פיסית. סדר כתיבת הרשומות הוא שקובע את סדר קריאתן. על מנת לקרוא את הרשומות לפי סדר לוגי של מפתח יש לכתוב אותן מלכתחילה לפי הסדר הזה או למיין לפני העיבוד. נניח שקראנו רשומה מסויימת מתוך הקובץ ועכשיו יש לגשת לרשומה אחרת עם מפתח יותר גבוה. במקרה הטוב ביותר הרשומה המבוקשת היא הרשומה הבאה ובמקרה הגרוע ביותר הרשומה המבוקשת נמצאת בסוף הקובץ. מאחר ובשיטה הסדרתית כדי לגשת לרשומה ח בקובץ יש לקרוא את כל 1-ח הרשומות המופיעות לפני הרשומה המבוקשת, נקבל שבממוצע יש לקרוא כמחצית מהרשומות בקובץ. הגישה הסדרתית אינה מאפשרת גישה ישירה לרשומות לפי מפתח ולכן היא משמשת במערכות 0818 בעיקר למטרות גיבוי ושחזור ולא לאחסון נתונים תפעוליים. תרשים 5 - 2: קובץ סדרתי 47 שיטת ארגון סדרתי אפשרית בכל יחידת האחסון. שיטות הארגון האחרות אשר מאפשרות גישה ישירה לנתונים אפשריות ביחידות לגישה ישירה בלבד. 22 ארגון אינדקס סדרתי (חהסוזולח8ףזס |%9ח9ט590 60א6בחו) שיטת ארגון אינדקס סדרתי משלבת את הארגון הסדרתי של הקובץ עם האפשרות לגישה מחירה לרשומה לפי המפתח שלה. בנוסף לקובץ הסדרתי בונים טבלה נפרדת, אינדקס, אשר מבצעת המרה בין ערך המפתח של הרשומה לבין כתובתה ביחידת האחסון. טבלת האינדקס ממויינת לפי המפתח הראשי (ע69 עזוחוזק ) של הרשומה. מאחר ורשומות הנתונים ממויינות לפי אותו מפתח ומקובצות בתוך גושים אין צורך להכין כניסה אחת באינדקס עבור כל רשומת נתונים. קובעים באינדקס כניסה אחת עם המפתח הנמוך ביותר או הגבוה ביותר בגוש, ועל ידי כך אפשר להקטין את נפחו בצורה משמעותית. מאחר והאינדקס עצמו ממויין, ניתן לבנות רמות נוספות של אינדקס אשר מצביעות על קטעים הולכים וקטנים בתוכו כפי שמוצג בתרשים 6--2. 0 נתונים 1 אינרקסים -----%| תרשים 6 - 2: מבנה קובץ אינדקס טדרתי 88 אחת הבעיות בארגון אינדקס סדרתי היא הוספת רשומות חדשות ושמירה על סדר מיון הרשומות. קיימות שתי שיטות לטיפול בהוספת רשומות חדשות לקובץ אינדקס סדרתי: א. מוסיפים את הרשומה החדשה למקומה המתאים בגוש הנתונים בהתאם לסדר המיון. מאחר וגוש הנתונים מלא ברשומות, הרשומה האחרונה בגוש גולשת לגוש מיוחד הנקרא גוש גלישה (00%ו8 שוסוזזסט0ס). גוש הנתונים המקורי משורשר באמצעות מצביע אל גוש הגלישה המתאים. בזמן חיפוש רשומה מתבצע חיפוש גם בגוש הגלישה הקשור לגוש הנתונים המקורי. שיטה זו מיושמת במערכת 54! (00ח191/! 400855 |18ח5906 6אססחן) של יבמ. ב. בזמן הטעינה הראשונית של הקובץ לא ממלאים את גוש הנתונים ברשומות אלא משאירים אחוז מסויים משטח הגוש ריק. כל עוד יש מקום בגוש הנתונים מוסיפים רשומות חדשות לגוש תוך שמירה על סדר המיון. אם יש להוסיף רשומה לגוש מלא מעבירים מחצית מהרשומות לגוש נתונים ריק חדש, מוסיפים את הרשומה לגוש המתאים ומעדכנים את האינדקסים בהתאם. שיטה זו מיושמת במערכת !6 (61000! 400658 806זס61 |פטזזו/) של יבמ. בשיטת ארגון אינדקס סדרתי ככל שהקובץ גדול יותר תהיינה יותר רמות אינדקס כדי להשיג זמן גישה טוב יותר. בשיטת |/|/5! אם רמת הפעילות של הקובץ היא גבוהה יהיה צורך לבצע ארגון מחדש כדי להכניס את כל הרשומות הגולשות לתוך גושי הנתונים ולחסוך זמן חיפוש בשטחי גלישה. בשיטת |54/ אין צורך לבצע ארגון מחדש מכיון ששיטת העיבוד השוטפת כוללת את השירות של ארגון מחדש. קובץ נתונים -- תרשים 7 -2: פיזור רשומות בשיטה לגישה ישירה +9 3 ארגון לגישה ישירה (00חו0ו 00885( 801זוס) בשיטת הארגון לגישה ישירה אין צורך לבצע חיפוש באינדקסים לשם גישה לרשומה המבוקשת. התוכנה לניהול נתונים מבצעת באמצעות חישוב או טבלה את ההמרה של המפתח של הרשומה המבוקשת לכתובת של הרשומה ביחידת האחטון. לתהליך החישובי מקובל לקרוא רנדומיזציה (60חה[ח185] זס הווח 00 9ב ). קיימות מספר רב של שיטות מתמטיות המקבלות כקלט את המפתח של הרשומה ומייצרות את הכתובת הפיסית שלה. הן מנסות למפות טווח רחב של מפתחות לתוך טווח קטן יותר של כתובות פיסיות, ולכן הן מפיקות במקרים מסויימים כתובות זהות עבור ערכים שונים של המפתח. בכל כתובת פיסית ניתן לאחסן רק רשומה אחת ולכן יש לבנות מנגנון לטיפול בכתובות זהות (פוחץחסחץ5). אחת האפשרויות היא לאחסן רשומות כפולות אלו בגושי גלישה מיוחדים ולשרשר אותם אל הכתובת הפיסית המקורית שבה היו צריכות להיות מאוחסנות. 4. ארגון קבציס עילי ארגון קבצים עילי הינו בדרך כלל שילוב של ארגון קבצים בסיסי כמו אינדקסים או גישה ישירה, עם שיטת מצביעים. המצביע (זסוחוסק) הינו שדה נוסף בתוך הרשומה אשר מוּרָה על רשומה אחרת במרחב הכתובות של מבנה הנתונים. המצביע קושר מספר רשומות נפרדות למבנה לוגי אחד, ולכן הוא מאפשר הפרדה בין המיקום הפיסי של הרשומות ביחידות האחסון לבין המבנה הלוגי של הנתונים. שדה המצביע יכול להכיל: א. מפתח לוגי של הרשומה הבאה. מקובל לכנות מצביע זה מצביע סימבולי. לדוגמא אם נשמור ברשומה העובד שדה המכיל את מספר תעודת הזהות של המנהל נקבל מצביע סימבולי בין שתי רשומות. את המפתח הלוגי יש לתרגם לכתובת פיסית של הרשומה לפי אחת מהשיטות הבסיסיות, באמצעות אינדקס או לפי תהליך חישובי כלשהו. ב. כתובת פיסית של הרשומה הבאה. שדה המצביע מכיל את הכתובת הפיסית (דיסק, גליל, . מסילה, גוש) של הרשומה הבאה והוא מאפשר בכך גישה מהירה מאד לרשומה המבוקשת. שינוי כתובתה של הרשומה מחייב עדכון מקביל של כל המצביעים אליה, וזו אחת מחולשותיה של השיטה. ג. כתובת יחסית של הרשומה הבאה. ניתן למספר באופן רציף את כל הרשומות מתחילת הקובץ ולהציג בשדה המצביע את המספר הסידורי של הרשומה הבאה. ההמרה של המספר הסדורי אל הכתובת הפיסית מבוצעת על ידי מערכת ההפעלה. יתרונה של השיטה בכך שאינה מחייבת שינוי תוכן המצביעים כאשר חל שינוי בכתובת הפיסית של הרשומה. שיטה זו מקובלת מאד במערכות פוא08. 0 1 ארגון מהופך (80צזפטחו) הארגון המהופך מאפשר גישה לרשומה לפי מספר מפתחות (שדות) שונים לעומת השיטות שהוצגו עד כה אשר משתמשות במפתח גישה ראשי אחד (עָ6 עזפוחוזק). בשיטת הארגון המהופך בונים טבלה או אינדקס נפרד עבור כל אחד משדות המפתח המשניים (ץז08ח8600 6. הכניסה בטבלה מכילה את ערך המפתח המשני כמפתח מיון ואת המפתח הראשי של אותה רשומה כנתון המצביע על רשומות הקובץ. בכך "מתהפך" הסדר של השימוש במפתחות. תרשים 8--2 מציג קובץ מהופך עבור השדה "מחלקה" בקובץ "כוח אדם". תרשים 8 - 2: אינדקס מהופך הגישה לאינדקס המהופך יכולה להתבצע באמצעות רמות אינדקס אחדות בדומה לשיטה המיושמת בשיטת ארגון אינדקס סדרתי. אפשר לבצע את הגישה גם באמצעות תהליך חישובי לקבלת הכתובת הפיסית של הכניסה המתאימה באינדקס. יעילות הגישה לרשומות בארגון מהופך תלויה ביעילות החיפוש באינדקס המהופך. ניתן לראות שבשיטה זו רשומות הנתונים אינן מכילות כל מצביעים שהם והן מאורגנות לפי אחת משיטות הארגון הבסיסיות או שיטות הארגון העיליות. האינדקס המהופך מכיל את הערך של שדה המיון המשני (שדה ההיפוך) ואחריו שרשרת של מצביעים (סימבוליים או כתובות) לרשומות המכילות ערך זה בשדה ההיפוך. רמת ההיפוך נקבעת על ידי היחס בין מספר שדות ההיפוך ברשומה לבין כלל השדות ברשומה. רמת היפוך "אפס" היא בפועל ארגון קובץ בסיסי לפי מפתח ראשי בלבד. רמת היפוך 1 מציינת שכל השדות ברשומה הם שדות היפוך ולכן ניתן לשלוף את הרשומה לפי כל אחד מהשדות. כלומר רמת ההיפוך מוגדרת בין 0 ל-1. קיימות מערכות 08/8 המאפשרות למשתמש לקבוע את רמת ההיפוך בעוד שמערכות אחרות מאפשרות רמת היפוך 1 בלבד. אחד היתרונות של הארגון המהופך הוא האפשרות לענות על מגוון רחב של שאילתות המבוססות על חתכים בין שדות ההיפוך. חשוב לזכור שניהול האינדקסים המהופכים מטיל מעמסה כבדה על המערכת בזמן עדכון הקובץ. אם רמת ההיפוך היא גבוהה גם נפח האינדקסים המהופכים יכול להיות גדול ויש להתחשב בו בתכנון נפח הקובץ. 1 2 שרשרות וטבעות שרשרת (חופת0 ,81 ]) הינה רצף של רשומות הקשורות ביניהן באמצעות מצביעים. הרצף הסדרתי הלוגי של השרשרת אינו תלוי בכתובות הפיסיות של הרשומות. רשומה אחרונה רשומה ראשונה תרשים 9 -2: מבנה שרשרת פשוטה תרשים 9--2 מציג שרשרת פשוטה שבה הרצף הלוגי של הרשומות שונה מהרצף הפיסי שלהן. לדוגמא, ניתן לשרשר את כל הרשומות בקובץ העובדים לפי סדר עולה של גיל העובד בנוסף לארגון הבסיסי (אינדקס או ישיר) של הקובץ. מערכת המאפשרת שרשור רשומות צריכה לאפשר גישה לרשומה הראשונה בשרשרת (ז46800] )108) ולזהות את הרשומה האחרונה בשרשרת. , שרשרת דו-כיוונית (1181 עָאאו-סעוד) פשוטה הינה שרשרת שבה כל רשומה מצביעה על הרשומה הבאה ועל הרשומה הקודמת בשרשרת. שיטה זו מאפשרת איתור פשוט של הרשומות בשרשרת ומפשטת את תהליך העדכון ואת הוספת הרשומות ברצף. שרשרת מורכבת (84ו!-וטו/ן) הינה אוסף של שרשרות פשוטות אשר מהוות יחידה לוגית אחת. לדוגמא, את רשומות העובדים במפעל נקשור במספר שרשרות פשוטות נפרדות לכל מחלקה ומחלקה. כל שרשרת מנוהלת באופן נפרד באמצעות אינדקס שבו נמצאים המצביעים אל תחילת כל אחת מהן. 2 תרשים 10 - 2: שרשרת מורכבת טבעת (חָחוּ) הינה שרשרת פשוטה שבה הרשומה האחרונה מצביעה חזרה אל הרשומה הראשונה. מבנה זה שימושי מאד במערכות 818ס. לדוגמא, מבנה טבעת הקושר רשומת לקוח לכל רשומות ההזמנה שלו. אפשר להרחיב שיטת ארגון זו על ידי מצביעים מכל רשומת טבעת אל רשומת הכותרת, ובדוגמא --- מכל רשומת הזמנה אל רשומת לקוח. לקוח הזמנה 2 תרשים ו11ו-2: טבעת פשוטה הזמנה 3 הזמנה 1 טבעת דו-כיוונית (פַחוח עְבו-סששד) הינה טבעת פשוטה שבה כל רשומה מצביעה אל הרשומה הבאה ואל הרשומה הקודמת בטבעת. טבעת מורכבת (פחוזוווטוא) "הינה אוסף של מספר טבעות פשוטות. כל רשומה יכולה להשתייך לטבעות שונות, ולדוגמא נבנה טבעת אחת הממיינת את כל רשומות העובד לפי שם וטבעת שניה הממיינת את כל הרשומות לפי גיל. 3 3 עצים (17885) מבנה עץ הינו מבנה לא-לינארי אשר מאפשר תצוגת מבנה נתונים היררכי. העץ מורכב מהיררכיה של צמתים (0088א) שבראשה הצומת הגבוה שנקרא שורש (01ס8). למעט השורש, במבנה עץ כל צומת קשור לצומת אחד ברמה יותר גבוהה, שיקרא צומת-אב. לכל צומת יש צומת אב אחד בלבד. רמה 0 צומת אב עבור רמה 1 צמתים א, ב רמה 2 רמה 5 0 א תרשים 12 - 2: מבנה עץ הגדרה פורמלית של מבנה עץ מופיעה אצל חוטחא (ראה ביבליוגרפיה). עץ הינו קבוצה סופית ד של אחד או יותר צמתים המקיימים: א. צומת אחד ייקרא השורש של העץ, ב. שאר הצמתים יחולקו ל"ס<וח קבוצות זרות 1ד ,2ד...וחד כאשר כל אחת מהן יכולה להיות ע? נפרד. עצים אלו הם תת-עצים של מבנה העץ. תרשים 535: מבנה עץ המורכב מתת-עצים 4 אינדקסים ואלגוריתמים לחיפוש מתאימים באופן טבעי למבנים של עצים ומכאן הענין הרב במבנים אלה. מבנה בעל ענין מיוחד הינו מבנה עץ בינרי. זהו עץ שבו לכל צומת שני ענפים לכל היותר. עץ בינרי פשוט קל ליישום ביחידות אחסון כי בכל צומת יש לשמור מקום לשני מצביעים בלבד. מצביע אחד מורה אל צומת ברמה נמוכה יותר בעץ הכללי ומצביע שני מורה אל צומת שכן באותה רמה היררכית. תרשים 14 - 2: עץ בינרי כל עץ כללי ניתן להפוך לעץ בינרי. בזמן ההפיכה גדל העומק של העץ, או מספר הרמות שלו. העומק של העץ מבטא את מספר ההשוואות שיש לבצע כדי להגיע מהשורש לצומת ברמה הנמוכה ביותר. למרות הגידול בעומק העץ נוהגים לבצע את ההפיכה לעץ בינרי בגלל הנוחות שביישום השיטה. תרשים 15 - 2: הפיכת עץ כללי לעץ בינרי 5 בתרשים 16--2 מוצג יישום של עץ בינרי עבור אינדקס ורשומות נתונים. החיפוש באינדקס פשוט ומהיר. על ידי רמות אינדקס אחדות ניתן לשפר את היעילות במידה רבה. 66 אינרקס רשומות נחונים תרשים 16 -2: אינדקס במבנה עץ בינרי שאלות הצג והסבר את ההבדלים בין "ארגון קבצים בסיסי" לבין "ארגון קבצים עילי." האם ניחן להשתמש במערכת המבוססת על ארגון קבצים עילי בלבד? מהם השיקולים לקביעת מפתחות משניים? מדוע לא לקבוע את כל השדות ברשומה כמפתחות משניים? הסבר את מושג המצביע (זפוחוסק). מה הוא מכיל? מדוע יש צורך במצביעים קדימה ואחורה במבני נתונים מסויימים? מהו ההבדל בין שרשרת הפוכה לבין אינדקס. משני? עליך לנהל נתונים של מחלקות המפעל. לכל מחלקה יש רשומה באורך משתנה אשר מכילה את שם המחלקה ואת מספרה, ונגררות עבור כל אחד מהעובדים במחלקה. הנתונים שדרושים עבור כל עובד הם שמו ומספר תעודת הזהות שלו וכל הפרויקטים שבהם עסק (נגררות). הנך מתבקש להציע מבנה נתונים לפתרון בעיית ניהול הנתונים באמצעות ארגון קבצים בסיסי וארגון קבצים עילי. פרק ג מודל הנתונים 1. מבוא 2. מושגי יסוד 3 מודל ישויות - קשרים 4. מודל הנתונים 5. המודלים הלוגיים העיקריים 6. סיכום 7. שאלות 7 1 מבוא בפרק זה נציג את אחד המושגים המרכזיים במערכות 0818 -- את מודל הנתונים. בניית מודל הנתונים הינה משימתו העיקרית של מנהל בסיס הנתונים בהקמת מערכת מידע ממוחשבת, מכיון שהמודל הינו הכלי לניתוח הנתונים שיש לכלול במערכת המידע. במערכות המידע שאינן מבוססות על 88כ הצטמצם תהליך הניתוח להבנת הקלטים והפלטים של המערכת ולבניית הקובץ אשר יכול לנהל נתונים אלה. הקובץ מיועד לרוב ליישום אחד מוגדר ולכן קל יחסית לבצע את תהליך הניתוח המוביל למבנה הנתונים הדרוש. תהליך ניתוח הנתונים ותכנון בסיס הנתונים הינו מורכב יותר. בסיס הנתונים צריך לשרת מספר רב של יישומים ביעילות גבוהה ומבנה הנתונים צריך להיות גמיש כדי שניתן יהיה לבצע בו שינויים כתוצאה מדרישות מידע חדשות. מודל הנתונים הינו הכלי שבאמצעותו מתבצע ניתוח הנתונים. התקשורת בין המשתמשים לבין מערכת המידע מתבצעת על סמך מודל כלשהו שהינו אוסף של כללים המשמשים לייצוג המציאות במערכות המידע. ניתוח המידע מתייחס לשני היבטים עיקריים: -- ניתוח פונקציונלי, שבו מנתח המערכת מבין ומתעד את התהליכים והפעילויות העיסקיות בארגון. אלה הם האירועים שמערכת המידע תצטרך לטפל בהם. -- ניתוח נתונים, שבו מנתח המערכת מבין ומתעד את מרכיבי מערכת המידע, המאפיינים שלהם והקשרים ביניהם. אלה הם הנתונים והקשרים שמערכת המידע תאחסן ותטפל. בהמשך נתרכז בתהליך ניתוח הנתונים ונציג את מודל ישויות - קשרים שבעזרתו נכיר טוב יותר את הדרך שבה אנשים מבינים את משמעות הנתונים. בהמשך נראה שניתן להתייחס לנתונים במספר רמות שונות -- הרמה שבה אנשים מארגנים ומבינים את המציאות, הרמה שבה נותנים משמעות למציאות והרמה שבה משתמשים במודל הנתונים כדי לייצג את המציאות במערכות המידע. בסוף הפרק נציג את שלושת המודלים הנפוצים: המודל הרשתי, המודל ההיררכי והמודל הטבלאי. 59 2 מושגי יסוד בסעיף זה נציג מספר מושגי יסוד מתורת הקבוצות אשר קשורים לנושא מודל הנתונים. הצגתם תעשה בצורה לא פורמלית ותסתייע במספר רב של דוגמאות. הקורא אשר אינו מעוניין יוכל לעבור לסעיף 2.4 בהמשך. 1 קבוצה (590) הקבוצה מוגדרת כאוסף של עצמים או אלמנטים. אפשר לתאר את הקבוצה בשתי צורות: על ידי הצגת כל האלמנטים שלה או על ידי הגדרת התכונות המאפיינות את האלמנטים בקבוצה. נסמן את הקבוצה באותיות גדולות (4 ,מ ,...) ואת האלמנטים באותיות קטנות (8 ,₪ ,...) בהתאמה. 2 ) הקבוצה "עוברים במפעל 4 = עובדים במפעל = [משה, דור, דן, ישראל, שאול, .....] תרשים 1 -3: ייצוג מלא של קבוצה בתרשים 1--3 ניחן ייצוג מלא של קבוצה שבה האלמנטים הם העובדים במפעל. תיאור כל האלמנטים של הקבוצה אפשרי בקבוצות קטנות בלבד ולכן נעדיף את שיטת התיאור השנייה שמציגה את הקבוצה לפי התכונות של האלמנטים. = עובדים במפעל = [8 : 8 עובד במפעל] כלומר, הקבוצה 4 מכילה אלמנטים 8 המקיימים את התנאי ש-8 הוא עובד במפעל. קבוצה יכולה להיות סופית או אינסופית. קבוצה סופית מכילה בדיוק ח אלמנטים שונים (ח הוא מספר שלם חיובי). אם אינה ממלאת תנאים אלו היא תהיה קבוצה אינסופית. למשל, הקבוצה "עובדים במפעל" היא קבוצה סופית בעוד הקבוצה "מספרים חיוביים זוגיים" היא קבוצה אינסופית. הקבוצה מאופיינת בכך שכל אלמנט מופיע בה פעם אחת בלבד וסדר האלמנטים בה חסר משמעות. לקבוצה יש גודל הנקבע על ידי מספר האלמנטים החברים בקבוצה. העובדה שאלמנט מסוים הינו חבר בקבוצה תסומן בצורה הבאה: 4, עובדים במפעל 6 משה העובדה שאלמנט מסויים אינו חבר בקבוצה תסומן בצורה הבאה: 64א, עובדים במפעל ₪ יצחק קבוצה ריקה (:56 וווא) אינה מכילה אלמנטים. תתכן למשל קבוצה ריקה "עובדים במחלקת צביעה" כאשר המחלקה נמצאת בשלבי הקמה וטרס נקבעו העובדים שלה. במשך הזמן יצטרפו אליה אלמנטים (עובדים) והקבוצה תפסיק להיות ריקה. 00 ניתן להגדיר קבוצה חלקית (0861ט5) שבה כל אלמנט החבר בקבוצה החלקית הינו חבר גם בקבוצה המלאה אבל לא להיפך. לדוגמא: 4 = עובדים במפעל = [8: 8 עובד במפעל] 8 = עובדים במחלקת ייצור = [ט: ם עובד במחלקת ייצור] הקבוצה 8 הינה קבוצה חלקית ל- 4 מכיון שלא כל העובדים במפעל עובדים במחלקת ייצור. מקובל לסמן עובדה זו בצורה הבאה: 8₪4, עוברים במחלקת ייצור (8) עובדים במפעל (4) תרשים 2 - 3: קבוצה חלקית 8 של 3 קבוצות זרות הן קבוצות נפרדות שאינן חופפות. הגדרה של קבוצות נפרדות אינה מונעת מצב בעתיד שבו הן תתלכדנה או תחפופנה זו את זו באופן חלקי או מלא. לדוגמא, נגדיר שתי קבוצות של תלמידים בכתה אחת: קבוצת לימוד מתמטיקה וקבוצת לימוד פיסיקה. כלומר, לפנינו קבוצה אחת (הכתה) שבה שתי קבוצות חלקיות. עתה נניח שהקבוצה החלקית של לימוד פיסיקה מתבטלת, וכל התלמידים ילמדו מתמטיקה בלבד. במצב החדש יש התלכדות של הקבוצה החלקית של לומדי מתמטיקה ושל הקבוצה העיקרית. אפשר להניח אפשרות אחרת שבה תלמידים יחליטו להשתתף הן בלימודי המתמטיקה והן בלימודי הפיסיקה. תלמידים אלו ישתתפו בשתי קבוצות חלקיות, שמלכתחילה היו זרות זו לזו, כלומר ללא כל חפיפה. כדוגמא נוספת נגדיר שתי קבוצות של פריטים: פריטים המיוצרים במפעל ומשמשים למכירה בלבד ופריטים הנקנים כחומרי גלם מיצרנים אחרים ומשמשים לייצור בלבד. לכאורה יש כאן מצב ברור של שתי קבוצות חלקיות זרות אך עם זאת יתכן שבעתיד לקוח כלשהו של המפעל ירצה לקנות מהמפעל חומר גלם כלשהו. במקרה זה פריטים מהקבוצה החלקית של חומרי"גלם ימצאו גם בקבוצה החלקית של פריטים למכירה. 2 פעולות בקבוצות יחסי הגומלין בין קבוצות אפשר לבטא במספר פעולות עיקריות כפי שנפרט בהמשך. איחוד ( חסוחש): איחוד שתי קבוצות 4 ו- 8 יסומן בצורה 8(. האיחוד יוצר קבוצה חדשה שמכילה את כל האלמנטים השייכים לקבוצה 4 או לקבוצה 8. [69א או 64א :א = 408 1 תרשים: - 35: 408 הוא השטח המקווקו לדוגמא, נגדיר שתי קבוצות של עובדים: = עובדים במחלקת ייצור = [ישראל, דוד] 8 = עובדים במחלקת תכנון = [שאול, ישראל, דן] האיחוד בין שתי הקבוצות יהיה: 8 = עובדים במחלקות ייצור ותכנון = [ישראל, שאול, דן, דוד] נשים לב לכך שעובד בשם "ישראל" נמצא בשתי המחלקות. בקבוצת האיחוד הוא מופיע פעם אחת בלבד. חיתוך (615600000וה1): חיתוך שתי קבוצות 4 ו87, (408) יוצר קבוצה חדשה שמכילה את כל האלמנטים השייכים לקבוצה וגם לקבוצה 8. [68צ+ [4=א :א) =פחג או תרשים 4--3: 408 הוא השטח המקווקו 2 אם נשתמש בדוגמא הקודמת, קבוצת החיתוך תכיל אלמנט אחד, את העובד "ישראל", אשר מופיע בקבוצה ג וגם בקבוצה 8. 8 = עובדים בשתי המחלקות = [ ישראל] אם 0 = 408 החיתוך יוצר קבוצה ריקה, כלומר שתי הקבוצות הן זרות (זחזסנפוכ). הפרש (06ח6ז116ם): ההפרש בין קבוצה ( ו87 (8--) יוצר קבוצה חדשה שמכילה את האלמנטים השייכים לקבוצה 4 ואינם שייכים לקבוצה 8. [ע6 א ,64א:א] = 4-2 לדוגמא נגדיר קבוצת הפרש בין העובדים במחלקת ייצור לבין העובדים במחלקת תכנון. כלומר קבוצה אשר תכיל את העובדים במחלקת הייצור בלבד ואשר אינם משתתפים במחלקת ו ן ו | | התכנון. ולפי הדוגמא הקודמת יהיה זה העובד "דוד". 8 = עובדים במחלקת ייצור בלבד = [דוד] תרשים 5 - 3: 8--4 הוא השטח המקווקו משלים (1ח6וח6!ח00): המשלים של קבוצה 4, שיסומן 46, יוצר קבוצה חדשה שמכילה אלמנטים שאינם שייכים לקבוצה 4. יש להגדיר קבוצה אוניברסלית ( אשר מכילה את כל האלמנטים האפשריים בהקשר הנדון. [64א .460 :א]=46 קבוצה ( בדוגמא היא קבוצת כל העובדים במפעל. קבוצת המשלים של העובדים של מחלקת הייצור היא כל העובדים שאינם שייכים למחלקה זו. 6 =עובדים שאינם שייכים למחלקת ייצור=[שאול, דוד] 3 / ו צצי תרשים 6 - 3: 40 הוא השטח המקווקו קבוצת מכפלה (561 +6ט6סזק): להגדרת קבוצת מכפלה דרושה הגדרה של זוג מסודר (זו₪8 60ז0706) אשר מורכב משני אלמנטים, 8 ו ם. כאשר 8 הוא האלמנט הראשון וט הוא האלמנט השני נסמן את הזוג בצורה (8,0). אפשר להגדיר סדר של מספר כלשהו של אלמנטים. למשל רביעיה מסודרת תרשם כך: (5,6,6 ,8). נניח ‏ ש87 ו87 הן שתי קבוצות. קבוצת המכפלה או המכפלה הקרטזית (00001ז2] ח109/8ז08) של 4 ו87, שתסומן 4>8, מכילה את קבוצת כל הזוגות המסודרים (ט ,4) כך שהאלמנט הראשון בא מקבוצה ג והאלמנט השני בא מקבוצה 8. [864,062: (4)] = 8 א בה לדוגמא נגדיר קבוצה של מנהלים וקבוצה של עובדים. 4 = מנהלים = [דן, דוד] 8 = עובדים = [שאול, ישראל, משה] המכפלה הקרטזית בין שתי קבוצות אלה תגדיר את כל האפשרויות של יחסים מנהל--עובד. 8 = [(שאול, דן), (שאול, דוד), (ישראל, דן), (ישראל, דוד), (משה, דן), (משה, דוד)] ניתן להגדיר מכפלה קרטזית של קבוצה עם עצמה. אם קבוצה 4 מורכבת מאלמנטים [א,ע], הקבוצה <4 תהיה: [(3א),(עא) ,( א,ע) ,(עע))] = 4 א 4 ניתן להגדיר את פעולת המכפלה על מספר כלשהו של קבוצות. לדוגמא, המכפלה הקרטזית של קבוצות 8, 8, 0 שתסומן 0א8א4 מורכבת מכל השלשות המסודרות, כך ש: [6,5,0:864,062,660] = 6 א א 4 4 לדוגמא נתונות קבוצות: [א ,0=]2 [ץ,א]=8 [5,0 ,8] = המכפלה הקרטזית שלהן תהייה: , (2,א,6) ,(2,א,ם) ,(2,א,8)] = 60א8אה ,(2,ע,0) ,(2,ץ,ס) ,(8,9,2) (6,א,0) ,(%,א,ם) ,(6,א,8) [(,ע.ס) ,(%,ע.ס) ,(8,ע,8) 3 יחסיסם (8ח0ו49|8%) היחס הינו אחד המושגים החשובים במודלים של נתונים. הוא מתאר קשר בין אלמנטים של אותה קבוצה או בין אלמנטים של קבוצות שונות. לדוגמא בנקודת זמן כלשהי, רק חלק מבין כל הזוגות האפשריים (עובד, מנהל) מייצגים קשר קיים בין מנהל לעובד. היחס הבינרי (חסוו9!8 ץזפחום) הינו קבוצה חלקית לקבוצת המכפלה הקרטזית של שתי קבוצות 4 ו 8 למשל. הביטוי המתמטי שלו יהיה: 8 א 4 6 (8, )₪ סדר הופעת האלמנטים ביחס בינרי הוא חשוב. בדוגמא שבתרשים 7--3 האלמנט הראשון יהיה תמיד מתוך קבוצת המנהלים והאלמנט השני יהיה תמיד מתוך קבוצת העובדים. בדוגמא זו לא קיימים הקשרים "דן-משה" ו"דוד"שאול". מנהלים 3 (אלמנט ראשון) עוברים 8 (אלמנט שני) 6 ה בר -->-=<=<) תרשים 7 - 3: ביטוי גרפי ליחס בינרי 5 נציג דוגמא נוספת ליחס בינרי ונגדיר לשם כך שתי קבוצות: קבוצה 8 היא קבוצת כל המרצים באוניברסיטה וקבוצה 8 היא קבוצת המחלקות השונות באוניברסיטה. המכפלה הקרטזית 48 מכילה את כל הזוגות המסודרים האפשריים בין מרצה לבין המחלקה כאשר האלמנט הראשון יהיה מרצה והאלמנט השני יהיה מחלקה. במציאות קיים קשר בין המרצים והמחלקות אך הקשר אינו מקיף את כל המקרים מכיון שרק חלק מהמרצים מלמדים במחלקה מסויימת. היחס הבינרי הקושר בין שני האלמנטים הינו קבוצה חלקית למכפלה הקרטזית. 8 מחלקות מרצים ‏ מנהל עסקים סטטיסטיקה כלבלה תרשים 8 - 5: יחס בין מרצה למחלקה יחס הינו הרחבה של מושג היחס הבינרי. יחס במימד ח הינו קבוצה חלקית למכפלה הקרטזית של ח קבוצות. יחס במימד 4 המתאר מספר מאפיינים של נתוני עובד יוצג בצורה הבאה: עובדים במפעל = (שם עובד, גיל, מקצוע, שנות נסיון מקצועי) כל אחד מהמאפיינים הינו למעשה קבוצה, כמו קבוצת שמות של העובדים, קבוצת כל הגילים, קבוצת המקצועות ועוד. המכפלה הקרטזית של ארבעת הקבוצות תהיה קבוצה גדולה מאד כי היא מייצגת אח כל האפשרות בהתאם למספר האלמנטים בכל אחת מהקבוצות. יחס במימד 4 הינו קבוצה חלקית למכפלה הקרטזית והוא יכיל אלמנטים כמספר העובדים במפעל. נוח מאד לייצג את היחס בצורת טבלה. 6 יחס תרשים פ - 3: ייצוג יחס במימר 4 עליידי טבלה 4 פונקציות (5ח00)סחט=) פונקציה הינה מקרה מיוחד של קשר בין שתי קבוצות. נניח שלכל אלמנט בקבוצה 4 קושרים בדיוק אלמנט אחד מתוך קבוצה 8. שני אלמנטים מקבוצה 4 יכולים להיות קשורים לאלמנט אחד מקבוצה 8, ויתכנו אלמנטים ללא כל קשרים שהם. האוסף ] של כל הקשרים האלה יקרא "פונקציה מ-4 לתוך 8" ויסומן: ₪ 2 : 1 ניתן להגדיר את הפונקציה גם כקבוצה חלקית של המכפלה הקרטזית 48 שבה כל אלמנט מתוך 4 מופיע פעם אחת בלבד. קבוצה 8 קבוצה / גיל שם-עובד כב=---- ה תרשים 10 - 3: פונקציה בין שם עובד וגילו 07 הפונקציה מגדירה את הקשר או את המיפוי (פַחוסס8!א) בין אלמנטים בשתי קבוצות שונות או באותה קבוצה. הקשר בין האלמנטיים יכול להיות חד--חד-ערכי (1:1), חד--רב-ערכי (א:6 או רב--רב-ערכי (וא:א). | אבא"של = (שם אבא, שם ילר) = 1 ל (רז, אייל), (רז, אילת)] תרשים 11 -5: צורות שונות לייצוג קשרים קשר חד - חדדערכי (1:1) הוא הקשר הפשוט ביותר הקיים בין האלמנטים. לכל אלמנט בקבוצה אחת יש התאמה לאלמנט אחד בקבוצה השניה ולהיפך, כמו לדוגמה הקשר בין קבוצת מספר הזיהוי של העובד לבין קבוצת מספרי העובד. המשמעות היא שלכל מספר זהות מקבוצה אחת מתאים מספר עובד אחד בלבד מהקבוצה השניה ולהיפך. מקובל לסמן קשר כזה בקו שחיצים בשני קצותיו *-+. תרשים 12 -3: קשר חד - חד-ערכי 8 בצורה פורמלית נאמר שקיים קשר 1 אם קיימות שתי קבוצות 4 ו87 שניתן להגדיר עבורן שתי פונקציות 8 8-42:. כזכור, הפונקציה מאפשרת לאלמנט הראשון להופיע פעם אחת בלבד. קשר חד - רב-ערכי (א:1) מאפשר שלכל אלמנט בקבוצה אחת תהייה התאמה למספר אלמנטים בקבוצה השניה אבל לא להיפך. כלומר, בין אלמנטים בקבוצה השניה לאלמנטים בקבוצה הראשונה קיימת התאמה חד-ערכית. הקשר בין קבוצת שמות העובדים לבין קבוצת מספרי הזיהוי שלהם הוא מסוג זה. קשר רב-ערכי קיים בין מספרי הזיהוי לבין השמות מכיון שניחן להתאים לכל שם מספרי זיהוי אחדים. הקשר בין השמות לבין מספרי הזיהוי הוא חד- ערכי מכיון שלכל שם יש מספר זיהוי אחד בלבד. מקובל לסמן קשר זה בקו שבצידו האחד חץ אחד ובצידו האחר ישנם שני חיצים =+--. שם העובר 12 23 4 6 תרשים 13 -5: קשר חד - רב-ערכי בצורה פורמלית נאמר שקיים קשר א:1 אם קיימות שתי קבוצות א ו-8 וניתן להגדיר עבורן רק פונקציה אחת, 8--1:4 או 8-4:. קשר רב - רב-ערכי (/:א) מציין שלכל אלמנט בקבוצה אחת יש התאמה למספר אלמנטים בקבוצה השניה ולהיפך. הקשר בין קבוצת שמות העובדים לבין קבוצת המקצועות שלהם הוא קשר רב--רב-ערכי. יתכנו מספר עובדים בעלי שם זהה עם מקצועות שונים וכן יתכנו מספר עובדים בעלי שם שונה שיש להם מקצוע זהה. מקובל לסמן קשר זה בקו ששני חיצים בכל אחד מקצותיו: -+-+->. תרשים 14 -35: קשר רב - רב-ערכי 99 בדוגמא המופיעה בתרשים 14--3 ניתן לראות ששני עובדים ששמם "משה" הם בעלי מקצועות "חרט", "טכנאי", ושלשה עובדים בעלי המקצוע "טכנאי" נושאים שמות שונים "משה", "רן", ו"יצחק". בצורה פורמלית נאמר שקיים קשר |ש:א אם קיימות שתי קבוצות א וד ולא ניתן להגדיר אף אחת מהפונקציות 1:4-8 או 8-4:). 3 מודל ישויות - קשרים מטרת תהליך ניתוח הנתונים היא לבנות מבנה נתונים שמתאים לכל היישומים בארגון, והוא צריך להיות גמיש למדי כדי לאפשר ביצוע שינויים ללא זעזוע מערכת המידע. תוך כדי הניתוח מזהים ומסווגים את הנתונים הקיימים בארגון ואשר דרושים למערכת המידע. מטרת תהליך זה היא לבנות שיטת התייחסות זהה ואחידה לכל הנתונים, וזהו מודל הנתונים של הארגון (/006/ 0818 ה00ו280חזס). התוצר של הניתוח והלימוד הוא ארגון נתונים וקשרים שבמציאות לצורה שמובנת ונתפסת על ידי האנשים שמתכננים את מערכת המידע ונעזרים בשירותיה. בדרך כלל מערכת המידע עוסקת רק בחלק מהמציאות, בזו אשר רלוונטית לארגון. בעקרון היינו רוצים לנהל במערכת המידע נתונים על כל המציאות הרלוונטית, אך בגלל אילוצים של כדאיות כלכלית וכמויות נתונים שיש לאחסן מתבצע תהליך לצמצום נוסף של המציאות הרלוונטית. בסופו של התהליך מכילה מערכת המידע רק את הנתונים הדרושים לה לפי דרישתם והבנתם של המתכננים, ירע, נסיון מציאות קליטה, הבנה אינטרפרטציה, הבנת המציאות מציאות נתפסת תרשים 15 - 5: הפיכת המציאות למציאות נתפסת 10 כדי להסביר את משמעות התכנון נשתמש בדוגמא של ניתוח מערכת המידע במפעל כלשהו. המציאות הרלוונטית מבחינת המפעל מורכבת מהקונים הפוטנציאליים של המוצר, ספקים של חומרי גלם, מכונות, פועלים העובדים במפעל, תהליכי עיבוד החומר והפיכתו למוצר, ועוד. למרות הרשימה הארוכה זהו רק חלק קטן מהמציאות כולה. עקרונית, הארגון היה מעוניין לקבל מידע רב על נושאים מגוונים כמו מצב פוליטי שיכול להשפיע על המכירות, מדיניות מחירים של הממשלה ושל המתחרים, המוצרים המתחרים ומידע על היצרנים שלהם. כל אלה הם חלק מהמציאות הרלוונטית אבל יתכן שלא יוכנסו למערכת המידע מסיבות שונות כמו עלות גבוהה לאיסוף הנתונים, כמויות נתונים גדולות שיש לאחטן במערכת המידע, קושי בהגדרה ובאחסון של נתונים איכותיים ועוד. בגלל קשיים אלו חל תהליך של צמצום נוסף של המציאות הנתפסת. מודל ישויות-קשרים (006ו! סוהפחסוופוסה-עוווחם) הינו כלי אינטלקטואלי אשר מאפשר בניית מודל תפישתי של המציאות אשר משוחרר מכל היבטים הקשורים למחשבים. מטרתו היא לאפשר הבנת המציאות וקביעת מושגים מקובלים ומוסכמים לבניית יחידות לוגיות המייצגות את המציאות ומאפשרות למנתח המערכות לטפל בה בצורה סימבולית. 1 מרכיבי העולס הממשי העולם הממשי מורכב מאלמנטים אשר בונים את המציאות. מודל ישויות"קשרים משתמש בשני מרכיבים להבנת המציאות: ישות וקשר אשר מבטא קשר בין ישויות. לכל אחד משני מרכיבים אלה יש מספר מאפיינים שיוצגו בהמשך. 1 ישות (ע₪חם) המציאות מורכבת מאוסף של ישויות. עקרונית, ניתן להתייחס לכל דבר כאל ישות, אך זהו תחום אינסופי ולכן קביעת הישות במערכת המידע נובעת מהצורך של הארגון לנהל אודותיה נתונים מסויימים. ישות יכולה להיות מוחשית או לא-מוחשית, כפי שנראה בדוגמאות שלהלן: -- עצם כמו מכונית, בית, מכונה במפעל, פריט במלאי; - גוף"חי כמו עובד במפעל, סטודנט באוניברסיטה, חולה בבית חולים; -- מושג מופשט כמו תקופת זמן, תאריך לידה, שם של איש, ארגון עסקי, קורס; -- אירוע כלשהו כמו שעת כניסת העובד למפעל, אספקת מוצר בעוד כחודשיים. לישות יש זכות קיום משל עצמה וניתן להבדיל בינה לבין ישויות אחרות. המנתח מגביל את עצמו לאותן ישויות אשר רלוונטיות לצורך הקמת מערכת המידע מכיון שאין אפשרות לאחסן את כל המידע הקיים. הישויות הרלוונטיות נקבעות בהתאם לאופי הארגון ומטרותיו. מערכת המידע תאחסן נתונים אודות הישות ולא את הישות עצמה. מאפיין (ע)זסטסזק ,0ו30101151זפת 0) לכל ישות יש מאפיין אחד או יותר. לדוגמא: -- לישות מכונית יש מאפיינים כגון "מספר רישוי", "שנת ייצור", "דגם" ועוד, 11 -- לישות עובד במפעל יש מאפיינים כגון "שם העובד", "מספר הילדים שלו", "תאריך תחילת העבודה במפעל", "מחלקה בה הוא עובד" ועוד, -- לישות אספקת מוצר יש מאפיינים כגון "תאריך האספקה", "כמות במשלוח", "שם הנמען" ועוד. % המאפינים מאפשרים את זיהוי, אפיון, סיווג וקישור הישויות השונות. אחת הבעיות הקשות ביותר של מנתח המערכות היא הקביעה של המאפיינים של היישות. במערכת מידע על עובדי המפעל למשל נשתמש לייצוג היישות "עובד'' במאפיינים שונים ביניהם "שם העובד", "תאריך תחילת העבודה", "נסיון מקצועי", "כתובת" ועוד. יתכן שלא נבחר במאפיין "סיווג בטחוני של העובד" מכיון שאינו רלוונטי למערכת המידע המתוכננת. אך יתכן שלאחר זמן מה המפעל יזכה במכרז לייצור ציוד בטחוני ויהיה זקוק למידע אודות הסיווג הבטחוני של עובדיו. במקרים מסויימים יש על כן לאגור מידע גם אם לכאורה הוא לא רלוונטי למערכת המידע המתוכננת אך הוא עשוי להיות מועיל או דרוש בעתיד. בעייה אחרת היא ההחלטה מהי ישות ומהו מאפיין כי האבחנה ביניהם הינה סוביקטיבית לחלוטין ותלוייה בנסיבות. במערכת מידע אוניברסיטאית יש חשיבות רבה מאד לישות "קורס" שכמה ממאפייניה הם "שם הקורס", "שם המרצה", "מספר נקודות זכות שהוא מקנה", "משך הקורס" ועוד. לעומת זאת, במערכת מידע על עובדי המפעל יהיה לישות עובד מאפיין של "שם הקורס בו השתתף". דוגמא נוספת יכולה להיות מערכת מידע בנושא פיקוח תחבורתי של טיב הכבישים. מערכת זו תנהל ישות עצמאית רחוב עם מספר מאפיינים, ולעומת זאת במערכת המידע על עובדי המפעל לישות "עובד" יש מאפיין "רחוב בו גר", האבחנה בין ישות למאפיין יכולה להתבצע רק לאחר הבנת המציאות הרלוונטית למערכת המידע המתוכננת והגדרתה. ערך המאפיין (6טו9/ עוזסקסז/0ו8780101151ח0) כל מאפיין יכול לקבל ערך כלשהו המייצג אותו. לדוגמא, %- | -- המאפיין יצרן המכונית יכול לקבל אחד מתוך הערכים פיאט, פורד, סוברו, | -- המאפיין מין יכול לקבל אחד מתוך שני הערכים זכר, נקבה, -- המאפיין מספר זהות של העובד יכול לקבל אחד מתוך הערכים האפשריים של מספרי הזהות של העובדים במפעל. תחום ערכים (חוגוחספ) תחום הערכים הינו אוסף כל הערכים האפשריים שמאפיין מסויים יכול לקבל, לדוגמא: -- תחום הערכים של המאפיין יצרן המכונית הוא אוסף כל היצרנים של מכוניות בעולם. -- תחום הערכים של המאפיין מספר זהות הוא אוסף כל המספרים החיוביים בני 8 ספרות שנקבעו עלדידי משרד הפנים כמספר זהות של התושבים, -- תחום הערכים של המאפיין כתה בבית-ספר עממי הוא המספרים השלימים מ-1 ועד 8, מאפיינים שונים יכולים לקבל את הערכים שלהם מתוך אותו תחום ערכים. למשל המאפיין "צבע שיער" וגם המאפיין "צבע עינים" מקבלים את הערכים שלהם מתוך תחום הצבעים האפשריים. למרות שהערכים יכולים להיות זהים המשמעות שלהם שונה לחלוטין. תחום הערכים שהמאפיין יכול לקבל קובע את צורת הייצוג שלו במערכת המידע. לדוגמא, 2 המאפיין "מספר זהות" ייוצג במערכת על-ידי מספר בן 8 ספרות בעוד המאפיין "שם עובד" ייוצג על ידי נתון אלפאדביתי בן 30 תוים. מפתח היישות (ע6א עווזחם) נגדיר את מפתח הישות כמאפיין המזהה את הישות באופן חד"משמעי. לא תמיד יש לישות מאפיין כזה ולכן מקובל להוסיף מאפיין מלאכותי המשמש למטרות זיהוי בלבד. נשתמש במספר דוגמאות: -- הישות מכונית תזוהה על-ידי המאפיין המלאכותי "מספר רישוי" 'מכיון שאין כל מאפיין אחר שיכול לזהות את הישות בצורה חד-משמעית, -- הישות סטודנט תזוהה על-ידי המאפיין המלאכותי "מספר סטודנט" כי אין כל מאפיין אחר אשר יכול לזהות את הישות בצורה חד-משמעית. יתכנו למשל סטודנטים שונים עם אותו שם. אפשר למשל להשתמש במאפיין "מספר זהות" שהוא חד-משמעי אך אינו יכול לסווג את הישות לפי דרישות וצרכי רישום הסטודנטים. המפתח הוא מפתח פשוט אם הוא מורכב ממאפיין אחד, והוא יהיה מפתח מורכב אם הוא מכיל מספר מאפיינים אשר משמשים יחדיו לזיהוי הישות. עובדה (9464) העובדה יוצרת קשר בין המאפיין לבין הערך שלו כי היא מגדירה את הישות, את שם המאפיין ואת הערך שלו. נציג דוגמאות אחדות: -- "יצרן המכונית הוא מפעלי פיאט": זוהי עובדה אשר יוצרת קשר בין המאפיין "יצרן המכונית" והערך "פיאט" שהמאפיין יכול לקבל. -- "שם העובד הוא משה": זוהי עובדה אשר יוצרת קשר בין המאפיין "שם העובד" והערך "משה" שהמאפיין יכול לקבל. תרשים 16 -3: קשר בין ישויות, מאפיינים וערכי מאפיינים 3 2 קשר (סותפחסו36!8%) הקשר מגדיר יחס כלשהו בין מרכיבי המציאות, ישויות או תכונות. לדוגמא, -- "משה לומד באוניברסיטה העברית בירושלים": קשר בין הישות "עובד" כאשר הערך של המאפיין "שם העובד" הוא משה, לבין הישות "מוסדות להשכלה גבוהה" כאשר הערך של המאפיין "שם המוסד" הוא האוניברסיטה העברית בירושלים. -- "פריט 129 מורכב מפריטים 592, 924": קשר בין שתי ישויות מאותו סוג "פריט". -- "עובד מספר 145 שמו משה": קשר בין המאפיין "שם עובד" לבין המאפיין "מספר העובד". שני המאפיינים שייכים לישות אחת "עובד". הקשר קובע את השמות של המרכיבים הקשורים ואת שם הקשר. בדוגמא הראשונה למשל שם הקשר הוא "לומד" והוא קושר את הישויות "עובד" ו-"מוסד להשכלה גבוהה". הקשרים נבדלים זה מזה כפי ששונים ומגוונים המרכיבים הקשורים באמצעותם, אך בכל זאת ניתן לסווג אותם במספר קבוצות עיקריות. סוג ההתאמח: ההתאמה יכולה להיות מסוג 1:1, א:1, ₪:א. האלמנטים המשתתפים בקשר: האלמנטים המשתתפים בקשר יכולים להיות מאפיינים שונים של אותה ישות או של ישויות שונות וכל סוגי ההתאמה יכולים להתקיים. קשר בין ישויות הוא למשל הקשר בין העובד למחלקה שבה הוא עובד. קשר זה הוא חד--רב-ערכי כי העובד יכול לעבוד רק במחלקה אחת בעוד שבמחלקה אחת יכולים לעבוד מספר עובדים. ניתן להגדיר גם קשר בין אלמנטים שונים של אותה ישות כמו הקשר בין מנהל לעובדים שעליהם הוא ממונה. הכרחיות הקשר: קיימים קשרים הכרחיים כמו למשל הקשר בין העובד למחלקה. קשר בין עובד וילדים הוא אופציונלי כי לא לכל עובד יש ילדים. קשרים אחרים אינם נחוצים כלל כי אין להם כל משמעות במערכת המידע שבה דנים. תלות בזמן: קשר יכול להשתנות עם הזמן. קשר עם התאמה 1:1 בטווח הקצר יכול להפוך בטווח הארוך לקשר א:1, כמו למשל הקשר בין אדם וחשבון חסכון בבנק. בזמן נתון יש לו חשבון חסכון אחד אך במשך הזמן הוא פותח חשבונות חסכון נוספים. קשרים המוציאים זה את זה: קשר אחד יכול למנוע את האפשרות לקיום קשר אחר. אם מחסן סחורות מיועד לחומרי גלם בלבד או לתוצרת מוגמרת בלבד לא יתכן פריט מסוים המאוחסן בשני המחסנים. הקשר בין הפריט למחסן התוצרת המוגמרת מוציא את האפשרות לקיום קשר בינו לבין מחסן חומרי הגלם. 2 ייצוג המציאות במודל בסעיף קודם הצגנו את המרכיבים הבסיסיים של המציאות אשר מערכת המידע צריכה לייצג. לשם הגדרת המציאות במונחים של מערכת מידע נדרשת הקבצה של מרכיבים בסיסיים או הרחבה שלהם, ולכך מכוון סעיף זה. שיטה זו מקילה על מנתח המערכות להגדיר את המציאות ולייעל את התקשורת עם אחרים. 4 קבוצת ישות (56 עוווחם) קבוצת הישות הינה אוסף המופעים (5סחפזזטסס0) של כל הישויות שיש להם את אותם המאפיינים. בפועל, קבוצת הישות הינה מבנה לוגי המאפשר למנתח המערכות להתייחס אל המציאות מבלי שיהיה עליו להכיר את כל הישויות הממשיות ולטפל בהן. לאחר שנקבעו למשל מאפיינים רלוונטיים שיש לנהל עבור ישות "עובד'" ניתן לטפל במבנה הלוגי "עובדים" מבלי להכיר את העובדים במפעל. -- לישות "עובד במפעל" נבנה קבוצת ישות "עובדים" המייצגת את כל העובדים במפעל, בקבוצה יהיה לכל ישות, כלומר עובד, מופע אחד; -- לישות "מכונית'" נבנה קבוצת ישות "מכוניות במפעל" המייצגת את כל המכוניות הנמצאות בבעלות המפעל; -- לישות "קבלת חומר מספק" נבנה קבוצת ישות "אספקות מתוכננות" המייצגת את כל המשלוחים הצפויים. ישות אחת יכולה להשתתף במספר כלשהו של קבוצות שונות. הישות "עובד'" יכולה להשתייך לקבוצת "עובדים במפעל", לקבוצה "בוגרי מוסדות להשכלה גבוהה", ולקבוצה "מנהלי עבודה". תכונה (סוטפוזווה) קבוצת הישות היא בעלת משמעות כאשר היא מתוארת באמצעות תכונותיה. התכונה הינה: האינטרפרטציה של מאפיין הישות הקיים במציאות. כמו קבוצת הישות "עובדים במפעליי אשר מתוארת באמצעות תכונות כגון "שם העובד", "כתובת העובד". זוהי הצגה של העולם האמיתי, המציאות, שבו לכל עובד יש מאפיינים שביניהם "שם העובד" ו-"כתובת". מאפיין -יצרן- יי המציאות --7777 מציאות 4-2 תרשים 17 - 3: ייצוג המציאות במודל ישויות - קשרים תרשים 17--3 מתאר המרה של מרכיבי מציאות רלוונטית למודל של מערכת מידע המייצג את המציאות. תכונה קושרת בדרך כלל את המאפיין לערך אחד מתוך תחום הערכים שלו ולכן היא מייצגת עובדה מהעולם האמיתי. בדרך כלל שם התכונה ושם תחום הערכים זהה. התכונה "שם הסטודנט'' למשל, קושרת את המאפיין לערך מתוך התחום "שמות סטודנטיים". לא תמיד שם התכונה זהה לשם התחום כמו במקרה של התכונה "גיל" אשר יכולה לקבל את ערכיה מתוך תחום "מספר שנים". קבוצת קשרים (561 סותפחסוובּו36) קבוצת קשרים הינה אוסף המופעים של הקשרים אשר מבטאים יחס כלשהו אשר קיים בין קבוצת ישות אחת לקבוצת ישות אחרת. קבוצת הקשרים הינה מבנה לוגי אשר מאפשר למנתח המערכות להתייחס אל המציאות מבלי שיהיה עליו להכיר את כל הקשרים הממשיים ולטפל + בהם. קבוצת הקשרים "קורס נלמד" מגדירה את הקשר בין קבוצת הישות "סטודנטים" לקבוצת הישות "קורסים". קשר זה מציין איזה קורסים נלמדו על ידי איזה סטודנטים. ברגע שהוגדרה קבוצת הקשרים אפשר לטפל במבנה הלוגי הזה מבלי להכיר את הסטודנטים, הקורסים והקשרים ביניהם. (מי) תרשים 8 -+ קבוצת קשרים בין קבוצות ישות קבוצת הקשרים יכולה להגדיר גם קשר בין ישויות שונות המשתייכות לאותה קבוצת ישות. "עץ המוצר" המתאר את מבנה המוצר הינו למעשה קבוצת קשרים בין מופע כלשהו של [ ן ] הישות "פריט" לבין מופעים אחרים של אותה ישות. 26 קבוצת ישות "פריטים" תרשים 19 - 5: קבוצת קשרים בין ישויות באותה קבוצת ישות 3 תרשימי ישויות-קשריס נוח מאד להציג את מודל ישויות-קשרים באמצעות תרשים. בתרשים נשתמש בסימולים ּ הבאים: | מלבן -- קבוצת ישות, | עגול -- תכונות של הישות, 0 חץ ‏ -- קשר בין ישויות. סוג ההתאמה בין ישויות יסומן בחץ. תרשים 20--3 מציג דוגמא של מודל ישויות"קשרים בחברה עסקית בתחום פיתוח מוצרים כלשהם. בתרשים מוצגות שמונה ישויות שונות עם המאפיינים שלהן. נבהיר חלק מהקשרים בין הישויות: -- הקשר פרויקט--עובד הינו רב-- רב-ערכי כי מספר עובדים מועסקים בפרויקט אחד ועובד יכול לעסוק במספר פרויקטים במקביל. -- הקשר פרויקט--פריט הינו רב--רב"ערכי כי בפרויקט אחד יכולים להשתמש במספר פריטים שונים ופריט מסויים יכול להמצא בשימוש במספר פרויקטים שונים. -- הקשר פריט--הצעת-מחיר הינו חד--רב-ערכי כי לפריט אחד יתכנו מספר הצעות מחיר שונות, אבל הצעת מחיר מתייחסת לפריט אחד בלבד. 7 18 0 פריט בהזמנה מלאי במחסן יש >= יז | 9 6 תרשים 20 - 3: תרשים ישויות-קשרים 0 9 4. מודל הנתוניס מודל הנתונים (/₪006 פּו08) הינו מסגרת לוגית אשר מתארת את הישויות, התכונות והקשרים המייצגים את הנתונים בארגון. המודל נותן לכל המרכיבים שמות סימבוליים המאפשרים לטפל במבנים אלה בצורה לוגית. לתוך מסגרת זו יוצקים בהמשך את התוכן, כלומר את הערכים השונים שהתכונות מקבלות. שינוי בערכים אלה מייצג שינוי כלשהו שחל במציאות, אולם השינוי אינו משפיע על המודל אלא רק על תוכנו ברגע נתון. בהיותו מסגרת לוגית משמש המודל ככלי אינטלקטואלי המאפשר קיום תקשורת בין המשתמשים השונים בנתונים. נשתמש בדוגמא כדי להסביר את מושג המודל. מפת הכבישים הינה למעשה מודל לוגי אשר מייצג את הקשר התחבורתי בין יישובים שונים. משרטטי המפה לא השתדלו לדייק בצורה מירבית בשרטוט כדי שכל עיקול או שיפוע בכביש יוצגו בה. המשמעות היא שמפת הכבישים איננה מבנה פיסי, כלומר תיאור מדויק של תוואי הכביש בין שתי נקודות, אלא תיאור לוגי של הכביש. בניית גשר או מסעף כלשהו הינם ללא ספק שינוי במבנה הפיסי אבל אינם מחייבים שינוי המפה מאחר והיא משמשת רק לייצוג לוגי של הכביש במודל. נוכל למצוא מפות מדוייקות המהוות תיאור פיסי של מערכת הכבישים כי יש להן שימושים נוספים, ולכן נדרשת בהן רמת דיוק רבה יותר של המודל. בצורה דומה יש לבנות מסגרת לוגית ואוסף של כללים לייצוג המציאות במערכת המידע הממוחשבת. מודל הנתונים מאפשר את תרגום מודל ישויות--קשרים המייצג את המציאות למבנים לוגיים הניתנים לטיפול במערכות מחשב. מקובל להבחין בין שלשה סוגי מודלים של נתונים במערכות פוא8ס: א. מודל תפישתי (0081!! 104ק9סח0ס0): זהו המודל הבסיסי המייצג את הנתונים בארגון. המודל קובע את הישויות, התכונות והקשרים הרלוונטיים. הוא משמש לארגון הנתונים, לתכנון בסיס הנתונים וככלי להחלפת רעיונות בין המשתמשים השונים. מודל הנתונים התפישתי מייצג בצורה הטובה ביותר את מבנה הנתונים הנכון עבור הארגון והוא בלתי תלוי במחשב או במערכת פס כלשהי. ב. מודל לוגי (1006) |1.09108): מודל הנתונים הלוגי הינו מודל נתונים המשמש את מערכת 68 לייצוג המודל התפישתי. מקובל לכנות מודל זה סכימה (808ח50) של המציאות מאחר והוא מייצג אותה במחשב. קיימים מספר רב של מודל לוגיים אולם רק שלשה מהם זכו לתפוצה נרחבת וגם מיושמים במערכת 0818 מסחריות: המודל ההיררכי, המודל הרשתי והמודל הטבלאי. קיימות מערכות אשר משתמשות בשילוב מסויים בין המודלים הבסיסיים האלה או שמשתמשות רק בחלק ממודל מסויים. מאחר והמודל הלוגי משמש מערכת מחשב חלים עליו מגבלות מסויימות שנובעות מהצורך לטפל במבני הנתונים בצורה יעילה ונוחה. הדרישה העיקרית להפעלת מערכת ניהול בסיסי נתונים היא ביצוע מיפוי בין המודל התפישתי לבין המודל הלוגי אשר כולל את כל האילוצים הדרושים. הפרקים הבאים יוקדשו להצגת שלשת המודלים הלוגיים הבסיסיים בצורה מעמיקה יותר. ג. המודל הפיסי ((000! |09ופעח זס |פחזפוחו): את המודל הלוגי ניתן ליישם במערכת פס במספר מבנים פיסיים שונים. המשתמש מטפל במודל הלוגי ולכן אין לו גישה אל המודל הפיסי אשר הוא "שקוף" בעיניו. המודל הפיסי מתייחס לשיטת ייצוג המודל הלוגי 19 במחשב ולכן נמצא בו מושגים כגון יחידות אחסון, גושים, מאגרי קלט/פלט, אינדקסים, מצביעים וכדומה. המיפוי בין מודל הנתונים הלוגי לבין המודל הפיסי מתבצע על ידי מערכת 5פס. בהמשך הספר נשתמש במושג מודל נתונים במובן הרחב. כלומר, הוא יכול להיות מודל תפישתי, מודל לוגי או מודל פיסי. 1 מרכיבי מודל הנתוניס בסעיף הקודם הצגנו את האלמנטים אשר מתארים את המציאות במודל קשרים--ישויות. כדי שאפשר יהיה לעבד את המודל במחשב יש להסב אותו למבנה של מודל לוגי שבו מספר מרכיבים אשר יוסברו בהמשך. שדה (וחסוחס!ם 2818 ,ווסו! 2313 ,16/0) השדה הוא יחידת הנתונים הבסיסית ביותר, או יחידה אטומית, במשמעות שאינו ניתן לחלוקה נוספת. השדה הינו האלמנט במודל הנתונים המשמש לייצוג תכונה של ישות והוא יכול לקבל ערך (8!08 0818) מתוך תחום הערכים של התכונה שאותה הוא מייצג. בצורה גרפית נסמן את השדה על ידי עגול, בדומה לתיאור תכונה בתרשימי ישויות"קשרים. קשר בין שדות (קותפחסוו6!9 ,ח0וו8ו5500 בּוב) הקשר בין השדות מגדיר יחס כלשהו ביניהם, והוא אשר נותן להם משמעות. בצורה גרפית יסומן הקשר בחץ עם סימון בהתאם לסוג ההתאמה הקיימת בין השדות. רישום נפרד של קבוצת הגילים בתרשים 21--3 הינו חסר משמעות מכיון שאין יודעים איזה גיל שייך לאיזה עובד. יצירת הקשר בין שני השדות, היא הנותנת את המשמעות "גיל העובד". תרשים 21 - 3: קשר בין שני שדות 0 הקשר הבסיסי ביותר הינו הקשר הבינרי אשר קושר שני שדות. בין שני השדות יתכנו שלשת סוגי ההתאמה האפשריים, כפי שמוצג בתרשים 22--3. תרשים 22 - 5: סוגי ההתאמות הקיימים בין שדות בין יישם עובדי ו'"גיליי קיים קשר 1:1 כי לכל עובד יכול להיות גיל אחד בלבד. יש לשים לב לכך שהדיון הוא על התאמה בין שני שדות ולא בין הישות "שם עובד" והישות "גילים" שביניהן קיימת התאמה שונה לחלוטין. בין "שם עובד" ו-"ילדים" יש קשר א:1 כי לכל עובד יתכנו מספר ילדים, אבל לכל ילד יש רק אבא אחד. בין יישם עובד'" ו-"שם פרויקט" יש קשר א:א כי עובד מסויים יכול לעבוד במקביל במספר פרויקטים ובפרויקט אחד מועסקים עובדים אחדים. תרשים 3 -:: מודל המבוסס על קשרים בינריים 1 רשומה (6ז₪660) אוסף השדות המייצגים את התכונות של ישות אחת יקרא רשומה. ניתן לייצג את הישות על ידי אוסף של קשרים בינריים בין התכונות אך הוא אינו נוח לעיבוד במערכות מחשב כי הוא מחייב טיפול במספר רב של מרכיבים. תרשים 24 - 5: ייצוג רשומה כאוסף של קשרים בינריים במקום הייצוג הגרפי המשמש לייצוג רשומות במודל הנתונים ניתן להשתמש במבנה פשוט יותר -- הרשומה השטוחה (80070ה )8|=). במבנה זה כל השדות של הרשומה ימצאו בקירבה פיסית זה ליד זה, כמתואר בתרשים 25--3. במודל הנתונים ירשמו שמות השדות ובבסיס הנתונים יופיעו הערכים שלהם, ולכן המבנה הפיסי של הרשומה אינו חייב להיות זהה למבנה הלוגי שלה. בבסיס הנתונים עשויים השדות להופיע בסדר שונה ויתכן שאף יצורפו להם שדות נוספים הדרושים לניהול בסיס הנתונים. בבסיס הנתונים מוצגים הנתונים במבנה לוגי כפי שהוא נתפס על ידי המשתמש. 2 ילדים ל של שם תאריך שם מספר הקשה האשה לירה עובר עובר 0 2 1 האשה תרשים 25 - 3: רשומה שטוחה הרשומה מייצגת ישות ולכן כל מופע (8סחפזזט060) שלה בבסיס הנתונים מייצג מופע של ישות במציאות. מבנה הרשומה השטוחה הוא המבנה המקובל ביותר לייצוג הקשרים בין התכונות של הישות. כפי שנראה בהמשך, כל המודלים של הנתונים משתמשים במבנה זה למטרה זו, כשם שמשתמשות בו גם המערכות לניהול קבצים. סוג רשומה (6מְעד ₪זס960ח) אוסף הרשומות המייצגות ישות אחת יקרא סוג רשומה. לאוסף רשומות העובד נקרא "סוג- רשומה עובד" וכך, במסגרת סוג"רשומה אחד יתכנו מספר בלתי מוגבל של מופעים של רשומות. מונח מקובל אחר לסוג רשומה הוא קובץ (8ו₪). כל הרשומות מאותו סוג הן בעלות מבנה זהה, כלומר סדר הופעת השדות ברשומה הוא קבוע וזהה עבור כל המופעים. מן הראוי לציין שבקובץ אחד יכולות להיות רשומות מסוגים שונים. קובץ תרשים 26 - 5: קובץ או סוג רשומה 3 המפתח של הרשומה הוא השדה, או מספר שדות רצופים, אשר מזהים אותה בצורה חד משמעית. מערכת 8ואםכ משתמשת בתוכן שדה המפתח כדי לקבוע את הכתובת הפיסית בבסיס הנתונים וכאמצעי לאיתור הרשומה. רוב מערכות 085 מאפשרות הגדרת מפתחות משניים לכל קובץ כדי לאפשר איתור מהיר של רשומות לפי מפתח אשר שונה מהמפתח הראשי שלהן. חשוב להדגיש שאין המבנה הפיסי של הקובץ חייב להיות זהה למבנה הלוגי. בתוך בסיס הנתונים הרשומות יכולות להופיע בסדר שונה ומבנה הרשומה יכול להיות שונה כי זהו מבנה לוגי כפי שהוא מובן על ידי המשתמש. ו קשרים בין סוגי רשומות (קוהפחסוו₪9!9 ,חסו)4550019 0ז600) הקשר בין סוגי רשומות שונים מגדיר יחס כלשהו ביניהן והוא מייצג את הקשרים בין קבוצות הישות השונות. בדומה לקשרים הקיימים בין שדות, גם הקשרים בין סוגי רשומות יכולים להיות בכל אחד משלשת סוגי ההתאמה האפשריים. בתרשים 27--3 מוצג קשר חד--רב-ערכי בין שני סוגי רשומה שונים. בין שני סוגי רשומה יתכנו מספר קשרים שונים וכן יתכן קשר בין רשומות שונות השייכות לאותו סוג רשומה. . שם מספר הלצ'ר | מחלקה | מחלקה ילרים תאריך שם תאריך שם מספר לידה אשה| האשה לידה עובד עובר תרשים 7: קשר חד - רב-ערכי בין שני סוגי רשומות בדוגמא שבתרשים 28--3 מודגמים קשרים שונים בין שני סוגי רשומות. הקשר החד---רב- ערכי "מנהל" מציג את הקשר בין עובד המוגדר כמנהל לבין כל העובדים שהוא אחראי להם. לכל עובד יש רק מנהל אחד. הקשר "עובד"מחקר" מציג את הקשר הרב--רב-ערכי בין רשומות פרויקט לרשומות עובדים שהם עובדי מחקר. הקשר "עובד-מינהל" מציג את הקשר הרב--חד-ערכי בין רשומות פרויקט לרשומות עובדים שהם עובדים מנהליים. מבנה הקשרים מציין את העובדה שעובד מנהלי יכול לעבוד רק בפרויקט אחד, בשעה שעובד מחקר יכול להשתתף במספר פרויקטים במקביל. 4 מנהל רשומת עובד עובר-מחקר עובד-מינהלי רשומת פרויקט תרשים 28 - 5: קשרים שונים בין סוגי רשומה מספר מחלקה . שם פרויקט שעות שם מספר טש שהושקעו| 3'177 |הפרויקט] הפרויקט יחידת | שם ] מספר מידה | פריט | פריט ערך | תאריך ] מספר הזמנה | הזמנה | הזמנה כמות במלאי מספר [ מספר פריט ] מחסן פריט בהזמנה . מספר | מספר תארי תאריך | מחיר ] מספר ] מספר הצעה | פריט | ספק | פריט תרשים 29 - 5: מודל נתונים תפישתי בתרשים 29--3 ניתן תיאור של מודל נתונים אשר מבוסט על תרשים ישויות--קשרים שהופיע בתרשים 20--3. 5 5. המודליס הלוגייס העיקרייס בסעיף זה נדון בשלשת המודלים הלוגיים החשובים והנפוצים ביותר אשר מיושמים ברוב מערכות 0818 הקיימות בשוק. אפשר לתאר את המציאות בעזרת כל אחד מהמודלים במידה שונה של פשטות, בהירות ונוחות. על כן נבין את הקושי שבבחירת מערכת 08/5 אשר תשרת בהצלחה את רוב מערכות עיבוד הנתונים בארגון. כל המודלים מייצגים את הקשרים בין התכונות של הישות באמצעות הרשומה, אך הם נבדלים זה מזה בעיקר בצורה של הצגת הקשרים בין הישויות ובהצגת הקשרים בין הרשומות. בסעיף זה ינתן תיאור תמציתי של המודלים ובהמשך יוקדש פרק נפרד לכל אחד מהם. 1 מודל הרשת (ו06סו/ 818 אזסעוזסאז) מודל הרשת הוגדר בצורה פורמלית על ידי צוות עבודה בנושא בסיסי נתונים בתחילת שנות ה-70. קיימות מערכות שונות אשר מבוססות על מודל הרשת אבל הן אינן עומדות בכל ההמלצות שלו. המודל מאופיין על ידי הגדרת שני סוגי רשומות: רשומת אב (₪60010 זפחשו0) ורשומת בן (0ז₪900 זססוח6ו). בין שני סוגי רשומות אלה קיים קשר חד-רב-ערכי (א:1). לדוגמא נסתכל על קבוצות הישות "מחלקות", "פרויקטים", "עובדים", קיים ביניהם הקשר "עובד במחלקה" אשר מגדיר התאמה מקבוצת "מחלקות" לקבוצת "עובדים", והקשר "עובד בפרויקט" שמגדיר התאמה מקבוצת "פרויקטים" לקבוצת "עובדים", כפי שמתואר בתרשים 4-0 עובדים תרשים 30 - 5: קשר בין עובר, מחלקה ופרויקט במודל הרשת המודל מאפשר לקשור רשומת אב אחת למספר סוגי רשומות בן שונות והוא מאפשר לרשומת בן אחת להיות קשורה למספר סוגי רשומות אב שונות. כל קשר ביניהם יהיה תמיד א:1, קשר |א:א יוסב לשני קשרים מסוג א:1. מודל הרשת מיושם במספר רב של מערכות 819 מסחריות והוא שימש נושא לעבודות מחקר שונות. המודל מאפשר גישה יעילה יחסית לנתונים, אך דורש מהמשתמש להגדיר את המבנים הפיסיים של הנתונים ואת מסלולי הגישה אליהם. חוסר הגמישות של המודל מתבטא בעובדה שהוספת מסלולי גישה חדשים מחייבת טעינה מחדש של בסיס הנתונים. המבנים הפיסיים שבהם משתמשים במצביעים נוטים להיות מורכבים למדי. 6 2 מודל היררכי (061סו 0818 |פסוחסזפזסו) המודל ההיררכי הינו ותיק יותר ממודל הרשת ונמצא בשימוש זמן רב במערכות 85 רבות. גם במודל ההיררכי משתמשים בשני סוגי רשומות, רשומת אב ורשומת בן שביניהן קיים קשר חד-- רב-ערכי (א:1). ההבדל העיקרי בין מודל זה למודל הרשת נובע מהעובדה שרשומת בן יכולה להיות קשורה לרשומת אב אחת בלבד. המבנה המתקבל כתוצאה מצורת קשר זו הוא מבנה של עץ נתונים, כאשר לכל רשומה בעץ יש מסלול גישה אחד בלבד. נתבונן בקשר בין קבוצות הישויות "מחלקות", "עובדים", "פרויקטים". העובד קשור לרשומת המחלקה שלו וקשור לרשומת הפרויקט שבו הוא מועסק. מכיון שהמודל ההיררכי אינו מאפשר לרשומת הבן "עובד" להיות קשורה לשתי רשומות אב שונות, דרושים שני מבנים היררכים נפרדים כמתואר בתרשים 31--3. שילוב שני המבנים ההיררכיים האלה נעשה על ידי קשר לוגי נוסף המאפשר גישור על פני מבנים היררכיים שונים. מגבלה זו גורמת לבניית מודל נתונים מורכב יותר ממודל הרשת מבחינת ייצוג הקשרים מאחר ובמודל הרשת מיוצגים הקשרים בצורה טבעית יותר. אך לעומת זאת מכיון שלכל רשומה יש מסלול גישה יחיד, ניתן ליישם את המודל בצורה פשוטה יותר. פרויקט תרשים 31 -5: קשר בין עובד, מחלקה ופרויקט במודל היררכי 3 מודל טבלאי (|008ו 0918 |4חסו1פ₪6) המודל הטבלאי פותח על ידי 0000 .=.ם והוצג על ידו בראשית שנות ה-70, ומאז פותחו מערכות 8/5 אחדות אשר מבוססות על מודל זה. המודל הטבלאי מאפשר את תיאור הנתונים בצורה טבעית ביותר, ללא הוספת מבנים מיוחדים ושדות אשר מטרתם העיקרית היא סיוע לייצוג הנתונים במחשב, ובכך הוא מאפשר אי-תלות נתונים מירבית. המודל הטבלאי 7 מציג את כל הנתונים באמצעות טבלאות, כאשר כל טבלה מתארת יחס (חסוובה) המגדיר קשרים בין מאפיינים. ייצוג הקשרים בין ישויות מתאפשר באמצעות מאפיינים זהים בשתי טבלאות שונות. בדוגמא שבתרשים 32--3 נוצר הקשר בין הטבלאות באמצעות המאפיינים "מחלקה" ו"פרויקט". תרשים 32 - 3: קשר בין עובד, מחלקה ופרויקט במודל טבלאי המודל הטבלאי זוכה היום להתעניינות רבה ולכן גם למחקר מעמיק, בעיקר בגלל תכונותיו המעניינות, השירותים שהוא מציע ואי-תלות בנתונים שהוא מאפשר. הגמישות שלו במתן שירותי אחזור נתונים גורמת ליעילות גבוהה של המשתמש בו למטרת שאילתא, אך יעילותו נמוכה, בהשוואה למודלים אחרים, בניצול זמן המחשב. יש לצפות שהמחקרים יביאו לאופטימיזציה בתחום זה ויתרמו, בנוסף לירידה בעלות החומרה והשיפורים בביצועי המחשב, לפיתוח מערכות 08/8 נוספות אשר תתבססנה על המודל הזה. 8 6. סיכוס בפרק זה הצגנו את המושגים העיקריים הקשורים לתהליך בניית מודל הנתונים ששלביו המרכזיים הם: א. הפיכת המציאות למציאות רלוונטית השלב הראשון הוא הבנת והגדרת המציאות הרלוונטית של הארגון והנתונים הרלוונטיים שיש לנהל במערכת המידע. בשלב הזה מזהים את המציאות הרלוונטית של הארגון, מגדירים את המודל וקובעים את האלמנטים שלו ונותנים להם שמות סימבוליים. המציאות הנתפשת היא רחבה מדי ואין אפשרות ועניין לטפל בה בתוך המודל, ולכן יש צורך לזהות את המציאות הרלוונטית אשר משמשת בסיס למודל. תרשים 33 - 3: הפיכת המציאות למציאות רלוונטית ב. הקבצת האלמנטים השונים לבניית מערכת המידע דרושה הקבצת היישויות והקשרים לשתי קבוצות הומוגניות. כפי שכבר הודגש, אחת הבעיות בשלב זה היא קביעת צורת הייצוג של האלמנטים, כמאפיינים של ישות או כישות עצמאית. בשלב הזה מזהים את כל הקשרים הקיימים בין הנתונים ומסווגים אותם. 9 ג. בניית המודל התפיסתי של הנתונים המודל התפישתי מתאר את כל מבני הנתונים הדרושים למערכת המידע, והוא צריך להיות חופשי מאילוצים הנובעים משימוש במחשב. תוך כדי בניית המודל מנתח המערכות אינו צריך להתייחס לצורת היישום של המודל במערכת אמיתית כלשהי של ניהול מערכות בסיסי נתונים. ד. בניית מודל הנתונים בשלב זה יש לתרגם את המודל התפישתי לאחד מבין המודלים הקיימים של מערכות בסיסי נתונים. אם קיימת כבר בארגון מערכת 8ו8, יש לתרגם את המודל התפישתי למודל הנתונים המהווה בסיס למערכת הקיימת. מודל נתונים מודל תפיסתי של המציאות מציאות תרשים 34 - 5: תהליך בניית מודל הנתונים 0 שאלות נניח שנתונות הקבוצות הבאות: -- קבוצת הסטודנטים [,6 ,52.....ח6] -- קבוצת המרצים [,₪ ,,ש.... וחק] הגדר את הקשרים הבאים ותן מספר דוגמאות ע"י הצגת זוגות מסודרות: -- מלמד את.. -- מקבלים יעוץ על ידי... (הנח שכל סטודנט מקבל יעוץ ע"י מרצה אחד בלבד) - נבחן על ידי... נתח את הקטע הבא וזהה ישויות, תכונות של ישויות, ערכים וקשרים. תן דוגמאות. "מספר הרשוי של המכונית 123-456. המכונית נשכרה לשבוע החל משעה 7.30 בתאריך 3 מחברת רכב-סע". הגדר מספר תכונות אלטרנטיביות שיכולות לשמש כמפתחות ראשיים הגדר את התחום של כל אחת מהן. הסבר את התכונות והחסרונות של כל תכונה המשמשת כמפתח במערכת ממוחשבת המטפלת ב: -- ניהול כוח אדם במפעל. -- הזמנת כרטיסי טיסה. - רישום סטודנטים באוניברסיטה. - רישום בעלות על מקרקעין. ניתן לבנות קשר מפורש בין שתי ישויות ע"י שימוש בתכונה. לדוגמא, בקשר בין "בית" ל"אדם" נשתמש בשם בעל-הבית ברשומת הבית. הסבר מה ההבדל בין סוג קשר כזה לבין יישום הקשר באמצעות מצביעים למשל. הגדר את סוגי הקשרים המופיעים במשפטים שבקטע הבא: האוניות עוגנות בנמלים. לכל אניה יש תאריך הגעה ותאריך הפלגה. ניתן לטעון כל אוניה במספר מכולות. כל מכולה נמצאת במעבר מנמל מקור לנמל יעד כלשהו. מספר מכולות מהוות משלוח אחד. יתכן גם שמשלוח מכיל מכולה בודדת. שאלה זו בוחנת את יכולתך לזהות קשרים וישויות. הנך מתבקש לנתח את המשפטים הבאים, אשר עוסקים באוניברסיטה כלשהי: -- מרצה יכול ללמד במספר קורסים. -- מרצה יכול להיות יועץ של מספר סטודנטים או של שום סטודנט. לכל סטודנט יש יועץ אחד לכל היותר. -- לכל מרצה יש חדר בקמפוס, אך יתכן שלמרצה אחד יהיה יותר מחד אחד או ששני מרצים ישתמשו באותו חדר. -- סטודנט רשום למספר קורסים. -- קורס נלמד תמיד בכיתה אחת. מספר קורסים שונים יכולים להיות מועברים באותה כיתה. -- עבור קורס מסויים קיימים מספר קורסים אחרים המהווים תנאי מוקדם. א תאר מספר תכונות של הישויות שזיהית. זהה את הקשרים בין הישויות. ב. | צייר דיאגרמת ישויות-קשרים. 1 זהה את הישויות, הקשרים והתכונות במשפטים שבקטע הבא: קיימות מספר חברות תעופה. כל אחת מהן מבצעת טיסות בין נמלי תעופה מסויימים. נמלי התעופה מזוהים ע"י קוד בן שלשה תווים. הטיסות ממוספרות, לדוגמא טיסה 3 ממריאה בשעה מסויימת ונוחתת בשעה מסויימת. נוסע יכול להרשם לנסיעה אשר מורכבת ממספר טיסות בתאריכים שונים ובאמצעות חברות תעופה שונות. 22 פרק ד מערכות לניהול בסיסי נתונים -- מרכיבים ועקרונות פעולה 1. מבוא 2 מודל כללי של מערכת 805 3 הסכימה תת-סכימה סכימה פנימית שפה לטיפול בנתונים עקרונות הפעולה של מערכת 885 מילון נתונים . . . . . . - ו יש צרר 00 סצ שפת שאילתות 0. שאלות 33 1. מבוא בפרק זה נתאר את המרכיבים של מערכות פוְאַ8כ, את עקרונות פעולחן והשירותים שמערכות אלה מעמידות לרשות המשתמשים. נציין מיד שלא כל המערכות המסחריות הקיימות ופועלות היום מכילוח את כל המרכיבים שיפורטו. המבנה הכללי של מערכות 08/8 שבו נדון אינו המבנה היחידי האפשרי, אך השתדלנו להציג באמצעותו את המבנים העיקריים והנפוצים ביותר. מערכות 085 התפתחו מתוך המערכות לניהול קבצים ונועדו להתגבר על רוב הבעיות הקיימות במערכות אלה. המערכות לניהול קבצים סיפקו כלים לאחסון ולשליפת רשומות מחוך קבצים. השליפה היתה של רשומה בודדת ובדרך כלל לפי מפתח אחד. במערכות 08815 מיושם עקרון אי-התלות בנתונים אשר מטרתו לבודד את תוכניות היישום מהמבנים הפיסיים של הנתונים ולאפשר להן טיפול במבנים לוגיים בלבד. במערכות לניהול קבצים המשולבות עם שפת .080 למשל, התיאור וההגדרה של הנתונים נעשים בתוך כל תוכנית יישום בקטע תוכנית נפרד אשר מיועד למטרה זו: 8|8ס חסופוצום. כל תוכנית יישום מתארת ומגדירה לעצמה את מבנה הנתונים שבהם היא מטפלת. מערכות 0815 מאפשרות תיאור והגדרה של הנתונים באופן חיצוני לתוכניות היישום, וזהו הבסיס לאי-תלות בנתונים. בנוסף לשירותי הגדרת נתונים, מספקות מערכות 8₪15ס שירותי גישה וטיפול בנתונים המאוחסנים בבסיס הנתונים. תוכניות היישום פונות לבסיס הנתונים רק באמצעות שירותים אלה ובכך מטפלות במבנים לוגיים בלבד. את מערכות 5וא8ס אפשר לסווג בשתי קבוצות עיקריות: -- מערכות עצמאיות (5/81608 80ח181ח00 ]ו56), בהן קיימת שפה עילית המאפשרת הגדרה, אחסון, שליפה וטיפול בנתונים. ְּ -- מערכות המשתמשות בשפה עילית מארחת (819008ץ6 88860 405%) אשר עוסקות בעיקר בהגדרת הנתונים, אחסון ושליפה. הטיפול בנתונים ברמת היישום מתבצע בשפה המארחת, )6080 או 1 | למשל, באמצעות הפקודות הרגילות שלה. בהמשך נעסוק במערכות השייכות לקבוצה השניה ונציג את מרכיביהן העיקריים. 55 2 מודל כללי של מערכת ניהול בסיסי נתוניס המודל הכללי של מערכת ניהול בסיסי נתונים המוצג בהמשך מבוסס על המלצות ועדת התקינה 80 3/50א/ו5א. תוכנית הבקרה תרשים 1 - 4: מודל כללי של מערכת 8₪18ס תרשים 1--4 מציג את המרכיבים העיקריים של מערכת ₪8פס. כפי שניתן לראות בנוייה מערכת פופ משישה רבדים עיקריים: א. תוכניות היישום (פהפזפָסזש חסטפסו|סקא) אשר מעבדות את הנתונים בהתאם לדרישות הפונקציוליות של מערכת המידע. תוכניות היישום הן המודל הפונקציונלי של המציאות, כלומר הן מייצגות את האירועים וזרימת הנתונים בארגון. שחרור חולה מבית החולים למשל, יבוא לידי ביטוי במערכת המידע באמצעות תוכנית יישום שתעדכן את בסיס הנתונים בהתאם לאירוע. 66 תוכניות היישום מטפלות במבנים לוגיים המופיעים בתת-הסכימה המתאימה באמצעות שפת המחשב המארחת, למשל .00801, אך לשם גישה לנתונים המאוחסנים בבסיס הנתונים הן משתמשות בפקודות מיוחדות של מערכת 08/8 אשר משולבות בתוך תוכנית היישום. באמצעות פקודות אלה תוכנית היישום מאחסנת, שולפת ומעדכנת את הנתונים. ב מודל הנתונים של המשתמש מתאר את נקודת המבט של המשתמש ומגדיר את המבנה הלוגי המטופל בתוכניות היישום, ג. מודל הנתונים הכללי מכיל את סכימת תיאור הנתונים, ד. המודל הפיסי של הנתונים מוצג בסכימה הפנימית, ה. בסיס הנתונים מאחסן את הנתונים, ו. תוכנית הבקרה (הח6ו5ע5 וסזוחס00 8886 818כ) מפקחת על תזרים העבודה במערכת ניהול בסיס הנתונים. תוכנית הבקרה מקכלת את הבקשה מתוכנית היישום, מבצעת את המיפוד לצורך קביעת מסלול שליפת הנתונים ולבסוף, שולפת את הנתונים ומעבירה אותם לתוכנית היישום. בדרך כלל משתמשת תוכנית הבקרה בשירותי מערכת ההפעלה לביצוע הגישה הפיסית לנתונים שביחידות האחסון. בנוסף למטלות אלה מטפלת תוכנית הבקרה במשימות נוספות כמו אבטחת נתונים, גיבוי והתאוששות. 7 3 הסכימה הסכימה (5008708 ,5008708 |060108ח60 ,שוסו/ |הפס|) היא תיאור פורמלי מפורט של מודל הנתונים הכללי, כלומר של כל הנתונים אשר יופיעו בבסיס הנתונים. הסכימה מתארת את כל היחידות הלוגיות הקיימות במודל הנתונים (כגון רשומות, שדות, קשרים) ואת התכונות שלהן (סוג הרשומה, סוג השדה, אורך השדה, סוג הקשר). כל היחידות הללו מקבלות שמות סימבוליים כדי לפשט ולהקל על הפנייה אליהן. הסכימה הינה אחד המאפיינים העיקריים של מערכות 5פכ. היא מאפשרת הגדרת נתונים באופן חיצוני לתוכניות היישום, ומשמשת כאמצעי קשר בין תוכניות היישום לבין בסיס הנתונים. בית-חולים שם קוד , בית חולים ]בית"חולים מחלקה מספר שם מספר מיטות | מחלקה | מחלקה חולה ציוד מיוחר ה שם מספר עד | הציוד | סירורי מספר שם התמחות | הרופא והות רופא חיוורי ] ;ארג מספר מספר הטיפול | טיפו 0 ות 0 חולה רופא אבחנות תיאור ‏ [ תאריך | מספר אבחנה | אבחנה ו ה 0 , חולה רופא תרשים 2 -4: סכימה של מערכת מידע רפואי כל מערכות 08/8 מספקות שפה להגדרת הסכימה (פחַאטפַח3 | חסוווחו/6 818ם- וספ). שפה זו הינה שפה עילית אשר מאפשרת: -- לתת שם סימבולי לסכימה ולכל היחידות הלוגיות המתוארות בה כגון רשומות ושדות. 88 -- לתאר את הקשרים בין היחידות הלוגיות ולתת שם סימבולי לקשר, -- להגדיר את המפתחות של הרשומה, -- לקבוע את תחום הערכים האפשריים ואת האילוצים על תחום זה, -- לקבוע את כללי ההגנה על הנתונים שבבסיס הנתונים. דוגמא לשפה להגדרת סכימה על פי המלצות .0008%1 ניתנת להלן. היא מתארת שתי רשומות ואת הקשר ביניהן על פי תרשים 2--4. הסבר מפורט של המונחים השונים בשפה ינחן בפרקים הבאים. שם הסכימה ----- "ד ,)4058074 8! םגא 5054 סיסמא ‏ -->= ,800 8! 1/0006 ץסהשומק שם רשומת הרופא | ------ ,אגוסו5צחק פו םגא פהסספה מפתח | ----> .0ו-אג/1/510וק 6או05 641.0 5ו פפסוא אסודהסס.ו (9)5 18 פהטדסום פו-אגוסופצחק - 01 .(30)< 18 שחטדסוס םאגא - ו0 ו .(40)< 18 ממטדסוס אסודא2 וגוסםס8 - ו0 שם רשומת הטיפול | --- > ,דאשודגשחד 8ו םגא פה 0ס60פה מפתח | ------> .סו-דחד 6או5 041.0 8ו ספסוא אסודהסס .פ-זחד - 01 (965 18 שמטדסום סו-אגוסופצש ‏ 03 .(9)8 15 שמטדסום סו-זאפודגק 03 הרי ל .(9)6 8 פחטדסוק מזגס 03 .(50-- .0ה00םה-זאשוז פ-0555סחק שמס:משק .דאפוד אק דאמא פא +--- -- שפת נתונים עצמאית המכילה הן פקודות לגישה לנתונים והן לעיבודם. לעיתים מקובל לקרוא לשפות אלה שפות שאילתות (פסְפָטפַח8! עזסטב)). הן מאפשרות למשתמש המנוסה או הפחות מנוסה לעבד את הנתונים באמצעות שפה פשוטה יחסית לשימוש אך בעלת עוצמה רבה. שפת השאילתות אינה מהווה ברוב המקרים חלק ממערכת 8וא8כ ואינה כוללת פקודות לעדכון נתונים בבסיס הנתונים. את הפקודות המרכיבות את שפת הנתונים אפשר לסווג בשלש קבוצות: -- פקודות בקרה: באמצעות פקודות אלה מזדהה תוכנית היישום ומגדירה את בסיס הנתונים שבו הוא רוצה להשתמש. קבוצה זו כוללת פקודות כגון אםקס, 01.05 ואפשרויות להגדיר את סוג העיבוד של התוכנית (קריאה בלבד, קריאה ועדכון וכד') -- פקודות לאחזור נתונים: באמצעות פקודות אלה מגדיר המשתמש את הרשומות המבוקשות. לעיתים מתבצע האחזור על ידי גישה לרשומה מסויימת ולעיתים האחזור מחייב סריקת רשומות וקשרים באופן נסתר מהמשתמש. באופן עקרוני קיימות שתי צורות אחזור בסיסיות; אחזור לפי תוכן (עזו400765580(1 פזחפוחסס) ואחזור לפי קשר בין הרשומות (₪818 עזווומִ8ז3!8). האחזור לפי תוכן מאפשר למשתמש לאחזר רשומה בהתאם לתוכן של אחד מהשדות שלה כמו למשל אחזור רשומות המחלקה לפי מספר המחלקה. 144 כמ סח דוטשו דחה קספ סאו= תנאי (חסו0091ו|הט0)) 4=סו--קשכ מחשה/ץ בדרך כלל האחזור לפי תוכן מלווה בתנאי כלשהו הקובע את זהות הרשומה המבוקשת. קיימת אפשרות לבניית תנאי מורכב יותר כמו למשל לאחזור רשומת מחלקה שבה מועסקים יותר מד 0 רופאים ויש בה לפחות 30 מיטות תפוסות: חספה דאשו דהה קמס סאו= 0 < 5אהבוסו5צהס--8 שא פהםהצ ,0 > דסא 508ם8--0ם|ק000 פמםחצ סאג האחזור לפי קשר בין רשומות מאפשר אחזור רשומה אחת או יותר הקשורות לרשומה מסויימת. לדוגמא, לאחר שזיהינו את רשומת המחלקה שמקיימת את התנאי הנזכר נרצה לאחזר את רשומת החולה הראשון המאושפז במחלקה. נעשה זאת כך: .חספה דאקוד = דפחו= סאוו האחזור לפי קשר בין רשומות תלוי במודל הנתונים. נשתמש בדוגמא המבוססת על מודל הנתונים הרשתי שבתרשים 5--4. פריטים - 6ז₪גס 9 לקוחות - 008101885 סאאוו-אס-ץ דאס | =סופק | ואדה | 0 הססא-דפטס | גאדו | 0 במות במלאי מחיר | שם הפריט הפריט כתובת שם לקוח לקוח הזמנה - מפסהס א 51 | שדהם-סה0 | | 0א-080 מוכר תאריך ב פריט בהזמנה /, ה6סח0--זח ג 5זגס--קוח5 | צזם--סה0ס תאריך משלוח] כמות מוזמנת תרשים 5 - 4: מודל נתונים לאחזור רשומות אפשר לאחזר רשומות מתוך בסיס הנתונים באופנים אחדים: א. אחזור רשומת פריט שמספרו 4129. זוהי דוגמא לאחזור לפי תוכן בלבד. 0ח₪סספה דהגק סאו .9 =סא--זח הק שחם הצ 15 ב. אחזור כל ההזמנות של לקוח ששמו 480. םהססשה הפושסדפטס סאו= .80 =םוא--ד09 =הםהעט אחזור לפי קשר )‏ -------*- .850080 הפסהס דפחו= סאות כו רשומות ,40 .המפהס--₪₪00555 מס-הסק , .סהסספה המסחס דאפא פאו -- פקודות לעדכון נתונים: באמצעות פקודות אלה מעדכן המשתמש את בסיס הנתונים. לרשותו פקודות המאפשרות הוספת רשומות חדשות, ביטול רשומות קיימות ועדכון תוכן רשימות קיימות. לדוגמא, ביטול רשומת מחלקה: .שח דאםו דח קסס פדם ומס 106 7 עקרונות הפעולה של מערכת 0818 בסעיף זה נציג את שיטת העבודה של מערכת 0815 החל משלב הגדרת הנתונים ועד גישה לנתונים מתוך תוכנית יישום. 1 מהדר השפה להגדרת נתונים (זפ!וסוחסס פַחְטסָח3 | הסטוחוז6כ הּוהכ) רוב מערכות ₪08/8 המשתמשות בסכימות השונות כפי שהוצגו בסעיף קודם מספקות מהדר מיוחד שמיועד לבניית הסכימות. מהדר זה מקבל כקלט את הפקודות המיוחדות של השפה להגדרת הנתונים והופך אותן לפקודות בשפת מכונה ולאוסף של טבלאות שתשמשנה לאחר מכן את תוכנית הבקרה לביצוע המיפויים השונים. במספר מערכות יש מהדר נפרד לכל אחת מהסכימות. הגדרת סכימה פגימית הגדרת תת-סכימה מהדר הגדרת הנתונים זפ!וקוהס00 וסס 6 פום חסווקוז656ם תרשים 6 - 4: מהדר הגדרת נתונים 17 2 קדם-מהדר של שפה מארחת (זפ!וקוחסס-8זק פַחְ8חַח1.4-+105]) תוכנית היישום משתמשת בפקודות טיפול בנתונים ( סחָבּטסַח3 ! חסווה!טס!ח3! 8זהס- וואכ) אשר שייכות למערכת 5 ואינן מוכרות על-ידי המהדר של השפה המארחת. מערכות 5 מספקות קדם-מהדר אשר קורא את תוכנית היישום שבה ישנן פקודות טיפול בנתונים ( !ואס) ומתרגם אותן להוראות .| 041 אשר מוכרות על-ידי המהדר של השפה המארחת. קדם" המהדר קובע את הפרמטרים השונים של הוראות .0411 בהתאם לפקודות וו המקוריות. הוראות .| |04 מפעילות את תוכנית הבקרה של מערכת 0815 בעת שתוכנית היישום רוצה לגשת לנתונים. [ תוכנית הכוללת פקורות )אס תוכנית הכוללת הוראות )04 מהדר שפה מארחת תרשים 7 - 4: השלבים בתהליך ההידור של תוכנית היישום 3 עקרון הפעולה המודל הכללי של מערכת 08/18 המבוססת על שפה מארחת יוצג באמצעות תיאורי הסכימה ותת-סכימה שמופיעים בתרשימים 2--4, 4--4 ובתרשים המודל 8--4. % 108 הגררת סכימה קדם מהרר תוכנית 0 מהדר שפה מארחת שפת מכונה לוברון תוכנית יישום 5 ל שטח תקשורת שטח עבודה שיטת גישה של מערכת הפעלה תרשים 8 - 4: מודל להצגת עקרון פעולת מערכת 8וא08 בתרשים 8--4 מוצג בצורה גרפית עקרון פעולת מערכת פופק. בתחילה יש להגדיר את הסכימות ולהפעיל את המהדרים של שפת הגדרת הסכימה (.!סס) ושל שפת הטיפול בנתונים (אס), ואת המהדר של שפת תוכנית היישום. לאחר טעינת התוכנית לזכרון היא מתחילה בפעולתה, אשר תוצג בשלבים (לפי הסימולים בתרשים): א. תוכנית היישום מבקשת ממערכת 08/8 להציג רשומת חולה אשר מספרו 145. התוכנית מבקשת רשומה לוגית אשר המבנה שלה מוגדר בתת-סכימה המתאימה לתוכנית היישום. מערכת 0818 מופעלת באמצעות הוראת .)041 אשר בגוף תוכנית היישום. ב. תוכנית הפיקוח של מערכת 08/5 מנתחת את הבקשה ומשתמשת לשם כך בסכימה ובתת-סכימה המתאימות. המיפוי בין התת"סכימה לסכימה מורה לתוכנית הפיקות שהתוכנית מבקשת את רשומת החולה ומציג לתוכנית הפיקוח את המבנה הפיסי של קובץ "חולים". ג. תוכנית הפיקוח "מנסחת בקשה" לשגרות שיטת-גישה (00ח/6/ 400888) של מערכת ההפעלה. הבקשה כוללת את כל הפרמטרים הדרושים למערכת ההפעלה כדי לבצע את 19 הגישה ליחידת האחסון. רוב הפרמטרים מתקבלים מהסכימה הפנימית. ד. שגרות מערכת ההפעלה מבצעות את הגישה לנתונים המאוחסנים ביחידת האחסון החיצונית. השגרות מטפלות בגושים ולא ברשומות. ה גוש שמכיל את הרשומה המבוקשת מועבר אל שטח מאגר קלט/פלט (זפווטם 0/ו). השגרות מחזירות את הפיקוח לתוכנית הפיקוח של מערכת פואמכ אשר מוצאת במאגר גוש שמכיל את הרשומה המלאה כפי שהיא מופיעה בסכימה. ו. תוכנית הפיקוח משתמשת שוב בסכימה ובתת-סכימה כדי לבצע את המיפוי הדרוש בין הרשומה כפי שהיא מופיעה במאגר לבין הרשומה המבוקשת עלידי תַוכנית היישום. תוכנית הפיקוח מאתרת בגוש את הרשומה המבוקשת ומעבירה לשטח העבודה בתוכנית היישום רק את השדות המבוקשים. בתרשים ניתן לראות שבשטח העבודה מוצגת רשומה לוגית שאינה קיימת באותו מבנה בבסיס הנתונים. ז. תוכנית הפיקוח מעבירה לשטח התקשורת שבינה לבין תוכנית היישום מספר נתונים אשר כוללים בין השאר מציין-מצב (זס)09ו0ח! 518008). מציין-מצב מורה את אופן סיום הוראת קריאת הנתונים: הרשומה בשטח העבודה, רשומה לא קיימת וכדומה. ח. תוכנית הפיקוח של מערכת 08/5 מחזירה את הפיקוח לתוכנית היישום. לאחר בדיקת מציין המצב שבשטח התקשורת מתחילה תוכנית היישום את עיבוד הרשומה שבשטח העבודה. כפי שניתן לראות מתיאור זה, אי-התלות בנתונים נוצר באמצעות שני המיפויים: המיפוי שבין תת-הסכימה לבין הסכימה והמיפוי שבין הסכימה לסכימה הפנימית. לדוגמא, הוספת שדה חדש ברשומת "חולה" אינה משפיעה על תוכנית היישום ששדה זה אינו דרוש לה. השדה אינו מוגדר בתת-הסכימה השייכת לתוכנית זו ועל כן לא יועבר לשטח העבודה שלה. 1210 8 מילון נתוניס עלות עיבוד הנתונים הינה פונקציה ישירה של טיב ניהול הנתונים מכיון שהנתונים הינם משאב ככל משאב אחר בארגון. ככל שכמות הנתונים במערכת המידע גדולה יותר יש יותר גורמים המטפלים בהם ולכן נוצר סיכון רב יותר משימוש לא מבוקר בבסיס הנתונים. ניהול לקוי של הנתונים יכול לגרום לכפילות נתונים רבה, מאמצי תכנות מיותרים ועוד, ובסופו של דבר -- לאבדן זמן וכסף בפיתוח ובאחזקה של מערכות המידע. כדי לסייע בתחום זה פותח רעיון מילון הנתונים (עזפחסווסום 0818) אשר מיועד למנהל בסיס הנתונים ולמשתמש בבסיס הנתונים. מילון הנתונים מכיל את המידע על המידע, כלומר נתונים המתייחסים ליחידות הלוגיות המאוחסנות בבסיס הנתונים כמו שמות ותכונות. בעזרת מילון הנתונים ניתן לדעת מהם הנתונים המאוחסנים בבסיס הנתונים ומהן תכונותיהם, אילו תוכניות משתמשות באילו נתונים, ועוד. מילון הנתונים יכול להקטין את ההשקעה הדרושה באחזקה ובפיתוח יישומים, בעיקר בגלל האחידות והריכוזיות של המידע על המידע. קיימות מערכות 8/א08 המשתמשות במילון הנתונים כסכימה ותת-סכימה. קיימות מערכות שמשתמשות בבסיסי נתונים שלהן לניהול המילון, ויש מערכות שבהן המילון הוא חלק נפרד ואף מנוהל במודל נתונים שונה. זדך חוכנית ה דוחות, שאילתות --- ה ] תתיסכימה 4 -- רשומה תרשים 9 - 4: יחידות לוגיות וקשרים במילון נתונים אינרקס משני קשר בין רשומות מנהל הנתונים תרשים 9--4 מציג את היחידות הלוגיות השונות שניתן לנהל במילון נתונים. לדוגמא, ניתן לנהל מידע על כל התוכניות שמשתמשות בשדה נתונים כלשהו או על המשתמשים בתוכנית יישום כלשהי, אילו דוחות מקבל כל משתמש, מי אחראי לעדכון הקובץ או סוגי רשומה, ועוד, 1 הנתוניס במילון מילון הנתונים יכול להכיל נתונים רבים ומגוונים בהתאם לשימוש אשר נעשה בו. לדוגמא, הוא יכול להכיל את הנתונים הבאים: 11 רמת השדה: שם השדה, אורך השדה, סוג השדה (נומרי, אלפאביתי, מספר שלם, מספר בנקודה צפה), תחום ערכים, תיאור מילולי של תוכן השדה, מבנה השדה לצורך עריכה בדוחות, כותרת שדה (סטנדרטית) בדוחות שונים, מבנה השדה בקלט, נתוני מצב (מתי עודכן לאחרונה, בשימוש או לא, ועוד), אילו תוכניות קוראות אותו או מעדכנות אותו. רמת הרשומה: שם הרשומה, אורך הרשומה, תיאור מילולי של תוכן הרשומה, אילו תוכניות כותבות רשומה חדשה, מבטלות או מעדכנות. רמת הקובץ: שם הקובץ, מספר רשומות (מספר מדוייק או מקורב), תיאור מילולי, מפתח הקובץ, שיטת הארגון, > סדר המיון, גודל הגוש, אילו תוכניות משתמשות בקובץ. רמת התוכנית: 112 שם התוכנית, שם המחבר, תאריך כניסה לייצור, שם תת-סכימה שהתוכנית משתמשת בה, תיאור מילולי של מבנה ותפקיד התוכנית, סימול המשתמשים בתוכנית. רמת תת-סכימה: -- שם תת-הסכימה, -- אילו תוכניות משתמשות בה, -- אילו קבצים, רשומות ושדות מוגדרים בתת-סכימה, -- תיאור מילולי. 2 השירותים של מילון הנתוניס בעזרת מילון הנתונים ניתן לדעת באילו תוכניות יש לבצע הידור מחדש לאחר שינוי בתת- סכימה או סכימה. מתוך מידע זה יכול המשתמש להעריך את העלות הצפוייה לביצוע השינוי. רוב המערכות המפעילות מילון נתונים מספקות שפת שאילתות אשר מאפשרת שליפת נתונים קלה מתוך מילון הנתונים והפקת דוחות מהירה ופשוטה. במערכת 08/.ו50 למשל משתמשים למטרה זו בשפת השאילתות של המערכת אשר מיועדת לשאילתות בבסיס הנתונים. השימוש במילון הנתונים נעשה על ידי גורמים שונים ביחידות עיבוד הנתונים וכל אחד מהם יכול להפיק מכך יתרונות שונים: משתמש במערכת המידע: -- הבנה טובה של הנתונים המאוחסנים בבסיס הנתונים ומשמעותם (לרוב ניתן גם תיאור מילולי), -- כלי תיעודי גם לנתונים לא טכניים הקשורים במערכת המידע, -- בסיס לתקשורת עם יחידת עיבוד הנתונים, -- מידע באילו נתונים הוא משתמש ואילו נתונים הוא מייצר, -- סיווג הנתונים לפי ה'"'בעלים" שלהם בארגון (פרטים או מחלקות). מנתח המערכות: -- בדיקת אלטרנטיבות ליישום מערכת חדשה, -- בדיקת עלות השינוי הצפויה לפני ביצוע שינוי כלשהו במערכח, -- הגדרה נוחה של השימוש בנתונים ושימוש חוזר בהגדרות לאחר מכן עבור תוכניות אחרות, - כלי תיעודי לנתונים טכניים אודות בסיס הנתונים והתוכניות. מתכנת: -- חסכון בזמן פיתוח תוכנה מכיון שניתן להשתמש בהגדרות קיימות של נתונים ותוכניות, - סיוע למתכנתים חדשים להכיר את מבנה הנתונים והקשרים ביניהם, -- כלי תיעוד אוטומטי לתוכניות ונתונים. 133 מנהל בסיס הנתונים: -- בקרה ושליטה על הנתונים שבבסיס הנתונים, -- הקטנת כפילות הנתונים, -- אכיפת סטנדרטים לנתונים ולתוכנה; -- "חקירה" מהירה של רכיבי בסיס הנתונים. 9 שפת שאילתות רוב מערכות 08/8 משתמשות בשפת שאילתות (פַהָאטחַָח1.8 עזסטם)) לא פרוצדורלית אשר המבנה שלה הוא דמוי שפה אנגלית טבעית. מטרת שפת השאילתות היא לאפשר למשתמשים גישה נוחה לנתונים המאוחסנים בבסיס הנתונים. היא מאפשרת היענות מהירה לדרישות מזדמנות לנתונים ומונעת את הצורך לכתוב תוכניות מחשב בנוהל המקובל. שפת השאילתות מאפשרת גישה לנתונים על פי תנאי שליפה לוגיים מורכבים וניסוחה הינו למעשה תכנות של דרישת המשתמש לנתונים. קיימות שפות שאילתות שונות אשר נבדלות זו מזו באפשרות ניסוח הדרישה או השאילתא, אפשרות עריכת הפלט, יעילות אחזור הנתונים, אפשרות עדכון נתונים ועוד. - המשתמש בשפת שאילתות להפקת נתונים מבסיס הנתונים חייב לזכור שהשאילתא הינה תוכנית אשר מורכבת משלבים של סריקת אינדקסים ונתונים, השוואות ובדיקות לוגיות שונות ולבסוף ריכוז הנתונים ועריכת הדוח. זמן התגובה לביצוע שאילתא שונה מזמן תגובה לאחזור רשומה לקובץ מכיון שמסלול הפעילות שונה בשני המקרים. ישנן שפות שאילתות הקשורות בבסיס נתונים אשר מאפשרות רמת יעילות גבוהה בביצוע האחזור והפקת הדוח המבוקש גם בקבצים בנפחים של מאות-אלפי רשומות. עם זאת, השאילתות מיועדות לדרישות אקראיות מזדמנות ולא לתהליכי העיבוד העיקריים של יישומי המערכת. .14 0 שאלות לרוב מערכות 88 המסחריות יש שפה מארחת. מדוע? נסה לתכנן שפת שאילתות ה''תפורה" במיוחד עבור שאילתות במערכת הזמנת כרטיסי טיסה. אחד ההבדלים בין תת-סכימה לסכימה יכול להיות בסוג השדה. הסבר האם דבר זה רצוי ומה הקשיים בביצוע הסבה אוטומטית של סוג השדה. הסתכל על תוכנית .6080 רגילה. נסה לזהות את מרכיבי .וסם, .ואם. הסכימה ותת-הסכימה עבור בסיס נתונים מסויים מבוססים על אותו מודל נתונים. מהם החשיבות והקשיים להציג תת-סכימה המבוססת על מודל נתונים שונה מהסכימה. מדוע רצוי שסכימה תהיה משוחררת מהתייחסות לארגון הפיסי של הנתונים. האם היא יכולה להיות משוחררת לחלוטין? כאשר מערכת 08/18 מופעלת בפיקוח מערכת הפעלה רגילה, האם מערכת ההפעלה "יודעת" מה נמצא בתוך הגושים שהיא מאחסנת ושולפת מיחידות אחסנה חיצוניות? האם היא יודעת אם הגוש מכיל נתונים או הוראות בקרה? 115 פרק ה מודל נתונים היררכי (|06סו בּ031 [63וח6זבּ זסו4) 1. מבוא 2. המודל ההיררכי - הגדרה 3 ייצוג קשרים :א במודל נתונים היררכי 4. שיטות לייצוג מבנה היררכי 5. שפה לטיפול במבנה היררכי 6. שאלות 17 1. מבוא בהתפתחות מודלים של נתונים יש למודל ההיררכי תפקיד חשוב מאד. בסיס נתונים היררכי בנוי לפי מודל פשוט יחסית והוא עונה על צרכיהם של רוב המשתמשים. מודל המבוסס על היררכיות ניתן ליישום ישיר באמצעות טכניקות ארגון קבצים המבוססות על מבני עץ. היתרון של בסיס נתונים זה הוא השימוש במסלולי גישה מוגדרים מראש המיושמים בבסיס הנתונים. אין צורך בבחירת מסלולים מורכבת בזמן עיבוד הקובץ (קריאה, כתיבה, הוספה, ביטול) ובעת ביצוע שאילתות, ולפיכך רמת הביצוע טובה. בפרק זה נציג את מודל הנתונים ההיררכי בצורה מפורטת ונתייחס למבנה השפה ההיררכית המאפשרת את הטיפול במבנים היררכיים. חלק ניכר מתשומת הלב לה זכה מודל זה נובעת מהעובדה שמערכות 0818 הראשיות של חברת יבמ (1/1ם) מבוססות על מודל זה. את מערכת 58| נציג במפורט בחלק השני של הספר. קיימות מערכות מסחריות נוספות המתבססות על המודל ההיררכי כמו למשל 2000 וםד8/5 של חברת |6וחו, /! אה הוא של חברת 8סווהחזסזח|. 1%|9 2. המודל ההיררכי - הגדרה המודל ההיררכי מבוסס על אוסף של סוגי רשומות ושל קשרים בין סוגי רשומות אלו. הרשומות מייצגות את הישויות ואת התכונות שלהן, והקשרים בין סוגי הרשומות מייצגים את הקשרים שבין הישויות. להלן הגדרה פורמלית של המודל ההיררכי: א. קיים אוסף של סוגי רשומות [חח... ,₪3 ,₪2 ,1ח]. לכל סוג רשומה מספר בלתי מוגבל של מופעים בבסיס הנתונים. ב. קיים אוסף של קשרים, [ו1, הקושרים את סוגי הרשומות למבנה נתונים היררכי אחד. הקשרים מקיימים את הכללים הבאים: -- קשר || אפשרי בין שני סוג רשומות |₪ ,₪ רק אם | נמצא ברמה היררכית ח ו-[₪ ברמה היררכית 1+ח. -- בין כל שני סוגי רשומות ו ו[ קיים קשר |[ 1 אחד לכל היותר. מכאן נובע שאין צורך לתת שמות לקשרים בין סוגי הרשומות. -- הקשר [ן] הינו פונקציונלי בכיוון אחד. לכל מופע של רשומה מסוג | יש בדיוק מופע אחד של רשומה מסוג | הקשורה אליה. בכיוון השני הקשר אינו פונקציונלי. כלומר, לכל מופע של רשומה מסוג | יש מספר מופעים של רשומות מסוג | הקשורות אליה. לסוג רשומה | נקרא רשומת אב ולסוג רשומה | נקרא רשומת בן. -- לא ניחן להגדיר קשר מסוג וו1. כלומר, אין אפשרות להגדיר קשר בין מופעים שונים של אותו סוג רשומה. -- לא ניתן להגדיר קשרים | ו[ ! כי לכל סוג רשומה יש סוג רשומת אב אחת בלבד. ג. בין כל סוגי הרשומות קיים סוג רשומה מיוחד -- רשומת שורש (6ז₪600 +סס₪) שאינה קשורה לשום רשומת אב, אך יכולות להיות לה רשומות בן. נשתמש בדוגמאות אחדות כדי להסביר את המודל ההיררכי. מתוך ההגדרה נובע שהמודל מורכב מסוגי רשומות וקשרים מסוג 1:1 או א:1 בלבד. רמה 1 רמה 2 רמה 3 תרשים 5-1: מבנה היררכי .0 תרשים 1--5 מציג מבנה עץ בו כל צומת מייצג סוג רשומה שונה ואילו הקשתות המחברות את סוגי הרשומות מייצגות את הקשרים בין סוגי רשומות. בין כל שני צמתים יש קשר אחד לכל היותר ולכן אין צורך לחת שמות לקשרים. רשומת השורש אינה תלויה ברשומות אחרות והיא היחידה שיש לה קיום עצמאי. כל שאר סוגי הרשומות הן תלויות ויש להם זכות קיום רק בהיותן קשורות לרשומת השורש. בדוגמא שבתרשים 1--5 רשומות המחלקה יכולות להתקיים גם אם אין רשומות אחרות הקשורות אליהן, אך רשומת עובד יכולה להתקיים רק אם היא קשורה לרשומת מחלקה כלשהי. פרויקט תרשים 2 - 5: מופעים של רשומות במבנה היררכי באופן כללי, בסיס נתונים היררכי הינו אוסף של מספר בלתי מוגבל של מופעים של רשומות הקשורות ביניהן במבנה היררכי. בתרשים 2--5 ניתן לראות מספר מופעים של רשומות מחלקה למשל אשר קשורות למופעים של רשומות עובד ורשומות תקציב. במחלקה 04 אין עדיין עובדים אך כבר נקבע עבורה תקציב. רשומת מחלקה 01 קשורה לרשומות עובד 1=, ₪2 עובד 3ם, אינו מועסק כעת בפרויקט ולכן אינו קשור לרשומת פרויקט כלשהי. כפי שניתן לראות, אין מופעים עצמאיים של רשומות במבנה ההיררכי למעט המופע של רשומה ₪5 שהינה רשומת שורש. לפי כללי המודל אסור קשר בין רשומות תקציב לרשומות פרויקט למשל, כי במקרה זה תהיינה לרשומת פרויקט שתי רשומות אב שונות, דבר שנוגד את הגדרת המודל. ניתן להשתמש במספר מבנים היררכיים שונים במסגרת אותו בסיס נתונים כדי לייצג קשרים שונים בין סוגי רשומות זרות. בתרשים 3--5 מוצג אוסף של עצים היררכיים שונים הכלולים בבסיס נתונים אחד -- זהו יער (981זס=). העצים השונים ביער יכולים להיות שונים במבנה ובמספר רמות ההיררכיה שלהם. 11 הזמנה ספק פרויקט תרשים 5 - 5: אוסף של מבנים היררכיים - יער במודל ההיררכי ניתן לזהות קשרי אב-בן בין כל שני סוגי רשומות הקשורות ביניהן פרט לרשומת השורש שאין לה רשומת אב. לדוגמא, בקשר בין מחלקה לעובד, רשומת המחלקה היא רשומת האב ורשומת העובד היא רשומת בן. המודל ההיררכי מאפשר לרשומת בן בקשר אחד להיות רשומת אב בקשר אחר. רשומת העובד למשל, המוצגת כרשומת בן בקשר מחלקה- עובד הינה רשומת אב בקשר עובד-פרויקט. הגישה לרשומות במודל ההירככי מבוססת | על מסלול גישה היררכי (ח81 200688 |8סוחסז8זס:1ז) המוביל מרשומת השורש לרשומת היעד באמצעות אוסף מסודר של רשומות הנמצאות בקשרי אבדבן ביניהן. המסלול ההיררכי אל רשומת פרויקט יהיה מחלקה-עובד עובד-פרויקט. במקרים רבים הצגת הנתונים במבנה ההיררכי הינה טבעית ופשוטה ולכן גם מובנת. היא מאפשרת תקשורת נוחה בין המשתמש או בעלי הנתונים, לבין יחידת עיבוד הנתונים. 12 3 ייצוג קשריס א:אבמודל נתוניס היררכי המודל ההיררכי אינו מאפשר קשרים מסוג /א:א והדבר גורם לקשיים מסויימים בהפעלת המודל. לדוגמא, אם עובד אחד מועסק במספר פרויקטים שונים ובפרויקט מועסקים מספר עובדים נאמר שקיים קשר רב--רב-ערכי בין העובד לפרויקט. פרויקט תרשים 4 - 5: קשר רב - רב-ערכי בין עובר לפרויקט פרויקט תרשים 5 - 5: ייצוג ישיר של קשר רב - רב-ערכי במבנה היררכי. 13 1 לצוג ישיר של קשר וש:א הייצוג הישיר של קשר כזה במודל ההיררכי מחייב כפילות נתונים מסויימת: שמירת הנתונים על הפרויקט עבור כל רשומת עובד המשתתף בו. בתרשים 5--5 ניתן לראות שרשומת הפרויקט 02 למשל, מופיעה שלש פעמים בבסיס הנתונים. כפילות נתונים זו מקשה על ניהול בסיס הנתונים מאחר ושינוי כלשהו בנתוני הפרויקט חייב להתבטא במספר רב של רשומות זהות. כדי להתגבר על כך פותחו דרכים לייצוג שונה של קשר רב--רב-ערכי במודל ההיררכי. נעיין בשתי שאילתות שנראות סימטריות מבחינת המשתמש: א. רשימת כל העובדים בפרויקט מסויים. ב. רשימת כל הפרויקטים שבהם מועסק עובד מסויים. הטיפול בשתי שאילתות סימטריות אלה אינו סימטרי במבנה שהוצג בתרשים 5--5. על שאילתא ב ניתן לענות בצורה ישירה כי מבנה הנתונים מציג את הקשר בצורה טבעית. על שאילתא א לא ניתן לענות בצורה ישירה. לשם כך יש לסרוק את כל רשומות הפרויקט, לאתר מתוכן את רשומות הפרויקט המבוקש ולזהות את רשומות האב שלהן. אי הסימטריה נובע מהעובדה שרשומות האב הן רשומות העובד ורשומות הבן הן רשומות הפרויקט. הדבר גורם לקושי מיותר מבחינת המשתמש, אשר צריך להקדיש זמן ומאמץ מיותרים לטיפול בבעיות אשר נגרמות על-ידי מודל שאינו מייצג את המציאות בצורה נוחה. במקום ייצוג ישיר של קשר רב--רב-ערכי ניתן לייצג את הקשר על-ידי שני מבנים היררכיים זרים שכל אחד מהם מייצג קשר חד--רב-ערכי אחד. בתרשים 6--5 מוצג הקשר הרב--רב-ערכי בין העובד והפרויקט כשני קשרים חד--חד-ערכיים. בקשר אחד רשומת השורש היא רשומת העובד ובשני -- רשומת השורש היא רשומת הפרויקט. 4 73 2ק (נק 22 02 וע תרשים 6 -5: הפיכת מבנה רשת ליער של עצים היררכיים 14 2 קשר אסוציאטיבי הפיכת מבנה הרשת למבנה היררכי בתרשים 6--5 גרמה לכפילות נתונים רבה בבסיס הנתונים. רשומת פרויקט 2 מופיעה ארבע פעמים כרשומת בן ופעם נוספת כרשומת שורש במבנה היררכי אחר. אם כמות הנתונים שיש לאחסן לכל פרויקט היא רבה, יש בזבוז רב במקום האחסון. אך הבעייה העיקרית היא הצורך לעדכן רשומה אחת פעמים אחדות בגלל מספר המופעים .שלה. פתרון אפשרי לבעייה זו הוא בשמירת כל נתוני הפרויקט רק ברשומת השורש המתאימה. ברשומות הבן יש לשמור רק את מפתח הפרויקט ואת הנתונים הרלוונטים לקשר בין העובד לפרויקט כגון תאריך תחילת העבודה, שעות עבודה שהעובד השקיע בפרויקט וכדומה. בכך יוצרים הצלבה של הנתונים (0818 חסוו0ספזסוחו) או קשר אסוציאטיבי (6חו.) 6שו15500181) בין המבנים כפי שמוצג בתרשים 7--5. פרויקט תרשים 7 -5: קשר אסוציאטיבי בין שני מבנים היררכיים הקשר האסוציאטיבי בין שני המבנים ההיררכיים מתאפשר בגלל אחסון המפתחות המתאימים בכל אחד מהם. הגישה מרשומת-בן "פרויקט" לרשומת-אב "פרויקט" מחייבת הפעלת שיטה כלשהי לתרגום מפתח לכתובת (על-ידי חישוב או באמצעות אינדקס) ולכן גישה זו איטית יותר מגישה בין רשומות השייכות לאותו מבנה היררכי. עדיין קיימת בעייה של חוסר סימטריה. קבלת שם הפרויקט למשל הינה מיידית אם נמצאים בעץ פרויקט-עובד כי הנתון הזה נמצא ברשומת השורש. לעומת זאת, אם נמצאים בעץ עובד"פרויקט יש לבצע גישה מיוחדת לרשומת השורש במבנה השני כדי לקבל את הנחון. מצב זה גורם לכך שקיימת נטייה להעביר חלק מהנתונים המופיעים ברשומת השורש גם לרשומות הבן במבנה ההיררכי השני כדי לשפר את הביצועים על חשבון כפילות נתונים. קיימות מערכות ₪815 המאפשרות קישור מבנים היררכיים ביניהם (660חוז0וחו 8 ) בצורה אוטומטית כמו למשל במערכת 8!ו| של יבמ. הדבר נעשה על ידי שמירה נפרדת של רשומות בסיס הנתונים ושל טבלת הקשרים ביניהן. 15 טבלת הקשרים מכילה את הכתובות של הרשומות הרלוונטיות בלבד ולא את התוכן שלהם. הרשומות נמצאות על כן פעם אחת בלבד בבטיס הנתוניסוהבעיות של כפילות נתונים ועדכון לא קיימות כאן. תיאור מפורט של המערכת בחלק השני של הספר. 4 שיטות לייצוג מבנה היררכי את מבנה העץ במודל הנתונים ההיררכי אפשר להציג בשתי דרכים. בשיטה הראשונה מוצגים הצמתים בעץ כמופעים של רשומות. בשיטה זו כל צומת במבנה ההיררכי מוצג כרשומה, ולכן קיום הרשומה קובע למעשה את מבנה העץ. בתרשים 8--5 לדוגמא, ביטול רשומת העובד ₪1 מחייב ביטול של הרשומה 01 מבין רשומות הפרויקט כי אין קיום עצמאי לרשומת בן. ביטול צומת בעץ יכול לגרום לאבדן נתונים, כמו למשל העובדה שבמחלקה 01 היתה פעילות כלשהי בפרויקט 01. הדרך היחידה למנוע את אבדן הנתונים היא באמצעות רשומות ריקות. פרויקט פרויקט תרשים 8 - 5: ייצוג צמתים בעץ על ידי רשימות בשיטה השניה מוצגים הצמתים בעץ כרשומות מיוחדות בשעה שהרשומות האמיתיות מוצגות כצמתים סופיים בעץ ההיררכי. בתרשים 9--5 סומנו הרשומות המיוחדות בעיגול והרשומות האמיתיות סומנו במלבן. הרשומות המיוחדות מיועדות לשמירת המבנה ההיררכי 16 ואינן מכילות נתונים כלשהם. בשיטה זו ביטול רשומת העובד ₪1 אינה גורמת ביטול אוטומטי של הרשומה 1ק ולא נגרם כאן אבדן נתונים. המבנה ההיררכי נשמר, ואינו תלוי בקיומה של רשומה כלשהי בבסיס הנתונים. תרשים 9 - 5: ייצוג העץ ההיררכי באמצעות רשומות מיוחדות מבחינת ייצוג המבנה ההיררכי שתי השיטות זהות. לשיטה השניה יש יתרונות ביכולתה לייצג את ההיררכיה ללא תלות בקיום רשומות מסויימות. מאידך, השיטה השניה מסורבלת יותר הן מבחינת ההצגה הגרפית של המבנה ההיררכי והן מבחינת הטיפול בו. מערכת 1./1ם של יבמ משתמשת בשיטה הראשונה, ומערכת 2000 /ד8/5 של אינטל משתמשות בשיטה השנייה. 17 5. שפה לטיפול במבנה היררכי המבנה ההיררכי מחייב שפה מיוחדת, שפה היררכית (6ה908ח8] |8סוחסזפזסווז), אשר מאפשרת את הקמת המבנה, ניהול הקשרים בין הרשומות וניהול הגישה לנתונים. השפה ההיררכית מאפשרת סריקת ע? (|פפזסטא8זד 88זד) בסדר מסויים. קיימות מספר שיטות שונות לסריקת מבני עץ אשר המקובלת ביניהן היא שיטת ז06זס-8זס. סדר הפעולות לסריקת העץ: א. קרא את הרשומה, אם טרם קראת אותה, ב. אחרת, קרא את כל רשומות הבן השמאליות שעדיין לא קראת, ג. אחרת, אם אין יותר רשומות ברמות יותר נמוכות, חזור לרשומת האב, ד. חזור לנקודת המוצא והמשך. מחלקה (דאשו/ דח קסס) שדות המפתח של הרשומות השונות סו-פסס סו-קש= 0 פרויקט (0501סק) עובד (₪5 צס.)סוא=) תרשים 0: סדר סריקת מבנה היררכי כפי שניתן לראות בתרשים 10--5, סדר סריקת הרשומות לפי שיטת ז00זס6זק הינו מלמעלה למטה ומשמאל לימין. המסקנה היא ש"ביקור" ברשומות שמאליות מתבצע לפני הביקור בצמתים שמצד ימין. לעובדה אם הצומת הוא שמאלי או ימני יש חשיבות מבחינת מהירות הגישה אליו. כדי לבחור רשומה כלשהי מתוך המבנה ההיררכי יש להשתמש במסלול היררכי המוביל מרשומות השורש אל רשומת היעד. מסלול כזה מוצג בתרשים 10--5 בצורת קו מודגש ₪1--₪2--3ק. כדי לאפשר את ביצוע הסריקה של המבנה ההיררכי מנהלת השפה מראהדמקום (עסחסזזטס זס69ו0ח!) המאפשר לתוכנית לעקוב אחר המיקום שלה במבנה ההיררכי. 158 1 פקודות של השפה ההיררכית הפקודות העיקריות של השפה ההיררכית תוצגנה בדוגמאות המבוסטות על תרשים 10--5. בפקודות דומות אך במבנה שונה משתמשים במערכת 1/ 01 של יבמ. מטסואט דפ6: פקודה זו מאפשרת איתור רשומה בבסיס הנתונים לפי תנאי מסויים. הרשומה הנקראת אינה תלויה במיקום התוכנית בבסיס הנתונים ולכן היא מיועדת לגישה ישירה לרשומת שורש או לרשומת בן כלשהי. בגמר ביצוע הפקודה מכיל מראה המקום את כתובת הרשומה הראשונה משמאל לרשומה שנשלפה (רשומה זו תהייה ברמה נמוכה יותר). דוגמא לאיתור רשומה מחלקה עם מפתח 01: שם סוג הרשומה.>---=----->= ‏ דאםואדה קט שטסואט ז₪5 תנאי שליפה .א ----> | .ום = פו-ספם הפשהש ניתן להשתמש בפקודה גם כדי לשלוף את רשומת העובד הראשונה במחלקה. בסיומה תוצב התוכנית על רשומה 1= שהיא הרשומה השמאלית ביותר לרשומת השורש 1. שפצס ופואם מטסואט זפ .1 = פו-קפם שחפהו ניתן להשתמש בפקודה זו כדי לשלוף את רשומת הפרויקט הראשונה של עובד ₪2 במחלקה 1ם. בסיומה תוצב התוכנית על רשומה 3ק. דסםנסאק מטסואט ז65 | ונלא וסאי סאג 1ם = פו-קפס | =הפהט .2 = כ|-פא= ניתן להשתמש בפקודה גם כדי לשלוף רשומת פרויקט מסויימת: דסםנסהק מטסואטש ז65 סאג 1ם = פו-קפם שהפו סאג 53 = סו-פושם .6 = פו-נק דאפא דש6: פקודה זו מאפשרת להתקדם במבנה ההיררכי לפי נוהל ז08ז60זק. ההתקדמות הינה מהמקום האחרון של התוכנית בבסיס הנתונים. לאחר שהתוכנית התמקמה על רשומת מחלקה 1ס, למשל, אפשר בעזרת פקודת דאשא ד65 לקרוא את רשומת העובד. .םםצס ופואם דאפא ד65 פקודה זו תקרא את הרשומה ₪1 למאגר. שימוש נוסף בפקודה יגרום את קריאת רשומה ₪2 ולאחר מכן את ₪3. שימוש בפקודה ללא ציון סוג הרשומה היה גורם את קריאת הרשומות לפי הסדר הבא: 1ם ,01 ,₪2 ,₪2 ,3 ,₪3 ,₪4 ,₪5 ,6. ניתן להוסיף לפקודה תנאי, כדי לקרוא רשומות העונות על תנאי זה בלבד: 129 םשצס |קואם דאםפא זפ .0 < צה 641 פתם ה// התנאי לאחזור הרשומה אינו מכיל את מפתח הרשומה אלא שדה כלשהו שלה. אם התוכנית ממוקמת על מחלקה 1 ואין אף עובד הממלא את התנאי הזה, הסריקה תעבור לעובדים של המחלקה הבאה, וכך הלאה, עד למציאת הרשומה הראשונה העונה על התנאי, או עד לסיום סריקת בסיס הנתונים. כדי למנוע את הגלישה יש להשתמש בפקודה הבאה. דאםח ג אוגודוצ דאפא דפף: פקודה זו דומה לפקודה דאםא ד65 אך היא מגבילה את התוכנית לקרוא רק את רשומות הבן של רשומת האב שעליה התוכנית ממוקמת. לדוגמא, לאחר שהתוכנית התמקמה על רשומת עובד 1=, ניתן לקרוא את כל רשומות הפרוייקט על ידי שימוש חוזר בפקודה הבאה: .₪01 חק דא₪ה הק אוה דועש זאפא ד הפקודה תקרא את רשומות הפרויקט 1ק 0271 ותאותת לתוכנית שאין רשומות פרויקט נוספת לעובד זה. שימוש בפקודת דאשא 6 לא היה מסמן לתוכנית עובדה זו, והיא היתה עוברת לרשומת העובד הבא. אפשר להשתמש בתנאי לקריאת הרשומה, אך הכלל העיקרי ישמר -- הבדיקה תבוצע ברשומות הבן השייכות לרשומת אב אחת. דסם חק דאםח כ אוה דועש דאפא ד 1 < שד מהפעו ס0ו: לכל אחת מפקודות 65 הקודמות ניתן להוסיף את הפרמטר 401.0 לשם נעילת הרשומה. מערכת התוכנה אינה מאפשרת לתוכניות אחרות גישה אל הרשומה הנעולה כמו למשל, בעת עדכון או ביטול. היא מונעת פנייה בו"זמנית של תוכניות לאותה רשומה שלא למטרת קריאה בלבד, ובתוך כך -- מונעת פגיעה בשלימות הנתונים. שםצס וסום פ וס מטסואש זט .1 = סן-קשכ מהם השש ד5פאן: הפקודה מאפשרת הוספת רשומה חדשה למבנה היררכי. לפני ביצוע הפקודה על התוכנית להגיע לרשומת האב בבסיס הנתונים באמצעות פקודות ד66. לדוגמא, אם דרוש להוסיף רשומת פרויקט חדשה לעובד ₪2 יש תחילה להתמקם על רשומת העובד ("אב") ואחר כך להשתמש בפקודת ד858או. מערכת 088 תקשור רשומה זו באופן אוטומטי לרשומת העובד. 0 וקשה: הפקודה מאפשרת עדכון תוכן השדות המופיעים ברשומה. גם כאן יש תחילה להתמקם באמצעות פקודות 651 מתאימות. קריאת הרשומה לשם עדכון חייב להתבצע בפקודת 401.0! ז85. לאחר שינוי תוכן השדות במאגר, תכתוב פקודת 405 |קפה את הרשומה המעודכנת בבסיס הנתונים. שזם ופס: הפקודה מבטלת את הרשומה שהתוכנית ממוקמת עליה, ואת כל הרשומות התלויות בה. גם כאן יש להשתמש בפקודות ד65, ולבסוף -- לקרוא את הרשומה באמצעות הפקודה ם. 401 ד65. השימוש בהוראה שזם וס מחייב זהירות רבה מכיון שפקודת ביטול אחת עלולה לבטל את הרשומה ואת כל הרשומות התלויות בה (06|816 6ַפַזפףָפָוּזד). בפקודת =דם וס הרגילה אפשר לבטל רשומת אב רק לאחר שבוטלו קודם לכן כל רשומות הבן שלה. 10 שאלות נניח שקיימים שני עצים היררכיים. הגדר תת"סכימה המשתמשת ברשומות משני העצים. חקור את משמעות פעולות שפת הנתונים במובן של הפעולות האמיתיות שיש לבצע על בסיסי הנתונים האמיתיים. נניח שקיים קשר |א:א בין סטודנטים לקורסים. הצג את יישום הקשר הזה במערכת היררכית. איזו כפילו נתונים דרושה? תן מספר שאילתות לדוגמא. האם העובדה שמחיקת רשומת במבנה ההיררכי גורמת למחיקת כל רשומות הבן שלה היא יתרון או חסרון? יש לנהל נתונים אודות מחלקות, פרויקטים, עובדים ומשימות. הקשרים בין הישויות הם. > טע מחלקה -- עובד: | חד--רב-ערכי מחלקה--פרויקט: | חד--רב-ערכי עובד--פרויקט: | רב--רב-ערכי פרויקט---משימה: חד--רב-ערכי עובד--משימה: | רב--רב-ערכי הצג את המבנה ההיררכי המטפל במבנה נתונים זה. הראה כיצד תענה על השאילתות הבאות באמצעות שפת הנתונים ההיררכית: רשימת כל העובדים בפרויקט מסויים במחלקה. רשימת המשימות שעובד מסויים ביצע, וכמות השעות שהושקעו על ידו. רשימת המשימות לפרויקט מסויים וכמות השעות הכוללת שהושקעה בפרויקט. 11 פרק ו מודל נתונים רשתי (ו006ו₪ 8 אזסשז₪6) 1. מבוא 2. מודל הנתונים הרשתי - הגדרה 3 מושגי יסוד במודל הרשת 4. מבנים לוגיים המבוססים על חבורות 5. ייצוג קשרים ₪8:א במודל נתונים רשתי 6. שטחי אחסון בבסיס הנתונים 7. שיטות לאיתור רשומות 8. זיהוי מופע של חבורה 9. שפה לטיפול בנתונים במודל רשתי 0. סיכום 1, שאלות 13 1. מבוא מודל הנתונים הרשתי פותח כתוצאה מדרישה לטפל בקשרים מורכבים מאד בין הישויות השונות במודל הנתונים. במודל הרשת הכללי מ ערכי. בגלל בעיות ביישום מבנה פיסי המייצג בצורה מודל הרשת הפשוט (אזסעוז6 6סוח!5) שאינו מכיל ומס המבוססות על מודל הרשת משתמשות ברשת פשוטה בלבד. ותרים כל סוגי הקשרים: חד--חד-ערכי, חד--רב-דערכי ורב--רב" ישירה קשר רב-- רב-ערכי. התפתח קשרים רב--- רב-ערכים. רוב מערכת [ 7 פרויקט תרשים 6-1: רשת פשוטה ורשת כללית מודל הרשת נוסח בצורה פורמלית בתחילת שנות ה-70 על"ידי צוות משימה (-- ₪816 סטסז 85%ד 6 808כ) במסגרת ועידת 00048%1. הועידה -- 0818 ח00 08ח19:6ח60 8686 90908%8%5ע5 -- היתה אחראית לפיתוח וקביעת תקנים לשפת | 00801. צוות המשימה שבו השתתפו אנשי אקדמיה, נציגי חברות מחשבים וחברות פרטיות עסק בקביעת תקנים לשפה מיוחדת להגדרת נתונים והשתמש למטרה זו במודל הרשת. החשיבות הרבה הנעוצה במודל הרשת שהומלץ על-ידי הצוות נובע מהעובדה שהוא אומץ על ידי קהיליית יצרני המחשבים ובתי התוכנה ושימש בסיס למספר מערכות 8/א08 מסחריות. קיימות מספר רב של מערכות 88ס המבוססות על מודל זה, ביניהן 8ו/ום! של חכרת חווט עבור מחשבי 8₪ו. וו-6/וס של חברת 256 עבור מחשבי קסק [- אגט, וו/פסו של חברת | וםש ₪ אסה, 1100 8ואס של חברת 6געואש ועוד. בפרק זה נציג בצורה מפורטת את מודל הרשת כפי שהוגדר בהמלצות .60048%1. 15 2 מודל הנתוניס הרשתי - הגדרה מודל הנתונים הרשתי מבוסס על אוסף של סוגי רשומות ושל קשרים בין סוגי הרשומות. הרשומות מייצגות את הישויות ואת התכונות שלהן והקשרים בין סוגי הרשומות מייצגים את הקשרים שבין הישויות. ההגדרה הפורמלית של המודל הרשתי לפי המלצות .00051 היא: א. קיים אוסף של סוגי רשומות [חח ,33 ,₪2 ,1ח]. לכל סוג רשומה מספר בלתי מוגבל של מופעים בבסיס הנתונים. ב. קיים אוסף של קשרים, [ו1, הקושרים את סוגי הרשומות למבנה נתונים רשתי אחד. הקשרים מקיימים את הכללים הבאים: -- הקשר 1 הינו פונקציונלי בכיוון אחד. לכל מופע של רשומה מסוג | יש בדיוק מופע אחד של רשומה מסוג | הקשור אליה. בכיוון השני הקשר אינו פונקציונלי, כלומר לכל מופע של רשומה מסוג | יש מספר מופעים של רשומות מסוג | הקשורים אליה. לסוג רשומה | נקרא רשומת אב, ולסוג רשומה | נקרא רשומת בן. -- בין כל שני סוגי רשומות ו ְ- (ח, יתכנו מספר קשרים שונים, הן מסוג || והן מסוג ון.1. מכאן נובע שיש לקבוע לכל קשר שם אשר יזהה אותו בצורה חד-משמעית. -- ניתן להגדיר קשר מסוג וו | שהוא קשר בין מופעים שונים של סוגי רשומה זהים. -- ניתן להגדיר קשרים (1 ו" [א | המצביעים על כך שלסוג רשומה | יש מספר רשומות אב שונות. תכונה זו מאפשרת את ייצוג הרשת. 146 3 מושגי יסוד במודל הרשת בהמלצות 0 מופיעים מונחים ומושגים שונים אשר נסביר בהמשך בצירוף דוגמאות. רשומה (60076ה): הרשומה היא היחידה הבסיסית במודל הרשת. היא מכילה מספר קבוע או משתנה של תווים ומחולקת לשדות. אין אפשרות לפנות לשדה ללא שם הרשומה שבה הוא נמצא. הרשומה מייצגת את הישות, למשל "עובד". סוג רשומה (6סעד 6;: אוסף כל המופעים של רשומות במבנה זהה מוגדר כסוג רשומה. לדוגמא, סוג רשומה "מחלקה" כולל את כל המופעים של רשומות המחלקה אשר בבסיס הנתונים. סוג הרשומה מייצג את קבוצת הישות, למשל "מחלקה במפעל". חבורה (801): החבורה הינה קשר בין שני סוגי רשומה או יותר. החבורה במודל שונה לחלוטין מההגדרה המתמטית של קבוצה, למרות שהמונח האנגלי "86%" זהה. (מסיבה זו בחרתי להשתמש במונח "חבורה" ולא "קבוצה". כדי למנוע טעות נמצא גם בספרות המקצועית מונחים כגון 6% זפ או 86 0008%%--00551 במקום המונח |86). החבורה מגדירה סוג רשומה אחד כרשומת אב (360010 זפחצוס) ואחד או יותר סוגי רשומות המוגדרות כרשומות בן (( 38000 זססוח6!/). בדומה לרשומות, גם לחבורה יש מופעים בבסיס הנתונים. מופע של חבורה כולל מופע אחד של רשומת אב, ומספר בלתי מוגבל של מופעי רשומות בן. רשומת אב קשר רשומת בן תרשים 2 -6: ייצוג של חבורה במודל הנתונים הרשתי נשתמש בקשר בין רשומות מחלקה לרשומת מרצה כדי להדגים את מושג החבורה ואת מבני הנתונים שניתן לבנות מחבורות. תרשים 3--6 מציג שני מופעים של רשומות מחלקה, חמישה מופעים של רשומות מרצה ושני מופעים של החבורה "מרצים במחלקה" הקושרת את רשומת המחלקה עם רשומות המרצים השייכים למחלקה. 117 מרצה תרשים :5 - 6: דוגמא עם שני מופעים של חבורה המודל אינו מונע קיום עצמאי של רשומות או של מופעים של סוגי רשומות. לפיכך אפשרי מופע של רשומה או של סוג רשומה שאינם קשורים לרשומות או סוגי רשומות אחרים. בתרשים 3--6 קיים מופע עצמאי של רשומת מרצה 3ק, שאינה קשורה לכל מופע של חבורה, למרות שבמודל מוגדת החבורה "מרצים במחלקה" הקושרת רשומות מרצה לרשומת מחלקה. רשומת בן אינה יכולה להיות קשורה לשני מופעים שונים של חבורה, ולכן לכל רשומת בן יש רשומת אב אחת בלבד. אילוץ זה חשוב בזמן יישום מודל הרשת במערכות פוַמס. בדוגמא שבתרשים 4--6 יש לרשומת מרצה ₪3 שתי רשומות אב שונות, 01 ו027 במסגרת החבורה "מרצים במחלקה". מודל הרשת מאפשר לשלוף את רשומת האב של כל רשומת בן. אך במקרה זה לא ניתן לזהות את רשומת האב הנכונה מכיון שרשומת הבן קשורה לשתי רשומות אב שונות. דבר זה נוגד את הגדרת המודל. מרצה לרשומה זו יש שתי רשומות אב שונות תרשים 4 - 6: רשומת בן הקשורה לשני מופעים שונים של חבורה 18 מודל הרשת מאפשר ייצוג של קבצים פשוטים באמצעות החבורה הסינגולרית ( ז8וגחַח51 1). בחבורה זו רשומת האב מוגדרת כרשומה מיוחדת, רשומת מערכת (460070 וח5/810) והיא קושרת אליה את כל המופעים של רשומות הבן. לכל חבורה סינגולרית יש מופע אחד בלבד בבסיס הנתונים. תרשים 5 - 6: חבורה סינגולרית החבורה הסינגולרית הינה קובץ סדרתי פשוט (1/81חט860) המכיל רשומות מאותו סוג. בתרשים 5--6 מוצגת חבורה סינגולרית הקושרת את כל רשומות המרצה לרשומת אב פיקטיבית אחת, רשומת המערכת, אשר מגדירה את "קובץ המרצים". סדר הרשומות בחבורה הסינגולרית אינו תלוי בסדר הרשומות בחבורה "מרצים במחלקה". 1 סדר החבורה (זפסזס 561) סדר החבורה קובע את מקום הוספת רשומת בן חדשה לחבורה. בהמלצות 086 מופיעות מספר אפשרויות להוספת רשומה חדשה: א, ₪81 -- הרשומה הראשונה בחבורה, כלומר נוסיף אותה בתחילת השרשרת. ב. 1.881 -- הרשומה האחרונה בחבורה, כלומר נוסיף אותה בסוף השרשרת. ג. )א6 -- הרשומה הבאה לאחר הרשומה שעליה ממוקמת תוכנית היישום. שיטה זו מאפשרת לתוכנית היישום לקבוע את מקום הוספת הרשומה החדשה לחבורה. ד. זסוזם -- הרשומה הקודמת לרשומה שעליה מוצבת תוכנית היישום. . 507180 -- לפי סדר המיון של שדה המפתח. הרשומות ממויינות לפי שדה מפתח כלשהו והרשומה תיכנס למקומה המתאים בשרשרת. המודל מאפשר לקבוע סדר מיון עולה או סדר מיון יורד, אם מותרים מפתחות כפולים או לא, והיכן יש להוסיף אותם כאשר הם מותרים. מומלץ לא להשתמש באפשרויות )אסא ו"זסוזק מכיון שסדר החבורה גורר תלות בתוכנית היישום ועל-כן שינוי הסכימה עלול להשפיע על שלימות החבורה. , צ 1:9 2 צורת הקשר של החבורה (6פַאחו| 901): צורת הקשר בין רשומות הבן בחבורה מגדירה את מבנה החבורה: מבנה שרשרת או רשומת מצביעים. שרשרת (66סו/ 561 חו8ח0) החבורה מיושמת באמצעות מבנה שבו כל רשומה מצביעה על הרשומה הבאה בקשר. דוח ךס מציג שלש אפשרויות: א. א6א: הקשר מבוסס על מצביע לרשומה הבאה בחבורה. רשומת האב מצביעה לרשומת הבן הראשונה, רשומת הבן הראשונה מצביעה על השניה וכך הלאה. רשומת הבן האחרונה מצביעה חזרה לרשומת האב ובכך מתקבל מבנה של שרשרת סגורה, או טבעת. צורת קשר זו היא הכרחית ומופיעה בכל החבורות. מחלקה תרשים 6 - 6: חבורה עם מצביע !א6א בלבד ב. זסוזפ: הקשר מבוסס על מצביע מרשומת בן אחת לרשומת הבן הקודמת בחבורה ומרשומת הבן הראשונה אל רשומת האב. בשיטה זו קיימים שני מצביעים בכל חבורה, )א8א ודזסוזק. קיום שני מצביעים אלה מאפשר את סריקת החבורה בשני כיוונים, לפנים ולאחור. הקשר הוא אופציונלי ונקבע בסכימה של המודל. תרשים 7 - 6: חבורה עם מצביעים )אפא ו- זסוזס 1100 ג. זסחאס: כל רשומת בן בחבורה מצביעה על רשומת האב. מצביע זה מאפשר גישה מהירה מרשומת בן לרשומת אב והוא יעיל במיוחד אם מגיעים לרשומת הבן בחבורה אחת על סמך חברותה בחבורה אחרת. ניתן להגיע לרשומת האב גם תוך כדי שימוש במצביע )א6א, אבל שיטה זו מחייבת סריקה ושליפה של מספר רב של רשומות בן. צורת קשר זו היא אופציונלית ונקבעת בסכימה. מרצים במחלקה תרשים 8 - 6: חבורה עם מצביעים ]א6א ו" זפחוכ) רשומת מצביעיס (ע8זז זטזחוסק): מבנה שרשרת או טבעת מחייב סריקה סדרתית של רשומות הבן בחבורה. הסריקה עלולה להיות מאד לא יעילה כאשר רשומות הבן מפוזרות פיסית ביחידות האחסון. שיטה טובה יותר לביצוע גישה ישירה לרשומות הבן היא באמצעות רשומה נפרדת, שמכילה את המצביעים של החבורה, מצביע אחד לרשומת האב ומספר רב של מצביעים לרשומות הבן. בתרשים 9--6 מוצגות שתי רשומות מצביעים עבור המופעים של החברה "מרצים במחלקה" בהתאם לתרשים 8--6. לשיטה זו מספר חסרונות, במיוחד כאשר יש לעבור מחבורה לחבורה תוך כדי סריקה. מחלקה תרשים 9 -6: קישור חבורה עם רשומת מצביעים 141 3 השתתפות בחבורה (ותפזפטוחסו 50): סוג החברות, או צירופים של סוגי חברות, קובעים את צורת השתתפות הרשומה בחבורה. סוג החברות קובע את זמן הוספת רשומת הבן לחבורה (בעת יצירת בסיס הנתונים או בכל זמן אחר) ואת אופי הקשר (קבוע או לא קבוע). , א. חברות אוטומטית (סו1חחסוט1): כאשר מוסיפים רשומה לבסיס הנתונים מבצעת מערכת םס קישור מיידי (אוטומטי) שלה לאחד המופעים של החבורה. אם נגדיר את החבורה "מרצים במחלקה" כאוטומטית, יתבצע קישור של רשומת "מרצה" חדשה לאחד המופעים של החבורה באופן אוטומטי, מיד עם פתיחת רשומת המרצה. סוג חברות זה קובע שלא יתכן מרצה שאינו קשור למחלקה כלשהי, כלומר לא יתכן מופע עצמאי של רשומת "מרצה" בבסיס הנתונים. --- חברות יזומה (081ח8/): קישור הרשומה למופע כלשהו של החבורה מתבצע בצורה יזומה על-ידי המשתמש באמצעות פקודות מתאימות. אם נגדיר את החבורה "מרצים במחלקה" כיזומה, לא יתבצע קישור אוטומטי של רשומת "מרצה" חדשה לאחד המופעים בחבורה, מכיון שהקישור הוא בשליטת תוכנית היישום. סוג חכרות זה מאפשר קיום רשומת "מרצה" עצמאית שאינה קשורה לשום מחלקה וניתן להוסיף אותה לבסיס הנתונים לפני שנקבע לאיזו מחלקה המרצה שייך. הקישור יבוצע אחר-כך בצורה יזומה. -- חברות הכרחית (עזס081ח8וא): לאחר קישור הרשומה למופע כלשהו של החבורה לא ניתן להוציאה מהחבורה למעמד עצמאי, אלא אם מבטלים אותה מבסיס הנתונים, אך ניתן להעביר את הרשומה למופעים אחרים של אותה חבורה. אם נגדיר את החבורה "מרצים במחלקה" כהכרחית, לא ניתן יהיה לנוציא את רשומת "מרצה" מהחבורה לאחר שבוצע הקישור שלה. לאחר שנקבעה למרצה מחלקה, הוא יכול לעבור למחלקה אחרת (מופע אחר של אותה חבורה) אבל אין אפשרות לקיים מופע עצמאי של רשומת "מרצה". בכל נקודת זמן הרשומה קשורה למופע כלשהו של החבורה. -- חברות לא הכרחית (81חסנוס0): לאחר קישור הרשומה למופע כלשהו של החבורה, ניתן להוציא את הרשומה מהחבורה מבלי שיהיה צורך לבטלה מבסיס הנתונים. אם נגדיר את החבורה "מרצים במחלקה" כלא הכרחית, ניתן יהיה להוציא את רשומת "מרצה" מהחבורה לאחר שבוצע הקישור שלה, ולהשאיר אותה בבסיס הנתונים כרשומה עצמאית. סוג ההשתתפות בחבורה נקבע כצירוף של אחת מתוך ארבע אפשרויות: -- אוטומטי-הכרחי: קישור רשומה חדשה לחבורה מתבצע באופן אוטומטי כאשר מוסיפים אותה לבסיס הנתונים. לאחר שהרשומה נקשרה למופע כלשהו של החבורה לא ניתן לבטל את חברותה אלא אם מבטלים אותה מבסיס הנתונים. ניתן להעביר את הרשומה למופע אחר של החבורה. -- אוטומטי-לא-הכרחי: קישור רשומה חדשה לחבורה מתבצע באופן אוטומטי כאשר מוסיפים אותה לבסיס הנתונים. לאחר שהרשומה נקשרה למופע כלשהו של החבורה ניתן לבטל את חברותה בכל נקודת זמן. אין צורך לקשור אותה למופע אחר של אותה חבורה והיא יכולה להשאר באופן עצמאי. -- יווס=הכרחי: הוספת רשומה חדשה לבסיס הנתונים אינו מחייב קשירתה למופע כלשהו של החבורה. הקישור לחבורה יכול להתבצע בכל נקודת זמן, מאחר והוא נוצר על-ידי המשתמש באמצעות פקודות מיוחדות. לאחר שהרשומה נקשרה למופע כלשהו של החבורה לא 1412 ניתן לבטל את חברותה, אלא אם מבטלים אותה מבסיס הנתונים. ניתן להעביר אותה למופע אחר של החבורה. -- יזום"לא-הכרחי: הוספת רשומה חדשה לבסיס הנתונים אינו מחייב קשירתה למופע כלשהו של החבורה. הקישור לחבורה יכול להתבצע בכל נקודת זמן על ידי תוכנית המשתמש באמצעות פקודות מיוחדות. לאחר שהרשומה נקשר למופע כלשהו של החבורה ניתן לבטל את חברותה בכל נקודת זמן. אין צורך לקשור אותה למופע אחר של אותה חבורה והיא יכולה להשאר עצמאית. 4 סיכוס מאפייני החבורה א. החבורה מייצגת קשר בין סוגי רשומות. לכל חבורה יש שם ייחודי והיא מכילה סוג רשומה אחד המוגדר כרשומת אב ואחד או יותר סוגי רשומות המוגדרים כרשומות בן. מופע של חבורה מורכב ממופע אחד של רשומת אב ומספר בלתי מוגבל של רשומות בן. במסגרת הסכימה ניתן להגדיר מספר בלתי מוגבל של חבורות. כל סוג רשומה יכול להיות רשומת אב בחבורה אחת או יותר. כל סוג רשומה יכול להיות רשומת בן באחת או יותר חבורות. אותו סוג רשומה יכול להיות רשומת אב באחת או יותר חבורות ורשומת בן באחת או יותר חבורות אחרות. אותו סוג רשומה אינו יכול להיות גם רשומת אב וגם רשומת בן באותה חבורה. המודל מרשה רשומת אב אחת לכל רשומת בן באותה חבורה. בכל חבורה יש להגדיר את סדר רשומות הבן באחת מהאפשרויות הקיימות. לא ניתן להגדיר סדר לרשומות אב פרט למקרה שהן מוצגות כרשומות בן בחבורה אחרת. חבורה סינגולרית היא חבורה מיוחדת שבה קיימת רשומת אב אחת בלבד, רשומת מערכת. 13 4 מבנים לוגייסם המבוססיס על חבורות החבורה הינה מבנה היררכי בעל שתי רמות. מודל הרשת משתמש במבנה בסיסי זה כאבן בנין למבני נתונים מורכבים ביותר. בסעיף זה נציג את הכללים הבסיסיים בהרכבת מבני נתונים במודל הרשתי. מ חזס האס שומווטוא: סוג רשומה כלשהו יכול לשמש כרשומת אב במספר חבורות שונות. תרשים 10---6 מציג דוגמא שבה סוג רשומה "מחלקה" הוא רשומת אב בשתי חבורות שונות: "מרצים במחלקה", "נושאים נלמדים". תרשים 10 - 6: רשומת אב אחת למספר חבורות בסוגי רשומה שונים מודל הרשת מאפשר להגדיר מספר קשרים שונים בין שני סוגי רשומות. בתרשים 11--6 סוג רשומה "מחלקה" הוא רשומת אב בשתי חבורות שונות "פרופסורים" ו'"מרצים בכירים" הקושרות שני סוגי רשומה בלבד. במחלקה 1ם לדוגמא, רק המרצים 1ק [-2ק הם בדרגת פרופסור ואילו במחלקה 2 רק המרצים 05 [ן- ₪7 הם בדרגה זו. פרופסורים מרצים בכירים מרצה תרשים 11 - 6: רשומת אב אחת למספר חבורות באותו סוג רשומה 14 קוחהפזסח/צ ח3 קוה5ז6םוח6וא: סוג רשומה אחד יכול להיות רשומת בן בחבורה אחת ורשומת אב בחבורה אחרת. תכונה זו מאפשרת ייצוג מבנים היררכיים במספר רמות כלשהו. בתרשים 12--6 סוג רשומה "מרצה" משתתף כרשומת בן בחבורה "מרצים במחלקה" ובאותה עת הוא גם רשומת אב בחבורה "מלמדים בכתות". תרשים 12 -6: סוג רשומה אחד בתפקידים שונים יצוג של מבנה היררכי באמצעות מודל הרשת מתאפשר על ידי שילוב של שתי תכונות: אפשרות כל סוג רשומה להיות רשומת אב במספר חבורות והאפשרות של כל סוג רשומה להיות רשומת אב ורשומת בן בעת ובעונה אחת. המודל ההיררכי מוצג במודל הרשת כאוסף של חבורות המקיימות את דרישות המודל ההיררכי. פרסומים אקדמיים תרשים 15 - 6: מבנה היררכי כאוסף של חבורות קוח5ז6טהח6! 6וקוווטוזא: סוג רשומה אחד יכול להיות רשומת בן במספר חבורות שונות. תכונה זו מאפשרת את ייצוג הרשתות במודל הנתונים הרשתי. תרשים 14--6 מציג דוגמא שבה סוג רשומה "נושא" הינו רשומת בן בחבורה "'נושאים נלמדים" וגם בחבורה "מלמד". מרצה 1פ, למשל, שייך למחלקה 01 ומלמד נושאים 82 ו837 15 תרשים 14 -6: רשומת בן למספר חבורות באותו סוג רשומה השילוב בין שלש התכונות שהוצגו עד כה מאפשר תיאור מבנה רשתי מורכב בדומה לזה שבתרשים 15--6. פרסומים וטודנט אקרמיים תרשים 15 - 6: מבנה רשתי זט וח6וחו!!טו!: בחבורה מסוג זה יש סוגי רשומות בן שונים לרשומת אב אחת. סטורגט-בחינה-סמינר עבירות סמיגריוניות 5 תרשים 16 - 6: חבורה עם סוגים שונים של רשומות בן 146 5. ייצוג קשריס ש:א במודל נתוניס רשתי בדומה למודל הנתונים ההיררכי גם המודל הרשתי אינו מאפשר ייצוג ישיר של קשרים מסוג שו:א. אפשר לתאר קשרים אלה על-ידי פירוק הקשר הרב--רב-ערכי לשני קשרים חד--רב- ערכיים ושימוש בסוג רשומה נוסף, רשומת הקשר (460070 חסו800זסוח!). בתרשים 17--6 מתוארת רשת כללית אשר מכילה קשר רב--רב-ערכי בין רשומת "מחלקה" ורשומת "מרצה". כפי שניחן לראות המרצים 02 ו37 מלמדים בשתי מחלקות שונות. תרשים 17 - 6: רשת כללית הקשר שמוצג בתרשים 17--6 הינו מסוג /א:א אשר אינו מוכר במודל 6דפּס. כדי לתאר אותו משתמשים ברשומת הקשר "תעסוקה" אשר נמצאת בין רשומת *מחלקה" לבין רשומת "מרצה". הפירוק לשני קשרים חד--רב-ערכיים ניתן בתרשים 18--6. תרשים 8 - 6: שימוש ברשומת קשר לייצוג קשר רב - רב-ערבי 117 אפשר להשתמש בשיטה זו על פי התכונה סוחפזסםוח6!/ פוקוזוטוא של רשומה במודל 68 שמגדירה לרשומת "תעסוקה" שתי רשומות אב, רשומת "מחלקה" ורשומת "מרצה". רשומת הקשר אינה מיועדת לייצוג קשרים רב--רב-ערכיים בלבד. היא מכילה בדרך כלל נתוני קשר (0818 חסו/880ז6וח!) משמעותיים עבור שתי הרשומות. בדוגמא זו ניתן לשמור ברשומת "תעסוקה" נתונים כגון *תאריך תחילת עבודת המרצה במחלקה", "מספר שעות שבועיות שהמרצה מלמד במחלקה" ועוד. דוגמא נוספת לשימוש ברשומת קשר ניתנת בתרשים 19--6 המתאר מבנה עץ מוצר כללי. מבנה המוצר (9101181!/ 01 ווו8-80₪) מכיל צירוף של חומרי גלם והרכבות אשר יכולות גם הן להכיל צירוף של הרכבות משנה וחומרי גלם עד לרמה הנמוכה ביותר של ההרכבה אשר מכילה צירוף של חומרי גלם בלבד. בין שלושת סוגי הרשומה "מוצרים", "הרכבות" ו"חומרי גלם" קיימים קשרים רב--רב-ערכיים. תרשים 19 - 6: מבנה עץ מוצר כללי לתיאור עץ מוצר במודל הרשת יש להשתמש ברשומות קשר ובנתוני קשר כפי שהוסבר קודם. בעץ המוצר קיימים נתונים חשובים על המבנה כמו למשל "כמות בה מופיע אלמנט הבן באלמנט האב", או פשוט יותר: כמה גלגלים יש במכונית אחת. כך למשל, בנוסף לידיעה שמוצר 1ק מכיל את ההרכבות 41, 42, 43 וחומר גלם ₪2 יש לדעת למשל כמה יחידות 41 נמצאות ב- 1ק. המקום הטבעי לרשום נתונים אלו הוא ברשומת הקשר. תרשים 20--6 מתאר עץ מוצר כללי ורשומות קשר. קיימות טכניקות נוספות לייצוג עצי מוצר במודל נתונים רשתי ולא נדון בהן כאן. 138 ב 5 )₪5 ו 0 7 ל // חומריגלם - הרכבה 6. שטחי אחסון בבסיס הנתוניס בהמלצות ‏ 600391 כלול המושג שטח אחסון (68ז4) במסגרת הסכימה המגדירה את המבנה הלוגי של בסיס הנתונים. הגדרת שטח האחסון במסגרת המבנה הלוגי ולא במסגרת המבנה הפיסי נותנת בידי המתכנן ומנהל בסיס הנתונים כלים מסויימים לאופטימיזציה של הגישות לבסיס הנתונים. שטח האחסון הינו תת-חלוקה פיסית של השטח שבו מאוחסן בסיס הנתונים אשר מאפשרת למערכת ההפעלה להתייחס אל השטח כאל קובץ. המודל מאפשר את חלוקת בסיס הנתונים למספר בלתי מוגבל של שטחי אחסון אשר לכל אחד מהם נקבע שם נפרד במסגרת הסכימה, לדוגמא: םהה-דקשס פן םואגא בשחה המודל מאפשר לקבוע במסגרת הסכימה אילו סוגי רשומות יאוחסנו בכל שטח אחסון, ואם יהיה זה סוג רשומה אחד או סוגי רשומות שונים. למרות שאפשר לאחסן את כל סוגי הרשומות בשטח אחד, מעדיפים את הפרדתם לשטחי אחסון שונים כדי להשיג יעילות גדולה יותר בגישות לבסיס הנתונים. לאחר שנקבע השיוך של סוגי הרשומה לשטח האחסון אין אפשרות להעביר אותה לשטח אחסון אחר, אלא אם טוענים מחדש את בסיס הנתונים. הקצאת סוג רשומה דאם!/ דח קמס לשטח אחסון ₪5 -דסםס תיעשה בצורה הבאה: שח - דקשס אוה דועש פסה דאם וזח קפס המודל מאפשר אחסון רשומת בן (40!458=ד) באותו שטח שבו מאוחסנת רשומת האב שלה ( משאצס), לדוגמא: השאו/ס = גחה אוה דוצ פ008פה הפהטסה=ד השטח עצמו מחולק לדפים (פסְחָ8ק) והדף מחולק לשורות (פשסה). המופע (060176006) של הרשומה מאוחסן בשורה. המשתמש יכול לקבוע את גודל השטח על-ידי ציון מספר הדפים בשטח האחסון. למרות שמושג השטח מתייחס למבנה הפיסי הוא אינו מבחין בתכונות הפיסיות של יחידת האחסון. כתוצאה מכך מושגת פשרה בין הרצון ליצור אי-תלות פיסית לבין הרצון לקבל ביצועים טובים ממערכת ניהול בסיס הנתונים. 1:00 7 שיטות לאיתור רשומות השיטה לאיתור רשומה (006)] 10080000 0ז660ה) קובעת את הצורה שבה מערכת 8 תאחסן ותשלוף את הרשומה. לכל סוג רשומה יש שיטת איתור קבועה אשר מוגדת בסכימה. הרשומות מאוחסנות בשטחי אחסון שונים וכל מופע שלהן מקבל זיהוי חד"משמעי בבסיס הנתונים, אשר מורכב ממספר הדף ומספר השורה בדף שבה מאוחסנת הרשומה. קוד זיהוי מופע הרשומה קרוי מפתח בסיס הנתונים (ע69! 8886 0818 -- עְ6א-מ0). מפתחות אלה הם מצביעים (פזסוחוסש) בחבורות השונות שבהן הרשומה משתתפת. מפתח נתונים מצביע -- ת הנתונים %---- קירומת (או/₪78) = תרשים 21 - 6: מבנה רשומה בבסיס הנתונים ברשומה לדוגמא שבתרשים 21--6 ישנם שני חלקים עיקריים: -- קידומת המכילה את מפתח בסיס הנתונים ואת כל המצביעים הדרושים לקישור הרשומה לכל החבורות שבהן היא משתתפת, אם כרשומת אב ואם כרשומת בן, -- נתונים המחולקים לשדות. המשתמש יכול להגדיר שדה אחד כמפתח לוגי של הרשומה ושדות נוספים שיהיו שדות מיון עבור המופעים השונים בחבורה. קיימות שלשת שיטות לאחסון ולאיתור רשומה בבסיס הנתונים: א. ישירה ( דסםחוכ): הרשומה מאוחסנת בדף ובשורה אשר נקבעים על-ידי המשתמש באמצעות מפתח בסיס הנתונים. קיימות פקודות המאפשרות קביעה ושינוי של המפתחות, וכן כתיבה וקריאה של רשומות על פי מפתחות אלו. לא מומלץ להשתמש בשיטה זו. ב. חישובית (041.0): אחד משדות הנתונים מוגדר כמפתח לוגי ועליו מפעילה מערכת 6 תהליך חישובי (ַחוח85]) שהופך אותו למפתח בסיס הנתונים. שיטה זו מאפשרת גישה ישירה לרשומה על-פי ידיעת המפתח הלוגי שלה כמו תעודת זהות למשל. ג. עקיפה (8ו/): שיטת איתור זו מיועדת לאיתור רשומות בן בחבורה כלשהי כאשר אין צורך בגישה ישירה אלא רק בגישה המסתמכת על חברות הרשומה בחבורה. בשיטה זו המופעים של רשומות הבן יאוחסנו באותה סביבה פיסית (דף למשל) של רשומת האב. אם אין מקום באותה סביבה, מערכת 088 תנסה לאתר מקום פנוי בסביבה קרובה אחרת. שיטה זו מגדילה את יעילות הביצוע מכיון שניתן לקבל את כל הרשומות השייכות למופע אחד של החבורה בפעולת קלט/פלט אחת. כאשר החבורה גדולה מאד עלולה קריאת כל החבורה להיות מגבלה. אם הרשומה היא רשומת בן במספר חבורות שונות על המשתמש לקבוע באיזו מהן יוגדר הקשר 8|/. הוא יבחר למטרה זו בחבורה שתדירות הגישה אליה היא הגבוהה ביותר. 11 8 זיהוי חבורה פעולות מסויימות בבסיס הנתונים מחייבות זיהוי החבורה (ח0סו50!90 6סחפזזטוסס0 501) שבה יש לבצע אותן. למשל, כאשר יש להוסיף רשומה לבסיס הנתונים יש לאתר את החבורה ואת המקום בתוכה שאליו יש לקשור אותה. זיהוי החבורה יכול להעשות בדרכים שונות. א. זיהוי החבורה על-ידי התוכנית תוכנית היישום מגיעה למקום בבסיס הנתונים שבו יש להוסיף את הרשומה החדשה. שיטת זיהוי זו מוגדרת בסכימה באמצעות המשפט הבא: .דפ =0 זאםממטס טמחד 15 אסודסם ופ םסאפההטססס זפפ אם סוג ההשתתפות בחבורה הוא יזום (1טח8//) תוכל תוכנית היישום להוסיף רשומה חדשה לבסיס הנתונים לאחר איתור המופע המתאים של החבורה ולקשור את הרשומה למופע שנבחר. שיטת הזיהוי עלדידי התוכנית מחייבת את תוכנית היישום להכיר את מבנה בסיס הנתונים ולנווט בתוכו. שיטות הזיהוי האחרות אינן תלויות כל כך בהכרת מבנה מסיס הנתונים. ב. זיהוי החבורה על-ידי שגרה הזיהוי מתבצע על ידי שגרה כתובה מראש ומאוחסנת בספריית השגרות של מערכת 818 . שיטת זיהוי זו מוגדרת בסכימה באמצעות המשפט הבא שבו 480 הוא שם השגרה: .480 ממטסםססחק צם 5ו אסודסם |ו55 5סאפההש600ס0 ז5פ ג. זיהוי רשומת האב של החבורה מערכת 0815 מאתרת את המופע של רשומת האב של החבורה ולאחר מכן מוסיפה את הרשומה החדשה. שיטת זיהוי זו מוגדרת בסכימה באמצעות המשפט הבא שבו | וח6וו-0918 הוא שם שדה (אחד או יותר) שבו מוסרת תוכנית היישום את גורם החיפוש, כפי שיוסבר בהמשך: שססא אסוד1064 עמחד 5ו אסוזסם ]551 5סאםההטססס0 זשפ ...,00!-0818 ,6001)!-₪818 6א!5 ממאעשס 05 בכל אחת משיטות האיתור מוטלים על תוכנית היישום תפקידים שונים: א. בשיטת איתור 641.0 של רשומת אב על תוכנית היישום לספק למערכת 088 את מפתחות החישוב המתאימים. נשתמש בדוגמא שבתרשים 19--6: כדי להוסיף רשומת "מרצה" יש לזהות את רשומת המחלקה שבה הוא מועסק. המשתמש צריך לקבוע את תוכן מפתח המחלקה, למשל "מספר המחלקה", ומערכת 0815 תאתר באופן אוטומטי את רשומת המחלקה ותקשר את רשומת המרצה למופע של החבורה. אין תוכנית היישום צריכה לאתר את רשומת האב כי כל הפעולה נעשית על ידי מערכת התוכנה בלבד. ב. בשיטת האיתור ₪501וס של רשומת האב על תוכנית היישום לספק למערכת 88 את מפתח-בסיס-הנתונים המתאים. אין התוכנית היישום צריכה לאתר את רשומת האב. 12 ג. בשיטת האיתור ,ו של רשומת האב על תוכנית היישום לספק למערכת 818 נתונים על המופע של רשומת האב שיש לבחור. מערכת 815ס חייבת לזהות את רשומת האב על פי חברותה בחבורה אחרת. והדבר מחייב לזהות גם את המופע של החבורה השניה בהתאם לשיטת האיתור של רשומת האב. ניתן לחזור על מספר רמות של זיהוי רשומת אב בתנאי שהזיהוי יסתיים עם רשומת אב ששיטת האיתור שלה היא 041.0 או דסםשחוכ. רשומה זו מזהה מסלול ישיר אל רשומת האב הדרושה. נשתמש בדוגמא להסבר. תרשים 22 - 6: איתור רשומת אב בשיטת | בדוגמא המתוארת בתרשים 22--6 רשומת-אב של חבורה "מרצה-מחלקה" קושרת את רשומת "מרצה" עם רשומת "מחלקה" בקשר גו/. כדי להוסיף רשומת "פרסום אקדמי" לחבורה "פרסומים אקדמיים" יש לזהות את רשומת המרצה וגם את רשומת המחלקה. מערכת 5 אינה יכולה לאתר את המחלקה שבה מועסק המרצה ולכן על תוכנית היישום לספק לה את מפתח המחלקה יחד עם מפתח המרצה. המערכת תאתר את רשומת המחלקה בהתאם לשיטת האיתור שלה, תסרוק את שרשרת רשומות המרצה עד למציאת הרשומה המבוקשת ותוסיף את רשומת הפרסום האקדמי לחבורה המתאימה. בחבורה שבה הקשר הוא 8ו/ נדרש שרשומת האב תהייה רשומת בן ממויינת. / היתרון של שיטת זיהוי החבורה באמצעות זיהוי רשומת האב הוא בכך שתוכנית היישום אינה צריכה להכיר את מבנה בסיס הנתונים ולנווט בתוכו עד לאיתור המקום להוספת הרשומה החדשה. התוכנית צריכה לספק את המפתחות המתאימים ומערכת 0818 מטפלת בהוספת הרשומה למקומה הנכון בבסיס הנתונים. שיטה זו מפשטת במידת מה את תוכנית היישום. 13 9. שפה לטיפול בנתוניס בנוסף להגדרת מבנה הנתונים המליץ דוח 6ד08 גם על מבנה שפה לטיפול בנתונים. תוכניות היישום כתובות בשפה מארחת כמו .60801 אשר מכילה אוסף של פקודות .וס מיוחדות המאפשרות את הטיפול בנתונים. 1 שטח עבודה של התוכנית תוכנית היישום מחולקת באופן כללי לשניים. איזור בזכרון המכיל את פקודות הביצוע ואיזור המוגדר כשטח עבודה של התוכנית (68זה ַחואזס) ז89!--/)(). שטח העבודה מחולק לשלשה חלקים, כמודגם בתרשים 23--6: א. משחנים של תוכנית היישום, כמקובל בכל תוכנית. ב. שטח אחסון רשומות מכיל את תוכן הרשומות השונות שנקראו או עומדות להכתב לבסיס הנתונים. בשטח האחסון יש מקום נפרד לכל סוג רשומה המוגדר בתת-הסכימה ויש בו גם מקום להעברת פרמטרים לפקודות .ופ שונות. למשל, לקריאת רשומה מבסיס הנתונים יש להעביר לתוך שטח האחסון של סוג הרשומה את המפתח של הרשומה המבוקשח. ג. מראי-מקום (8ז0/08)0ח| עסח6זזוס) הם אחד המרכיבים החשובים של שפת ושוס. מראי המקום מציינים את מיקום תוכנית היישום בבסיס הנתונים ומאפשרים את הניווט ( חסווּהַחָו8!) שלה בתוך מבנה הרשת. פקודות ביצוע של תוכנית היישום משתנים של התוכנית שטח אחסון רשומות נושאים נלמרים 7- א יי תרשים 23 - 6: מבנה תוכנית יישום הצורך במראי מקום נובע מהעובדה שבמבנה הרשתי קיימים מספר מסלולים שונים לניווט בין רשומת מקור לרשומת יעד כלשהי. בתרשים 23--6 מוצג מבנה רשת שמכיל שלש חבורות שונות. כדי להגיע מרשומת "מחלקה" לרשומת "נושא" ניתן לעבור דרך רשומות "מרצה" או להגיע ישירות מרשומת "מחלקה". במודל הנתונים ההיררכי קיים מסלול אחד בלבד בין כל רשומת מקור לכל רשומת יעד ולכן אין צורך במנגנון מראי מקום. במודל הרשתי לא ניתן להגדיר מסלול יחיד בין שני סוגי 134 רשומות ועל כן נדרשת הטכניקה של מראי-מקום. דוח 0816 ממליץ על מספר מראי-מקום שיאפשרו את הניווט בבסיס הנתונים: א. מראה מקום לסוג רשומה (6סעד שזסספה 01 )חפזזוס) מורה על הרשומה האחרונה שתוכנית היישום טיפלה בה. לכל סוג רשומה שבתת-סכימה של תוכנית היישום יש מראה מקום אחד מסוג זה. ב. מראה מקום לחבורה (6מץד 561 ]0 זח6זזט0) מצביע על המופע האחרון של רשומה בחבורה שטופלה עלדידי תוכנית היישום. לעיתים ההצבעה תהייה על מופע של רשומת אב ולעיתים -- על מופע של רשומת בן. לכל חבורה שמופיעה בתת-הסכימה של תוכנית היישום יש מראה מקום אחד מסוג זה. השימוש במראה מקום לחבורה הינו טבעי מאחר ורוב הניווט בבסיס הנתונים מתבצע לפי מופעים. ג. מראה מקום לשטח אחסון (68ז4 01 זחפזזטוס) מצביע על הרשומה האחרונה שטופלה על-ידי תוכנית היישום בשטח האחסון של בסיס הנתונים. לכל שטח אחסון יהיה מראה מקום נפרד. ד. מראה מקום לתוכנית היישום (חט-חטח ז0 )חפזזוס) מצביע על המופע של הרשומה האחרונה שטופלה על ידי תוכנית היישום. עבור תוכנית יישום המשתמשת בתת-סכימה שמכילה את שלשת סוגי הרשומה שבתרשים 3 נקבל את מראי המקום הבאים: חוכנית יישום זואע--אעחה דאםאזה א טס הפהספד זז סוג רשומה דא6!ואזה קפס-- +0--685ס6ד מראי מקום חבורה זאש זה קטס--"0--5086015 המד שח -- דקפס שטח-אחטון שחא--הספד אמח ג-- ז50860 / פעולות המבוצעות בבסיס הנתונים גורמות לשינוי במראה המקום בהתאם לפקודה המבוצעת. תרשים 24--6 מציג סדרת פעולות המבוצעות בבסיס הנתונים המוצג בתרשים 3 ואת תוכן מראי המקום השונים לאחר כל פקודה. ות *0--15400685 | +0- 5086015 0 ו ו זאפווזת קפס | זאשואזההס6ם 1 מרעייהמחשב מרעייהמחשב [-00)] קרא רשומת נושא רגון ייה הו מלמר ארגון קבצים מרעי*המחשב רא רשומת מרצה / 6 | | 2 | אמוקנצם | נת ו הוכנות ----------- סוג רשומה -----------3|6--------. הובטרת. מראי מקום תרשים 24 - 6: תוכן מראי מקום בעקבות פעולות בבסיס הנתונים 4 מציו - קרא רשו ו מרעייהמחשב ‏ | מרעייהמחשב שלו 6 ש [ 0 | ארגון קבצים מרעי-המחשב ארנון קבצים הב | *%. | 15 דוח 86 מבחין בין איתור רשומה לבין העברתה לשטח העבודה (8שו0). לשתי פונקציות אלה פקודות נפרדות: פקודת סא|= לאיתור רשומה ועדכון מראי המקום המתאימים, ופקודת 61 המעבירה לשטח העבודה את הרשומה, שמראה המקום של תוכנית היישום מצביע עליה. 2 פקודות סאוז לאיתור רשומות את פקודות האיתור אפשר לחלק לשתי קבוצות: בקבוצה הראשונה תהיינה פקודות המאפשרות איתור ישיר של רשומה בבסיס הנתונים באמצעות פונקציות ]041 ,דסשחוס או אינדקס משני כלשהו. בקבוצה השניה תהיינה פקודות המתייחסות לחבורות ומשתמשות בתוכן מראי המקום. פקודות אלה מאפשרות איתור מופע מסויים של חבורה ומיתוג בין חבורות (861 פחוחסוושופ). המיקום הראשוני בבסיס הנתונים מתבצע באמצעות פקודות איתור מהקבוצה הראשונה ולאחר מכן מתחיל הניווט באמצעות פקודות מהקבוצה השניה. שתי פקודות סא|= הראשונות שייכות לקבוצת פקודות האיתור הראשונה, והשאר שייכות לקבוצת פקודות האיתור השניה. א. איתור ראשוני עם מפתח בסיס הנתונים: איתור ישיר של רשומה בבסיס הנתונים על פי חוכן של מפתח בסיס הנתונים (ץ6א--8כ). ץ6א !25 פוההח-0זס86ז סאו= במקום המלים 8וח8ח-0ז600ז, ע6א ירשמו שמות של רשומה ושדה המפתח, בהתאמה. ב. איתור ראשוני עם מפתח לוגי: איתור ישיר של רשומה בבסיס הנתונים על פי תוכן המפתח הלוגי שלה. לפני השימוש בפקודה זו על תוכנית היישום להעביר את תוכן המפתח הלוגי לשדה המפתח של הרשומה. 00 פהההה-0ז600ז סאו= לאיתור רשומת מחלקה שמספרה 135 נשתמש בפקודות הבאות: העברת המספר 135 לשדה המפתח: .סו -- זאםשודח ה קפס סד "135" מטסו איתור רשומה דאםוש דח קםס (לפי המפתח); .ם03ס0םה דאפודח קמס סאן= ג. איתור רשומה בהתאם למראי מקום: הפקודה מאפשרת שימוש בתוכן מראי מקום לאיתור רשומת האב, והיא גם מאפשרת עדכון של מראי מקום. אפשר לכתוב את הפקודה בצורות אחדות בהתאם למראה המקום שבו משתמשים: 3500 פהההַח-60070ז זםס 6וח-50% = סוהַַַה-8]68 זואע-אט₪ המלים 806ח-801, 6וח8ח-160070, 6וחהח-68ז8 יוחלפו בשמות רלוונטיים בתוכנית. > הסוגריים המרובעים מציינים אפשרות להשתמש בביטוי כאשר מאתרים רשומת אב. הסוגריים הגדולים מציינים שיש לבחור באחת מהאפשרויות הרשומות בהן. צורת כתיבה זו תחזור בהמשך. לדוגמא, אם התוכנית טיפלה ברשומת "מרצה" ורוצה לאתר את רשומת המחלקה שבה הוא עובד נשתמש בפקודה הבאה: דואע--אטח 0 דאש הח טס 0 דוא= ודה קפס--=0--5השה0הםד או הפאעשטס סאו ד. איתור רשומה המשתתפת בחבורה: הפקודה מאפשרת ניווט במסגרת החבורה שמשמעו 0 דאםתח טס [ס פהַַה-561 או מםאצשס] סאו= 156 התקדמות לרשומת הבן הבאה או לרשומת הבן הקודמת, איתור רשומת הבן הראשונה או האחרונה או התקדמות של מספר רשומות בן בחבורה. הפקודה נכתבת בהתאם לאפשרות הניווט שנבחרה: זאפא ד סוהח-)59 חסוםק = 5000 פוההה-60070ז דפחו= [סאום 6הההח-68זא , ד ז תו במקום המלים 888ח-800:0ז, סוחפח-561, 6וחבח-68ז8 יכתבו שמות רלוונטיים. במקום ז הו יכתב מספר שלם המציין את מספר הרשומות לקידום. לדוגמא, אם איתרנו את רשומת המחלקה לפי פקודות שהוצגו בסעיף א' לעיל, ניתן לאתר את רשומות המרצה השייכות למחלקה בעזרת הפקודות הבאות: ד דאםואזח קםס--"0ס-- 086 פד 0 ₪0 60ה דפחום סאו= זשט דאם ודה קפס---ס--5הםה פד 0 0 500 המהס המד דאפא סאו= ה. איתור רשומת אב בחבורה: איתור של רשומת אב של מופע כלשהו בחבורה. ד 808ח-561 0 ה 00שם השצצוס סצו= אם במהלך סריקת רשומות הנושא דרוש לאתר את רשומת המחלקה שבה הוא נלמד נשתמש בפקודה: דפ דאם ודה קםס--=0-- 508506 0 3 00שה המאעשס סצות ו. איתור רשומה לפי תוכן של שדה. מיועד לאיתור רשומת בן בחבורה על פי תוכן של אחד או יותר משדות הנתונים המופיעים בה. .....0ו-0818 9 6פח-561 [0 דאב !0] ג !/ סההאה-6זסספז סאו= לאחר איתור רשומת מחלקה עם מפתח 135 אפשר לאתר את רשומת המרצה שתאריך תחילת העבודה שלו הוא א: םדה ס-- דחה דפ סד "איי פטסו דאםוזח קפס- "0ס--05₪5 שד 0 דאםההטס הגוע חפה םד סאו= .שד ם-- דח ד5 8א₪51 אם בסכימה הוגדרה צורת איתור החבורה "מרצים במחלקה" באמצעות המשפט שהחד מפאצוס 0 פססוא אסודא00., ניתן להטיל את איתור המופע של החבורה על מערכת 68. נשתמש בפקודות הבאות: .סו--דא=וודתה קסכ סד "135 מטסוא .מז ס-- דחה דפ סד "אי פשסו דאשוודחקפס---0--5 ה 0 חד גוע המהסשד סאוו .שדהם-- זה ד5 6אופ ז. איתור רשומת הבן הבאה על פי תוכן של שדה: הפקודה מאפשרת סריקה אוטומטית של רשומות הבן עד למציאת רשומה שתוכן אחד או יותר של השדות שלה זהה לערך נתון כלשהו ( וח0)ו-0818). מבנה הפקודה: ...818-0) 6 סהבח-561 אורודוצ דאשא סאות לאחר שמאתרים רשומת מרצה שתאריך תחילת העבודה שלו הוא א, ניתן לאתר את רשומת המרצה הבאה העונה על תנאי זה (₪ד3/ס-ד₪ 4 ד5 קבל ערך לאחר פעולת האיתור הראשונה): שד ס- דהה ד5 5186 דאשוודה ה ק5ס--=ס-- 5 0 שד אוה דוצ דאשא סאו= 17 3 פקודות נוספות בנוסף לפקודות הבסיסיות סאן= [- 65 כוללות השפה לטיפול בנתונים את הפקודות הבאות: -- 57086: הוספת רשומה חדשה לבסיס הנתונים. הרשומה מקושרת אוטומטית למופעים של החבורות שבהן יש לה "חברות אוטומטית". -- שד |םס: ביטול רשומה קיימת מבסיס הנתונים. לפקודה זו יש מספר אופציות. ניתן להגדיר אופציה שבה תבוטל הרשומה רק אם אין לה רשומות בן בכל החבורות בהן הוגדרה כרשומת אב. קיימת אפשרות לבטל את הרשומה יחד עם כל רשומות הבן שהוגדרו כחברים הכרחיים בלבד, בעוד כל הרשומות שהוגדרו כלא-הכרחיים מנותקים מחברותם בחבורה ונשארים בבסיס הנתונים. האפשרות הראשונה מקבילה לאפשרות הביטול במודל ההיררכי שבה לא ניתן לבטל רשומת אב ללא ביטול קודם של רשומות הבן שלה. -- ץחוססו: עדכון תוכן של רשומה קיימת בבסיס הנתונים. יש לאתר תחילה את הרשומה בעזרת אחת מפקודות סאו=. -- דמםפאו: קישור רשומת בן למופע כלשהו של חבורה שבה הרשומה מוגדרת בסוג חברות לא הכרחי. על התוכנית לאתר תחילה את המופע המתאים של החבורה. -- =/סווםף: ניתוק רשומת בן ממופע של חבורה שבה היא מוגדרת בסוג חברות לא הכרחי. 18 0. סיכוס המלצות 086-.)ץ00048 מהוות אבן דרך חשובה בהתפתחות מערכות פו8ס. המלצות אלה קבעו לראשונה בצורה פורמלית את המושגים סכימה, תת-סכימה, שפה לטיפול בנתונים וכדומה. דוח 086 מגדיר שלש שפות להגדרת נתונים ושפה אחת לטיפול בהם: - 001 867808 -- שפה להגדרת הסכימה, -- 001 508008008 -- שפה להגדרת תת-הסכימה, -- 00806ח8 ] !020000 08/100!8ו6% -- שפה להגדרת ארגון הנתונים ביחידות האחסון, -‏ אם -- שפה לטיפול בנתונים. מודל הנתונים הרשתי שמתואר בדוח דפס מאפשר בניית מבני נתונים מורכבים אשר יכולים לייצג את המציאות במודל הנתונים. שפת .ואס היא שפה פרוצדורלית המאפשרת את הניווט בתוך בסיס הנתונים. השפה מורכבת ומכילה אוסף גדול של פקודות ומבנים שונים של אותה פקודה. 19 1. שאלות 1. ציין מהן התכונות של "חבורה" לפי הגדרת .0008%1. 2 לולאות אסורות במודל הרשתי של .00048%1. האם אתה יכול לחשוב על דוגמא שבה איסור זה יכול להוות חיסרון? האם החיסרון משמעותי? 3 מדוע מוגדר המושג /4₪₪? מה המאפיינים שלו? לשם מה הוא מופיע בסכימה? קרא את. השאלות הבאות והשב "נכון/לא-נכון": חבורה הינה קשר בעל שם בין סוגי רשומות. סכימה מכילה רק חבורה אחת. עבור כל סוג רשומה הסכימה מגדירה שטח או שטחים שבהם יאוחסנו המופעים של הרשומות. חבורה בסכימה יכולה להיות ללא מיון. ניתן להגדיר סוג רשומה בסכימה כרשומת בן בחבורה אחת או יותר. האפשרות שסוג רשומה יהיה גם "אב" וגם '"בן" באותה חבורה אינה נתמכת ע'יי וסם. האפשרות שסוג רשומה יהיה גם "אב" וגם "בן" היא שמאפשרת ייצוג רשתות. חבורה סינגולרית מורכבת מרשומת אב ולפחות מרשומת בן אחת. קשר :א ניתן לייצוג רק באמצעות חבורה אחת. 5. הגדר מהן אפשרויות הגישה והאיתור של רשומה במודל הרשתי. מה היתרונות והחסרונות של כל שיטה? 6. יש לנהל נתונים אודות חברות, מניות ובעלי המניות. הקשרים האפשריים הם: 100 חברה---מניות: רב--רב-"ערכי מניות--בעל מניות: | רב--רב-ערכי. הצג את החבורות הדרושות לניהול נתונים אלה. כיצד תענה על השאילתות הבאות: -- מיהם כל בעלי המניות של חברה מסויימת? -- רשימת המניות שבעל מניות מסויים מחזיק. פרק זץ מודל הנתונים הטבלאי (|1006! 0313 ובּחסוז₪6!3) 1. מבוא 2. המודל הטבלאי - הגדרה ומושגי יסוד 3 שפות לטיפול ביחסים . 8 ו₪ח75%6ץ5 . סיכום - . שאלות 1.1 1. מבוא השלב הקשה ביותר בתכנון בסיס נתונים הינו קביעת מודל נתונים המספק הן את דרישות עיבוד הנתונים והן את הצורה שבה רואה הארגון את הנתונים. אם המודל אינו מקיים שני תנאים אלה יוצאים היישום או הארגון נפסדים. בפרקים הקודמים הוצגו שני מודלים שונים לייצוג נתונים, המודל ההיררכי והמודל הרשתי, אשר רוב מערכות 08/8 הקיימות היום מבוססות עליהם. קשה לעיתים להציג מודלים אלו, ובפרט המורכבים שבהם, לאנשים שאינם אנשי מקצוע בעיבוד נתונים משום הקשרים המסועפים הקיימים בין הנתונים. למרות פיתוח מערכות עיבוד נתונים המבוסטות על מודלים אלו לא פסק המאמץ לחפש דרכים ושיטות להצגה פשוטה יותר של מודל הנתונים עבור המשתמש שאינו מומחה בעיבוד נתונים ולאפשר תכנון פשוט ונוח יותר של המודל. זהו הרקע לפיתוח מודל הנתונים הטבלאי (/006)!! 0818 !008ו36!81). המודל הטבלאי הוצג לראשונה בצורה פורמלית בתחילת שנות ה-70 על ידי 0006 .=.₪ ממעבדות הפיתוח של יבמ. הוא ראה את היתרון העיקרי של המודל באפשרות ההצגה המדוייקת והפשוטה של בסיס הנתונים. הדיוק נובע מכך שהמודל מתבסס על התורה המתמטית של הקבוצות ומשתמש באופרטורים לטיפול ביחסים (5ח0וו86/9). הפשטות מושגת על ידי הצגת היחסים במבנה של טבלה (6!מפד) המוכר ומובן לכל, ועל ידי טיפול ביחסים באמצעות מספר קטן של אופרטורים פשוטים. אחד המאפיינים החשובים של המודל הטבלאי הוא: הפעלת אופרטור על טבלה יוצרת טבלה חדשה. נסביר זאת בהמשך. בשלב כתיבת הספר מעטות עדיין המערכות המסחריות המשתמשות במודל הטבלאי אך אלו הולכות ורבות. מערכות אלו נמצאות בשלבי פיתוח מואץ ומושקעים מאמצים גדולים על ידי יצרנים שונים להשיג רמת יעילות גבוהה באחסון הנתונים ובגישה אליהם. הקושי העיקרי בהשגת היעילות נובע מכך שהדרישה המרכזית היא להשאיר את תכנון המודל חופשי להכנסת שינויים וגמיש מבחינת אפשרויות הגישה לנתונים. כלומר, למנוע כל מגבלה ולהשיג את מירב היעילות. שתי דרישות אלו נוגדות זו את זו וזאת ראינו במודלים הקודמים: גישה יעילה הושגה כאשר "הוקרבה" למענה הגמישות שבאחסנת וניהול הנתונים. התכונות של המודל הטבלאי הן פשטות תכנון המבנה, גמישות ניהול הנתונים, פשטות וגמישות הגישה לנתונים. תכונות אלו מכוונות את השימוש במודל אל מערכות ויישומים שבהם קשה לקבוע מראש את מבנה הנתונים ואת מסלולי הגישה או היחסים שבין הנתונים. המודל מאפשר גישה אל בסיס הנתונים עלדידי משתמש בלתי מנוסה בעיבוד נתונים באמצעות שפת היחסים הפשוטה והמובנת. הוא יכול לאגור את הנתונים שלו ולאתר אותם לשם הפקת הפלט הדרוש לו בעבודתו. מערכות המודל הטבלאי אינן מכוונות בשלב זה אל שירותי בסיס הנתונים המרכזי של הארגון הפועל בקצב תנועות גבוה (כדי עשרות ומאות תנועות בדקה אחת). מטרתו אינה עדכון רשומות בקובץ או איתור רשומות בודדות, כפי שמקובל במערכת בנקאית למשל, או במערכת ייצור. המטרה העיקרית היא לתת למשתמש כלי עבודה, אשר יהיה פשוט להבנה ולתפעול, ואשר יאפשר לו לנסח מהם הנתונים הדרושים לו ולא איך לאחזר אותם מתוך הקובץ. המשתמש במודל הטבלאי עוסק בהפקת מידע או דוח, ואינו מטפל ברשומות כמקובל במודלים שבהם עסקנו עד עתה. כיום קיימות מספר מערכות המבוססות על מודל הנתונים הטבלאי אשר מותקנות כבסיס- נתונים מרכזי בארגון לשם שירותים מרכזיים או מחלקתיים. הידועות ביותר מבין מערכות אלו 13 הן ₪8ה שאו של חברת עחס|סהה60ד [החסו8ופה, 501/05 ו827כ של חברת | אפו, ₪ 00 של חברת 6ז50/09 |8חסו₪9/81, סהוסא של חברת 655 |החסווהּאז. 2 המודל הטבלאי - הגדרה ומושגי יסוד המודל הטבלאי הינו מודל פורמלי לייצוג הישויות והקשרים שביניהן. המודל ההיררכי והמודל הרשתי השתמשו בשני מבנים שונים -- הרשומה והקשר. הרשומה מייצגת את הישות, כלומר את הקשרים שבין התכונות של הישות. הקשר מייצג את הקשר בין קבוצות ישות שונות. המודל הטבלאי משתמש במבנה אחד בלבד, היחס או הטבלה, לייצוג הישויות והקשרים ביניהן ובכך התרומה הגדולה לפשטות המבנה וההבנה. 1 ליחס (ח₪6/800 ) נתון אוסף של קבוצות חס.... 2ס, 1ס לא בהכרח זרות. היחס הינו אוסף מסודר של איברים <ח62,...0 ,01>, כך שכל איבר ו₪ מתאים לקבוצה וס עבור ח...,2 ,1=!. ניתן לתאר את היחס כאוסף של שורות המחולקות לעמודות, או בפשטות -- טבלה שבה השורה מייצגת ישות והעמודה מייצגת את התכונות של הישות. סדר העמודות זהה בכל השורות ולכן לכל תכונה יש מקום קבוע בתוך השורה. הערך בכל עמודה נלקח מתוך תחום הערכים האפשריים של אותה עמודה. במודל הנתונים הטבלאי השורה הינה ה"רשומה" והעמודות הן ה"שדות" של הרשומה. כל טבלה הינה יחידה עצמאית ואפשר לראות אותה כ"קובץ" חלקי בתוך בסיס הנתונים. נסמן את היחס ב-₪ ונרשום: (חס...,01,02)ח. למספר הקבוצות או העמודות ביחס נקרא המימד של היחס. לדוגמא, יחס המכיל שתי קבוצות יקרא יחס בינרי: ₪)01, 02( הערכים המופיעים בעמודות נלקחים מתוך תחום הערכים האפשריים של התכונה, ולכן ניתן להגדיר את היחס כקבוצה חלקית למכפלה הקרטזית של הקבוצות, או בצורה מתמטית: חת... % 2 א 1כ = (חס... ,02 ,ופא היחס אינו מכיל שתי שורות זהות, כלומר הוא אינו מתיר קיום שתי שורות שונות שמכילות ערכים זהים בכל העמודות שלהן. נשתמש בדוגמא כדי להסביר את מושג היחס. נגדיר יחס במימד 3 בשם "עובדים"במפעל" המתאר לכל עובד את שלש התכונות הבאות: שם העובד, גיל-עובד ועיסוק. לכל תכונה ניתן להגדיר קבוצה המכילה את אוסף כל הערכים שלה. קבוצת הגיל למשל תכיל את כל המספרים החיוביים בין 18 ל-120 וקבוצת העיסוקים תכיל את כל העיסוקים האפשריים במפעל. אפשר לרשום את היחס בצורה הבאה: 14 עובדים-במפעל (שם-עובד, גיל-עובד, עיסוק) נציג את היחס במבנה טבלה שבה כל שורה מייצגת עובד אחד וכל עמודה מייצגת תכונה אחת. בכל עמודה מופיע ערך אחד מתוך אוסף הערכים המוגדר בקבוצה של אותה עמודה. כל ערך מופיע בקבוצה פעם אחת בלבד אך הוא עשוי להופיע פעמים אחדות בתוך היחס (הטבלה), בשורות שונות. לכל יחס יש שם המזהה אותו באופן חד-משמעי ולכל עמודה ביחס יש שם המזהה את התכונה המיוצגת בה. שמות עיסוק מנתח-מערכות מתכנת מפעיל מהנדס פקיר שם-דעובד | גיל-עובד | עסק | | מה | | ממה | מנתח תרשים 1 - 7: יחס "עובדים"במפעל" עמודות שונות עשויות לקבל את ערכיהן מתוך קבוצת תכונות אחת. לדוגמא, קבוצת מספרי הטלפון מיועדת לעמודה המייצגת את מספר הטלפון בבית העובד וגם לעמודה המייצגת את מספר הטלפון במפעל. לשתי עמודות אלו יש לקבוע שמות שונים המזהים בצורה חד-משמעית את התפקיד (6וס₪) של כל אחת מהן. את היחס, הכולל עבור כל עובד את מספרי הטלפון במפעל ובבית, נגדיר כך: עובדים במפעל (שם-עובד, גיל-עובד, עיסוק, טלפון בבית, טלפון-במפעל) בתרשים 2--7 מוצג יחס במימד 5. המימד לא נקבע על-ידי מספר הקבוצות של התכונות אלא על-ידי מספר התכונות, או העמודות, המרכיבות את היחס. 15 טלפון משה 222 מנתח-מערכות רן דור מתכנת מפעיל 2-4 צילה שרה הנר פקיר 2868 מנתח-מערכות אמכו לי תרשים 2-: יחס שבו קבוצה אחת משרתת שתי תכונות שונות היחס מוצג כטבלה למתכנן או למשתמש אך למעשה זהו מבנה פיסי הדומה לקובץ סדרתי פשוט שבו השורות הן הרשומות והעמודות מתאימות לשדות הרשומה. הטבלה הינה מקרה מיוחד של המבנה המתמטי יחס שיש לו הגדרה מדוייקת יותר מהגדרת הקובץ. המודל הטבלאי מבוסס על העיקרון שתחת אילוצים מסויימים ניתן לראות את הקובץ כמו יחס מתמטי וכתוצאה -- להשתמש בתורת הקבוצות והיחסים לטיפול במבנה זה. הפעולות המבוצעות בקבצים שונות לחלוטין מהפעולות המבוצעות ביחסים. הייחוד של המודל הטבלאי נובע מהשימוש ביחס לייצוג הישות ולייצוג הקשר בין קבוצות ישות שונות. כל שורה ביחס מייצגת את הקשרים בין התכונות של ישות אחת. הקשר בין שתי קבוצות ישות שונות יתבצע על-ידי קיום שתי תכונות זהות בשני היחסים. נתבונן לדוגמא ביחס. "מחלקות'"י וביחס "עובדים"במפעל" אשר מתוארים בשתי טבלאות נפרדות בתרשים 3--71 ומנוסחים כך: מחלקות (מספר-מחלקה, שם-מחלקה, תקציב) עובדים-במפעל (שם-עובד, גיל-עובד, עיסוק) מכיון שכל עובד שייך למחלקה מסויימת ניתן להוסיף ליחס "עובדים-במפעל" את התכונה "מספר מחלקה" אשר תייצג את המחלקה שבה מועסק העובד. עתה אפשר ליצור את הקשר בין היחסים, או הטבלאות, באמצעות התכונה "מספר מחלקה" שמופיע בכל אחד מהם. בטבלאות שלפנינו אין כל מיון באיזו שהיא עמודה מכיון שהמודל אינו מחייב לעשות זאת. בהמשך נבחן את כדאיות המיון לפי מפתח לשם יעול אחזור הנתונים. 16 תכונה משותפת תרשים : - 7: קשר בין קבוצות ישות במודל הטבלאי 2 מפתחות (8שץ8) ) בכל יחס יש להגדיר תכונה אחת, או יותר, אשר מזהה את השורה בצורה חד-משמעית. לתכונה או מספר תכונות אלה נקרא מפתח. המפתח מקבל ערכים שונים בכל שורה ולכן אין שתי שורות המכילות את אותו הערך של המפתח והזיהוי שלהן הוא חד"משמעי. ניתן לומר שהמיפוי בין המפתח לבין תחום הערכים של המפתח הוא מיפוי חד--חד-ערכי. אם המפתח מורכב ממספר תכונות נאמר שזהו מפתח מורכב (ע68 סחטסכו 00). אפשרי שמספר תכונות תזהיינה בצורה חד"משמעית את הישות, כלומר קיימים מספר מפתחות שונים אשר נגדירם בשם מפתחות אפשריים (665 0/0816ח08). מבין כל המפתחות האפשריים נבחר בצורה שרירותית מפתח אחד אשר יהיה מפתח ראשי (/68 עזפוחוזק) ויזהה את הישות או את השורה בטבלה. מפתח ראשי חייב לקבל ערך ממשי ואינו יכול לקבל ערך בלתי מוגדר (6ט81 ווטא), אשר אינו מופיע בקבוצה של התכונה. שאר התכונות יכולות לקבל ערכים "בלתי מוגדרים". מקובל לסמן קו מתחת התכונה המשתמשת המפתח ראשי. נגדיר יחס "סטודנטים" שבו התכונות הבאות: סטודנטים (מספר זהות, מספר-סטודנט, שם-סטודנט, כתובת) אפשר לבחור ביחס זה במספר מפתחות אפשריים כגון מטפר זהות, מספר סטודנט, שם סטודנט וכתובת (מתוך הנחה שאין שני סטודנטים בעלי שם זהה הגרים באותה כתובת). מבין כל המפתחות האפשריים האלה אפשר לבחור במפתח ראשי "מספר סטודנט" אשר אינו יכול לקבל ערכים בלתי מוגדרים ואינו מורכב: סטודנטים (מספר-זהות, מספר-סטודנט, שם-סטודנט, כתובת) 17 סטודנטים ה ה 0 ל( 2 ל תרשים 4 - 7: מפתחות אפשריים ומפתח ראשי ביחס "סטודנטים" 8 חיפהי -- לעיתים אין ביחס תכונה כלשהי אשר יכולה לזהות את הישות באופן חד"משמעי. במקרה זה אי אפשר לקבוע מפתח ראשי מתוך התכונות הקיימות ויש להוסיף תכונה נוספת, יזומה. נדגים זאת באמצעות היחס "הזמנת-לקוח" המייצגת את ההזמנות שמבצעים הלקוחות של המפעל: הזמנת-לקוח (מספר-לקוח, שם-לקוח, תאריך-הזמנה, ערך-הזמנה) אף לא אחת מתכונות אלו מזהה בצורה חד-משמעית את הישות. ללקוח אחד עשויות להיות הזמנות רבות והוא יכול לבצע מספר הזמנות באותו תאריך ובאותו סכום. נוסיף את התכונה היזומה "מספר-הזמנה" ונגדיר אותה כמפתח ראשי. היחס יוצג עתה בצורה הבאה: הזמנת-לקוח (מספר-הזמנה, מספר-לקוח, שם-לקוח, תאריך-הזמנה, ערך-הזמנה) הזמנת-לקוח מפתח ראשי 1 (יזום) תרשים 5 - 7: מפתח ראשי כתכונה יזומה 108 תכונה המשתתפת במפתח אפשרי אחד לפחות תקרא תכונה עיקרית (6וטט!זווה 6וחוזק) ותכונה שאינה משתתפת באף מפתח אפשרי תקרא תכונה לא עיקרית (6וטט!זו1 סוחוזק-חס!). לדוגמא, ביחס "הזמנת-לקוח" רק התכונה "מספר הזמנה" תקרא תכונה עיקרית וכל שאר התכונות תקראנה תכונות לא-עיקריות. לסיכום נגדיר בצורה פורמלית יותר את המפתח. מפתח 6 של יחס 8 הינו תכונה אחת או יותר המקיימות את התנאים הבאים: -- ויהי חד משמעי (ח0ו1///091ח69! סטףוחנ): בכל שורה של היחס ‏ הערך של 6 מזהה בצורה חד-משמעית את השורה, -- אי כפילות (עסח08חט0סזחסא): אם המפתח 6 הוא מפתח מורכב לא ניתן להוציא מתוך המפתח תכונה המשתתפת בו מבלי לפגוע בזיהוי החד-משמעי. 3 שפות לטיפול ביחסיס מודל הנתונים הטבלאי מארגן את כל הנתונים בצורת טבלאות (יחסים) ומגדיר שפת נתונים לטיפול ביחסים (פפַּטפַח3.! 0313 !008ו86191). האופרטורים של השפה מאפשרים בניית יחסים חדשים מתוך יחסים קיימים. ליחסים החדשים זכות קיום משל עצמם ברגע שהם נוצרו וניתן לטפל בהם באמצעות אותם אופרטורים, כמו שמטפלים ביחסים הרגילים. השפות לטיפול ביחסים שייכות לאחת משתי קבוצות: -- שפות אלגבריות מגדירות אוסף של אופרטורים שניתן להפעיל על היחסים לקבלת יחסים חדשים. המשתמש מפעיל את האופרטורים השונים על היחסים בסדר לוגי מסויים עד לקבלת יחס שמכיל את הנתונים הדרושים. -- שפות עיליות מאפשרות למשתמש להגדיר כל שהוא רוצה ומשאירות את ההחלטה על שיטת הביצוע בידי מערכת 8מס. מקובל גם לקרוא לשפות אלה בשם הכולל -- |008ו₪6/81 5 08!0. היתרון שלהן הוא בכך שהמשתמש אינו מגדיר כיצד להגיע לנתונים הדרושים והוא מאפשר למערכת לבצע אופטימיזציה לקבלת אחזור יעיל. החסרון של שפות אלה הוא הקושי ביישום שלהן. מערכות 08/ 501, 085 ואחרות מהוות יישום של גישות אלו. במערכות מסחריות נמצא בדרך כלל שילוב של שפָה אלגברית ושפה עילית. 1 אלגברה של יחסיס (8ז4/080 ו8הס8ו6) שפת הנתונים האלגברית לטיפול ביחסים מגדירה אוסף של אופרטורים המאפשרים את הטיפול ביחסים קיימים לשם קבלת אוסף של יחסים חדשים. אופרטורים אלה יכולים להיות איחוד (או חיבור), חיסור, היטל וצירוף. האופרטורים פועלים על יחס אחד או על שני יחסים בהתאם לענין. 109 1 איחוד יחסיס (חסוחש) איחוד שני יחסים מגדיל את התחום של תכונה זהה בשני היחסים ומייצר יחס שלישי. שורות זהות בשני היחסים יוצרות רק שורה אחת ביחס החדש. נסמן את אופרטור האיחוד ב-. האיחוד יכול להתבצע בין שני יחסים בלבד ולכן איחוד של יותר משני יחסים נעשה בשלבים: איחוד של שני יחסים ואיחוד התוצאה עם היחס השלישי. אצמו ₪ ₪3)03(=31)01( ₪ ₪2 )02( 2 1 נבחן דוגמא לאיחוד שני יחסים. ₪1 מגדיר את כל המוצרים המיועדים לשוק המקומי ו₪27 מגדיר את כל המוצרים המיועדים ליצוא. שוק-מקומי (קוד"מוצר, שם"מוצר) = ₪1 יצוא (קוד"מוצר, שם-מוצר) 2 חלק מהמוצרים המיועדים לשוק המקומי מיועדים גם ליצוא ולכן קיימות שורות זהות בשני היחסים. נגדיר יחס חדש ₪3 שהינו איחוד של שני היחסים 31 ו27ה. ₪3 מייצג את כל המוצרים שהארגון מייצר ואשר מיועדים לשוק המקומי ולייצוא. מוצרים המופיעים בשני היחסים יופיעו פעם אחת בלבד ביחס החדש. 2ח+1ח3%ח תרשים 6 - 7: איחוד שני יחסים 110 2 1 : קוד-מוצר שם-מוצר שם-מוצר מוצר"3 מוצר"6 מוצר-9 3-10 2 אי הברא מ ישן הביא ישן | שר | | 6 | מוצר"6 מוצר-8 מוצר-9 תרשים 7 - 7: איחוד שני יחסים 2 חיסור יחסיס (8סח6זווום) בפעולת חיסור בין שני יחסים מורידים מיחס אחד את השורות הזהות המופיעות גם ביחס השני, ומעבירים ליחס החדש את השורות הנותרות בלבד (אלו הן השורות מהיחס הראשון). סדר היחסים חשוב בפעולה זו כמקובל בכל פעולת חיסור אלגברית. את אופרטור החיסור נסמן בכר-). -%-- 7-7 5ח 1 --+- (₪2)02-(5)05(=81)01 2ח 5%1ח>ס | תרשים 8 - 7: חיסור יחסים |11 דוגמא לחיסור שני יחסים ניתנת בתרשים 9--7. היחס ₪5 הינו ההפרש בין היחס ₪1 ליחס 2 ומייצג את כל המוצרים המיועדים לשוק המקומי בלבד. מוצרים המיועדים לשוק המקומי ולשוק היצוא לא יופיעו ביחס החדש (מוצר-3 ומוצר-9). 22 קור-מוצר שם-מוצר 12 קוד-מוצר שם-מוצר | | מוצר-8 תרשים פ - 7: דוגמא לחיסור יחסים 3 הלטל ( ח6000[סזק ) פעולת ההיטל מאפשרת להוציא עמודות (או תכונות) מתוך יחס קיים ולבנות מהן יחס חדש. את העמודות שהוצאו אפשר לסדר בכל סדר רצוי. פעולת ההיטל מבטלת שורות זהות, אם נוצרות כאלו, ביחס החדש. את אופרטור ההיטל מסמנים ב-דד [(1כ)51 ]0 א) = (6026 הר תרשים סו - 7: היטל של יחס לדוגמא נניח שקיים יחס 81 המכיל שלש תכונות: עובד (שם-עובד, גיל-עובד, עיסוק) = 81 172 פעולות ההיטל מאפשרת שליפת תכונה אחת או יותר ובניית יחס חדש שמכיל רק תכונות אלה. נגדיר יחס ₪2 המהווה היטל של 81 ומכיל רק את שם העובד ואת עיסוקו. בצורה דומה ניחן להגדיר יחס ₪3 שהוא היטל של ₪1 ומכיל רק את העיסוקים במפעל. ביחס 83 מופיע כל עיסוק פעם אחת בלבד מכיוון שאופרטור ההיטל מבטל את השורות הזהות. (שם"עובד. עיסוק) 1 = 82 ב מ | שת | מהנרס תרשים ו - 7: דוגמא להיטל יחסים 4 צירוף יחסיס (חוסנ) פעולת הצירוף בונה יחס חדש מתוך שנים או יותר יחסים נתונים על פי תכונה אחת משותפת בשניהם. אל היחס החדש מועברות שורות שבהן נמצאה התכונה המשותפת בפעולה הנקראת צירוף טבעי (חוסנ |8זטופא) והן מכילות את צירוף התכונות משני היחסים. ניתן להגדיר פעולות צירוף שמעבירות אל היחס החדש שורות המכילות ערכים לא שווים, ערכים גדולים או ערכים קטנים מערך כלשהו באחד היחסים. נסמן את אופרטור הצירוף ב-א. 0 -- תכונה משותפת (₪2)00 + 31 = (7)07 13 דוגמא לצירוף טבעי של שני יחסים ניתנת בתרשים 12--7. היחס החדש 83 הוא צירוף של שני היחסים 1 ו₪27 אשר נעשה על פי התכונה המשותפת "מספר מחלקה". ביחס החדש מופיעות רק השורות שבהן הערכים של מספר המחלקה שווים בשני היחסים. מחלקה שמספרה 9 למשל אינה מופיעה ביחס החדש כי אינה מופיעה ביחס 81. ביחס החדש מופיעות כל התכונות משני היחסים ש"צורפו". 2 -- מחלקות שא ור | מש | ₪ | הנדסת ייצור א מספר-מחלקה (מטפר-מחלקה)₪2 + ₪1 = ₪3 | ה |[ א | החש | ששו | | פה | א | החחתסר | מחתאסרן 9 | מה | ממח | אוה | תרשים 12 - 7: דוגמא לצירוף של יחסים ניתן להגדירפעולת הצירוף שמעבירה ליחס החדש את כל השורות משני היחסים. אם לערך מסויים ביחס אחד אין מקביל ביחס האחר ישארו חלק מהתכונות ביחס החדש ריקות, מקובל לקרוא לצירוף זה צירוף מלא (חוסנ ווט₪). היחס החדש יכיל את כל התכונות משני היחסים המקוריים. פעולת הצירוף הטבעי מאפשרת שליפת שורות מסויימות מתוך יחס מקורי. נניח שיש לקבל את רשימת כל העובדים במחלקת "פיתוח תוכנה". לשם כך נכנה יחס עזר ₪4 אשר מכיל שורה אחת בלבד ונצרף אותו אל יחס 1ה. התוצאה היא יחס ₪5 אשר מכיל רק את העובדים במחלקת פיתות-תוכנה. גם כאן מכיל היחס החדש את התכונות משני היחסים המקוריים. 144 שם-עובד מספר-מחלקה שם-מחלקה 2 | תרשים ו - 7: צירוף מלא של יחסים מתרשים 12 - 7 1 עובר 4 יחס-עזר שם-עובר עיסוק [ 7 5 ]= [ ]> | אתה [ =[ > ] = | מספר-מחלקה שם-מחלקה (מספר-מחלקה) ₪5=81*84 מספר-מחלקה שם"מחלקה מתכנת מנתח-מערכות תרשים 4 - 7: צירוף טבעי עם יחס עזר אם רוצים לקבל רק את שמות העובדים והעיסוקים שלהם במחלקת פיתוח תוכנה ניתן לבצע היטל על היחס החדש ולהוציא מתוכו רק את העמודות הדרושות. התוצאה של ביצוע פעולה כלשהי ביחסים מפיקה יחס חדש שעליו ניתן לפעול כמו על היחסים המקוריים שמהם הוא נבנה, ולפי תכונה זו אפשר לענות על דרישה זו. אפשר להשיג את התוצאה המבוקשת על ידי שילוב האופרטורים של צירוף והיטל בהוראה אחת: שם-עובד, עיסוק] ((מספר"מחלקה) 34 א 1א)6=11 15 5 דוגמאות נוספות לפעולות ביחסיס דוגמא לשמוש באופרטורים צירוף והיטל לשליפת נתונים מתוך מודל הנתונים הטבלאי ניתנת בתרשים 15--7 שבו מוצגים שלשה יחסים. יחס ₪1 מגדיר את כל הפריטים שהמפעל רוכש, יחס ₪2 מגדיר את כל הספקים לפריטים אלו. יחס 3 מגדיר את הקשר הרב--רב- ערכי בין פריט לספק ומציין את הכמות של כל פריט המסופקת על ידי כל ספק. 3 פריט-ספק מספריפריט | מספריספק | נסת | 1 פריטים מ | " | 9 | > | | א | צא |[ = | תרשים 15 - 7: בסיס נתונים טבלאי במפעל דרישות העיבוד: -- שמות הספקים המספקים פריטים למפעל: נבצע היטל על היחס ₪2 ונשלוף רק את העמודה של שם הספק. [א₪2]5 -- שמות הספקים הפועלים בתל-אביב: נבנה יחס עזר ₪4 שמכיל רק את שם העיר המבוקשת ונבצע צירוף עם היחס ₪2. 4 יחס עזר [אפ] ((4)0 * 82) זד -- אילו פריטים ניתן להשיג בכל עיר ועיר: נבצע תחילה צירוף של יחס 82 ליחס ₪2 לקבלת רשימת הפריטים המסופקים על ידי כל ספק. על היחס החדש הנה נבצע היטל לשליפת העמודות של מספר פריט ועיר כמבוקש. [0,*] ((*32)8 א 82) דד פעולת ההיטל מצמצמת שורות זהות ולכן ביחס הסופי יופיע כל פריט פעם אחת בלבד עבור כל עיר שבה ניתן לקנותו. 1106 -- מהם מחירי הפריטים שמספק ספק 63: נבנה יחס עזר 4 שמכיל רק את ספק 53. נבצע חיתוך בינו לבין היחס ₪3 ונקבל את רשימת כל הפריטים המסופקים על ידי ספק 58. עתה נבצע צירוף של היחס החדש עם היחס 81 לקבלת הנתונים הנמצאים בטבלה זו. לבסוף נבצע היטל לקבלת עמודות הפריט והמחיר בלבד. [מק ,*ק] ( (%ק) ₪1 א( [*ק] ((*5) 3 א 4א)ח)ת לחזרה, האם תוכל לבנות את טבלאות הנתונים עבור כל היחסים שהוצגו בסעיף זה? 2 חשבון של יחסיס (פטוטס/03 |8ח0ו46/81) בסעיף קודם הוצגה האלגברה של היחסים המגדירה אוסף של אופרטורים אשר המשתמש מפעיל על יחסים נתונים לשם קבלת היחס המבוקש. סדר הפעולות לקבלת היחס המבוקש, התוצאה, נקבע על ידי המשתמש. בחשבון יחסים המשתמש מגדיר את היחס המבוקש ואינו מציין את הדרך שבה יש לפעול עד לקבלתו. שיטה זו מאפשרת לו לציין מה הוא רוצה לקבל ולא איך הוא רוצה לקבל את התוצאה. על מערכת 088 לקבוע את השלבים הדרושים ואת האופרטורים של אלגברת היחסים שיש להפעיל לקבלת היחס המבוקש. למשתמש בשפת חשבון יחסים יש שטח עבודה (650806ז0/)) אחד או יותר המשמשים לתקשורת עם מערכת פ8ם. המערכת שולפת את השורות המתאימות מתוך היחסים ומעבירה אותם לשטח העבודה לטיפול המשתמש בשפת השאילתא או באמצעות השפה המארחת. לכל משתמש במערכת שטח עבודה משלו, כמקובל בשיטות עבודה במערכת של עיבוד רב-משימות (חַחופ8זוטוא), ולכן הטיפול ביחסים הנמצאים בשטח העבודה אינו יוצר התנגשות עם משתמשים אחרים. 06 הציג בשנת 1972 שפה בשם 0/4 41 המבוססות על חשבון יחסים והראה שניתן להפוך כל שאילתא המוצגת בצורת חשבון יחסים לביטוי מתאים באלגברה של יחסים. מערכת סא שפותחה באוניברסיטת ברקלי בקליפורניה מבוססת על שיטה זו. 1 הצגת שאילתא בחשבון של יחסים שאילתא בחשבון יחסים מורכבת משני חלקים: חלק המציג את התכונות (עמודות) של היחס שעל המערכת לשלוף וחלק המציג את התנאי הלוגי שעל השורות לקיים על מנת שתבחרנה מתוך היחס. נציג תחילה מספר סימונים מקובלים בחשבון יחסים: גם סאג / או מס / לא זסא דד שוה |9008 = לא שוה 6008 )סח ָָ קטן מד ח8ח] 1085 * קטן מ-או שוה לד 60081 זס 1655 % 17 גדול מ חח ז0810זט > גדול מ-או שוה ל- 6008 זס זס681זם > כך ש- (*) -- 1081 500 : קיים זסוזוחהטף !515160118 ב עבור כל... זסוווחה טף |58זסטוח( ש (*) הביטוי בצר שמאל של הנקודותיים מציין מה יש לשלוף מבסיס הנתונים והביטוי מצר ימין מציין את תנאי השליפה כדי לציין שם של עמודה בשאילחא יש לציין תחילה לאיזה יחס היא שייכת: "מספר-ספקיי ביחס ספקים ירשם סא-8)(5 .₪(8. אם לא משתמשים בשמות זהים לעמודות ביחסים שונים אין צורך להשתמש במציין שם-היחס (זפוזווטם). אין צורך לרשום מציין לעמודה ₪105 מכיון שהשם 016 נמצא ביחס אחד בלבד, וכן |אשדו ביחס סחס, אשר אינו מופיע בכל מקום אחר. השאילתות שבדוגמאות מנוסחות בצורה מתמטית פורמלית. במערכות מסחריות פותחו שפות שאילתות פשוטות יותר כפי שניווכח בהמשך. זו 0 סמ ] [1 1 ט] [ 1 | תרשים 16 - 7: בסיס נתונים טבלאי לשאילתות נשתמש בטבלאות המוצגות בתרשים 16--7 להדגמת שאילתות המבוססות על חשבון יחסים. א. דרושים "מספרי ספק" של כל הספקים של הפריט 1כ. את התוצאה נקבל ביחס 8. כלומר היחס ₪ יכיל את העמודה "מספר ספק" עבור כל הפריטים שמספרם 1 '1קי = סא-םזו.סחס :(סא-605.סחס) ה 158 00 לוה ולאולפלהוהההווטיורריה ו ה ב. דרושה רשימת שמות הספקים המספקים את פריט 21 = סא-505 .סחס) פחס ב:ם!אא-05פ .05פ) ה ('1קי = ואשזו .סחס א סא-קטפ .מטפ השאילתא מבקשת לשלוף את כל שמות הספקים (!38א-6 מתוך היחס ₪(5 שעבורם קיימת שורה ביחס 03 שבו הערך של מספר הספק שווה למספר הספק ביחס ₪(5 והערך של מספר פריט שווה לערך ₪1 דוגמא זו מציגה קשר בין שני היחסים ספק והזמנה. ג. דרושה רשימת שמות הספקים שאינם מספקים את פריטים 1קו37 = סא- 5 0ה0) סח ב ר: (₪|אא- 50 50) ם צ 'דפי =ושדו.פהס)א סא-ט5. 50 ( ('9ק'י=|אשדו.פחס ד. דרושה רשימת שמות הספקים והערים, עבור כל הספקים של פריטים שמחירם נמוך מ- 100 = סא-אש דו. אש דו) ואםדו 3 :(צדוס. 5 ,םואהא-6 50 .מעפ)ם / סא-סה80.0=סא->ש5. פה 0/ אשדו .סהס (100>ם6וחק. ואפדו 2 שפת חק )4 שיטת רישום מתמטית של השאילתא אינה נוחה למשתמש ולכן פותחה, כפי שכבר צויין, שפת אק ןא המבוססת על חשבון יחסים אבל נוחה יותר מנקודת מבט המשתמש. נציג כאן בקצרה את שפת 04 |ג, שהיא אחת מהשפות לטיפול בבסיס נתונים טבלאי. מבנה כללי של פקודת השליפה: [81ו!- הסוס םשרו ש] (51!ו-181061) הזה ח-806ק5אזסצו 0 דאו ד 86ח-80806אזסצו:שם שטח העבודה שאליו יש להעביר את התשובה, 1 |-וחָז1:אוסף של שמות עמודות אשר את הערכים שלהן יש להעביר לשטח העבודה. לפני שם עמודה יש לציין את שם היחס שבו העמודה מופיעה, ]-חסווס:רשימת תנאי השליפה ואופציות של מיון היחס שנשלף לתוך שטח העבודה. התנאי לא ירשם אם אין בו צורך, כמו בדוגמא הראשונה שלהלן. דוגמאות לשאילתות בשפת ההק | א. דרושים שמות הספקים במערכת. . (םוהא-קש5.ט50) ופד סדאו זט ב. דרושים מספרי פריט ושם-פריט של פריטים שמחירם נמוך מ-100. (פואהא-ואםדו .ואשדו ,סא-א=דו .ואפדו) ופד סדאו ז (100 > ם6ותק .ואש דו) םמפתה/ש ג. דרושים מספרי הספק של כל הספקים של פריט 1ק. (סא--505 .סחס) ופד סדאו זפ 199 ('1י = ואשדו .סמס) פמםחצ ד. דרושה רשימת שמות הספקים של הפריט 01. (=/בא-505.505) ופד סדא! ז65 סאג סא-ק5. 505 = סא-ק50. סחס) פס 3 מהםהצו '1טי = ושםזו.פהס 4. ₪ שםזפץ5 מ-5₪ד5/9 היא מערכת נסיונית של חברת יבמ אשר פותחה במעבדות המחקר שלה ב- 6 ח89 ככלי מחקר של מערכות ניהול בסיסי נתונים טבלאיים. שפת 6550051 של מערכת זו הוכרזה על ידי יבמ בראשית 1981 עבור המערכת לניהול בסיסי נתונים -- 801/08 ( 5/5100 2818 /6חָטחַח1.8 עזסטב) 60זטזסטזו6), וב-1983 -- עבור המערכת 282 (8)8ם 2 8856). בהמשך נציג את הנושאים המרכזיים בארכיטקטורה של מערכת מעניינת זו. 1 מרכיבי המערכת 5 6 0818 |8ח0ו36/91 -- |סח <>--6> 8 |8חסוז36/8 הח916ץ5 6% 6 510806 |8ח0ו6/80 -- !פה <>---> 68 ו|חסוז8/ ה6זפעץ תרשים 17 - 7: מבנה פונקציונלי של 8-שפדפצפ מּ-/ש 6/5 מציגה בפני המשתמש מבנה טבלאי. בתוכה היא מורכבת משתי תת-מערכות 5 ₪55 ושני מישקים (1018088ח) עיקריים וסח וד51. תת-המערכת 455 מטפלת בניהול ובאחסון הטבלאות ביחידות האחסון, בהקצאת מקום אחסון, הקצאת מאגרי קלט ופלט וגיבוי התנועות ובוחרת את מסלולי הגישה היעילים אל הנתונים שבטבלאות. כדי להשיג יעילות בביצוע הגישות לנתונים יש להשתמש בטכניקות שתאפשרנה גישה ישירה. אלו מושגות באמצעות מצביעים אשר יוצרים למעשה מבנה של רשתות, ובאמצעות אינדקסים אשר נקבעים על-ידי מתכנן בסיס הנתונים. בכך מוצג המודל הפנימי של המערכת כמודל רשתי על אף המופע החיצוני שלו כמודל טבלאי. לסיכום נאמר שתת-המערכת ₪55 100 = = = = בב ₪ 2 , הינה שיטת גישה משוכללת אשר מנהלת את הטבלאות המאוחסנות בבסיס הנתונים. הגישה אל תת-המערכת 455 הינה באמצעות המישק ₪91 אשר מתווך בין המערכת לבין העולם החיצון. הוא מורכב מאוסף של אופרטורים שניתן להפעילם ישירות מחוך שפות מארחות כגון 00801 או 1/ ו השפת העילית (408806ח18 עזסט) ה8ו!0ח= 60זטוסטזו6 היא חלק מ-וסם ומאפשרת את הטיפול בטבלאות. הפקודות שלה מתורגמות לשפת מכונה באמצעות קדם- מהדר של סח אשר גם מבצע אופטימיזציה של מסלולי הגישה לנתונים. כל פקודות המכונה המטפלות בגישה לנתונים עבור תוכנית מסויימת נקראות מודול הגישה (000|6 460658) ומאוחסנות בבסיס הנתונים. בזמן ריצת התוכנית נשלף מודול הגישה מבסיס הנתונים לשם ביצוע פעולות קלט ופלט. 2 הגדרת נתוניס מבנה הנתונים העיקרי במערכת הוא הטבלה הבסיסית (180/8 4886). הגדרת הטבלאות והכנסת שינויים בהן נעשות בצורה פשוטה, נוחה וברורה למשתמש. במונחים של .60048 הטבלה הבסיסית מקבילה לסוג הרשומה. המשתמש יכול לפעול על הטבלאות הבסיסיות, אך במקרים רבים נוח לו לפעול על מבנה מופשט אשר מגדיר את זוית הראייה או המבט שלו (אוסו/) על הנתונים. הוא יעדיף את הדרך הזו כאשר ברצונו לעבוד בקביעות על חלק מטבלה בסיסית או על צירוף של חלקים של טבלאות בסיסיות. המבנה המופשט אינו מאוחסן בצורה פיסית בבסיס הנתונים אלא נבנה מתוך הטבלאות הבסיסיות בזמן הביצוע ואין לו קיום עצמאי בדומה לטבלאות הבסיסיות. המשתמש יכול לפעול בו-זמנית על מספר מבנים מופשטים כאלה, ולכן הם אינם מקבילים למושג תת- סכימה שבמודל הרשתי. תת-סכימה אחת מגדירה עבור המשתמש את כל סוגי הרשומות שהוא עוסק בהן. מבנה חיצוני י מבנה טבלאי מבטה בסיסית מבנה פנימי תרשים 18 - 7: שלש הרמות של המערכת 11 טבלה בסיסית מוגדרת באמצעות פקודת = |8ד-=ד₪ח0 אשר כוללת את שם הטבלה, השדות והמפתחות שלה. בגמר ביצוע הפקודה נוצרת טבלה בסיסית ריקה חדשה שניתן להתחיל לרשום בה נתונים. לדוגמא נציג הגדרת טבלה חדשה 8שן ₪1ק(5 שבה שלשה שדות סא-8 םואגא-0 80 , צדוס. כל השדות המוגדרים כלאדריקים (.))א-0א) הם מפתחות של הטבלה ומשמשים לזיהוי הרשומה. בעת הזנת נתונים שדות אלו חייבים להכיל ערך כלשהו, נומרי או אלפביתי, בהתאם להגדרת השדה. ,(1שא-0א ,(8) ה הוזס) סא-0 50) מפו ומק ט5 ם וט ד סדההס ,(30) 4ה0ס) פואהא-ט90 ((20) ה0) צדוס מבטלים טבלה מבסיס הנתונים באמצעות פקודות = |8 ד שסהם, לדוגמא: הפו וק 5 = וה הד קסהס קיימת אפשרות להרחיב טבלה בסיסית על ידי הוספת שדות חדשים (עמודות). לדוגמא, נוסיף את השדה "כתובת" לטבלת הספקים. . הש וק 5 = ופד סאגקא= ((04)40) 55מהססה-ט6 פופו ססג אפשר להגדיר אינדקסים לשדות (עמודות) של הטבלה כדי לשפר את זמן הביצוע של השאילתות והגישות לטבלה. למשתמש אין אפשרות להשתמש באינדקס בצורה ישירה ולכן קיומו או אי-קיומו של אינדקס אינה משפיעה על תוכניות היישום אלא רק על זמן הביצוע של הגישות לנתונים. ליצירת אינדקס אסאו-80 לשדה ₪ואא-ק(5 אשר בטבלה שו 90 נשתמש בהוראה הבאה: | שו /א- 5 חמשו 50 אס אשסאו-50 אססאו דפס המבט של המשתמש על בסיס הנתונים או על חלקו מוגדר באמצעות פקודת /שפוץ שאוקפס, זו הגדרה של טבלה מדומה אשר אינה קיימת באופן ממשי בבסיס הנתונים, אלא מוצגת מחוך טבלה בסיסית אחת או יותר בעת העיבוד. -- שם הטבלה המדומה הכוללת אשדו-סםט והע עופוע סאומטס -- שדות נבחרים מתוך =סומק ,םוא א-ואשזו דסם 551 5 -- הטבלה הבסיסית לפי וו=דו ואסהת -- תנאי לבחירת הרשומות (שורות) 0 < ססוםק ממפח/ הטבלה המדומה |אם זו-סם )4 / מורכבת מ-2 עמודות ושורותיה מכילות רק את הפריטים שמחירם עולה על 1000. לאחר הגדרת טבלה מדומה יכול המשתמש לפעול בה כאילו היחה טבלה קיימת באופן ממשי בבסיס הנתונים. הסבר נוסף על מבנה ההוראות ניתן בהמשך. 55005) 3 65005 היא שפה להגדרת הטבלאות והטיפול בהן במערכת 8. השפה שואבת מספר רעיונות הן מאלגברה של היחסים והן מחשבון של יחסים. היא משתמשת בביטויים פשוטים בשפה האנגלית אשר מאפשרים רישום נוח ומובן של השאילתא על ידי המשתמש במערכת. המבנה הבסיסי של פקודה בשפת ‏ 1ש550: -- שדות (עמודות) נבחרים, מתוך 1 ד 95 -- שם הטבלה, לפי חסוו8ו6ז ואסם- -- תנאים לבחירת הרשומות (שדות) חסוזו0הסס-!8סופסו שמשהו -- את התוצאה למיין לפי... !| צם הפסחס 112 נציג את השימוש בשפה באמצעות מספר דוגמאות המבוססות על תרשים 18--7. א. דרושים פרטי הספק שמספרו 51 - 0 ות (צ כל העמודות) 2 ומש קפ ואסח- ,8' = ס0א-900 =הםשח/ש ב. דרושים שם ומחיר של הפריטים שמחירם נמוך מ-100. את התוצאה יש למיין לפי שם הפריט. םשסוחק ,םוא א-ששדו 0 | אשזו אסח- 0 > םסומק םחם הצ םגא-וםזו +צם הפסהס (אם לא צויין אחרת -- מיון בסדר עולה) ג. דרושה רשימת "מספרי הספק" של כל הספקים של פריט ,> סא-קטפ 0 | סחס אסח- ', שי = סא-ששדו םמםחש ד. דרושה רשימת שמות הספקים של פריט ,= =וגא-505 ד0סם |םפ קפ ואסםז = 0א-900 כ סא-5 זסם |₪פ סחס | אסתץ ,שי = סא-אשדו מהפח/ו מכיון שהשפה אינה מאפשרת בחירה ביותר מטבלה אחת, יש להשתמש בפקודות ₪01 961 מוכלות (65100א). התוצאה של משפט ד0ם 851 בטבלה סחס (המשפט הפנימי) יפיק טבלה שתכלול רק את מספרי הספקים שמספקים פריט ,ת המשפט החיצוני הפועל על טבלה 90 יבחר מתוכה רק את שמות הספקים שנבחרו באמצעות המשפט הפנימי. ה. דרוש לעדכן את מחיר פריט , של-100. -- שם הטבלה םדו שד סקט -- המחיר החדש 0=םסוחק וב -- בחירת הפריט לעדכון ', ק'=סא-ואסדו שתפה/ו 3 ו. יש לבטל את רשומות הספקים של פריט ,= בתנאי שמחיר הפריט נמוך מ-100. * -- לציון כל העמודות בשורה * שדם |סס קפ אסם- = 0א-905 םתםהצש סא-קטשטפ ךס וספ סחס ואסה- = סא-שפדו םתםח/ש סא-אפדו 0 |5פ אשדו ואסה- סאג םי = סא-שפזו בג ג | 0 מסומק בהוראה זו לפנינו שלש פקודות ד₪0 !85 מוכלות. הפקודה ברמה הנמוכה, הפועלת על טבלה /וטדו תבחר את הפריטים (מספרי פריט) אשר ממלאים תנאי כפול: מספרם ,> ומחירם נמוך מ1007. רשימת מספרי פריט אלו תועבר למשפט הבא שפועל על טבלה סמס ובו תבחרנה רשומות המכילות את מספרי הספק של פריטים אלו. בשלב האחרון תבוצע הפעולה בטבלה ₪ 5 אשר חבטל את כל העמודות בשורה (סימן אי), השימוש בכמה משפטים הפועלים על טבלאות אחדות נובע מכך שבטבלת הספקים (680₪) אין נתונים אשר יאפשרו את ביצוע הפעולה. נתונים אלו נמצאים בטבלאות אחרות. הקשר ביניהן הוא דינמי ונוצר בעת הדרישה האקראית לנתונים. זוהי אחת התכונות העיקריות של המודל הטבלאי -- אין בו קביעה מוקדמת של מסלולי גישה. במערכות מסחריות נכתבות הוראות .550/51 בצורה פשוטה יותר ונוחה יותר מבחינתו של המשתמש. השוני הבולט לעומת הדוגמאות שלהלן הוא שאפשר לרשום יותר מטבלה אחת במשפט 501 .]85 ואפשר לרשום תנאי שליפה מורכבים אשר מטפלים במספר טבלאות וביחס ביניהן. דוגמאות ראה בפרק .80 4 ניווט אוטומטי מערכת ₪ מאפשרת למשתמש גישה לנתונים וטיפול בהם מבלי שיצטרך לציין את מסלולי הגישה או את המבנה הפיסי של הנתונים. בשיטה זו המשתמש אומר מה הוא רוצה ולא איך לעשות כי המערכת בוחרת עבורו את הדרך האופטימלית להשגת התשובה. בתת-מערכת ₪5 קיימים אלגוריתמים שתפקידם לבחור באסטרטגית חיפוש אופטימלית לקבלת עלות מינימלית. האלגוריתם מתחשב באומדני צריכת זמן יע"מ ומספר פעולות קלט/פלט שיש לבצע. השירות הזה של המערכת גורם לכך שתוכניות היישום פשוטות יותר ואינן תלויות במבנה הנתונים. 5 אי-תלות בנתונים שלש טכניקות פנימיות של מערכת ₪ מאפשרות השגת ביצוע יעיל של הוראות השפה: 14 - קביעת מסלול גישה יעיל באמצעות אלגוריתם האופטימיזציה של 5ס, -- הוספה או ביטול של מסלולי גישה לנתונים ללא כל השפעה על תוכנית היישום, - הקבצת רשומות בשטח אחסון ליעול הגישה הסדרתית אליהן. שלש השיטות האלה שקופות מבחינת המשתמש ועל כן מאפשרות לו אי-תלות בנתונים. למרות זאת יכולים הן המשתמש והן מנהל בסיס הנתונים להשפיע על יעילות המערכת, המשתמש יכול לבחור במבני שאילתא יעילים יותר ומנהל בסיס הנתונים יכול להגדיר יחידות ושטחי אחסון לשם שיפור הגישה. שניהם יוכלו להעזר למטרה זו בסטטיסטיקות התפעול המצטברות על-ידי המערכת בזמן עבודתה. שינויים שמנהל בסיס הנתונים יעשה בהגדרת שטחי אחסון לא ישפיעו על תוכניות היישום כל עוד לא יפגע בהגדרת הטבלאות. 5. סיכוס המודל הטבלאי מכיל מספר יתרונות על פני שני המודלים האחרים שהוצגו. -- אי תלות בנתונים. קיים שיפור ניכר במידת אי-התלות בנתונים וכל שינוי במבנה הפיסי או במודל הנתונים אינו משפיע על תוכניות היישום. המישק של המודל עם המשתמש אינו מכיל כל התייחסות למצביעים, שיטות גישה, מיקום בבסיס הנתונים וכדומה. -- פשטות ונוחות שימוש. מודל הנתונים משתמש רק בטבלאות דו-ממדיות ולכן הוא פשוט יותר מבחינת המשתמש לעומת מבני רשתות ועצים היררכיים. הטיפול בקשרים רב-- רב-ערכיים הינו מיידי ואינו מחייב קשרים או מבנים מסייעים כמו בשני המודלים האחרים. -- בסיס תיאורטי. המודל הטבלאי מבוסס על תיאוריה מתמטית המאפשרת הגדרה מדוייקת וטובה של מבנה בסיס הנתונים והקשרים שבין הנתונים. -- גמישות בגישה לנתונים. המודל הטבלאי מציג מספר אופרטורים אלגבריים בעלי עוצמה רבה. אופרטורים כגון איחוד טבלאות, חיתוך טבלאות והיטל מאפשרים למשתמש מגוון רחב של פעולות לפתרון רוב הבעיות שעומדות בפניו. למודל הטבלאי יתרונות חשובים אשר מייעדים אותו לשימוש בתחומים שונים ועל ידי משתמשים שונים באופן עצמאי ללא עזרת אנשי מקצוע בענ"א. הדבר בולט במיוחד למטרת הצגת שאילתות, הפקת דוחות מזדמנים ובניית תוכניות יישום מזדמנות. כולם מנצלים את התכונה החשובה של האפשרות לומר מה ולא איך, הפשטות של התקשורת אל המערכת וחשוב לא פחות -- הגמישות הרבה בהגדרה ושינוי של הנתונים, השאילתות ותוכניות היישום. יתרונות אלו מכוונות את השימוש במודל בעיקר במערכות אינטראקטיביות. עם זאת קיים קושי מסויים בשימוש במודל והוא הפעלתו במערכות שבהן נדרש זמן תגובה קצר לתנועות, בין אם הן מגיעות ברשת תקשורת או במערכות עיבוד באצווה. הדבר בולט במיוחד בבסיסי נתונים גדולים המכילים טבלאות רבות בגודל של מאות אלפים ומיליוני שורות כל אחת. מערכות אלו תשתמשנה במודל היררכי או רשתי. מכיון שהמודל ראה לפניו יעילות וגמישות בעבודת המשתמש הוא פגע ביעילות הביצוע במערכות גדולות. ואולי נובע הדבר משוני מהותי בצורת העבודה במודלים השונים. המודל הטבלאי מקבל 15 משפט בשפת !8500 שהוא למעשה תוכנית עיבוד שלימה הפועלת על טבלאות ומפיקה טבלה כפלט. המודל ההיררכי והמודל הרשתי מגיבים על הוראות קלט ופלט של תוכנית היישום וכל פעולתם -- קריאה או כתיבה של רשומה אחת או יותר במסלול גישה מוגדר וקבוע. במודל הטבלאי הקשר בין הנתונים הוא דינמי בעת ביצוע המשפט של השפה והוא גמיש לחלוטין מבחינת המשתמש. במודלים האחרים הקשר בין הרשומות קבוע מראש ועל כן גם ניתן לאופטימיזציה ברמה גבוהה יותר. היתרונות שבהפעלת המודל הטבלאי הם רבים ועל כן כבר קיימות מספר מערכות מסחריות המשתמשות בו. עבודת המחקר בעיצומה והיא תביא ללא טפק לשיפורים נוספים ולאפשרות להפעילו בתחומים נוספים. 6. שאלות 1 קרא את המשפטים הבאים העוסקים בפעולת היטל והשב "נכון/לא נכון". בוחרת שורה בודדת מתוך טבלה. בוחרת אף לא אחת, אחת או יותר שורות מתוך טבלה. בוחרת את העמודה של המפתח הראשי. בוחרת עמודה אחת מתוך טבלה. בוחרת אחת או יותר עמודות מתוך טבלה. בונה טבלה חדשה משתי טבלאות קיימות. 2 האם פעולת החיתוך מתאימה להגדרה הנ"ל? 3 אם גוזרים שתי טבלאות מתוך טבלה בצורה נכונה, האם ניתן לשחזר את הטבלה המקורית באמצעות אופרטור החיתוך? 4 מה משמעות המושג "דרגה של יחס"? 5. מהו ההבדל בין תחום (חופוחסט), ותכונה (6)טפ!זו)8)? 6 מהו ההבדל בין מפתח ראשי לבין מפתחות משניים? 16 פרק ח תכנון מודל הנתוניס (ח0ו065 |6ססו בּוּ) 1. מבוא 2. תהליך תכנון בסיס הנתונים 3. תלות בין נתונים 4. תיקנון . צורות תקניות 5 6. איחוד מודלים של משתמש 7. שאלות 8 . נספח - שיקולי שטח אחסנה במעבר לצורה תקנית שלישית / 17 1. מבוא מטרת תכנון מודל הנתונים הינו בנית מודל שיהווה ייצוג נכון ושלם של המציאות. בסיס הנתונים מייצג את הישויות ואת הארועים החשובים מנקודת מבט הארגון. מודל הנתונים הינו הבסיס לתכנון בסיס נתונים שיספק את צרכי עיבוד הנתונים של הארגון בצורה הטובה ביותר. חשוב לציין שכל ייצוג של המציאות הינו מטבע הדברים לא מושלם מאחר וזהו תיאור של המציאות ולא המציאות עצמה. הישויות והתכונות שנבחרו לייצוג המציאות הן הרלוונטיות ביותר מבחינת צרכי עיבוד הנתונים. לרוב מתעלמים מכל הישויות והתכונות שאינן רלוונטיות מבחינת הארגון. מודל הנתונים חייב לייצג את המציאות בצורה הנכונה והאמינה ביותר. מודל נתונים לא נכון מהווה סכנה מכיון שתהליכי קבלת ההחלטות המבוססים על מידע המתקבל מהמודל לא יהיו אמינים. לדוגמא המתכנן מחליט על קשר חד--רב-ערכי בין פריט וספק, כלומר פריט אחד מסופק על ידי מספר ספקים אבל לא להפך, בעוד שבמציאות מתקיים קשר רב--רב-ערכי בין שתי ישויות אלה. ברור שהמידע המופק מהמודל הזה יהיה לא אמין מאחר ואינו מייצג נכונה את המציאות. בעיה דומה יכולה להתעורר אם המתכנן מתעלם מחלק מהתכונות החשובות של הישות. לדוגמא יתכן שהתכונה "נפח" של פריט אינה מופיעה במודל. השמטת תכונה זו ממודל הנתונים תמנע הכנת תהליך אופטימיזציה ממוחשב לתכנון התובלה מאחר ונפח הפריט הינו אחד הפרמטרים החשובים. תהליך תכנון מודל הנתונים הינו מורכב גם בגלל תלותו בזמן. ישויות ותכונות המיצגות את המציאות בצורה נכונה ושלימה היום, יתכן שלא תעשינה זאת מחר. נשתמש שוב בדוגמא של "נפח" הפריט. בזמן תכנון מודל הנתונים לא נאמר למתכנן שיש כוונה למחשב את תהליך תכנון העמסת המשאיות בסחורה ולכן המודל שהוא בנה היה שלם. לאחר הפעלת מערכת המידע נוצר הצורך בתכנון העמסת המשאיות בסחורה ואז התברר שאחד הפרמטרים החשובים לביצוע התכנון אינו מופיע במודל. זוהי דוגמא למודל שהינו שלם ונכון בנקודת זמן אחת ואינו נכון או שלם בנקודת זמן אחרת. עקרונית, המתכנן יכול להחליט שהמודל המתוכנן יכיל גם ישויות ותכונות נוספות מעבר לצרכי הארגון ברגע נתון. עליו לשקול את הגמישות ומהירות ההענות לצרכי מידע חדשים מול עלות האיסוף והעיבוד של נתונים שאינם רלוונטים לארגון כרגע. בזמן תכנון מודל הנתונים עומדות בפני המתכנן מספר רב של אלטרנטיבות. חלק מהן טובות יוחר וחלק מהן פחות טובות מכל מיני סיבות. לדוגמא אחת הבעיות השכיחות ביותרהיא איזה תכונות לקבץ ביחד לקבלת רשומה או מבנה לוגי אחד. בדרך כלל קימות מספר צורות שונות בהן ניתן לקבץ אוסף של מאות ואלפי תכונות למודל נתונים אחד. חלק מהצורות מתגלה כטוב מבחינת עיבוד הנתונים בעוד חלק מהצורות ייצור בעיות רציניות בעתיד. כפי שנאמר מודל הנתונים משתנה עם הזמן. בדרך כלל יש צורך להוסיף תכונות חדשות, ישויות חדשות, אפשרויות גישה לרשומות. אם שינויים אלה יחייבו שינויים כבדים במאות ואלפי תוכניות יישום הרי שעלות שמירת עדכניות ונכונות מודל הנתונים תהיה גבוהה למדי. בפרק זה נתרכז בתהליך תכנון מודל הנתונים ונציג את אותן הנקודות שהן בעלות חשיבות בתהליך זה. אחד המושגים החשובים ביותר בתהליך בנית מודל הנתונים הינו מושג התלות (ץ0600ח608כ). התלות קובעת אילוצים מסוימים של הערכים שמודל הנתונים יכול לקבל. 1|9 2 תהליך תכנון בסיס הנתוניס המבט של מחלקה א / / מחלקה + ניתוח נתונים וררישות - בניית בניית מודלים מודל תפישתי של משתמשים איחוד ושילוב מודלים 1 בניית מורל לוגי בניית הסכימה אינדקסים, מצביעים ד : בניית מסלולי גישה, מודל פיסי יחידות אחסון | תרשִים 1 - 8: תהליך תכנון בסיס הנתונים תהליך תכנון בסיס הנתונים מכיל שלשה שלבים עיקריים: -- תכנון המודל התפישתי, -- תכנון המודל לוגי, -- תכנון המודל הפיסי. 100 1 תכנון המודל התפישתי אחד התפקידים החשובים ביותר של מנהל בסיס הנתונים ((084) הוא תכנון המודל התפישתי (₪006 |00108ח00)) של הארגון. המודל חייב לייצג בצורה הטובה ביותר את הישויות והקשרים שביניהן באופן בלתי תלוי במערכת פוא כלשהי או במערכת מחשב שבה הןא יופעל. בעת התכנון יש לעסוק בהבנת הנתונים והמידע הזורמים בארגון ולהתעלם מכל הנושאים של יישום המודל במערכת 0815 מסויימת. תכנון המודל התפישתי כולל מספר שלבים עיקריים: א. ניתוח נתונים ודרישות בשלב זה יש לזהות את כל הנתונים ודרישות המידע בארגון. הזיהוי מתבצע באמצעות הטכניקות המקובלות של ניתוח מערכות כגון איסוף נתונים, ראיון, תצפיות וכדומה. מכיון שעורכים בשלב זה ניתוח דרישות של מספר יישומים שונים חשוב להשתמש בהקדרות אחידות ותקניות של הנתונין כדי למנוע סתירות וחוסר עקביות של המודל. אחת הבעיות שבפניהן עומדים המתכננים הוא הצורך והקושי לאךֶסוף נתונים אודות שימושים עתידיים של בסיס הנתונים. לאחר הפעלת בסיס הנתונים מגיעות בדרך כלל דרישות חדשות המתבטאות ביישומים חדשים, הוספת ישויות חדשות והוספת קשרים בין ישויות. איתור דרישות אלה בשלב תכנון המודל התפישתי יצמצם את הבעיות המתעוררות כאשר נדרשים שינויים ועדכונים במועד מאוחר יותר. מידע אודות נפחי נתונים ושיעור הפעילות והשימוש בהם יכול לעזור רבות בתכנון המודל הפיסי בשלב הבא. בגמר תהליך ניתוח הדרישות חייב מנהל בסיס הנתונים להכיר את התמונה המלאה של צרכי עיבוד הנתונים בארגון. בהתבסס על הבנה זו עליו לזהות את הישויות הרלוונטיות, את התכונות של כל ישות ואת המפתחות של כל אחת מהן. בשלב זה עליו לדעת מספר נתונים פיסיים כגון מספר מופעים של ישות, גודל השדה הדרוש לייצוג תכונה מסויימת ועוד. לאחר קביעת הישויות ושמותיהן הוא מנתח את הקשרים ביניהן ובוחן את סוג ואופי הקשרים. ב. בניית מודלים של משתמש בעת ניתוח הנתונים והדרישות משתמשים במודל לייצוג הישויות והקשרים שביניהן. מכיון שבסיס הנתונים עתיד לשרת מספר רב של משתמשים,יש לבנות לכל משתמש את המודלים או את נקודת המבט שלו. כל אחד מאלו מהווה חלק מתוך המודל התפישתי הכולל ואמנם הם יאוחדו בשלב מאוחר יותר של התכנון. קטימת חפיפה בין שלב תכנון זה והשלב הקדם לו. ג. איחוד מודלים / את כל המודלים של המשתמש המייצגים נקודות מבט שונות על אותם הנתונים.יש לשלב ולאחד למודל תפישתי אחד כולל אשר יצג את כל הנתונים בארגון. קיימות שיטות שונות לאיחוד המודלים. אפשרות אחת היא להתחיל ברמה הנמוכה, כלומר ברמת התכונה או השדה של כל מודל ולבנות מהם מודל משולב. אפשרות אחרת היא להתחיל ברמת מודל המשתמש ולאחד את המודלים האלה למודל משולב. בגמר תהליך השילוב מתקבל המודל התפישתי של הארגון. 11 2 תכנון המודל הלוגי המודל התפישתי שתוכנן בשלב הקודם אינו מתייחס למערכת פאס מסויימת או למודל נתונים לוגי מוכר כמו מודל רשתי, היררכי או טבלאי. המודל התפישתי אינו נותן כל מידע על צורת אחסון הנתונים ועל שיטת השליפה שלהם ועל מנת ליישם את המערכת יש לבצע מיפוי שלו לאחד מהמודלים הלוגיים. קיימת גם אפשרות לפתח את המודל הלוגי באופן ישיר מתוך ניתוח הנתונים והדרישות אך עדיף לפתח תחילה את המודל התפישתי ואחריו -- את המודל הלוגי. ו המיפוי מהמודל התפישתי למודל הלוגי מתבצע על ידי מיפוי כל אחת מהישויות והקשרים למבנים המוכרים על-ידי מערכת 08/5 מסויימת, כמו לדוגמא מיפוי לחבורות, לטבלאות או להיררכיות. יתכן שבשלב זה יהיה צורך לבצע מספר שינויים כי לא תמיד המיפוי הוא ישיר ולעיתים צריך להוסיף רשומת קשר לייצוג קשר רב--רב-ערכי במודל ‏ 00048%1. יש לשים לב לכך שבמודלים מסויימים יש לעסוק כבר בשלב זה בבעיות כמו מסלולי גישה השייכות מטבען לתכנון הפיסי. בתכנון המודל הטבלאי אין צורך לטפל בבעיות מסוג זה. 3 תכנון המודל הפיסי מטרת תכנון המודל הפיסי היא להשיג את הביצועים הטובים ביותר בעלות הנמוכה ביותר. לכן עוסק תהליך התכנון בגורמים שמשפיעים על העלות ועל הביצועים כמו צריכת זמן יע"מ, מספר גישות קלט/פלט, נפח אחסון, טכניקות חיפוש ועוד. התכנון מורכב ממספר צעדים עיקריים: א. מיפוי הישויות למבנים פיסיים. בשלב זה קובעים את המיפוי הפיסי של כל ישות שתיוצג במודל. במודל 000381 למשל יש לקבוע את שטחי האחסון של כל סוג רשומה ואת הקירבה הפיסית שבין סוגי רשומות שונות. ב. מיפוי המבנים הפיסיים ליחידות אחסון. בשלב זה מגדירים את יחידות ושטחי האחסון (גלילים ומסילות), שטחי גלישה, גודל מאגרי קלט/פלט, מספר רשומות לגוש (פָחואססו8 סוסה ), דחיסת נתונים, הצפנת נתונים וכדומה. ג. הגדרת מסלולי גישה. בשלב האחרון קובעים את מסלול הגישה (ח)₪8 460088) לכל רשומה בבסיס הנתונים. מסלול הגישה מגדיר את צורת הפנייה לבסיס הנתונים ואת הדרך לניווט עד לרשומת המטרה. הגישה לרשומה הראשונה בבסיס הנתונים הינה באמצעות אינדקסים או באמצעות תהליכי חישוב על המפתח והניווט נעשה באמצעות מצביעים כלשהם. במודל הטבלאי מסלולי הגישה הינם דינמיים ונקבעים על ידי המערכת בעת העיבוד ללא התערבות המשתמש, וללא הגדרה מוקדמח. 12 3 תלות בין נתוניס בזמן תכנון מודל הנתונים קובע המתכנן אילו ישויות ואילו תכונות של ישויות ייוצגו במודל ובאיזה אופן. ענין זה תקף בכל המודלים הפורמליים שהוצגו עד כה, ההיררכי, הרשתי והטבלאי. המושגים המוגדרים בהמשך, השיקולים והבעיות הנדונים אינם תלויים במודל זה או אחר ועל כן המתכנן חייב לעסוק בהם ללא תלות במערכת ניהול בסיסי הנתונים ליישום המודל. העיסוק בנושא החל עם פיתוח המודל הטבלאי הכולל בסיס מתמטי מפורט. בהמשך נשתמש במספר דוגמאות המבוססות על המודל הטבלאי בעיקר בגלל פשטותו ונוחות הטיפול בו. הצגת הנושא הינה אינטואיטיבית ולא מתמטית פורמלית. הקורא המעוניין בהוכחות הפורמליות מופנה לספרות העניפה בנושא המופיעה ברשימה הביבליוגרפית. 1 תלות פונקציונלית (ע0ח06ח8ס6ס |החסוזסחטת) תלות פונקציונלית קיימת בין תכונה 8 ביחס ה לבין תכונה 4 אם בכל נקודת זמן כל ערך של 4 קשור לערך אחד בלבד של 8. במילים אחרות, תכונה 4 מזהה את תכונה 8 בצורה ש-8 הינה פונקציה של . [8מתוך 4, פמתוך 8 |<פ,8>]== התלות הפונקציונלית קובעת שקיימת פונקציה = שהינה אוסף מסודר של זוגות של ערכים <8,0> כך שהערך 8 נלקח מתוך תחום הערכים של התכונה 8 והערך ₪ נלקח מתוך תחום הערכים של התכונה 8. בכל נקודת זמן עבור כל ערך 8 קיים ערך ₪ אחד לכל היוחר. נשתמש ביחס "סטודנטים" המוצג בתרשים 2--8 להמחשת המושג "תלות פונקציונלית": סטודנטים (מספר-סטודנט, שם-"סטודנט, כתובת-מגורים, שנת-לידה, ארץ-לידה) סטודנטים ה[ | שש | ₪ | ברח אד מדשו שרון אילת = | אשבול 1ו, נתניה - כהן איל עגנון 9, חיפה ארתה צרפת לוי אהרון הרואה סו, רמת-גן מרוו גרמניה תרשים 2 -8: יחס "סטודנטים" המפתח של היחס הוא התכונה "מספר-סטודנט" מכיון שכל שאר התכונות אינן מזהות בצורה חד-משמעית את השורות בטבלה. לכל התכונות המופיעות ביחס "סטודנטים" תלות 13 פונקציונלית בתכונה "מספר-סטודנט" ובכך כל מספר סטודנט מזהה שם-סטודנט אחד בלבד או כתוכת-מגורים אחת בלבד. בתרשים 2--8, מספר סטודנט 111 מזהה סטודנט ששמו כהן איל שגר בחיפה ברחוב עגנון 9. בכיוון ההפוך לא קיימת תלות פונקציונלית כי לדוגמא התכונה "כתובת-מגורים" אינה מגדירה מספר סטודנט אחד בלבד. בתרשים 2--8, בכתובת עגנון 9 חיפה גרים שני סטודנטים שונים: כהן אלי ודוידי משה. בדומה, גם התכונות "שנת-לידה", "ארץ-לידה" או "שם- סטודנט", אינן מגדירות מספר סטודנט אחד בלבד: בשנת לידה 1959 נולדו שני הסטודנטים לוי אהרון ושרון אילת. אפשר להציג באופן גרפי את התלות הפונקציונלית בתוך היחס כפי שמודגם בתרשים .-3 יי ב 5 חישו (מיוון) תרשים 5 - 8: הצגה גרפית לתלות פונקציונלית אם היינו מניחים שלא יתכנו שני סטודנטים בעלי שם זהה, היחס "סטודנטים" היה מכיל שני מפתחות אפשריים: מספר-סטודנט ושם-סטודנט. כל אחת מתכונות אלו תלוייה בתלות פונקציונלית בתכונה השניה, ולכל שאר התכונות תלות פונקציונלית בשתי תכונות אלו. מצב זה מוצג בתרשים 4--8. ₪ יו תרשים 4 - 8: תלות פונקציונלית כפולה לתכונה עשויה להיות תלות פונקציונלית בקבוצה של תכונות ולא רק בתכונה אחת אחרת. דוגמא לכך יכולה להיות תלות של תכונה במפתח מורכב. נשתמש ביחס "ציון-בקורס" שבתרשים 5--8 להדגמת תלות פונקציונלית בקבוצת תכונות. 194 ציון-בקורס מספר-סטודנט, מספר-קורס. ציון) לתכונה "ציון" תלות פונקציונלית בשתי התכונות *מספר-סטודנט", ו'"מספר-קורס" כאחד. הציון אינו תלוי במספר-סטודנט או במספר קורס בנפרד אלא בשילוב שביניהם. זוהי *"תלות פונקציונלית שלימה" אשר תוסבר בהמשך. מספר סטודנט תרשים 5 - 8; יחס "ציון-בקורס" אם קיימות ביחס ₪ תכונות שתלויות תלות פונקציונלית בתכונות אחרות של היחס, ניתן לפצל אותו למספר יחסים במימד קטן יותר מהמימר של ₪. לדוגמא ניתן לפצל את היחס ייסטודנטים" שמופיע בתרשים 2--8 למספר יחסים מכיון שלכל התכונות תלות פונקציונלית במפתח. יחסים אלה מודגמים בתרשים 6--8. הפיצול אינו גורם לאבדן נתונים כי אם נאחד את היחסים המפוצלים נוכל לשחזר את היחס המקורי. מן הראוי לשים לב לכך שהפיצול גרם למידה רבה של כפילות נתונים. שם-סטורנט תרשים 6 - 8: פיצול יחסים התלות הפונקציונלית מהווה חלק מהבנת המשמעות של הנתונים (1/05ח8וח56 2818). התלות הפונקציונלית בין כתובת המגורים למשל לבין מספר הסטודנט מייצגת את העובדה שלכל סטודנט מוגדרת בדיוק כתובת מגורים אחת. זהו למעשה אילוץ הקיים במציאות ובסיס הנתונים צריך לייצג אותו. האילוץ צריך לבוא לידי ביטוי במודל הנתונים כך שמערכת 08818 תוכל לודא את קיומו. 15 6 2 תלות פונקציונלית שלימה (ע0606ח606כ |8חסוסחט= ווטת) תלות פונקציונלית שלימה קיימת בין תכונה 0 ביחס ה לבין התכונות 4 וְ- 8 אם היא תלוייה בשחיהן כאחת ולא בכל אחת מהן לחוד. נשתמש ביחס "שעות פרויקט" שבתרשים 7--8 להסבר המושג תלות פונקציונלית שלימה: שעות-פרוייקט (מספר-עובד, מספר-פרויקט, שם-פרויקט, שעות-עבודה) התכונה "שעות-עבודה" מייצגת את מספר שעות העבודה המצטברות שעובד מסויים השקיע בפרויקט כלשהו, ויש לה תלות פונקציונלית שלימה במפתח המורכב מתכונות "מספר" עובד" ו"מספר-פרויקט". לעומת זאת התכונה "שם-פרויקט" אינה תלויה במפתח המורכב אלא רק בחלק ממנו, בתכונה "מספר-פרויקט" בלבד. שעות-פרויקט מספר-עובר מספר-פרויקט שסיפרויקט שעות-עבורה תרשים 7 - 8: תלות פונקציונלית שלימה אם לתכונה מסויימת יש תלות פונקציונלית שלימה בקבוצת תכונות ומפצלים את היחס שהיא נמצאת בו ליחסים במימד קטן יותר, היחס החדש חייב להכיל את המפתח המורכב ואין אפשרות לבצע פיצול נוסף. פיצול היחס "שעות-פרוייקט" לשני יחסים במימד קטן יותר יצר יחס חדש "שעות-שהושקעו" אשר מכיל את התכונה "שעות-עבודה" ואת המפתח המורכב כולו. ביחס "פרויקטים" קיימת תלות פונקציונלית רגילה. שעות-שהושקעו (מספר-עובד, מספר-פרויקט, שעות-עבודה) פרויקטים (מספר-פרויקט, שם-פרויקט) 3 תלות עוברת (עסח006ח0606 פעווופחפזד) תלות עוברת קיימת בין תכונה 6 ביחס ה לבין תכונה 4 אם לתכונה 6 תלות פונקציונלית בתכונה 8 ולתכונה 8 תלות פונקציונלית בתכונה 4. במקרה זה קיימת תלות עקיפה בין תכונה 6 לבין תכונה ג. נשתמש ביחס "שכר" שבתרשים 8--8 להסבר: שכר (מספר-עובד, שם-עובד, עיסוק, שכר) 106 שכר |( א | 9 | ו | 9 | 20000 דן עמית מנתח-מערכות רן שרוני מתכנת בהן אמנון מנתח-מערכות תרשים 8 - 8: תלות עוברת לעיסוק העובד תלות פונקציונלית במפתח "מספר-עובד", שמשמעה: לכל עובד יש בנקודת זמן עיסוק אחד. מאידך, לשכר אין תלות פונקציונלית במספר העובד כי הוא נקבע על פי העיסוק של העובד, כפי שגם מוצג בתרשים 8--8. בין השכר לבין מספר העובד קיימת תלות עוברת ולא תלות פונקציונלית. 17 4. תיקנון מטרת תהליך התיקנון ((חסוו29זופוחזסא) הינה בניית מודל נתונים יעיל ואמין מבחינת איכות הנתונים המופיעים בו. מושג התיקנון קשור לפיתוח המודל הטבלאי כשם שקשורים בו נושאים אחרים בתחום מערכות בסיסי נתונים. בעת הצגת המודל הטבלאי הגדיר 0000 .=.= שלש רמות תיקנון שונות, ובשלב מאוחר יותר הגדירו חוקרים אחרים רמות נוספות. תהליך התיקנון הינו תהליך אלגוריתמי שמחליף אוסף של יחסים לא מתוקננים באוסף אחר של יחסים תואמים, בעלי מבנה פשוט ומסודר יותר. זהו תהליך הפיך (886ססז0 18פ₪96791) אשר מבטיח שלא יאבדו במהלכו כל נתונים שהם. אפשר להגדיר את התהליך גם בצורה הבאה: תהליך התיקנון הינו הפיכת מבנה יחס מורכב למבנה פשוט יותר באמצעות ביטול קשרי התלות בין התכונות השונות, ללא איבוד נתונים. תרשים 9 - 8: מבנה נתונים מורכב תרשים 9--8 מציג מבנה נתונים מורכב אשר התיקנון שלו יוביל לבניית ארבעה מבנים פשוטים יותר המודגמים בתרשים 10--8. | | | מו תרשים 10 - 8: מבנים מתוקננים 108 1 אנומליות בפעולות אחסנה (5ח0ו06181 5101906 ח! 195 הסח ) להצגת הבעיות הנובעות מטיפול ביחסים לא מתוקננים נשתמש בדוגמא של היחס "עובדים- במפעל" אשר כולל את התכונות הבאות: מספר זהות של העובד, מספר הפרויקט שבו הוא מועסק, שם העובד, שם הפרויקט, תאריך שהתחיל את העבודה בפרויקט ותאריך שסיים את העובדה בפרויקט. המפתח הראשי מורכב משתי התכונות "מספר-זהות" ו"מספר-פרויקט" מכיון שאותו עובד עשוי לעסוק במספר פרויקטים ובפרויקט אחד עשויים לעסוק מספר עובדים: עובדים"במפעל (מספר-זהות, מספר-פרויקט, שסדעובד, שם-פרויקט, תאריך-התחלה, תאריך-סיום) עוברים-במפעל ] חפ[ מ[ ו | | | | מחף | טסה | שי | אנט | ה ה ה הרי מניאם | ו באה אבור הררש 4 תרשים 8-11 יחס לא מתוקנן עם מפתח מורכב "אנומליות" הן שם כולל לבעיות הנגרמות בעת הקמת מודל נתונים. מקובל לזהות את האנומליות הבאות אשר נסביר אותן באמצעות תרשים 11--8: א. אנומלית ההוספה (ע!8וחסח חסווזספחו). לא ניתן להוסיף נתונים אודות פרוייקט חדש אלא אם ידוע לפחות עובד אחד שמועסק בו. הסיבה לכך היא שהמפתח מורכב משני שדות מספר-זהות ומספר-פרויקט, ולכן שניהם חייבים להיות מוגדרים. בדומה לא ניתן להוסיף נתונים אודות עובד חדש אלא אם ידוע לפחות פרויקט אחד שבו הוא מועסק. כאשר מוסיפים נתונים על עובד כלשהו חייבים לציין נתונים נוספים כמו נתוני הפרויקט למשל, אם זהו העובד הראשון בפרויקט למרות שלא זו היתה הכוונה בעת הוספת העובד. בתרשים 11--8 פתיחת הרשומה של רן שרוני גורמת את הוספת הנתונים על פרויקט מספר 159. ב. אנומלית הביטול (ץ/4וחסחג/ חסוו6ו6כ). ביטול נתונים של העובד עלולה לגרום לאובדן נתונים של הפרויקט. ביטול הרשומה של רן שרוני למשל תגרום את אובדן הנתונים של שם פרויקט זברה. בדומה, עם סיום פרויקט כלשהו, ביטול הנתונים שלו עלול לגרום את אובדן הנתונים על העובד. עם ביטול הרשומות המתייחסות לפרויקט כפיר, למשל, נאבד נתונים על העובד דן עמית מכיון שהוא עובד בפרויקט זה בלבד. 1099 ג. אנומלית העדכון (עו4חחסח3 עווסוא). השינוי של שם פרויקט כלשהו מחייב עדכון מספר רב של רשומות מכיון שנתון זה מופיע במספר רשומות. אם המשתמש אינו ער לכך יתכן שהוא יעדכן רק את הרשומה הראשונה בלבד וייצור בכך מצב של חוסר אמינות כי לאותו מספר-פרויקט יהיו מספר שמות שונים. ניתן להוסיף לטבלה שורה עם התוכן הבא: <51267238, 124, אבי רונן, ערבה, 12.1.78, 22.5.83> הוספת שורה זו תגרום מצב שבו לפרויקט 124 יהיו שני שמות שונים בבסיס הנתונים -- "כפיר" ו"ערבה" ובכך תיווצר סתירה למציאות המיוצגת במודל: במציאות שם פרויקט 124 הוא "כפיר". זוהי דוגמא לחוסר האמינות בבסיס הנתונים הנובעת מהופעת התכונה "שם- פרויקט" מספר רב של פעמים. צורת הצגה זו גורמת לבזבוז בשטחי אחסון ולמאמצים ו מיותחרים בעת עדכון בסיס הנתונים. לסיכום, מטרות תהליך התיקנון הן: -- לאפשר ייצוג כל היחטים בבסיס הנתונים, -- לאפשר שימוש באלגוריתמים יעילים לאחזור הנתונים אשר מבוססים על אוסף של אופרטורים פשוטים, -- לשחרר את היחסים המיוצגים בבסיס הנתונים מהאנומליות הבלתי רצויות בזמן ביצוע פעולות הוספה, עדכון וביטול, -- לצמצם את הצורך לבצע שינויים במבנה היחסים לאחר הוספת תכונות או יחסים חדשים. תהליך התיקנון מבוסס על הבנת התלות בין הנתונים המיוצגים בבסיס הנתונים, שמשמעה, זיהוי איזה נתון תלוי באיזה נתון ובאיזו צורה. בהמשך נדון בצורות תקניות של יחסים. 200 5. צורות תקניות 1 צורה תקנית ראשונה (וחזס- |פחזזסא זז -- =א1) יחס נמצא בצורה תקנית ראשונה כאשר כל התכונות ביחס מבוססות על תחום פשוט. מקובל לומר שהתכונות הן אטומיות שאינן ניתנות לחלוקה נוספת. המשמעות היא, שבטבלה המייצגת את היחס יש ערך אחד בדיוק בכל חיתוך שורה--עמודה, ולא אוסף של מספר ערכים. ערכים לא מוגדרים מותרים רק עבור תכונות שאינן משמשות כמפתחות. עובדים תרשים 12 - 8: יחס לא מתוקנן בדוגמא שבתרשים 12--8 התכונות "ילדים" ו-"מנהל-של" אינן תכונות פשוטות. לכל עובד יתכנו מספר ילדים ועובד אחד יכול להיות מנהל של מספר עובדים אחרים. מספר המופעים של כל תכונה כזאת הוא משתנה ובלתי ידוע. לדוגמא נציג שורה אחת מתוך היחס "עובדים": דן עמית 2 5, משהגל, | אמיר, | רן שרוני רונן כהן אמנון כפי שניתן לראות, לעובד בשם משה גל שני ילדים והוא המנהל של שלשה עובדים אחרים. מאחר וכל ערך שמופיע ביחס הזה אינו אטומי נאמר שהיחס אינו נמצא בצורה תקנית ראשונה. ניתן לעבור לצורה תקנית ראשונה על ידי סילוק המופיעים המשתנים של הערכים בתוך היחס. פעולה זו אפשר לבצע בשתי דרכים: א. נניח שמספר הילדים המירבי לעובד הוא עשרה. על סמך הנחה זו נבנה שני יחסים: 201 עובד (מספר-עובד, שםדעובד, ילד-1, ילד27, ....., ילדד10) מנהל (מספר-עובד-מנהל, מספר-עובד-כפוף) ביחס הראשון פרסנו את התכונה "ילדים" למספר תכונות שכל אחת מהן יכולה לקבל ערך אטומי. מאחר ואין אפשרות להניח מה מספר העובדים הכפופים למנהל מסויים בנינו יחס נוסף "מנהל" שמקשר בין מספר העובד של המנהל לבין מספר העובד הכפוף לו. עובר הל מספריעובר | מספר-עובר מנהל תרשים 15 -8: יחס בצורה תקנית ראשונה - אפשרות א' ב. אם ההנחה בדבר מספר הילדים של העובד לא נראית סבירה ניתן לבנות יחס נוסף "ילדים" הקושר את העובד עם הילדים שלו. מנהל ילרים מנהל תרשים 14 -8: יחס בצורה תקנית ראשונה - אפשרות ב' המעבר לצורה תקנית ראשונה אינו גורם לאבדן נתונים אלא לשינוי המבנה של היחסים שביניהם. התיקנון גרם לסילוק הערכים בעלי מופע משתנה ולבניית יחסים תואמים חדשים שמכילים רק ערכים אטומיים. היתרון של יחסים מסוג =א1 לעומת יחסים לא מתוקננים הינו בפשטות הפעולות על היחסים האלו. כתוצאה מכך גם תוכניות היישום המטפלות במבנים אלה פשוטות יותר. עם זאת יש כאן מורכבות מסויימות הנובעת מכך שהתכונה "מספר עובד" נמצאת במספר יחסים שונים. לא די להכיר רק את היחס הלא מתוקנן "עובד" אלא יש להכיר את שלושת היחסים "עובד", "ילדים" ו"מנהל". 22 כל סוגי התלות בין התכונות יכולים להתקיים ביחס בצורתו התקנית הראשונה. הדרישה היחידה היא שהוא יכיל ערכים אטומיים בלבד, כלומר ערכים פשוטים. 2 צורה תקנית שניה (תזזס: |וחזסא 560000---א2) יחס נמצא בצורה תקנית שניה כאשר לכל התכונות ביחס תלות פונקציונלית מלאה בכל המפתחות האפשריים ביחס. המעבר מצורה תקנית ראשונה לצורה תקנית שניה כרוך בסילוק תכונות בעלות תלות חלקית במפתחות האפשריים והוא הכרחי רק אם המפתח מכיל מספר תכונות. כתוצאה מכך יתכן שתהיינה תכונות שתלויות רק בחלק מהמפתח. כאשר המפתח מכיל תכונה אחת בלבד לא קיימת תלות חלקית. יחס =א2 יכול להכיל תלות עוברת. היחס "קורסים" מוצג בתרשים 15--8: קורסים (מספך-סטודנט, מספך-קנבס. שם-סטודנט, שם-קורס, ציון) ליחס זה מפתח אפשרי אחד: "מספר-סטודנט" ו"מספר-קורס" כי סטודנט אחד יכול להשתתף במטפר קורסים ובקורס אחד משתתפים מספר סטודנטים. ניתן לראות שלתכונה "שם-סטודנט" אין תלות פונקציונלית במפתח כולו אלא במספר הסטודנט בלבד. תלות חלקית קיימת בין "שם-קורס" לבין המפתח כי הוא תלוי ב"מספר-קורס" בלבד. רק ל"ציון" יש תלות פונקציונלית מלאה במפתח. מכיון שלא לכל התכונות ביחס "קורסים" תלות פונקציונלית מלאה במפתח, נאמר שהיחס אינו נמצא בצורה תקנית שניה. +0 777 [ |. קורסים / מספר-סטודנט מספר-קורס שם-סטורנט שםיקורס | 6 | | ףר | ספת | תרשים 5: יחס בצורה תקנית ראשונה 2033 ביחס הנמצא בצורה התקנית הראשונה אפשר להבחין במספר תופעות לואי (אנומליות) שהוסברו קודם: -- לא ניתן להוסיף נתונים על ציון של סטודנט אלא אם יודעים את שם הקורס שבו הוא משתתף, -- לא ניתן להוסיף נתונים על קורס אלא אם ידוע לפחות סטודנט אחד שמשתתף בו, -- שם הקורס ושם הסטודנט מופיעים מספר רב של פעמים בבסיס הנתונים ויש סיכון של חוסר עקביות. את כל תופעות הלואי האלה ניתן לסלק אם היחס יועבר לצורה התקנית השניה. העברה זו כרוכה בפיצולו לשלשה יחסים נפרדים: קורסים (מספר-קורס, שם-קורס) סטודנטים (מספר-סטודנט, שם-סטודנט) ציונים (מספר-סטודנט, מספר-קורס, ציון) מספר קורס מספר-דסטודנט | שם-סטורנט תרשים 16 - 8: יחס בצורה תקנית שנייה 3 צורה תקנית שלישית (חחזס= |פוחזסא 6זוחד---א3) יחס נמצא בצורה תקנית שלישית כאשר לכל התכונות תלות פונקציונלית מלאה במפתח. יחס זה מוצג כמו יחס בצורה תקנית שנייה אך לכל התכונות שלו אין תלות עוברת במפתחות האפשריים שלו. עובר (מספר-עוברי שם-זעובר, משרה, שכר) תרשים 17 - 8: יחס המכיל תלות עוברת 204 ביחס "עובד" בתרשים 17--8 קיימת תלות עוברת בין המשרה והשכר כי השכר נקבע על- פי המשרה של העובד ולא על-פי מספר-העובד או שם-העובד. ביטול תלות עוברת זו אפשרי על ידי בניית יחס חדש "משרות" שמכיל את השכר המשולם בהתאם.למשרה. עובד (מספר-עובד, שם-עובד, משרה) משרות (משרה, שכר) המעבר מצורה תקנית שניה לצורה תקנית שלישית מונע את תופעות הלואי הכרוכות בעדכון בסיס הנתונים ואת הכפילויות העלולות להיות במודל הנתונים. כאשר יחס נמצא בצורה תקנית שניה יגרום שינוי השכר למשרה מסויימת את סריקת כל בסיס הנתונים ועדכון כל רשומות העובד המחאימות למשרה זו. בצורה התקנית השלישית הקשר בין המשרה לשכר מופיע פעם אחת בלבד ולכן ביצוע השינוי הוא פשוט והאמינות של בסיס הנתונים נשמרת. הצגת היחס בצורה תקנית שלישית אינה בהכרח הטובה ביותר. קיימים מספר מקרים שבהם עדיף לאחסן נתונים בצורה תקנית ראשונה או שניה, כמו למשל מתוך שיקולים של יעילות ביצועים. בדוגמא הקודמת יש צורך בגישה אחת בלבד לאחזור נתוני עובד כאשר היחס מוצג בצורה תקנית שניה לעומת שתי גישות אשר דרושות ביחס בצורה תקניח שלישית. על המתכנן לשקול את יעילות ופשטות אחזור הנתונים ביחס מול תופעות הלואי אשר קיימות ביחסים שאינם בצורה תקנית שלישית. 4 צורה תקנית שלישית משופרת (וחזס" ו8וחזסא 6/0000סעסם---80%) ההגדרה המקורית של הצורה התקנית השלישית על-ידי 0000 לא היתה שלימה ולא נתנה תשובה למקרים מסויימים. צורה שלישית משופרת פותחה על-ידי 8006 [- 0000, והיא נקראת על שמם -- =א0ם, כדי להבדילה מהצורה התקנית השלישית הקודמת. הגדרת 80% אינה משתמשת בצורה ישירה במושגים של תלות פונקציונלית שלימה ותלות עוברת ואינה מתבססת על הצורות התקניות הראשונה והשניה. היא משתמשת במושג תכונה מגדירה (1ח8 חוחזזס6כ) לתיאור תכונה אשר תכונות אחרות תלויות בה. יחס נמצא בצורה התקנית השלישית המשופרת 0% אם ורק אם כל תכונה מגדירה היא מפתח אפשרי. הגדרה זו מתייחסת לכל המפתחות האפשריים ולא רק למפתח הראשי. כל יחס שנמצא בצורה השלישית המשופרת הוא בהכרח גם בצורתו השלישית הקודמת אך לא להיפך. הצורך בהגדרה החדשה נובע מהטיפול הלא מספק של יחס =/א3 במקרים של ריבוי מפתחות וחפיפה ביניהם. חפיפה בין שני מפתחות אפשריים תיתכן רק אם הן מכילים שתי תכונות או יותר. נתון יחס "קורסים" אשר נמצא בצורה תקנית שלישית וכולל מספר אילוצים: -- קורס יכול להנתן על ידי מספר מרצים שונים, -- כל מרצה מלמד בקורס אחד בלבד, -- בכל קורס הסטודנט לומד אצל מרצה אחד בלבד. קורסים (מספר-סטודנט, מספר-קורס, מספר-מרצה) האילוצים יוצרים את התלויות הבאות בהתאמח: 25 -- אין תלות פונקציונלית בין מספר הקורס למספר המרצה, - -- קיימת תלות פונקציונלית בין מספר הקורס לבין מספר המרצה, -- קיימת תלות פונקציונלית בין מספר המרצה לבין התכונה המורככת מספר-סטודנט ומספר-קורס. תרשים 18 --8: תלויות ביחס "קורסים" בתרשים 18--8 מוצגות התלויות השונות ביחס והן מתארות מצב שבו יש ליחס שני מפתחות חופפים. המפתח הראשון הוא צירוף של מספר-סטודנט ומספר-קורס והמפתח השני הוא צירוף של מספר-סטודנט ומספר-מרצה. יחס זה נמצא בצורה התקנית השלישית אבל לא בצורת 80 מכיון שמספר-מרצה הוא תכונה מגדירה אבל לא מפתח אפשרי. יחס זה סובל מהאנומליות שצויינו קודם. אם נבטל את הקשר בין סטודנט לקורס נאבד נתונים על הקשר בין המרצה לבין הקורס. הפתרון הוא לפרק יחס זה לשני היחסים הבאים: לומד (מספר-סטודנט, מספר-קורס) מלמד (מספר-מרצה, מספר-קורס). שני היחסים החדשים מתארים את היחס הקודם בצורה תקנית משופרת באמצעות שני יחסים חדשים המכילים מפתחות בלבד ללא כל תכונה מגדירה. 5 צורה תקנית רביעית (וחזסם |פוחזסא חזזטס= - =א4) יחס הנמצא בצורה תקנית שלישית משופרת עלול עדיין להיות חשוף למספר תופעות לואי לא רצויות. כדי לפתור אותן יש לעבור לצורה התקנית הרביעית. נשתמש בדוגמא של מפעל שבו מספר מכונות שונות שבכל אחת מהן יכולים להשתמש מספר עובדים ואפשר לייצר מספר מוצרים שונים. כתוצאה מכך קיים מצב שבו לכל מכונה קשורות קבוצה מוגדרת של עובדים וקבוצה מוגדרת של מוצרים שונים. תרשים 19--8 מציג טבלה לא תקנית המתארת מצב זה. ביחס "ייצור" אין כל תלויות פונקציונליות ולכן המעבר לצורה תקנית שלישית הינו פשוט ומוצג בחרשים 20--8. שורה ראשונה למשל, משמעותה שעובד ₪1 מייצר מוצר 01 במכונה 1. שאר השורות מציגות עבור כל מכונה את כל הצירופים האפשריים עם שתי התכונות האחרות. היחס החדש נמצא בצורה השלישית המשופרת מכיון שהוא מכיל מפתחות בלבד ללא תכונות מגדירות נוספות. עם זאת יש כאן תופעות לואי מסויימות. למשל, אין אפשרות להוסיף לבסיס הנתונים את הקשר בין מכונה למוצר אלא אם יודעים לפחות עובד אחד המייצר את המוצר על המכונה. בצורה דומה לא ניתן להוסיף את הקשר בין העובד למכונה. קיימות 206 ייצור מספר-מכונה מספר-עובר מספר-מוצר תרשים 19 - 8: יחס בצורה לא תקנית תופעות לואי גם בפעולת ביטול, מאחר וביטול קשר בין מכונה למוצר גורם גם את ביטול הקשר בין עובד למכונה. אם אותו עובד מייצר על אותה מכונה מספר מוצרים שונים ורוצים לבטל את הקשר ביניהם יש לבטל את כל השורות המציגות קשר זה. ייצור מספר-מכונה מספר-עובר מספר-מוצר תרשים 0 - 8: יחס תקני לסילוק תופעות לואי בלתי רצויות אלה יש לפרק את היחס "ייצור" לשני יחסים אשר בהם לא קיימות התופעות שהוזכרו: מכונה"מוצר (מספר-מכונה, מספר-מוצר) מכונהדעובד (מספר-מכונה, מספר-עובד) היחס אשר היה בצורה אס לא פתר את כל הבעיות ולכן ממשיכים ומפרקים אותו עד לביטול תופעות הלואי השונות. היחס בצורה התקנית השלישית המשופרת מכיל תלות רב- 27 ערכית (ע0ח06ח609כ ססטופעוווטו) שהיא הכללה של התלות הפונקציונלית אשר מוגדרת כתלות של מופע בודד במופע אחר. בדוגמא, משמעות התלות הרב-ערכית היא שלמרות שלעובד אין חלות פונקציונלית במכונה עדיין קיימת קבוצה מוגדרת של עובדים שלהם קיימת תלות כזו. כלומר, ישנה תלות של קבוצה של מופעים במופע של תכונה אחרת. המעבר לצורה תקנית רביעית מבטל את התלות הרב-ערכית בין המפתחות של היחס. 6 תהליך התיקנון תהליך התיקנון הינו תהליך אלגוריתמי שבעזרתו מועברים יחסים לא מתוקננים ליחסים תואמים אחרים בצורה תקנית רביעית. תרשים 21--8 מסכם את התהליך. צורה לא תקנית סילוק תכונות לא אטומיות והעברת היחס למבנה דו"מימדי פשוט. תאו צורה תקנית ראשונה סילוק תלות פונקציונלית חלקית של תכונות ביחס אל חלקי מפתחות אפשריים של היחט. -2% צורה תקנית שניה סילוק תלות עוברת בין תכונות ביחס לבין מפתחות אפשריים ביחס. =א3 או =א80 צורה תקנית שלישית סילוק כפילויות ותלות עוברת בין התכוגות המרכיבות את המפתח של היחס. =א4 צורה תקנית רביעית תרשים 21 - 8: תהליך התיקנון נתאר את התהליך באמצעות דוגמא של היחס "עובד" המציג את התכונות של עובד בחברה המפתחת תוכנה למחשבים. כל עובד עוסק בפיתוח חבילת תוכנה אחת או יותר, ובכל חבילת תוכנה יכולים לעסוק בו-זמנית מספר עובדים. לכל חבילת תוכנה יש תאריך סיום משוער. קיימים ביחס סוגי תלות שונים כפי שמתואר בתרשים 22--8: עובד (מספר-עובד, שם-עובד, משרה, מספר-חבילה, שם-חבילה, שעות-מצטברות, תאריך- סיום, שכר). 208 ן תרשים 2 - 8: התלויות השונות ביחס *עובד" הקשר הרב--רב-ערכי שבין עובד לבין חבילות תוכנה מחייב מפתח אשר מורכב משתי תכונות: מספר-עובד ומספר-חבילה. ביחס זה קיימים סוגי תלות שונים: -- לשם-העובד ולשכר תלות חלקית במספר-עובד בלבד (חלק מהמפתח), -- לשם-החבילה ולתאריך-הסיום תלות חלקית במספר החבילה, -- לשעות-המצטברות של העובד בפיתוח חבילת התוכנה תלות מליאה במפתח, = בין השכר לבין מספר העובד יש תלות עוברת דרך המשרה. היחס מכיל רק ערכים אטומיים ולכן הוא נמצא כבר בצורה תקנית ראשונה. כדי להעבירו לצורה תקנית שניה נסלק את התלויות החלקיות על ידי פירוקו לשלשה יחסים חדשים: עובד (מספר-עובד, שם-עובד, משרה, שכר) חבילה (מספר-חבילה, שם-חבילה, תאריך-סיום) פרויקט (מספר-עובד, מספר-חבילה, שעות-מצטברות) כדי לעבור לצורה תקנית שלישית יש לסלק את התלות העוברת ביחס "עובד" ונקבל ארבעה יחסים חדשים: עובד (מספר-עובד, שם-עובד, משרה) שכר (משרה, שכר) חבילה (מספר-חבילה, שם"חבילה, תאריך-סיום) פרויקט (מספר-עובד, מספר-חבילה, שעות מצטברות) השלב האחרון בתהליך התיקנון יצר מצב שבו אין תלויות בין המפתחות של היחס "פרויקט" (המפתח מורכב משתי תכונות). ארבעת היחסים שנוצרו בתהליך זה מציגים על כן את הצורה התקנית הרביעית, ובכך הסתיים תהליך התיקנון. תהליך התיקנון מטפל במשמעות של הנתונים ומטרתו הכללית הינה לסלק כפילויות נתונים ולצמצם את הבעיות שעלולות לחול בזמן עדכון בסיס הנתונים. תפקידו להיות בעיקר קו מנחה לקבלת מבנה נתונים טוב יותר ולמניעת תופעות הלואי. במציאות יש לעיתים להתפשר עם מבנים שאינם מושלמים, בעיקר מתוך שיקולים של יעילות גישה לנתונים. נקח לדוגמא את היחס "עובד" שבו קיימת תלות בין הכתובת למיקוד ולכן הוא' אינו נמצא בצורה התקנית הרביעית. עובד (מספר-עובד, שס-עובד, משרה, כתובת, מיקוד) הצגת היחס בצורה התקנית הרביעית פירושה פירוקו לשני יחסים שבו אחד מהם מציג את נתוני העובד וכתובתו והיחס השני מציג את הקשר שבין כתובת למיקוד. עובד (מספר-עובד, שם"עובד, משרה, כתובת) מיקוד (כתובת, מיקוד) 209 אחזור נתונים לשם משלוח הודעה לעובד יחייב פנייה לשתי טבלאות שמשמעותה חוסר יעילות. לכן השיקול הנכון במקרה זה יהיה לא לבחור בצורה התקנית הרביעית. 6. איחוד מודליס של משתמש מודל הנתונים הינו מרכז וצומת הנתונים של הארגון ולפיכך הוא חייב לשרת מספר רב של משתמשים. לכל משתמש עשוייה להיות תצפית שונה או מודל-משתמש שונה בהתאם לתפקידו בארגון ולסיוע שהוא מבקש לקבל ממודל הנתונים במילוי משימותיו השונות. מודל הנתונים של הארגון הוא אחד בעוד שכל משתמש מרכיב לעצמו מודל משתמש מבלי להתחשב בצרכיהם של אחרים. תפקידו של מנהל בסיס הנתונים לאחד את המודלים של המשתמשים ( ח0ו81ז90)ח! עו6ו/) וליצור מודל משותף אשר יוכל לשרת את הכל. בשלב ראשון על המתכנן לזהות את כל הישויות, התכונות והקשרים עבור כל אחד מהמשתמשים במערכת. עליו לבחון מקרים של חוסר עקביות במבנה הנתונים, בקביעת השמות שלהם או אף בתוכנם. בתרשים 23--8 מוצגים לדוגמא שלשה מודלים שונים של נתונים במפעל ייצור: המודל של מחלקת הייצור, המודל של מחלקת המכירות והמודל של מחלקת המלאי. כל מחלקה עוסקת בתחום אחר ולכן הנתונים שהיא משתמשת בהם שונים והם משתלבים בצורה שונה. למרות זאת נוכל להבחין שישנם גם נתונים זהים. לקוח מספר שם כתובת סוג לקוח לקוח לקוח אשראי הומנה מספר מספר ערך הומנה מוצר הומנה חשכון מספר | תאריך יתרת חשבון | חשנון | חשבון מספר תיאור יחירת מחיר מוצר המוצר מירה המוצר מחסן מספר מחסן ססק שם כמות מספר שם כתובת מחסן במלאי ספק ספס הספק תרשים 23 - 8: שלשה מודלים חיצוניים במפעל ייצור 210 במודלים אלו יש חוסר עקביות המתבטאת בכך שישנן ישויות בעלות שמות זהים אשר כוללות תכונות שונות. לדוגמא לישות "מוצר" במודל מחלקת הייצור יש תכונות שונות מאלו של הישות יימוצריי במודל מחלקת המלאי. יתכנו גם מצבים שלתכונות בעלות שמות זהים תהיינה משמעויות שונות במודלים שונים. מצב של חוסר עקביות בתיאור הקשרים בין הישויות קיים גם-כן. במודל מחלקת הייצור למשל, כל הזמנה מתייחסת למוצר אחד בשעה שמודל מחלקת המכירות מניח שכל הזמנה כוללת מספר מוצרים שונים. חלק מחוסר העקביות ניתן לפתרון על ידי שימוש במילון נתונים אשר מתאר את כל הישויות והתכונות וקובע סטנדרטים לשימוש בהן. מטרת איחוד המודלים הינה ליצור מודל אחד לארגון, אשר יכיל את כל הישויות והתכונות, וממנו יגזרו על ידי המשתמשים השונים המודלים אשר דרושים להם בעבודתם. מודל הנתונים המאוחד מוצג בתרשים 24--8. כותרת הומנה מספר ערך הומנה | הזמנה במות תאריך מוומנת | אספקה פריט בהזמנה מספר שם בתובת לקוח לקוח לקוח חשבון מספר תאריך יתרת חשבון חשבון | חשבון תרשים 244 - 8: איחוד המודלים החיצוניים למודל נתונים אחד מודל הנתונים הינו מודל תפישתי שאינו קשור למערכת 0815 כלשהי מכיון שאינו עוסק בבעיות של צורת אחסון הנתונים ושיטת הגישה אליהם. אי התלות של המודל במערכת 08008 בלשהי הינו חשוב מפני שהוא מאפשר את יישומו בכל מערכת שתיבחר, במערכת שהארגון מפעיל או במהדורות חדשות של מערכת קיימת. מודל הנתונים התפישתי הינו חשוב מפני שהוא מתאר את המציאות בצורה הטובה ביותר האפשרית ואינו מכיל מלכתחילה מגבלות 21 הנובעות משימוש במערכת מסויימת. מודל הנתונים שתוכנן כראוי ישאר בתוקף לאורך זמן ללא שינויים או עם שינויים מעטים, וכאשר יהיה צורך לשנותו תהייה בו לרוב גמישות מספקת לשילוב השינוי ללא קושי. מוצרים מצביע מצביע הזמנות לספקים להזמנות ו א. סכימת מודל נתונים היררכי הזמנות פריטים בהזמנה מוצרים קשר בין פריטים מוצר-ספק בהזמנה כותרת הזמנה ב. סכימת מודל נתונים רשתי תרשים 25 - 8: המרת המודל התפישתי (24 - 8) למודלים לוגיים 22 מודל הנתונים התפישתי אינו בר-יישום בצורה ישירה. יש להמיר אותו לסכימה המתאימה למערכת 0818 שנבחרה על-ידי העברת הישויות והקשרים למבנים שהיא משתמשת בהם. במערכת המבוססת על המלצות .600481 תכלול ההמרה העברה למבנים של סוגי-רשומה וחבורות ושימוש בקשרים חד---רב-ערכיים בלבד. תרשים 25--8 מציג מבנים אפשריים של סכימה היררכית וסכימה רשתית המבוססות על מודל הנתונים שבתרשים 24--8. בשתי הסכימות מופיעים מבנים מיוחדים נוספים הדרושים לתרגום המודל הכללי למודל היררכי או למודל רשתי. בעת בנייח הסכימות למודלים על המתכנן לפעול בהתאם לכללי התכנון ולשקול יעילות ומהירות תגובה ולקבוע מסלולי גישה לרשומות בהתאם לתדירות השימוש בהן. 7 שאלות 1 מהו ההבדל בין תלות פונקציונלית לתלות פונקציונלית מלאה? 2 בנה מודל אופטימלי עבור המקרה הבא: מרצה מלמד במספר קורסים. קורס מסויים מועבר ע"י מספר מרצים שונים. לכל קורס יתכנו מספר ספרי לימוד. ספר לימוד יכול לשמש יותר מקורס אחד. כל המרצים המלמדים את אותו הקורס משתמשים באותו הספר. האם מודל נתונים חיצוני המשמש אך ורק לאיחזור נתונים חייב להיות מתוקנן במלואו? התייחס למערכת רגילה לעיבוד נתונים המשתמשת בקבצים ורשומות. האם רעיון התיקנון ישים גם בבניית קבצים אלה ואם כן, באיזו צורה. 213 8 נספח - שיקולי שטח אחסנה במעבר לצורה תקנית שלישית אחסון יחסים בצורתם התקנית השלישית עשוי להיות חסכוני יותר מאשר אחסון בצורה התקנית הראשונה או השנייה. נציג זאת על ידי תיאור המעבר מצורות תקניות אלו והחסכון בשטח אחסון הנובע מכך. <>- מפתח --> א 2א 3 1 במוצי תרשים 26 - 8: יחס בצורה תקנית ראשונה | +1 4 תרשים 27 - 8: העברת היחס ,4 לצורה תקנית שלישית 1 מעבר מצורה תקנית ראשונה נבדוק תחילה את השפעת סילוק התלות החלקית על נפח האחסנה הדרוש. נעזר בתרשים 6 שבו נמצא יחס 81 בצורה התקנית הראשונה. המפתח מורכב משתי תכונות בעלות תחום ערכים 1 ו027 אשר יכולים להכיל 1א ו27א ערכים שונים בהתאמה. לתכונה ₪3 אשר יכולה להכיל 3א ערכים שונים תלות חלקית ב-2ם. ‏ 214 בעת מעבר מהצורה התקנית הראשונה לצורה התקנית השלישית יוצרים שני יחסים חדשים 1 ו₪327 אשר יש להם נפח אחסנה שונה מאשר נפח האחסנה של יחס 1ם. נחשב את ההפרש בשטח האחסנה ונניח שמספר התווים הדרושים לאחסון כל תכונה הוא 11, 12, 13 בהתאמה. אם ל- ₪1 יש 1א ערכים שונים ול-2ם יש 2א ערכים שונים, אזי לכל היותר יתכנו 2אא1א ערכים שונים ביחס 1. זה יהיה המספר המירבי של שורות ביחס 81 וכן גם ביחס ₪31 אשר נגזר ממנו עם התכונות 01, 02. החסכון בשטח האחסנה יהיה על-כן 3 2<1א<1א והתוספת בשטח האחסנה תהיה (3 2+1 |)2א. כדי שהחסכון יהיה גדול מהתוספת חייב להתקיים: 3אא1א > (3 ]+2 ))2א 3+ 12 < וא 3 אם מתקיים 12=133, התנאי מתקיים עבור 2= 1א, כלומר כמעט תמיד ניתן לחסוך שטח אחסנה על ידי מעבר מצורה תקנית ראשונה לצורה תקנית שלישית. אם 1/2 גדול מאד באופן יחסי ל- 3 | ואם 2א קטן מאד תדרש תוספת של שטח אחסנה. 2 מעבר מצורה תקנית שנייה היחס ₪4 בתרשים 28--8 מוצג בצורה תקנית שניה ויש בו תלות עוברת בין תכונה 01 ל- 3 באמצעות התכונה 2. לכל תכונה תחום ערכים שבו 1א, 2א, 3א בהתאמה. ,א ,א א ד 1 7[ ש ₪ ₪ | | | | תלות עוברת תרשים 28 - 8: יחס בצורה תקנית שניה 44 ג תרשים 29 - 8: העברת היחס ₪4 לצורה תקנית שלישית 25 התנאי לחסכון בשטח אחסנה במקרה זה יהיה: (3 ]+2)]2א < 3|אוא 83 > ל אם 13 = 13 נקבל כשהיחס בין 1א ו27א צריך להיות גדול מ-2 אם 1א למשל מייצג את מספר העובדים במפעל ו27א את מספר המשרות במפעל נובע שאם לכל משרה יש יותר משני עובדים נקבל חסכון בשטח האחסנה. התנאי לחסכון מצביע על כך שהמעבר מהצורה התקנית השניה לצורה התקנית השלישית גורר גם כן חסכון באחסנה. לסיכום אפשר לומר שהצורה התקנית השלישית הינה חסכונית בשטח אחסנה כאשר מתקיימים התנאים לכך. בנוסף יש לצורה תקנית זו יתרונות אחרים שכבר עמדנו עליהם. 26 פרק ט שלימות ובטיחות נתונים (ע11ז560 0חה ע]וזטס1ח! 318) 1 2 3 ₪ 0000 ₪ מבוא שלימות נתונים טכניקות לשמירה על שלימות הנתונים . גיבוי והתאוששות . בטיחות נתונים . סיכום 217 1. מבוא בפרק זה נעסוק בבעיות של נכונות, איכות וזמינות של הנתונים המאוחסנים בבסיס הנתונים. אפשר לכלול זאת במונח אמינות אשר מציין שבסיס הנתונים מייצג בכל עת בצורה נכונה את המציאות התפעולית של הארגון. האמינות של בסיס הנתונים מושגת בשלש דרכים עיקריות אשר נדון בהן בהמשך: = א. שלימות (עזפָטוחו) היא האפשרות של מערכת 0815 להגן על הנתונים מפני תקלות תוכנה וחומרה. עליה לדאוג לכך שהנתונים המאוחסנים בבסיס הנתונים יקבלו את הערכים שהמשתמש קבע, ולמנוע רישום ערכים שגויים הנובעים מבעיות תוכנה, או מהסביבה התפעולית של המערכת. ב. התאוששות (עזש600ה) היא האפשרות של מערכת 0818 להתאושש מתקלות כגון תקלות בתוכניות היישום, הפסקת חשמל, תקלות חומרה. היכולת להתאושש מתקלות היא קריטית מכיון ששיתוק בסיס הנתונים יכול להביא לשיתוק פעולות הארגון כולו. כבכל מערכת תפעולית כך גם במערכות מידע ממוחשבות לא ניתן להמנע מתקלות שונות אשר עלולות לפגוע באמינות בסיס הנתונים. ריכוז כל הנתונים במאגר אחד ותלות פעילות הארגון במאגר זה מחייבים לספק פתרונות הולמים להתאוששות מתקלות אלה. ג. בטיחות (ע8601) היא האפשרות של מערכת פואםס להגן על הנתונים מפני גישות בלתי רצויות בשוגג או במזיד לשם קריאֶת הנתונים או לשם עדכונם. 209 2. שלימות נתוניס במערכות עיבוד נתונים המבוססות על קבצים נמצא כל קובץ בבעלות נפרדת. בעל הקובץ אחראי לעדכונו והוא אשר קובע את מהלך תוכנית הקליטה אשר מזינה את הנתונים למערכת. בעל הקובץ יכול להתיר גישה לקובץ לשם קריאה ממנו על ידי אחרים אך הוא לא יתיר להם לעדכן אותו. תהליך העדכון של הקובץ הבודד אינו עוסק בדרך כלל ביחסים של הקובץ עם קבצים אחרים והוא רואה בו יחידה עצמאית. במערכות בסיסי נתונים המצב שונה. בסיס הנתונים נמצא באחריות ובבעלות הארגון המיוצג על ידי מנהל בסיס הנתונים והגישה אליו מותרת לכל בכפיפות לנוהלי הסודיות הנקבעים בארגון. העדכון של החלקים השונים בבסיס הנתונים הינו באחריות בעלי הנתונים. נתוני כח אדם יעודכנו למשל על ידי מחלקת השכר ונתוני תמחיר -- על ידי מחלקת התמחיר. מידת חלוקת האחריות לנתונים שונה בכל מקרה ולא נדון בה כאן. העדכון של בסיס נתונים מורכב יותר מאשר העדכון בקבצים נפרדים מכיון שקיימת תלות בין הנתונים השונים אף-על-פי שהם נמצאים בבעלויות נפרדות. קושי נוסף יכול להיות בכך שבתוך יחידת נתונים אחת יכולים חלקים שונים להתעדכן על ידי גופים שונים בארגון. לדוגמא, רשומת עובד נמצאת באחריות מחלקת כח-אדם. מחלקה זו תעדכן את פרטי הזיהוי שלו ותהייה אחראית לשלימות הישות הקרויה "רשומתדעובד'', אך מחלקת ההדרכה תורשה לעדכן את נתוני ההשתתפות בקורסים ומחלקת השכר תעדכן את הנתונים שבתחום טיפולה. העדכון של ישות אחת "רשומת-עובד" עשוי להיות בו"זמני על ידי כל אחת מהמחלקות שקבלו הרשאה לכך. המערכת חייבת לסַנכרן את העדכון ולדאוג לכך שהתוצאה הסופית תשקף את המציאות שהמעדכנים רוצים להציג. הישות "רשומת-עובד" קשורה לישות אחרות במערכת ועל-כן הוספה או ביטול של ישויות עובד מחייב תאום בתחום בסיס הנתונים. הרחבנו את הדיון בפעולת העדכון מכיון שהיא עלולה להיות אחד הגורמים לפגיעה בנתונים. תרשים 1 - 9: שלימות הנתונים - תקלות אפשריות 220 מערכת בסיס נתונים משרתת יישומים שונים הפועלים בו=זמנית, ובדרך כלל במערכת מקוונת. יש תלות גבוהה של המשתמשים בפעילות התקינה והרצופה של המערכת ובזמינות בסיס נתונים אמין. ריבוי המשתמשים יוצר איום גדול לאמינות בסיס הנתונים ומקשה על תהליכי גילוי התקלות. פעולת התיקון של תקלה שמתגלית הינה מורכבת וקשה בגלל שילוב הנתונים במערכת ובגלל ההכרח לבצע את התיקונים תוך כדי פעולה רצופה שלה. נחלק את בעית השלימות לשתים: בעיות הנובעות מתפעול שוטף ורגיל (006!₪ /וחזסא) של מערכת 0888 ובעיות הנובעות מתפעול חריג (₪008 !פוחזסחט). הבעיות העיקריות בתפעול שוטף נובעות בעיקר מהאפשרות שמספר תוכניות יישום עובדות בו-זמנית מול אותם נתונים ומעדכנות אותם או חלק מהם. הבעיות העיקריות בתפעול חריג נובעות מתקלות שונות של תוכנה או חומרה ומדרכי ההתאוששות מתקלות אלה. 1 מקורות השגיאות בבסיס הנתונים פגיעה בשלימות בסיס הנתונים יכולה לנבוע משגיאות ותקלות ממקורות שונים. נסקור בקצרה את המקורות האפשריים לשגיאות: א. שגיאות משתמש: המשתמשים השונים בבסיס הנתונים (במסופים למשל) או תוכניות היישום המעדכנות את בסיס הנתונים הם מקור אפשרי לפגיעה בשלימות. דוגמא אפשרית היא הזנת נתונים לא נכונים לתכונות, כמו למשל קביעת דרגה מקצועית לא נכונה לעובד ברשומת כוח אדם, תקלה אשר ההגנה מפניה במעט אינה אפשרית. דוגמא אחרת היא תוכנית יישום כלשהי אשר מעדכנת את השדה הלא נכון ברשומה. המנגנונים השונים המטפלים בשלימות תחילה. מנגנונים אלה מטפלים בעיקר בשגיאות אשר עלולות לנבוע מתוכנת מערכת 08/8 או ממערכת ההפעלה. ב. שגיאות תוכנה: תקלות בתוכנת מערכת 65 עלולות לגרום לפגיעה בשלימות בסיס הנתונים, כמו למשל כאשר חל סיום חריג (חסו)פתווחזסד |8חזזסחם 1 ) במהלך פעולת העדכון. סיום חריג זה עלול להשאיר את בסיסי הנתונים במצב לא ברור מכיון שחלק מהרשומות עודכנו בעוד שחלק מהן לא עודכנו עדיין. סיבה אחרת לפגיעה בשלימות בסיס הנתונום יכולה להיות השיטה שבה מערכת 0818 מטפלת בעדכון בו זמני של בסיס הנתונים על ידי מספר תוכניות יישום שונות. ג. שגיאות ותקלות חומרה: שגיאות ותקלות חומרה הן בדרך כלל בעלות הסתברות הופעה נמוכה יחסית אך הן חמורות מאד עם הופעתן. לדוגמא תקלה במשטח מגנוט בדיסק מגנטי אינה רצויה כמובן אך היא חמורה יותר אם משטח זה מכיל מצביעים או אינדקסים, כי אין אפשרות להמשיך לתפעל את בסיס הנתונים. ד. תקלות סביבתיות: בין הנפוצות בתקלות אלו הן נפילת מתח חשמלי רגעית, הפסקת חשמל או הפסקת מערכת מיזוג האויר אשר גורמות להפסקת פעילות. הפסקת פעילות פתאומית יכולה לגרום לשיבושים ולפגיעה בבסיס הנתונים. מפני תקלות סביבתיות ניתן להגן באמצעות מערכות גיבוי מתאימות אשר לא נדון בהן כאן. 221 3 טכניקות לשמירה על שלימות הנתוניס מערכות 15א08 מספקות בדרך כלל מספר מנגנונים כדי להגן על שלימות בסיס הנתונים תוך כדי תפעול שוטף. נסקור מספר טכניקות המכוונות למטרה זו. 1 כוונת עיבוד טחסוח! פָח66991סזק) מנגנון זה מטפל בהרשאה לעיבוד בסיס הנתונים על ידי תוכנית היישום ובהשלכות על תוכניות אחרות במערכת. לפני שתוכנית היישום מתחילה לעבד את בסיס הנתונים עליה להצהיר מה בכוונתה לעשות: לקרוא בלבד או לקרוא ולעדכן. הצהרה זו מבוצעת בדרך כלל בפקודת 05% של בסיס הנתונים ועל פיה ניתנת ההרשאה. ברוב המערכות מוכרות שלש צורות של הרשאה: -- בלבדי (פטופט!סאם): אם תוכנית היישום מצהירה שבכוונתה לעבד את בסיס הנתונים באופן בלבדי, לא תנתן הרשאה לכל תוכנית אחרת לגשת לבסיס הנתונים באותו זמן. לדוגמא, תוכנית המחשבת את שכר העובדים במפעל לא תרצה שתוכנית יישום אחרת תעדכן נתונים ברשומות, חבטל או תוסיף רשומות. הגישה של תוכניות אחרות יכולה להיות אסורה בכלל או שהיא יכולה להיות מוגבלת לחלקי בסיס הנתונים או לרשומות שאינן בטיפול תוכנית היישום שבה אנו דנים. לדוגמא, אפשר למנוע גישה אל רשומת המלאי כאשר מעדכנים אותה אך לאחר מכן רשומה זו "תשוחרר" לשימוש והגישה תמנע לרשומה אחרת שבתהליך עדכון. -- מוגן (10160100ק): כאשר תוכנית היישום מצהירה שבכוונתה לעבד את בסיס הנתונים באופן מוגן, תורשה הגישה לתוכניות יישום אחרות למטרת קריאה בלבד ולא תורשה הגישה לתוכניות אלו לשם עדכון. -- משותף (8/8180): הצהרה של עיבוד משותף של בסיס הנתונים מתירה גישה של כל סוגי התוכניות לצורך קריאה ולצורך עדכון. גישה לקריאה משותפת מותרת תמיד (אלא אם יש הגבלת סודיות שעליה נעמוד בהמשך) אך גישה משותפת לעדכון יכולה להיות רק כאשר מובטח מעל לכל ספק שלא יווצר מצב של עדכון בו"זמני של נתונים על-ידי תוכניות שונות. 2 עדכון בו-זמני (00816 זח8זזסהס60) הנחנו עד עתה שאם תוכניות היישום פועלות כשורה בסיס הנתונים יכיל רק נתונים אמינים ונכונים. מסתבר שהנחה זו אינה מדוייקת מכיון שיתכנו מצבים שבהם תוכניות היישום פועלות כשורה ובכל זאת תוכן בסיס הנתונים אינו אמין. בעייה זו נובעת מהאפשרות של עבודה במקביל של מספר תוכניות יישום על אותם הנתונים. אחד היתרונות הגדולים של מערכת מקוונת הינו זמן התגובה המהיר אשר מושג על-ידי האפשרות של מספר תוכניות שונות לפעול במקביל ובאופן בו-זמני (ע!)חזזטסחס0) על בסיס נתונים אחד. מערכת 818 ערוכה לפעילות בו-זמנית והיא מפקחת על כך. גישה של תוכניות לבסיס נתונים לפי תור היתה גורמת זמן תגובה ארוך, וגישה ללא פיקוח היתה גורמת לפגיעה בנתונים. במערכת מקוונת של הזמנת כרטיסי טיסה למשל נדרש זמן תגובה קצר אך נדרשת גם הגנה על הנתונים מפני עדכון לא מסודר של נתוני מכירת מושבים בטיסה אחת על ידי סוכני נסיעות שונים. בסיס נתונים יוגדר אמין כאשר הוא מכיל נתונים שלימים ונכונים בלבד. אך במהלך פעולת 222 תוכנית היישום, אמינות בסיס הנתונים מופרת באופן זמני. במערכת מידע רפואית למשל הכנסת חולה חדש למחלקה צריכה להגדיל את מונה מספר המיטות התפוסות שברשומת המחלקה. ברגע נתון כלשהו יתכן שתוכנית היישום כבר הספיקה לכתוב את רשומת החולה החדש בבסיס הנתונים אבל טרם הספיקה לשנות את המונה. בסיס הנתונים אינו אמין בנקודת זמן זו, ולכן אם מסיבה כלשהי תופסק ברגע זה עבודת המערכת הוא יכיל נתונים לא נכונים. רמה נמוכה של כפילות נתונים עשוייה למנוע תקלה כזו אך לא ניתן למנוע אותה כליל. אחת השיטות לטפל בבעייה הינה רישום שוטף של כל התנועות המוזנות למערכת ו"שחזור" העדכון לאחר שחלה תקלה במהלך הביצוע שלו. בדרך כלל נהיה מעוניינים להפעיל כמה שיותר תוכניות יישום במקביל בתנאי שהן רק קוראות את הנתונים. אפשרות הפעלת מספר רב של תוכניות במקביל תשפר את זמן התגובה של כל תוכניח, אך מאידך יש למנוע הפעלה במקביל של תוכניות המעדכנות את אותו הנתון. שיתוף הנתונים בין התוכניות קיים כל עוד אין עדכון משותף של נתונים. העדכון הוא פעולה בסיסית וחשובה במערכת ועל כן מן הראוי להציג איך יכול עדכון בו- זמני של נתון כלשהו להפר את אמינות בסיס הנתונים. נניח שמשני מסופים מנסים לעדכן את יתרת המלאי של פריט אשר לפני העדכון היתה 10 יחידות. ממסוף ג/ רוצים להוסיף למלאי 5 יחידות וממסוף 8 רוצים להקטין את המלאי ב-2 יחידות. התוצאה הסופית הנכונה צריכה להיות 13 יחידות במלאי. עתה נראה כיצד סדר אירועים לא מבוקר עלול להפיק תוצאה שונה. ראה תרשים 2--9. סדר תוכן הוראות תוכנית הוראות תוכנית האירועים |[ בסיס הנתונים מסוף 4 מסוף 8 ו רשומת הפריט זכרון והעבר לשטח העבודה. ה 5 ו קרא רשומת הפריט לזכרון והעבר לשטח העבודה הוסף 5 יחידות לשדה "יתרת מלאי" כתוב רשומה מעודכנת בבסיס הנתונים החסר 2 יחידות משדה "יתרת מלאי" כתוב רשומה מעודכנת בבסיס הנתונים תרשים 2 - 9: שתי תוכניות במקביל ללא מנגנון נעילה 23 אם סדר האירועים מודגם בתרשים 2--9 התוצאה הסופית תהיה 8 והיא אינה התוצאה הננונה. הטעות נובעת מהעובדה ששתי התוכניות הפועלות בשירות מסופים 4 ו₪7 בהתאמה קראו לזכרון את רשומות המלאי המקורית, עוד לפני שהתוכנית האחרת הספיקה לעדכן אותה. כתוצאה מכך פעלו שתיהן על יתרת מלאי של 10 יחידות וכתבו את התוצאות הנובעות מכך לבסיס הנתונים. אם תוכנית מסוף ₪ היתה כותבת תחילה ולאחריה התוכנית של מסוף 4, היתה התוצאה הסופית 15 ולא 8. כמובן שגם תוצאה זו אינה נכונה. הפתרון לבעייה זו הוא הפעלת מנגנון נעילה כלשהו כדי שהתוכנית הראשונה המבקשת את הנתון תיהפך באופן זמני לבעלים (זפח/שס) של הנתון. כל שאר התוכניות המבקשות לגשת לאותו נתון תצטרכנה להמתין עד שהתוכנית הראשונה תשחרר אותו. נניח שקיימת הוראה מיוחדת 006] המאפשרת נעילת נתון בבסיס הנתונים. בתוכנית היישום היא תרשם לפני פקודות הקריאה והעדכון. לאחר כתיבת הרשומה לבסיס נתונים תרשם ההוראה המקבילה לה אסס ואט אשר תשחרר את הנתון לשימושן של תוכניות אחרות. כלומר, ניחן להגן על בסיס הנתונים על ידי נעילה חלקית שלו ופעולה בלבדית של התוכנית על רשומה או נתון ולא על בסיט הנתונים כולו. לאפשרות זו השפעה רבה על שיפור זמן התגובה. סדר תוכן בסיס הוראות תוכנית הוראות תוכנית האירועים הנתונים מסוף 3 מסוף 8 נעל את רשומת הפריט קרא רשומת הפריט (5) לזכרון והעבר לשטח העבורה נעל את רשומת הפריט (מכיון שהפריט כבר נעול, תוכנית זו נכנסת למצב של המתנה) הוסף 5 ליתרת המלאי כתוב רשומה מעורכנת בבטיס הנתונים קרא רשומת הפריט לזכרון והעבר לשטח העבורה הורר2 מיתרת המלאי כתוב רשומה מעורכנת בבסיס הנתונים תרשים 3 - 9: שתי תוכניות במקביל עם מנגנון נעילה 224 3 מנגנון הנעילה (חסווסחטת אסס) מנגנון הנעילה פועל כמנגנון סינכורוניזציה בין תוכניות כמתואר בתרשים 3--9. כאשר תוכנית מבקשת לנעול נתון כלשהו היא תורשה לעשות זאת ולהמשיך בפעולתה. אם הנתון כבר נעול היא תכנס לתחור התוכניות הממתינות לו עד אשר התוכנית הקודמת לה תשחרר את הנעילה. מנגנון הנעילה גורם מספר בעיות אשר בהמשך נעמוד על החשובות שבהן. 1 יעד הנעילה יעד הנעילה הוא תחום בסיס הנתונים אשר כפוף להוראת הנעילה. טבעי הוא לנעול תחום קטן ככל האפשר כדי להתיר פעילות מקבילית בו"זמנית רבה ככל האפשר. עם זאת נעילה ברמה נמוכה יותר (שדה לעומת קובץ למשל) גורמת למורכבות רבה יותר של המערכת וכתוצאה גם העלות גבוהה יותר. נתאר את האפשרויות ‏ ביעדי נעילה שונים. שדה: יעד הנעילה יכול להיות שדה בודד בתוך רשומה. בדוגמא הקודמת מעדכנת תוכנית היישום רק את שדה יתרת-מלאי ולכן נמנעת מתוכניות אחרות הגישה אליו בלבד. אין סיבה למנוע עדכון שדות אחרים באותה רשומה על ידי תוכניות אחרות. נעילת שדה בודד הינה מורכבת מאד ועל כן מעטות מערכות 85 המציעות אותה. מנגנון בקרה לא אמין יכול לגרום את הבעיות שהוצגו בסעיף עדכון בו-זמני ובתרשים 2--9. רשומה: מכיון שכל פקודות הקלט/פלט בתוכנית מתייחסות לרשומה, ניחן לקבוע אותה כיעד נעילה. בשיטה זו נמנע מתוכניות יישום אחרות לגשת לרשומה הנעולה אך תהייה להן גישה לרשומות אחרות. גוש: פעולות קלט/פלט פיסיות מתבצעות בגושים ולא ברשומות בודדות ועל-כן הגוש הינו יעד נעילה אפשרי נוסף. אם רשומה אחת עשוייה להתפרס על פני מספר גושים מנגנון הנעילה צריך לאפשר את נעילת כולם. בשיטה זו תכנסנה להמתנה תוכניות יישום אשר פונות לרשומה אחרת מזו המעודכנת אבל נמצאת באותו גוש פיסי. שיטה זו נוחה יותר ליישום אך מקטינה את אפשרויות העבודה במקביל. קובץ: קיימות מערכות המבצעות נעילה של כל הקובץ בזמן עדכון רשומה כלשהי. שיטה זו פשוטה ליישום אבל מטילה הגבלות חמורות אפילו על עדכון רשומות שונות על ידי תוכניות נפרדות. 2 משך הנעילה משך הנעילה מוגדר כזמן העובר מרגע הנעילה ועד השחרור. רצוי שמשך זמן זה יהיה קצר ביותר כדי לאפשר מירב פעילות בו-זמנית וזמן תגובה קצר. מומלץ לקבוע את פקודות הנעילה רק באותו קטע שבו התוכנית עומדת לבצע את העדכון ולא לפני כן, כדי שמידת הפגיעה בתוכניות אחרות יהיה קטן ככל האפשר. כדי להקטין את משך הנעילה קיימות מערכות בהן פקודת הנעילה נועלת את כל הגישות ליחידת האחסון ולכן ראש הקריאה/כתיבה נשאר מוצב במשך כל זמן העיבוד מעל המסילה שבה נמצאת הרשומה. כאשר מסתיים העיבוד והתוכנית כותבת את הרשומה נעשה הדבר במהירות יחסית ללא צורך בהזזת מנגנון הזרועות, ויש בכך יתרון ניכר. קיימות מערכות הפעלה אשר משתמשות בשיטת נעילת ראש הקריאה/כתיבה של יחידת האחסון בעת ביצוע 2025 פעולות מסויימות בספריות המערכת. 3 נעילה ללא מוצא (680/00%) השימוש במנגנון הנעילה עלול להביא למצבים שבהם שתי תוכניות תכנסנה למצב של נעילה ללא מוצא מכיון שכל אחת מהן תנעל משאב שהשניה מבקשת להשתמש בו. ישנן למשל שתי תוכניות, האחת נועלת קודם את רשומה ג ואחר כך את 8, ואילו התוכנית השניה נועלת קודם את רשומה 8 ואחר כך את רשומה ג. הפעלה מקבילה של שתי התוכניות עלולה לגרום למצב של נעילה ללא מוצא כי התוכנית הראשונה נעלה את 4 וממתינה ל- 8 בעוד שהתוכנית השנייה נעלה את 8 וממתינה ל- 4 למניעת מצבי נעילה ללא מוצא הוקדשו מאמצי מחקר רבים בעיקר בגלל חשיבות הנושא בתכנון מערכות הפעלה למחשבים. קיימות מספר שיטות למניעת מצבים אלה וכדוגמא נציג שתים מהן: -- כל תוכנית צריכה לבצע את כל הנעילות שלה בבת-אחת. עד לגמר ביצוע הנעילות מערכת ההפעלה לא תאפשר לאף תוכנית אחרת להתחיל לעבוד. -- סדר הנעילות הוא קבוע ויתקיים בסדר זה בכל תוכניות היישום. לדוגמא, סדר הנעילות יהיה ג, 8, 6, !א א. כאשר יש מצב של נעילה ללא מוצא יכולה מערכת ההפעלה ל"פתור" אותו. היא תבצע סקירה תקופתית של התוכניות המתבצעות ובעזרת אלגוריתם הבנוי בה היא תאתר מצבים של נעילה ללא מוצא. כאשר היא תגלה מצב כזה היא תגרום לאחת התוכניות להפסיק פעולתה ולהתחיל מחדש. במקרה זה יש לבטל תחילה את כל העדכונים שהתוכנית שהופסקה ביצעה בבסיס הנתונים. פעולה זו תוסבר בסעיף הבא בהקשר לגיבוי והתאוששות. 226 4. גיבוי והתאוששות בסעיף זה נדון באמצעים השונים המופעלים במערכות 5!אפס, אשר מיועדים להעלאת זמינות הנתונים. הזמינות מוגדרת כהסתברות שמשתמש ינסה לגשת לבסיס הנתונים והוא יהיה זמין ומוכן לעבודה. שואפים להגיע לזמינות מירבית, כלומר למצב שבו בסיס הנתונים יעמוד לרשות המשתמש בכל עת. את הזמינות רושמים בדרך כלל באחוזים. תקלות שונות יכולות לקרות: תקלות בתוכניות היישום, הפסקת או נפילת מתח חשמל, תקלות בציוד, טעות הפעלה ועוד. שיתוק בסיס הנתונים עלול לגרום לשיתוק פעילות הארגון כולו. במערכות מידע ממוחשבות לא ניתן להמנע מתקלות שונות שעלולות לפגוע באמינות בסיס הנתונים ועל-כן יש לפעילות הגיבוי וההתאוששות חשיבות עליונה בהבטחת השירות לצרכנים. 1 תקלות והתאוששות במערכות שונות לפני שנמשיך, מן הראוי לסקור את הבעיות במערכות אצווה ובמערכות מקוונות, ולהבין את השוני המהותי שבין שתי מערכות אלו מבחינת גילוי סיבת התקלות והתיקון שלהן. זמן גיבוי חנועות גיבוי קובץ נתוניס תרשים 4 - 9: גיבוי במערכת אצווה 227 1 מערכות אצוות במערכות הפועלות באצווה (ח910) בעיית הזמינות איננה גדולה מכיון שזמני התגובה שלהן גדולים ואפשר לדחות במידת"מה את מועדי העיבוד עד לתיקון התקלה. השיטה המקובלת להגנה היא גיבוי ( ְטאס8) ושחזור (8זסז65ה). על בסיס תקופתי מבצעים גיבוי של קבצי האב (קט₪806 ₪6 זסו35וא) ולאחר כל מעצבר עדכון מבצעים גיבוי של התנועות (סט880% ח58000ח8זד) שעדכנו את קבצי האב. קובץ הגיבוי הינו העתק מדוייק של קובץ האב נכון לרגע מסויים, או של אוסף התנועות שעדכנו את קובץ האב בכל אחד ממהלכי העדכון. תרשים 4--9 מציג את התהליך. לאחר תקלה מפעילים את תהליך השחזור שבו מקימים מחדש את קובץ האב מתוך סרט הגיבוי ומעדכנים אותו מחדש עם התנועות הצבורות בקובץ גיבוי התנועות (תרשים 5--9). / תרשים 5 - 9: שחזור קובץ במערכת אצווה על מנת לקצר את תהליך השחזור ניתן לשמור רק תנועות שעדכנו את הקבצים ולא את התנועות השגויות. בצורה זו אין צורך להפעיל מחדש את תוכניות הקליטה והעדכון הרגילות אלא רק תוכניות שקוראות את התנועות הטובות ומעדכנות את הקובץ בהתאם. לא רצוי להשתמש לעדכון הקובץ בתוכניות שונות. על-כן מעדיפים להשתמש בתוכניות הקלט והעדכון הרגילות גם אם הן עלולות להיות איטיות יותר. אם לא ניחן להריץ את כל התנועות הצבורות בבת-אחת, ניחן לשחזר את כל הריצות הבודדות לפי הסדר שלהן במציאות. תהליך השחזור עשוי להמשך זמן רב, אבל מאחר ובמערכת אצווה זמן התגובה גדול, אלמנט זמן ההתאוששות איננו קריטי בדרך כלל. 2 מערכות מקוונות במערכות 815 המשמשות גם מערכי תקשורת זמן ההתאוששות קריטי מפני שכל היישומים משתמשים בבסיס הנתונים. בזמן ההתאוששות אין אפשרות להפעיל את תוכניות 208 היישום ולכן יש מחלקות בארגון שאינן מקבלות שירותי מחשב בעת השחזור. גילוי התקלה ותיקונה במערכת 18א08 מורכב יותר, הן בגלל ריבוי המשתמשים והן בגלל הקשרים המורכבים בין הנתונים. לדוגמא, גילוי תקלה בסוג רשומה אחד לא ניתן לתיקון רק על-ידי שחזור אותו סוג רשומה מתוך קבצי הגיבוי בגלל הקשרים של סוג הרשומה עם סוגי רשומה אחרים. למטרות התאוששות לאחר תקלה שומרות מערכות 088 את כל הנתונים הדרושים כדי להתגבר על התקלה. נתונים אלו משמשים להחזרת בסיס הנתונים לנקודת זמן שבה הוא היה תקין. בזמן תכנון בסיס הנתונים חייב המתכנן להכין את כל תהליכי ההתאוששות הדרושים לכל סוגי התקלות האפשריות. להלן מספר סוגי תקלות אפשריות: א. תוכנית יישום מסיימת בצורה לא תקינה, אך עד להפסקת עבודתה היא הספיקה לעדכן חלק מבסיס הנתונים. הסיום הלא-תקין שלה גורם שבסיס הנתונים יהיה מעודכן חלקית בלבד ועל כן אינו אמין עתה. ב. תוכנית יישום מסיימת בצורה תקינה, אבל יש בה שגיאה לוגית וכל העדכונים שביצעה אינם נכונים. ג. מערכת 85 מגלה דבר לא תקין ומסיימת את עבודתה, כמו למשל בעת גילוי של מצביע לא תקין או נתוני בקרה לא תקינים. ד. תקלה בחומרה. הדיסק המכיל את הנתונים אינו ניתן לקריאה או לכתיבה בגלל תקלה פיסית כלשהי (למשל בראש הקריאה/כתיבה או במשטח המגנוט). ה. נפילה פתאומית של מתח החשמל שעוצרת את כל הפעילות במחשב. ו. טעות הפעלה אשר גורמת להפסקה בלתי צפוייה של פעילות המחשב או התוכנית. גילוי סיבת תקלה הנובעת מבעיות תוכנה הוא תהליך מורכב ומסובך יותר מאשר במקרה של תקלת חומרה. גילוי תקלות תוכנה יכול להיות אוטומטי רק כאשר תוכנית היישום מבצעת מספר בדיקות הכרחיות לגילוי מצבים חריגים. לעיתים הזמן שעובר בין אירוע התקלה לבין הגילוי שלה עלול להיות ארוך למדי ועקבות התקלה עלולים להטשטש. מסיבה זו, מערכות פס חייבות לשמור נתונים מספיקים כדי לאפשר שחזור גם לאחר תקופת פעילות ארוכה. 2 שירותים של מערכות לניהול בסיסי נתוניס רוב מערכות 0818 מציעות כלים לטיפול בבעיות זמינות הנתונים. נסקור את החשובים שבהם. 1 תוכנית שלרות לגיבוי (עוווווט סוחטס) תוכניות שירות לגיבוי מאפשרות העתקת בסיס הנתונים לסרט גיבוי. בזמן ביצוע ההעתקה אין אפשרות (לרוב) לתת את השירות לתוכניות היישום ולכן מבצעים אותה בזמן שבסיס הנתונים אינו פעיל, למשל בלילה. העתקת בסיס נתונים נעשית בצורה מיוחדת אשר תאפשר את השחזור לאחר מכן. ההעתקה יכולה להמשך דקות או עשרות דקות כאשר בסיס הנתונים קטן והיא עלולה להמשך שעות אחדות כאשר בסיס הנתונים גדול. משך זמן הגיבוי ישפיע על תכיפותו. משך זמן השחזור שוה ואף ארוך מזמן הגיבוי כי יש לבצע פעולות ניהול שונות במערכת. נראה אם כן ששיטה זו אינה מתאימה להתאוששות מהירה בבסיסי נתונים גדולים. 209 2 יומן שינויים (עוו90= פָחוּפָפָס 1) המפתח לתהליך ההתאוששות הינו קובץ המכיל את כל השינויים שבוצעו בבסיס הנתונים. לשמירת תמונת מצב הסטורית של בסיס הנתונים יש לשמור את כל התנועות אשר גרמו לשינוי כלשהו. שינויים אלה נשמרים בדרך כלל בסרט מגנטי, בעיקר מסיבות כלכליות ונוחות שמירת הסרטים. מטרת קובץ היומן (₪6 חָס]) היא לאפשר את שחזור בסיס הנתונים תוך שימוש בגיבוי קודם שלו. קבצי היומן יכולים להכיל את התנועה עצמה (806| ח0ו5800ח8זד), את מצב הרשומה בבסיס הנתונים לפני העדכון (898! 6זס01ט) ואת מצב הרשומה לאחר העדכון (896| זס!). רוב מערכות ניהול בסיסי נתונים מאפשרות למנהל בסיס הנתונים להגדיר את סוגי הרשומות שיש לשמור בקובץ היומן. הנועה ד יו רשומה לפני / ערכון רשומה לאחר עדכון תרשים 6 - 9: יצירת יומן שינויים 000 בסיס נתונים לפני הרישום של רשומות התנועה מוסיפה מערכת 0818 נתונים נוספים כגון מקור התנועה, שעת העדכון, תאריך העדכון ועוד. בכל פעם שמתבצע עדכון של בסיס הנתונים אובדים חלק מהנתונים שהיו לפני העדכון. כדי לאפשר את החזרת בסיס הנתונים למצבו לפני העדכון יש לשמור בקובץ היומן את מצב הרשומה "לפני". רשומות אלו יכולות לשמש לביטול השפעת העדכון (001א880%). עם גילוי תקלה ניחן להעתיק מתוך קובץ היומן רק את רשומות "לפני" ולכתוב אותן חזרה לבסיס הנתונים ובצורה זו להחזיר אותו למצב שלפני העדכון. רישום מצב "אחרי" מאפשר שחזור של קובץ לאחר גיבוי או שחזור ללא מעבר דרך תוכניות העדכון הרגילות. הוא גם מאפשר כתיבה של הרשומה בקובץ אם חלה תקלה לפני שהיא נכתבה. תהליך רישום יומן השינויים ועדכון בסיס הנתונים וכן גם תהליך ההתאוששות צריכים לענות על שלשה מצבים אלו: -- התוכנית הספיקה לקרוא את הרשומות המבוקשות מתוך בסיס הנתונים וקרתה תקלה לפני שבוצעו הרישום ביומן והעדכון (כתיבה) בבסיס הנתונים, -- התקלה קרתה לאחר שבוצע הרישום אך לפני שבוצע העדכון, -- התקלה קרתה לאחר שבוצע הרישום והעדכון. שימוש ברישום "לפני" ורישום "אחרי" בכל מקרה יגרום לכתיבת כמויות גדולות של נתונים 20 בקובץ היומן כאשר מספר העדכונים רב. בנוסף לכך יש לשקול את ההשפעה על זמן הביצוע של תוכנית היישום כתוצאה ממספר פעולות הכתיבה בדיסק. 3 נקודת מבדק ( עווו80: הוס0ק60%ה0) במערכות המבצעות עיבודים מורכבים וארוכים אין זה רצוי לחזור על כל התהליך החישובי מחדש לאחר שמְתגלית תקלה. כדי לפתור בעיה זו ניתן לכלול נקודות מבדק בתוכנית היישום כדי לצמצם את הזמן הדרוש לביטול העדכונים שבוצעו בבסיס הנתונים לאחר גילוי התקלה. ניחן להוסיף בתוכנית היישום פקודות מיוחדות הגורמות לכתיבת רשומת מבדק (01ו0090%00 0זססה) בקובץ היומן. רשומה זו מייצגת את מצב המערכת הכולל זכרון, אוגרים, מאגרי חנועות, מצב הקבצים (מאגרים ומספר גוש לרשומה) ומפתח זיהוי המסופק על ידי התוכנית. לאחר גילוי התקלה ניתן לאתר בקובץ היומן את רשומת המבדק האחרונה. תוכנית היישום תקרא את הרשומה הזו או שתוכנית שירות תעשה זאת עבורה. תוכנית היישום תוכל לשחזר על פי רשומת המבדק את המצב שהיה ולהמשיך את עבודתה בבסיס הנתונים מנקודת השחזור. 4 ביטול עדכונים ( עָווו04 1טס8806) תוכנית שירות זו מעתיקה מתוך קובץ היומן את רשומות "לפני" ובכך היא מבטלת את השפעת העדכונים של תוכנית היישום. תוכנית השירות קוראת את קובץ היומן בכיוון הפוך, מהסוף להתחלה ויוצרת קובץ יומן חדש אשר אינו מכיל את הרשומות שהשפעתן בבסיס הנתונים בוטלה. קובץ זה ישמש לשחזור המצב הרצוי. תוכנית שירות לביטול עדכונים תרשים 7 - 9: ביטול עדכונים קיימות מערכות שבהן ניתן להפעיל את תוכנית השירות הזו באופן אוטומטי (-- פדס 88060 ה0וו580ה8זד סוהחהעכ) כמו למשל בעת סיום לא תקין של תוכנית יישום. כדי לייעל את תהליך הביטול האוטומטי ניתן לשמור חלק מהשינויים האחרונים בזכרון בנוסף לכתיבתם בקובץ היומן. בעת תקלה יכולה תוכנית ביטול העדכונים לפעול מיד. 5 שחזור ( עָו0010 ץזצ600) לצורך שחזור משתמשים בקבצי הגיבוי של בסיס הנתונים ובקבצי היומן של השינויים 221 שנעשו בבסיס הנתונים. מתוך קבצי הגיבוי מקבלים את מצב בסיס הנתונים ברגע נתון ואליו מעתיקים את כל רשומות "אחרי" מתוך קובץ היומן. תרשים 8 - 9: שחזור בסיס נתונים 3 סיכוס הדיון הארוך בנושא גיבוי, התאוששות ושחזור מפחיד מעט. האמנם חשוף המשתמש לתקלות כה רבות ועליו להשקיע בתכנות, בזמן מחשב ובאחסנה אמצעים כה רבים? התשובה היא שחובה לעשות זאת במערכות מקוונות כדי שמשתמש בודד או תקלה כלשהי לא יגרמו לשיתוק מערך פעילות של משתמשים רבים. מערכי הרישום של הגיבוי ויומן השינויים מאפשרים התאוששות מהירה, מבחינת מצב בסיס הנתונים ובתוכניות השונות הפועלות במערכת והמשרתות צרכנים ומשתמשים שונים. כל משתמש במסוף שהיה קשור למערכת בעת התקלה יקבל הודעה על התנועה האחרונה שנקלטה בה והנחיות להמשך עבודתו. האחריות לקיים את הפעילות הרצופה ולזכות באמון המשתמשים מחייבת אחזקת "פוליסת ביטוח". זוהי מערכת גיבוי והתאוששות אשר נלווית למערכת ניהול בסיסי נתונים ומהווה חלק ממנה. 222 5. בטיחות נתוניס ריכוז כל הנתונים של הארגון במאגר אחד והשימוש הנרחב במערכות תקשורת על ידי משתמשים שאינם בשליטה ישירה של יחידת עיבוד הנתונים עוררו מספר בעיות הקשורות לבטיחות הנתונים (ע890011 ₪. בסעיף זה נציג מספר שיטות לאבטחת נתונים אשר מופעלות בעיקר במערכות 85ס. נגדיר תחילה את המושג אבטחת נתונים. אבטחת הנתונים דנה בנושאים הקשורים במניעת אפשרות הגישה לבסיס הנתונים עלדידי גורמים שאינם מורשים. הגורמים יכולים להיות אנשים בארגון ומחוץ לו ותוכניות יישום הפועלות במערכת. תוכנית הסורקת את קובץ כוח-אדם להפקת דוח סטטיסטי על התפלגות העובדים לפי גיל לא צריכה "לראות" את הנתוני השכר או נתונים רפואיים של אותם העובדים; עובד במחלקת מחסנים אשר יש לו גישה חופשית לכל נתוני המלאי אינו רשאי "לראות" נתונים של מדיניות מחירים והנחות של פריטים במלאי או שאינו רשאי "לראות" נתונים של מחלקות אחרות. את אבטחת הנתונים אפשר להשיג בשלוש דרכים שונות, בנפרד או בכמה מהן יחד: -- הרשאת גישה. מי רשאי לגשת לנתונים (ז4006580), -- סיווג הגישה. מהן הפעולות המותרות למשתמש (08ע1 400688), -- נעילת נתונים, מהם הנתונים שיש למנוע ממשתמש (00%.] 0818). 1 הרשאת גישה הרשאת גישה לבסיס הנתונים ניתנת למשתמשים ולתוכניות יישום. שיטת ההרשאה (ז80ש חסווםקוזסחזט) מבוססת על מרכיבים שונים אשר תכליתם לאפשר גישה למשתמשים המורשים לכך ולמנוע את הגישה ממשתמשים שאינם מורשים. ברוב המערכות מבוססת הרשאת הגישה למשתמשים על סיסמא הניתנת לכל אחד מהם. המשתמש המפעיל מסוף חייב להזין את הסיסמא בכל פעם שהוא מתחיל לעבוד במסוף. הסיסמא נבדקת על ידי מערכת ההפעלה, על ידי תוכנת מערכת התקשורת או על ידי המערכת לניהול בסיסי נתונים, בהתאם לעניין. קיימות שיטות שונות לניהול סיסמאות. אפשר לקבוע סיסמאות קבועות או משתנות, סיסמאות לכל יחיד או סיסמא לקבוצת אנשים אשר יכולים לפעול בבסיס הנתונים בעת ובעונה אחת. ככל שרמת ההגנה שרוצים לספק גבוהה יותר, עולה גם עלות השיטה. להלן מספר דוגמאות לשיטות הרשאה למשתמשים. -- הצמדת משתמש למסוף. המערכת תאפשר רק למשתמשים מורשים להשתמש במסוף מסויים. לדוגמא עובד במחלקת הנהלת חשבונות לא יוכל להשתמש במסוף אשר שייך למחלקת מחסנים. -- הגבלת הקבצים במסוף. ניתן לקבוע שהגישה לקבצים מסויימים או לסוגי רשומה מסויימים מותרת רק ממסופים מורשים. לדוגמא הגישה לקובץ תכנון הייצור אפשרית רק מהמסופים השייכים למחלקה זו. -- הגבלת התוכניות למשתמש. לכל משתמש יש רשימה של כל התוכניות שמותר לו להפעיל או להשתמש. הוא לא יוכל להפעיל תוכניות אחרות. -- הגבלה על בסיס של זמן. ניתן להגביל את הגישה לקבצים, תוכניות או מסופים לשעות מסויימות. אפשרות מקובלת -- למנוע גישה לאחר שעות העבודה הרגילות. הרשאת הגישה לתוכניות יישום במערכת אצווה, או במערכת מקוונת יכולה להעשות באותה 213 צורה, אך בדרך כלל משתמשים במקרה זה בשיטות אחרות. ההגבלה של הגישה לנתונים נפתרת כאן על ידי שימוש בתת-הסכימה. תת-הסכימה מיועדת בעיקר להקל על עבודת התוכניתן ועל שליטתו בנתונים אך היא יכולה לשמש גם כאמצעי נוח לאבטחת הנתונים. תוכנית היישום רשאית לגשת רק לנתונים המוגדרים בתת-הסכימה שלה. יש לזכור שבמערכות 0818 תת" הסכימות אינן מוגדרות על-ידי התוכניתן אלא על"ידי מנהל בסיס הנתונים. סיווג הגישה סיווג הגישה הינו הרשאה לביצוע פעולות עיבוד מסויימות בבסיס הנתונים. -- קריאה (ד6₪): קריאת נתונים לתוכנית היישום. -- ביטול (םז= |םס): ביטול נתונים בבסיס הנתונים. -- כתיבה ( ד85₪א!): הוספת רשומות חדשות לבסיס הנתונים. -- שינוי (צ=וסס!א): ביצוע שינוי כלשהו ברשומה קיימת. לעיתים יש צורך להגביל את השינוי לרמת שדה בתוך הרשומה. ניתן להרשות לכל משתמש צורת גישה אחת או יותר, כלומר קריאה בלבד, קריאה ושינוי ועוד. בדרך כלל תוגבל הרשאת הביטול עד כמה שאפשר. נעילת נתונים -- שדה: זוהי היחידה הבסיסית ביותר לנעילה מכיון שהיא מכילה עובדה שיתכן שיש למנוע מהמשתמש מלראות. אפשרות אחת היא לא להגדיר את השדה בתת-סכימה. במקרים מסויימים הבעייה מורכבת יותר כאשר האיסור לראות את הנתונים תלוי בתוכן השדה. למשל אם שדה השכר מכיל ערך מסויים ומעלה -- הגישה אינה מותרת לכל עובד ביחידת שכר. במקרה זה יש להפעיל שגרה כלשהי שתבצע את הבדיקה. -- רשומה: אפשר למנוע גישה של משתמש לרשומה. אם תוכנית אינה מורשית לראות רשומה היא לא תופיע בתת-סכימה שלה. -- קשר בין רשומות: במערכת 088 מאחסנים בנוסף לנתונים גם את הקשרים ביניהם. לעיתים יש למנוע את הגישה לרשומות הקשורות לרשומה מסויימת. לדוגמא לא ניתן לגשת לרשומות הסטוריה רפואית של עובד בכלל, או כאשר הן מכילות נתונים על מחלות מסויימות בלבד. -- תת-סכימה: הגישה לתת-סכימה לא תורשה לתוכניות שתת הסכימה לא הוגדרה והורשתה עבורן. -- סכימח: הגישה לסכימה לא תותר לתוכניות מסויימות. הגישה לסכימה יכולה להיות מוגבלת לסוג הגישה. תוכניות שונות המייצגות משתמשים שונים יכולות לקרוא את הסכימה אך רק מנהל בסיס הנתונים מורשה לשנות אותה. נציג לדוגמא סכימה אשר כוללת מספר מרכיבי אבטחת נתונים. הסכימה מבוססת על המלצות 0008 וכוללת מנגנון של מנעול (1.00%) ומפתח (ע6א). את המנעול מגדירים בסכימה או בתת-סכימה על-ידי קביעת ערך כלשהו. תת-סכימה או תוכנית שרוצה להשתמש בנתונים צריכה לספק את המפתח למנעול כלומר לדעת את "הערך הסודי". ניתן להגדיר מנעול שונה עבור כל אחד מסוגי הגישה ובכל אחת מהרמות: שדה, רשומה, קשר, תת-סכימה וסכימה. 24 4דוש109 5 גא 50754 .4800 8! +00 ה0ס= אסס זס4שוהס -- .אגוסו5צחם 5 םגא פהסספה .4488 8! סדם ומס מס 1008 צסגעוהק ,6000 8ו צאופסוא מס 1008 צסהשוהק 6 8 שאו מס: א00) צסגשעוחק נעילה של הרשומה לפי סוג הפעולה .סו-א3וסופצחק או 0410 8ו פססוא אסוזא2064 .(9)5 8 מהטדסום סו-אגוסופצחק 01 .(30)א< 5! םמטדסוק אאא 01 %-- - .(40)< 8 פמטדסוק אסודג2ו ו4וסםק5 01 .9 8 ץוססוא הס= 100% צסגעוהק יי השגרה תבצע בדיקות מסויימות [ בדוגמא זו מופיעות מספר נעילות ברמות השדה, הרשומה והסכימה. רק מי שיודע את כל הסיסמאות המתאימות יוכל לגשת לנתונים ולבצע את הפעולה. לדוגמא, תת-סכימה המשתמשת בסכימה תצטרך להגדיר את המפתח בצורה הבאה: דהסקםה-זאשודאק 6 םגא 585054 5054 |הדוקפסה הס= .380 6! צםא צסגעוחט + מפתח של הסבימה 205 68 6. סיכוס השימוש במערכות 0818 הביא להתפתחות רבה בנושא המערכות המקוונות. התפתחות זו הביאה לשינוי שיטות העבודה בארגון והפכה אותו לתלוי במידה רבה בתפקוד של מערכת המידע הממוחשבת. תלות זו, בנוסף להשקעות הרבות של הארגון בהקמה ובתפעול מערכת 5, הביאה לדרישות תפעוליות מיוחדות. הארגון אשר מפעיל מערכת ניהול בסיסי נתונים מצפה ליתרונות שיושגו ורוצה להקטין ככל האפשר את הסיכון הכרוך בכך. מסיבה זו הושקעו אמצעים רבים בכדי לפתח כלים שונים המאפשרים תפעול מערכות בסיסי נתונים ברמת סיכון נמוכה יחסית. בפרק זה סקרנו את האמצעים הנפוצים והעיקריים המכוונים להשגת מטרה זו. 26 | פרק י מערכות 5אמם ‏ - מגמות וכיוונים לעתיד 1. מבוא 2. מכונת בסיס הנתונים 3 מערכות בסיסי נתונים מבוזרים 4. סיכום 217 1. מבוא קצב השימוש ביישומי מחשב הולך וגדל בשנים האחרונות. בין הנושאים שבהם קצב הגידול גבוה במיוחד, ‏ נמצא את אחסון ואחזור הנתונים במערכות אצווה ובמערכות מקוונות. כיום, טכנולוגיית מערכות ניהול בסיסי נתונים הינה טכנולוגיה בוגרת עם מספר אלפי מערכות 08818 עובדות לשביעות רצון המשתמשים בהן. בקרב אנשי המקצוע רווחת הדעה שמספר מערכות אלו ילך ויגדל בשנות ה-80. בלי ספק נהיה עדים בתקופה הקרובה למספר שיפורים משמעותיים בתחומים הבאים: -- רמת ביצועים ( ססחפוחזס!זסק): תכנון רוב מערכות 088 הפועלות היום מבוסס על טכנולוגיית המחשבים של סוף שנות ה-60 ושנות ה-70. קיימת ציפייה רבה לפריצת דרך בנושא הביצועים של מערכות 0888 ושימוש בטכנולוגיות חדישות, כגון מחשבים מיוחדים לטיפול בבסיסי נתונים, ביזור בסיס הנתונים בין מספר מחשבים שונים וניצול ארכיטקטורה של חומרה של היע"מ ומערכות האחסון. -- שימושיות (ע8ו!ופ98): רוב מערכות 0815 הקיימות היום מאפשרות גישה לרשומה אחת (8וד-6-860070-81-8ח0). שיטה זו מחייבת כתיבת תוכניות מחשב מורכבות יחסית לביצוע כל הגישות לבסיס הנתונים בהתאם לסדר הדרוש לעיבוד הנתונים. מערכות המשתמשות במודל הטבלאי הן יוצאות דופן בכך שהן מאפשרות גישה אל "קבוצה". ההפרדה בין המערכות לפי מודל הנתונים שבו הן משתמשות מקשה על המשתמש כי למטרות מסויימות מתאים מודל הנתונים שנבחר, אך הוא אינו מתאים למטרה אחרת ולכן גורם לסיבוך מיותר בפתרון הבעייה. עדיין לא קיימת טכניקה אחידה ומושלמת לתכנון מבנה הנתונים עבור כל היישומים הצפויים להשתמש במבנה הנתונים. הציפיה היא שבעתיד מערכות 088 תספקנה מבני נתונים גמישים יותר (כדוגמת מערכות מודל הנתונים הטבלאי) וטכניקות טובות יותר לתכנון מבנה הנתונים. -- אמינות נתונים (עזחָפוח! 8 ככל שמספר המשתמשים במערכת פואםס הולך וגדל מחמירה בעיית אמינות הנתונים המאוחסנים בבסיס הנתונים. מערכות 88 חייבות לספק כלים מגוונים להגנה על הנתונים מפני גישות לא מורשות בשוגג או במזיד וכלים להתאוששות מתקלות חומרה או תוכנה. הטכנולוגיות החדישות של בסיסי נתונים מבוזרים גורמות רמת מורכבות גבוהה יותר שבה צריך לטפל. הציפיה היא שמערכות 8/5 החדישות תספקה כלים משוכללים לטיפול בבעיות שהוזכרו. בפרק זה נסקור בקצרה חלק מהטכנולוגיות והטכניקות החדישות אשר צופים את יישומן במערכות ניהול בסיסי נתונים בשנים הקרובות. מן הראוי להזכיר את הדיון במערכות המבוססות על המודל הטבלאי אשר יצאו מכלל ניסויים ובדיקות ועתה משמשות כמערכות תפעוליות וכמערכות שירות למשתמשים בארגונים שונים ולמטרות שונות. הערה: המונח "מכונת בסיסי נתונים" אשר נשתמש בו בהמשך אינו מייצג מכונה מיוחדת שנבנתה למטרה זו בלבד. בפרק זה השתמשנו במונח זה במובנו הרחב והצבענו על כיווני הפיתוח של מערכות חומרה רגילות לעיבוד נתונים כדי לספק שירותים טובים יותר למשתמשים במערכות בסיסי נתונים. 209 2 מכונת בסיס נתוניס טכנולוגיית המחשבים כפי שהיא מוכרת היום מותאמת היטב לטיפול בבעיות של עיבוד נתונים, ומותאמת פחות לטיפול בבעיות של ניהול נתונים. המחשבים נבנו בתחילה לטפל במהירות וביעילות רבה בחישובים מורכבים ועיבודים מדעיים שונים ולא בבעיות של אחסון ואחזור נתונים. אי התאמה זו נובעת מהעובדה שאחסון ואחזור נתונים מחייבים מיעון (0חו4/007099) לפי תוכן בעוד שהמחשבים תוכננו למיעון לפי כתובת פיסית. לדוגמא, כדי לאחזר רשומת עובד לפי תוכן המפתח שהוא מספר תעודת הזהות למשל יש להציג את הכתובת הפיסית שבה הרשומה מאוחסנת. המערכות לניהול נתונים משתמשות בטכניקות שונות לביצוע תרגום של התוכן לכתובת, כגון מצביעים, אינדקסים או טבלאות מיוחדות. שיטה זו מוסיפה אלמנט מסויים של חוסר יעילות בניצול המחשב ושטח האחסון. לעיתים טבלאות התרגום השונות דורשות מקום אחסנה רב. גם זמן החישוב הנדרש לתרגום ולחישוב הכתובת הפיסית עשוי להיות משמעותי במקרים מסויימים (מחשב קטן או משתמשים רבים מאד). טבלאות, אינדקסים, מצביעים [מערכת לניהול נתונים הרשומה נמצאת תהליך תרגום בגליל סו, מסילה ערך לכתובת קהא רשומת עובר ל שמספרו = 17% תרשים 1- 10: תרגום תוכן שדה לכתובת פיסית אחת ההתפתחויות המעניינות בשטח המיחשוב היתה הופעת מחשבים מיוחדים המתמחים בנושאים יחודיים. ההתפתחות הגדולה שחלה בשטח תקשורת הנתונים והפעלת המערכות המקוונות היתה לאחר הופעת יחידות בקרה ממוחשבות לתקשורת ומחשבי תקשורת (700888018] הסו081וחטותוח00 שחם-והסזם). הם הורידו את העומס מהמחשב המרכזי וביצעו מטלות מיוחדות הקשורות לניהול התקשורת בין המסופים לבין המחשב המרכזי. יעילות מחשב יעודי (זפ)טקוחס00 086108160) נובעת מכך שתכנונו מכוון לתחום יחודי ומוגבל יחסית. מחירו זול ממחיר מחשב המיועד לבצע מגוון של פעולות ולתת שירותים רבים. חוסר היעילות של המחשבים הקיימים באחסון ואחזור נתונים הנחו את העוסקים בנושא למסקנה שיש לנסות ולפתח מחשבים יעודיים גם לטיפול בבסיסי נתונים. מחשבים אלה יטפלו 20 בכל ההיבטים הקשורים לניהול בסיס הנתונים ויורידו מעמסה זו מהמחשב המרכזי. מחשבים יעודיים אלה ידועים בשם הכללי מכונת בסיס נתונים (8חוחס8! 885 0818 -- ום). מכונת בסיס נתונים הינה שילוב של חומרה ותוכנה המכוונים לעסוק במגוון הנושאים הקשורים לניהול בסיס הנתונים ואין הם עוסקים בפעולות עיבוד נתונים אחרות. מחשבים אלה יעילים במיוחד בפעולות אחסון ואחזור נתונים. פיתוחם עונה על הצורך הגובר של היישומים לאחסן כמויות גדולות של נתונים, לעדכן אותם ולבצע חיפושים מורכבים למטרות אחזור. הטכניקות הקיימות למיעון אינן מתאימות עדיין עבור בסיסי נתונים גדולים (מעל 10% בתים) ולכן השימוש במכונות אלו מוגבל. בשנים האחרונות חלו התפתחויות בחומרת מערכות המחשבים (יע"מ ודיסקים) אשר דחו את ההכרח לעבור ליחידות עיבוד יעודיות לניהול בסיסי הנתונים, מאידך, מכונות בסיסי הנתונים לא עברו את שלבי הניסויים וההפעלה בנפחי נתונים מוגבלים. אחד המושגים החשובים ביותר בהבנת טכנולוגיית מכונות בסיסי נתונים הוא הזכרון האסוציאטיבי. לאחר הבהרת מושג זה נציג בקצרה חלק מהארכיטקטורות הקיימות ליישום מכונת בסיס נתונים. יחירת בקרה תוכנה קלט לניהול ופלט בסיס . הנתונים תרשים 2 - ס1: השיטה המקובלת לניהול בסיסי נתונים 1 זכרון אסוציאטיבי אחד העקרונות החשובים במכונת בסיס נתונים היא האפשרות לגישה לנתונים על פי התוכן ולא על פי הכתובת הפיסית. יחידות אשר מבצעות גישה לנתונים לפי תוכן נקראות זכרון אסוציאטיבי (896ז0ס51 6ש455001911), זכרון לפי תוכן (896זס!8 1-400785800ח16ח00) או זכרון חיפוש (עזסוח6! ח0ז598). השיטה הרגילה לגישה לנתונים מנקודת מבט המשתמש היא באמצעות תוכן שדה כלשהו. בדוגמא שהוצגה בתרשים 1--10 הגישה לרשומת העובד היא באמצעות תוכן שדה "מספר- תעודת-זהות". המחשב אינו יכול לבצע חיפוש לפי תוכן אלא רק לפי כתובת פיסית, ולכן מופעל תהליך תרגום כלשהו, שבסופו מתקבל מצביע שמכיל את הכתובת הפיסית של הרשומה 21 המבוקשת. תהליך התרגום יכול להתבצע על-ידי רנדומיזציה (חַחוח₪185) או סריקת טבלאות מיוחדות שמקובל לכנותן אינדקסים. לפיכך שיטות אלה מחייבות סריקת אינדקסים, ניהול שטחי גלישה, שרשור רשומות ועוד. הזכרון האסוציאטיבי, בניגוד לשיטה הרגילה, מאפשר גישה ישירה אל הנתונים על-פי התוכן ללא שימוש בכתובות הפיסיות שלהם. מקובל לחלק את הזכרונות האסוציאטיביים לשתי קבוצות עיקריות: זכרון אסוציאטיבי מקבילי וזכרון אסוציאטיבי סדרתי. -- זכרון אסוציאטיבי מקבילי (5107806 6שו48500/81 |88/!6ק) יכול לאתר נתונים על פי תוכן, במחזור זכרון אחד הנמדד בסדר גודל של מספר מיקרושניות. הטכנולוגיה הקיימת בזכרונות אסוציאטיביים מקבילים מגבילה את גודל הזכרון למספר מאות או אלפים של מילים. מגבלה זו מונעת יישום השיטה עבור בסיס נתונים ומצמצמת אותה לאחזקת טבלאות מערכת למשל. - זכרון אסוציאטיבי סדרתי (510186 6ש48600/81 |1/9ח56006) מאתר את הנתונים על ידי סריקה סדרתית של הזכרון וביצוע השוואות. הסריקה מתבצעת במהירות רבה עד למציאת הנתונים הדרושים. בטכנולוגיה הקיימת היום משך החיפוש בזכרון של 200 אלף בתים הוא כ- 0 אלפיות שנייה. נפח זה אינו מתאים בדרך כלל לניהול בסיסי נתונים אלא לניהול קבצי מערכת ואינדקסים. אחד היתרונות הבולטים של הזכרון האסוציאטיבי הסדרתי הוא האפשרות לבצע חיפושים על-פי מפתחות חלקיים, כמו למשל חיפוש רשומת עובד לפי שם משפחתו בלבד ולא לפי שם מלא. בזכרון האסוציאטיבי המקבילי ניתן לבצע חיפושים רק על פי מפתח שלם. יתרון זה נובע מהעובדה שבזכרון האסוציאטיבי הסדרתי מתבצעת סריקה סדרתית על כל הנתונים ולכן ניתן להשוות גם מפתחות חלקיים. 2 חלופות לעיצוב מערכות מכונות בסיסי נתוניס קיימות מספר חלופות שונות לעיצוב מערכות אס ולכל אחת מהן יתרונות וחסרונות. כמה מהחלופות, ובמיוחד אלו המתבססות על היררכיה של זכרונות ויחידות בקרה היקפיות, מופעלות במערכת יבמ לניהול בסיסי נתונים גדולים. 1 מחשב יעודי התומך במתשב המרכפלי (ז0פ65ססזק 0חם-80%) זוהי הארכיטקטורה הישנה ביותר של מערכת 08 אשר יושמה בדרך כלל באמצעות מחשבים קטנים בשיטת 8ש5!8-ז8510)/|. המחשב המרכזי מעביר למכונת בסיס הנתונים את כל הבקשות לגישה לבסיס הנתונים. המחשב היעודי מבצע את כל הפעילויות הדרושות כגון בדיקת הרשאות לגישה לנתונים, ניהול שטחי האחסון של בסיס הנתונים, טיפול בעדכונים בו- זמניים, פעולות קלט ופלט, גישה לנתונים ועריכת הנתונים שנשלפו. בגמר ביצוע הפעולות הדרושות מעביר המחשב היעודי את התשובה אל המחשב המרכזי. התקשורת בין המחשבים מתבצעת באמצעות ערוץ קלט/פלט מהיר אבל ניתן גם לקשור ביניהם באמצעות קוי תקשורת רגילים. 212 מטפל רק בניהול מטפל בתוכנית בטיס הנתונים היישום תרשים 5 - סו: מחשב אפס יעודי 2 יחידת בקרה היקפית ממוחשבת (אחנ וסזוחס6 |8זסתסוז6ק זח6פווווחו) חלק מהפעולות אשר התבצעו במחשב היעודי הועברו אל יחידת הבקרה של יחידת האחסון. יחידת הבקרה מטפלת בפעולות פשוטות החוזרות על עצמן מספר רב של פעמים כמו חיפוש, מיון, התאוששות מתקלות חומרה, מיקום ראשי קריאה/כתיבה וכדומה. בדרך כלל החיפושים מתבצעים בזכרון אסוציאטיבי סדרתי. יחידת בקרה ממוחשבת זכרון אסוציאטיבי תרשים 4 - 10: יחידת בקרה היקפית ממוחשבת 3 הילררכיה של זכרונות (עחסזפזפוו! 6פָ9זס)5) התפיסה של היררכיה של זכרונות קיימת כבר שנים רבות וניתן ליישם אותה גם במערכות 23 ואפם. בשיטה זו בונים מספר זכרונות במקום זכרון מרכזי אחד, כאשר כל אחד מהם הוא בעל מהירות מחזור שונה. בראש ההיררכיה נמצא הזכרון המהיר ביותר, שהוא גם הקטן ביותר, מפני שמחירו הוא הגבוה ביותר. בתחתית ההיררכיה נמצאת יחידת האחסון בגישה ישירה, הדיסק, שנפח האחסון שלו גדול אבל מהירותו איטית באופן יחסי לזכרון. בשיטה זו בונים במחשב היעודי זכרון מהיר יחסית אבל בעל כושר אחסון בינוני. הרעיון של בניית זכרון זה נבע מכך שמחקרים שונים הראו שביישומים רבים רוב הגישות לבסיס הנתונים מתרכזות באותה סביבה פיסית (06ח491670 0818 01 ע1.00811). כלומר יש הסתברות גבוהה לשימוש בנתונים בהם כבר השתמשנו או בנתונים סמוכים להם. נתונים בזכרון המהיר מנוהלים על בסיס של אחרון בשימוש (0860 881 |), כלומר כאשר יש להכניס נתונים חדשים לזכרון המהיר הם נכתבים על הנתונים שלא היו בשימוש זמן רב ביותר. 0 מילישניות זכרון מהיר ראשי זברון מהיר עבור 0815 5 מילישניות 0 ננו שניות סס גנו שניות תרשים 5 - ס1: מחשב מרכזי עם היררכיה של זכרונות 4 רשת מחשבים (אזסשופא) בשיטה זו המחשב המרכזי קשור למספר צמתים ברשת תקשורת כאשר באחד מהם נמצאת מכונת בסיס הנתונים. היתרון של שיטה זו הוא בכך שמספר מחשבים מרכזיים יכולים לגשת להעתק אחד של בסיס הנתונים ולמנוע את כפילות הנתונים. במערכת כזו קיימות בעיות של ניהול ובקרה מעבר למה שמוכר במחשב אחד שמשרת צרכנים רבים. :== בסיס הנתונים תרשים 6 - 10: רשת מחשבים עם מכונת בסיסי נתונים מרכזית 24 3 מערכות בסיסי נתוניס מבוזריס מערכת בסיסי נתונים מבוזרים (516₪08/ץ5 8856 0818 0סוטפוזופום -- 86סס) מאפשרת לאחסן את הנתונים במספר אתרים שונים בתוך רשת מחשבים. למרות האחסון במספר אתרים שונים זהו עדיין בסיס נתונים אחד שהגישות אליו מבוקרות ונעשות בצורה אחידה. הענין הרב במערכות בסיסי נתונים מבוזרים נובע מכך שהדבר יכול להוות פתרון טוב לארגונים גדולים המבוזרים גיאוגרפית, אך רוצים לנהל את הנתונים בצורה אחידה בבקרה מרכזית. המורכבות של הבקרה והעלות הגבוהה באמצעים ובקוי תקשורת מהירים הנדרשים למטרה זו מונעים לפי שעה את התפתחות השיטה. היתרונות של מערכות ניהול בסיסי נתונים מבוזרים הם: -- ניתן לאחסן את הנתונים קרוב למקום בו הם נוצרים או דרושים במידה הרבה ביותר, ובכך להגדיל את מהירות הגישה ולהקטין את עלות תקשורת הנתונים. בשנים האחרונות היתה ירידה יחסית גדולה יותר בעלות העיבוד ואחסון הנתונים לעומת הירידה היחסית במחירי תקשורת הנתונים. / -- מערכת בסיסי נתונים מבוזרים הינה אמינה יותר מכיון שבסיס הנתונים אינו נמצא ומנוהל על ידי מחשב אחד אלא על ידי מספר מחשבים. תקלה באחד מהם אינה מפסיקה בהכרח את פעולות שאר המחשבים ותפעול בסיסי הנתונים המקומיים שלהם. -- אפשר לשלוט טוב יותר על נפח בסיס הנתונים ולהתאימו לצרכים המשתנים. מסופים כ בסיט נתונים מקומי נתונים מקומי תרשים 7 - 10: בסיס נתונים מבוזר קיימים נסיונות ראשונים להפעלת מערכות בסיסי נתונים מבוזרים ואין ספק שבעתיד נראה שימוש רב יותר על ידי ארגונים מבוזרים מבחינה גיאוגרפית אשר ינצלו את היתרונות שבשיטה זו. עם זאת, מערכות בסיסי נתונים מבוזרים מציבות מספר בעיות שטרם נפתרו במלואן. נציג אחדות מהן: -- סינכרוניוציה בעדכונים: יש צורך בפיתוח מנגנונים יעילים לבקרה על פעולות העדכון של בסיס הנתונים כדי שתישמר אמינותו. בעיה זו מורכבת יותר כאשר נתונים זהים מאוחסנים במספר אתרים שונים, כלומר קיימת כפילות נתונים. 2055 -- ניהול הסכימה: במערכות בסיסי נתונים קיימת סכימה אשר מתארת את כל הנתונים בבסיס הנתונים ואשר יש לפנות אליה לקבלת נתונים על מנת לבצע את הפעולות הנכונות. במערכת מבוזרת קיימת הבעיה היכן לאחסן את הסכימה וכיצד יש לגשת אליה. -- שאילתות לנתונים מבוזרים: הנתונים מאוחסנים במספר אתרים שונים ולכן צריכה השאילתא לעבד לעיתים נתונים מבוזרים. לביצוע העיבוד עליה לבקש לשדר אליה את כל הנתונים הדרושים או לנסות ולעבד אותם בו-זמנית במספר מחשבים שונים, ולבקש שידור של הסיכום או התוצאה. -- טיפול בתקלות: כאשר קורית תקלה באחד הצמתים של בסיס הנתונים המבוזר מתעוררות בעיות כיצד להמשיך ולבצע את העדכונים בשאר הצמתים ולשמור על אמינות בסיס הנתונים. קיימות מספר חלופות ליישום מערכות בסיסי נתונים מבוזרים. אם ניתן לפצל את בסיס הנתונים לחלקים זרים אזי בכל מחשב מקומי יהיה העתק של הנתונים שלו בלבד. גם התנועות וגם הנתונים הם מקומיים בלבד וכל מחשב "מכיר" רק את בסיס הנתונים שלו. אם התנועות במחשב אחד מתייחסות לנתונים המאוחסנים במחשב אחר אזי כל מחשב ברשת צריך "להכיר" את הנתונים שבמחשבים האחרים. קיימות מספר אפשרויות לטיפול במצב זה: -- נאחסן העחקים של כל בסיס הנתונים במחשבים השונים. אם מעדכנים נתון כלשהו במחשב אחד, מחשב זה יוצר תנועות עדכון לכל שאר המחשבים ברשת. - נאחסן את הנתונים בצומת בה הם דרושים במידה הגבוהה ביותר. תנועות המתייחסות לנתונים שאינם מקומיים יועברו למחשב מרכזי המטפל בכל התנועות האלה או למחשב המאחסן את הנתונים ומעדכן אותם. 206 4. סיכוס ההתקדמותח שחלה בשנים האחרונות בטכנולוגיה של יחידות האחסון עדיין לא סגרה את הפער שבין : *כרון המרכזי המהיר לבין יחידות האחסנה המשניות האיטיות יחסית. יש לצפות שמכונות בס סי הנתונים והשימוש בזכרונות אסוציאטיביים יגדילו במידה רבה את ישימות המערכות ל יהול בסיסי נתונים. הזכרון האסוציאטיבי קיים כבר משנות ה-60 בהן נבנו מספר מערכות מחקריות. עם השיפורים בטכנולוגיית המזעור (81 !) התעורר מחדש המחקר בנושא זה כאשר המטרה היא בניית זכרונות בגודל מספיק ובעלות כזאת שיצדיקו את השימוש גם עבור בסיסי נתונים גדולים מאד. מחקרים שונים מלמדים שטכנולוגיית הדיסקים המגנטיים תשלוט עוד מספר שנים רב תוך שיפורים מתמידים במהירות הגישה, צפיפות האחסון, אמינות ועוד. השיפורים יביאו לעליה מתמדת בנפח האחסון ולירידה בעלות האחסון. בתחום התוכנה והמישק בין בסיס הנתונים והמשתמש נהיה עדים גם כן למספר שיפורים, כאשר המטרה המרכזית הינה פישוט ואיחוד המודלים של הנתונים הקיימים. המגמה בכיוון זה מזכירה את התהליכים שהיינו עדים להם בשטח שפות התכנות. דוגמא לכך הן העבודות והמחקרים המתבצעים בנושא ארכיטקטורה אחידה של בסיסי נתונים (8856 0818 חסוח 00 6זטו0טווחסזה). ארכיטקטורה זו צריכה להיות מסגרת למערכות השונות הקיימות היום ולאפשר תרגום ממודל נתונים אחד לשני, תרגום של פקודות לטיפול בנתונים ממודל אחד למשנהו וכדומה. נראה שיישום ארכיטקטורה כזאת תאפשר שימוש במודלים הנוחים יותר למשתמש ולכן קלים יותר ליישום ולשימוש. עליה להיות בעלת עוצמה רבה יותר מכיון שהיא משתמשת ביתרונות של כל אחד מהמודלים הקיימים. מתוך הנחה שכל השיפורים במישור הפיסי של אחסון הנתונים ובמישור הלוגי של השימוש בנתונים אכן יתקיימו, נהיה עדים לשימוש גובר במערכות בסיסי נתונים תוך עליה מתמדת ברמת הביצועים וירידה במחירים. נסכם את החלק הראשון של הספר בכך שנאמר שהמערכות לניהול בסיסי נתונים עדיין לא מיצו את מלוא הפוטנציאל הגלום בהן, והעתיד צופן בחובו ניצול נוסף של פוטנציאל זה. 27 - חלק שני מערכות 5אפס מסחריות 1 1/|וס/5ו 2. פאסו 3 |ה4דסד 4. 846סג. 5. 501/05 1 209 | | בפרקים הבאים תוצגנה מספר מערכות מסחריות אשר נפוצות ומוכרות בארץ. כל אחת מהן מייצגת מודל נתונים שונה או גישה שונה לטיפול באותו מודל נתונים. אין כל כוונה לציין בכך שרק מערכות אלו קיימות בשוק או שהן עדיפות באיזו צורה שהיא על מערכות אחרות שלא הוזכרו. -- המודל ההיררכי מיוצג על ידי מערכת 5וא! של חברת יבמ, -- המודל הרשתי מיוצג על ידי מערכת פואס! של חברת ופחוווטס ומערכת .|,דסד של חברת וחססחוס, -- המודל הטבלאי מיוצג על ידי המערכות 05/. 801 של חברת יבמ, -- מערכת 404848 של חברת 08 6:ז8ש/50 מייצגת את המערכות המשתמשות בקבצים מהופכים. המטרה העיקרית בהצגת המערכות הינה תיאור היישום של מודל הנתונים והשפה שבו הוא משתמש להגדרת הנתונים ולטיפול בהם. התיאור כולל את המאפיינים העיקריים אשר תומכים בהסבר התיאורטי שניתן בפרקים קודמים, ומאפשר למשחמש להכיר באופן כללי את התכונות של המערכות השונות. לשם החלטה בדבר בחירת מערכת ניהול בסיסי הנתונים לארגון, מעבר לשלב ההחלטה על מודל הנתונים הרצוי, יש לפנות לספרות המקצועית של היצרנים ולקבל את המידע הדרוש במלואו. יצרני התוכנה מכריזים על עדכונים ועל מהדורות חדשות של מוצרים קיימים. כתוצאה מכך יתכן שיחולו אי התאמות בין תיאורי המערכות בספר זה לבין התוכנה המסופקת על ידי היצרנים, אך בכל מקרה, לא יחול שינוי במודל הנתונים הבסיסי ובשפה הבסיסית של מערכת התוכנה. 200 פרק יא -- ₪5! וה5516 1ה0וח36 13 הסוזה וחזוסזח! מבוא . מושגי יסוד . מבנים פיסיים . קשרים לוגיים . שפה להגדרת נתונים שפה לטיפול בנתונים . סיכום = ₪ ₪ ₪ ₪ ₪ ב 21 1. מבוא מערכת 15//5! הינה מערכת מודל היררכי לניהול בסיסי נתונים אשר פותחה על ידי חברת יבמ והיא בין המערכות הותיקות הקיימות בשוק. חברת יבמ מספקת שתי מערכות ניהול בסיסי נתונים המבוססות על המודל ההיררכי: מערכת 5//5/| ומערכת 1/ 1ס--05//5ס. מערכת 8 המיועדת למערכות ההפעלה 05//81 ו57/!₪ נותנת שירותי ניהול בסיס נתונים וניהול רשת תקשורת לשם גישה לבסיס הנתונים באמצעות מסופים, ובכך היא מערכת בסיס נתונים ותקשורת נתונים (חסו1פסוחטוחוח00 2886/0818 0918 -- 00/מכ). רכיב 8ם של המערכת נקרא 1/ 1ם והוא אשר מכיל את מודל הנתונים ואת שיטות הגישה אל בסיס הנתונים. עבור מערכת ההפעלה 005 פותחה מערכת 1/1ם עצמאית אשר דומה, אם כי לא זהה, למרכיב 8ם של מערכת 58//5!/ן. במערכת ההפעלה 085כ הגישה לבסיס הנתונים באמצעות מסופים מבוצעת בעזרת תוכנת התקשורת 0105. בהמשך נתאר את מודל הנתונים 1/ וס אשר מיושם במערכת 5//8או. במערכת 8//8!א| חמישה רכיבים עיקריים: -- תוכניות היישום אשר נכתבות על ידי תוכניתני היישום לפתרון בעיות עיבוד הנתונים בארגון. תוכניות אלה משתמשות במישק סטנדרטי לשם תקשורת עם שאר מרכיבי התוכנה. התוכניות משתמשות בפקודת | 0/1 עם אוסף של פרמטרים כדי להפעיל את שאר מרכיבי ו -- בסיס הנתונים המכיל את הנתונים. המערכת משתמשת במודל נתונים היררכי משוכלל המאפשר לחבר היררכיות שונות ביניהן. הגישה לבסיס הנתונים מתבצעת באמצעות רכיב 1 במערכת. -- מערכת 1./1ם הינה אוסף של תוכניות מחשב המתווכות בין תוכניות היישום לבין בסיס הנתונים. . -- טבלאות בקרה (8100%5 |סזוחס0 1/ ום) המשמשות כמישק בין תוכניות היישום לבין מרכיב 1./1ם ומתארות את מבנה בסיס הנתונים. הטבלאות נבנות ומתוחזקות על-ידי מנהל בסיס הנתונים ((084). -- מערכת התקשורת הינה אוסף של תוכניות מחשב המאפשרות לתוכנית היישום להתקשר למסופים. מערכת התקשורת גם מנהלת את רשת התקשורת בכך שהיא מפקחת על הרשאת הגישה של המשתמשים השונים, מכילה מערכות שחזור ובקרה ועוד. בהמשך לא נדון ברכיב התקשורת של מערכת 8//5!שו. 23 2. מושגי יסוד במערכת 1/ 1ם נהוגים המושגים הבאים: -- שדה (0!6ו=): יחידת הנתונים הבסיסית והקטנה ביותר במערכת. לכל שדה יש שם סימבולי אשר מאפשר לתוכניות המערכת גישה אליו. -- סגמנט (1ח56006): הסגמנט הוא אוסף של שדות בעלי שייכות לוגית והוא יכול להיות בעל אורך קבוע או משתנה. קיימת אי תלות בין תוכנית היישום לבין צורת האחסון הפיסי של הסגמנט. אי התלות מושגת על-ידי הגדרת הסגמנטים מחוץ לתוכנית היישום ופנייה אל הסגמנט בצורה סימבולית. ניתן להגדיר עד 255 סוגי סגמנטים (1/068 1ח59009) שונים במסגרת בסיס נתונים אחד. לכל אחד מסוגי הסגמנטים יכול להיות מספר בלתי מוגבל של מופעים (088ח8זזט000 1ח5010). ההגבלה היחידה היא שטח האחסנה של בסיס הנחונים. -- רשומה (0ז600 8886 818): הרשומה היא אוסף היררכי של סגמנטים אשר יכול להכיל עד 15 רמות היררכיות. החלוקה לסגמנטים ולרמות היררכיות נקבעת על פי דרישות היישומים השונים. הטיפול בניהול המקום הפיטי הדרוש לאחסון המבנה ההיררכי הוא בידי 1 ו"שקוף" מבחינת המשתמש. במבנה ההיררכי הסגמנט הנמצא בראש המבנה יקרא סגמנט השורש (1ח08ף56 זססה) והוא מכיל את המפתח המזהה את הרשומה כולה. (י + רמה ו רמה 2 רמה 3 תרשים 1 - 11: מבנה היררכי של רשומה בקבצים סדרתיים (88= |1/8ח56006) מכילה הרשומה את כל הנתונים ברצף, במבנה רשומה שטוח (!08ס!/ +8!=) כפי שמוצג בתרשים 2--11. נתונים אישיים תרשים 2 - 11: מבנה שטוח של רשומת כוח אדם 204 ב- 1/ ןס הופך מבנה שטוח זה למבנה היררכי הבנוי מסגמנטים שונים כפי שמוצג בתרשים 313-. פרטים מזהים נתונים אישיים השכלה תרשים :3 - 11: מבנה היררכי של רשומת כוח אדם חלוקת הרשומה לסגמנטים מאפשרת בין השאר אבטחת הנתונים מפני שימושים בלתי מורשים בכך שהיא מציגה לכל משתמש רק את הנתונים הדרושים לו. המערכת מאפשרת להגדיר לכל משתמש אילו סגמנטים מותר לו לראות או לעדכן. תוכנית היישום יכולה לפנות לסגמנטים אלו בלבד והיא לא תורשה לגשת לסגמנטים אחרים. לדוגמא יש לכתוב שתי שאילתות, אחת להצגת הנתונים האישיים של העובד ונתוני השכר שלו, והשניה -- להצגת הנתונים האישיים של העובד ונתוני ההשכלה שלו. לשתי תוכניות היישום עשויה להיות הרשאה שונה לגישה לבטיס הנתונים. מערכת 1/1ם מאפשרת להגדיר לכל אחת מהן את המבנה הלוגי שהיא "תראה". פרטים ך השכלה אישיים שאילתא על נחוני שכר שאילתא על השכלת העובד תרשים 4 - 11: שני מבנים לוגיים המבוטסים על אותו בסיס נתונים 205 מספר הסגמנטים ברשומה אחת משתנה בין הרשומות השונות גם כפונקציה של הזמן. ברגע נתון לרשומת עובד אחת יכולים להיות קשורים 4 סגמנטים של נתוני השכלה בעוד שלרשומות עובד אחרת קשורים רק 2 סגמנטים כאלו. במשך הזמן יכולים להתווסף סגמנטים כאלה לכל אחד מהעובדים בהתאם לקורסים או הכשרה שיקבלו. -- מפתח (₪6!0 06ח6טף50): לכל רשומה בבסיס נתונים יש מפתח חד-משמעי המזהה אותה. מפתח זה הינו אחד מהשדות בסגמנט השורש. גם לסגמנטים התלויים בסגמנט השורש יכולים להיות שדות מפתח אולם הגישה אליהם אפשרית רק לאחר ידיעת המפתח של סגמנט השורש. המפתחות של סגמנטים תלויים אינם חייבים להיות יחודיים. -- קשרים בין סגמנטים: מקובל להשתמש בביטוי הורה ו"ילד או אב ודבן לתיאור הקשרים בין הסגמנטים של אותה רשומה. סגמנט שקשורים אליו אחד או יותר סגמנטים ברמה נמוכה יותר יקרא סגמנט אב או הורה (001וף59 +ח6זפק). סגמנט הקשור לסגמנט אחר ברמה גבוהה ממנו יקרא טגמנט בן או ילד (1ח0חחף86 6ווחס). לדוגמא בתרשים 5--11, סגמנט 1 הוא סגמנט האב של סגמנטים 2, 3, 4, 5, 6, 7, 8. סגמנט 2 למשל הוא סגמנט בן של סגמנט 1. מושג האב/בן הינו מושג יחסי מכיון שסגמנט בן יכול להיות בעצמו סגמנט אב. לדוגמא, סגמנט 2 שהינו בן של סגמנט 1 הינו סגמנט אב של סגמנטים 3, 4. מקובל לכנות את כל המופעים של סגמנטים מאותו סוג הנמצאים תחת אותו סגמנט אב סגמנטים תאומים (19ח5800 חושוד). לדוגמא, לכל המופעים של סגמנטים בן מסוג 4 המופיעים מתחת למופע מסויים של סגמנט אב מסוג 2 הם סגמנטים תאומים. מעבדות עובדים תרשים 5 - 11: מבנה היררכי 206 -- סדר סריקת המבנה ההיררכי (|890788ז1 66זד) על ידי מערכת 1/ וס לשם איתור רשומה או סגמנט נעשה בשיטה קבועה. השיטה נקראת למעלה-למטה, שמאללימין (1.88-8/001 ,ח/וסם-פסד). בתרשים 6--11 נקבעו מספרי הסגמנטים לפי סדר הסריקה של המבנה ההיררכי. [1 בתרשים 5--11 סומנו גם-כן הסגמנטים לפי סדר הסריקה. -- מסלול היררכי (ח)28 |108ח870ז0ו4]): המסלול ההיררכי הוא אוסף הסגמנטים שיש לסרוק על מנת להגיע לסגמנט יעד כלשהו. מערכת 01/1 מאפשרת גישה לכל אחד מהסגמנטים במבנה הרשומה באמצעות מסלול היררכי אחד. המסלול ההיררכי המוביל לסגמנט 6, למשל, בתרשים 6--11 הוא: 61 ברשומה המוצגת בתרשים 6--11 אפשריים המסלולים ההיררכיים הבאים: א. 3+2+1 ד. 7-1 ב. 2>1->5-4 ה. 1]+9+8 ישי ו 11-10-8-1 תרשים 6 - 11: מסלולים היררכיים ברשומה 207 אוסף המפתחות של הסגמנטים המרכיבים מסלול היררכי הוא מפתח משורשר (ע0> 8100ח0070816). כדי להגיע לרשומה 3 למשל, יש להכיר את המפתחות של סגמנט השורש, סגמנט 2 וסגמנט 3. -- בסיס הנתונים (2918-8886 !25108 ): בסיס הנתונים מכיל את המופעים של כל הרשומות מאותו סוג, כלומר בעלות אותו מבנה היררכי. המבנה ההיררכי של כל מופע הוא שונה בגלל קיום או אי-קיום של סוגי הסגמנטים השונים ברשומה. תרשים 7--11 מציג שני בסיטי נתונים שונים, אחד מכיל את רשומות המלאי והשני את רשומות ההזמנות. בסיס הנתונים ‏ "מלאי" למשל, כולל פריטים שונים אשר נמצאים במלאי במחסנים השונים. ברשומות הפריט השונות יהיה מספר שונה של סגמנטים "כמות במחסן" בהתאם למספר המחסנים שבהם מאוחסן הפריט. חשבוניות / שהוגשו בסיס נתונים - בסיס נתונים - מלאי הזמנות תרשים 7 - 11: שני בסיסי נתונים ב-1/1ם בתוך בסיס הנתונים אין הסגמנטים של הרשומה מאוחסנים באופן רציף, ועלדכן מערכת 1 משתמשת במצביעים כדי לקשור את הסגמנטים למבנה הלוגי של הרשומה. קיימת אפשרות להגדיר מספר רב של בסיסי נתונים פיסיים כאשר כל אחד מהם מכיל רשומה אחת או יותר, וכל אחד מהם יכול להשתמש בשיטות שונות לאחסון נתונים. ניתן לקשור בסיסי נתונים פיסיים ביניהם. > 208 3 מבניס פיסייס מודל 1/ !םס מאפשר מגוון של שיטות גישה לבסיס הנתונים אשר מגדירות גם את צורת האחסון הפיסית של הנתונים. תוכנית היישום בלתי תלויה בשיטת האחסון מכיון שהיא עובדת תמיד עם מבנה היררכי לוגי. שיטה זו מאפשרת מעבר מצורת אחסון אחת לשניה משיקולי יעילות למשל, מבלי שהדבר ישפיע על תוכנית היישום. בסעיף זה נציג ארבע שיטות גישה פנימיות של המודל (008ח61/₪ 400688 !006 |8חזפזחו). שיטות אלו מבוססות על שיטות הגישה המקובלות במערכות יבמ. : תת-סכימה 58 שיטות גישה פנימיות נסחן6)א 206858 |ההזסוה! -- 88% ' ]ה . 8 ו שיטות גישה בסיסיות דיסק מגנטי ספגם תרשים 8 - 11: שיטות גישה פנימיות ובסיסיות ב-6וא!ו 209 1 ססח91! 400885 |108ה06ו500 |8סוחסזהזסור -- ו₪מ54 שיטה זו משתמשת בארגון הסדרתי של הרשומות. הסגמנטים מאוחסנים ברצף בהתאם למבנה ההיררכי בגושים בגודל קבוע, ורשומה אחת יכולה לגלוש מגוש אחד לשני. שיטת אחסון זו אפשרית במתקני אחסון לגישה ישירה ובסרטים מגנטיים. השיטה אינה מאפשרת הוספה או ביטול סגמנטים לאחר בניית הרשומה. קיימת אפשרות להגדיר מבנה סדרתי פשוט (//15 6!סחחופ--//9/154) אשר מכיל סגמנט שורש בלבד, אשר מוכר כקובץ סדרתי רגיל. שיטת הארגון הסדרתית ‏ ///45] משמשת בעיקר לשם העתקות גיבוי של בסיס הנתונים. תרשים 9 - 11: מבנה קובץ ₪84 2 918000 400089 |560060108 60א6ח| [8סוחסזהזסורו -- ₪16 שיטה זו מאפשרת גישה באמצעות אינדקס לסגמנט השורש וגישה סדרתית היררכית לשאר הסגמנטים התלויים של הרשומה. המבנה ההיררכי של הרשומה נשמר על ידי הקירבה הפיסית של הסגמנטים לפי הסדר ההיררכי (מעלה-- מטה, שמאל--ימין). הגישה לאחד מהסגמנטים התלויים מתבצעת על ידי סריקה סדרתית של כל הסגמנטים הקודמים לסגמנט המבוקש. האחסון הפיסי מבוצע בקובץ 64 רגיל בשיטת קובץ 6508 וקובץ 5505. בשלב ראשון מוכנסים הסגמנטים לרשומות 8808 בעלות גודל קבוע. הרשומה הפיסית תכיל את סגמנט השורש ומספר סגמנטים תלויים נוספים, ככל שרשומת 86808 יכולה להכיל. אם יש צורך במקום אחסון לסגמנטים נוספים משתמשים ברשומות ₪805 הקשורות על ידי מצביעים לרשומת 6508א. קובץ 508 קרוי גם שטח הגלישה (98ז4 שסו!!זסשס). תרשים 10--11 מדגים את מבנה קובץ ₪18. נשים לב לכך שהמבנה ההיררכי נשמר על ידי הקירבה הפיסית של הסגמנטים בסדר היררכי וקישור רשומות פיסיות ביניהן בסדר עוקב. 200 תרשים 10 - 11: מבנה קובץ או הוספת סגמנט תלוי חדש לרשומת 14154 מתבצעת בצורה הבאה: מערכת 1/1ס מאתרת את המקום שבו צריך להמצא הסגמנט החדש בהתאם לסדר ההיררכי ומזיזה את כל הסגמנטים במקום אחד, כדי שיתפנה מקום עבור הסגמנט החדש. בגלל ההוזה יתכן שיהיה צורך לפתוח רשומת גלישה ₪508 חדשה, אשר תכיל את הסגמנט האחרון בסדר ההיררכי. הרשומה הפיסית החדשה מקושרת לשאר הרשומות באמצעות מצביע. בתרשים 11--11 מוצג מצב הקובץ לאחר הוספת סגמנט 23 במבנה ההיררכי. הסגמנט התלוי החרש (23) תרשים 11 - 11: הוספת סגמנט תלוי לרשומת |₪4154₪ 21 אם צריך להוסיף סגמנט שורש חדש, הוא יכתב מייד בשטח הגלישה ויקושר באמצעות מצביע לסגמנט השורש של הרשומה עם המפתח הגדול מהרשומה החדשה. בצורה זו אין צורך לבצע הזזות של רשומות בשטח הראשי של קובץ 508א. שיטת /₪4154₪ אינה תומכת בסגמנטים באורך משתנה. השיטה אינה מאפשרת קיום קשרים לוגיים בין בסיסי נתונים (הקשרים הלוגיים יוסברו בהמשך) ואינה מאפשרת להגדיר אינדקסים משניים. 14154 אינה משחררת שטח של רשומות שבוטלו. שטח זה משתחרר רק בזמן הארגון מחדש של הקובץ., . קיימת אפשרות להגדיר מבנה אינדקס סדרתי פשוט (₪4!54₪0 016חו5), עבור רשומות המכילות סגמנט שורש בלבד. שיטה זו משתמשת בקוב] 46808 בלבד ויוצרת למעשה קובץ אינדקס סדרתי רגיל. בכך היא מאפשרת לגשת לקובץ אינדקס סדרתי רגיל מתוך תוכניות 1 ום. 3 00ח0%!/! 400688 +60זו |8סוחסזבזסורו -- ואהסם שיטת הגישה |0ו] מאפשרת גישה ישירה לסגמנט השורש על פי כתובתו. הכתובת בדיסק נקבעת על פי המפתח ושיטת הרנדומיזציה של מערכת 1./1ס. שאר הסגמנטים קשורים ביניהם באמצעות מצביעים. השיטה מיושמת בקובץ 808שישל |54/. שיטת ₪404 מאפשרת את הגישה המהירה ביותר לרשומות. היא גם מאפשרת ניצול יעיל של שטח האחסון, מכיון שבזמן ביטול סגמנט משתחרר מיד השטח שהתפנה ומנוצל לאחסון סגמנטים חדשים. שיטת 304% מאפשרת שימוש באינדקסים משניים ובקשרים לוגיים בין בסיסי נתונים פיסיים שונים. : מערכת 1/ 1ם הופכת את מבנה העץ הכללי למבנה של עץ בינרי שבו כל סגמנט מצביע על סגמנט הבן שלו ועל הסגמנט התאום שלו. כל הסגמנטים התאומים קשורים ביניהם בשרשרת תאומים (חו008 חושד) אשר אפשר להגדיר אותה בכיוון לפנים או לאחור. המערכת משתמשת במצביעים שונים לשם אחסון המבנה ההיררכי בשיטת |אהסוז: -- ₪05 (80זו= ווח |8סופעחק): מצביע על סגמנט הבן הראשון, -‏ 001 (1881 וח |08ופצחק): מצביע על סגמנט הבן האחרון, -- =ד₪ (0זפאוזס] חווד |5108עח0): מצביע על סגמנט התאום הבא, -- 078 (0ז8806/8 חווד וע ): מצביע על סגמנט התאום הקודם, -- ₪ק (1ה8]8 |5108עח0): מצביע מסגמנט בן לסגמנט האב שלו. מנהל בסיס הנתונים יכול לבחור בין שתי שיטות של ניהול המצביעים: מצביעים היררכיים (8ז9!חוס סוחסזפזסו1ז),ומצביעים לסגמנט בן ותאום (8זפוחוסם חושו/0ווח0). בשיטה של מצביעים היררכיים לכל סגמנט יש מצביע אחד לסגמנט הבא בסדר ההיררכי של הרשומה, למעט הסגמנט האחרון. בשיטה השניה לכל סגמנט יש מצביעים אחדים לסגמנט בן, כמספר הסגמנטים מסוג בן. לכל סגמנט בן יש מצביעים לסגמנטים התאומים ולסגמנטים הבנים שלו. בשיטה זו המצביעים =0ק ן- שש הם הכרחיים בעוד ששאר המצביעים ניתנים לבחירה. כל המצביעים נשמרים בחלק קבוע בתחילת הרשומה והם שקופים מבחינת המשתמש. 202 מבנה לוגי תרשים 12 - 11: הפיכת עץ כללי לעץ בינרי עם מצביעים ב-4₪ חתרשים 12--11 מציג מבנה ו המשתמש בשיטת מצביע בן/תאום. כדי לאחסן את המבנה הזה משתמש 1/ 1ם בשני שטחים נפרדים בקובץ !54₪/--5505: -- שטת מען השורש (68ז4 4007655806 !סה -- /) מיועד לאחסנת סגמנט השורש ומספר סגמנטים תלויים נוספים בהתאם לגודל הרשומה הפיָסית שהוגדר. כתובת הרשומה נקבעת על ידי הפעלת תהליך רנדומיזציה על המפתח שלה..לכל גוש בשטח זה יש כתובח, ותהליך הרנדומיזציה מתרגם את מפתח הרשומה לכתובת של גוש. אם מספר מפתחות שונים מייצרים את אותה הכתובת נבנית שרשרת של הפניות הזהות(ח|008 פוחהעהסחץ6). -- שטח גלישה (68ז שוסו!זפס) משמש לאחסון כל הסגמנטים התלויים של הרשומה שלא היה להם מקום ברשומה שבשטח מען השורש. אם אלגוריתם הרנדומיזציה מייצר לשתים או יותר רשומות את אותה הכתובת בשטח מען השורש מתבצע חיפוש לינארי לפנים עד לאיתור מקום פנוי, ומתבצע קישור באמצעות מצביעים בין הרשומה בכתובת המקורית לבין הרשומות החדשות. רד( ארי ה) כתוכבת מפתח תרשים 13 - 11: מבנה קובץ גפ 23 4 1018000 4006885 זססזוכ 60א06ח]| |הסוחסזהזסוה -- ואהסות שיטת הגישה ו4סוו דומה לשיטת הגישה |₪04₪. בנוסף לקובץ ₪808 המכיל את הרשומות משתמשת מערכת 1/1 גם בקובץ 6508 אשר מכיל את המפתח של הרשומה ומצביע לכתובתה. קובץ האינדקס 508 מאפשר עיבוד סדרתי של הקובץ. תרשים 14 - 11: מבנה קובץ אגסות 5 אינדקס משני (א66ח! צז09ח6000) בכדי לאפשר גישה מהירה לרשומה בעזרת מפתחות נוספים מנהלת מערכת 1/|ם אינדקסים משניים. שדה המפתח הנוסף יכול להמצא בסגמנט השורש עצמו או בכל סגמנט תלוי אחר ברשומה. תפקיד חשוב של האינדקס המשני הוא לאפשר גישה ישירה לסגמנט ברמה נמוכה יותר מרמת השורש. הטיפול באינדקס המשני נעשה על-ידי המערכת ולכן הוא "שקוף" מבחינת המשתמש. אינרקס משני / הזמנות רפשמ ו שא שב ברל ו ---ה-----------. תרשים 15 - 11: שימוש באינדקס משני 204 תרשים 15--11 מציג דוגמא של בניית אינדקס משני בבסיס נתונים לקוחות. המפתח בסגמנט השורש הוא מספר לקוח, אך אם רוצים לגשת לרשומה גם לפי מספר ההזמנה של הלקוח יש לבנות אינדקס משני. השימוש באינדקס המשני מציג בפני המשתמש מבנה לוגי חדש שבו סגמנט ההזמנה הופך להיות סגמנט השורש. הזמנה תרשים 16 - 11: מבנה לוגי חדש כתוצאה משימוש באינדקס משני כדי לבנות את האינדקס המשני על המשתמש להגדיר את הסגמנטים הבאים: -- סגמנט המקור (601 580 6006 א06ח!): זהו הסגמנט המכיל את שדה המפתח שלפיו יש לבנות את האינדקס המשני. האינדקס המשני שיבנה יהיה ממויין לפי מפתח זה. בדוגמא הקודמת זהו סגמנט ההזמנה. -- סגמנט המטרה (59(0601 )00ז8ד אשטחו): זהו הסגמנט שהאינדקס המשני מצביע עליו. סגמנט המטרה מציין איזה סגמנט ישלף כאשר מעבדים את הקובץ באמצעות האינדקס המשני. סגמנט המטרה וסגמנט המקור יכולים להיות זהים, אך אין זו חובה. בתרשים 15--11 סגמנט המטרה של "אינדקס משני הזמנות" הוא סגמנט השורש "לקוח". בתרשים 17--11 סגמנט המטרה שווה לסגמנט המקור. -- סגמנט האינדקס (0901ף56 זטזחוס א6שחו): סגמנט זה נמצא בתוך קובץ האינדקס המשני והוא מנוהל על ידי 1/ 1ס. כל סגמנט אינדקס מצביע לאינדקס מטרה אחד. המפתח של סגמנט האינדקס הוא המפתח המשני שנלקח מתוך סגמנט המקור. סגמנט האינרקס תרשים 17 -וו: אינדקס משני 205 6 השוואה בין המבניס הפיסיים ארבעה מבנים פיסיים או שיטות גישה שונים מופעלים על ידי 8ואו: א8ג, שגפום, יּ ואאסוו, ואגסה. הם נבדלים זה מזה בשלשת המאפיינים העיקריים: -- מהירות איתור (חיפוש): לאיתור רשומה בשיטת /א488! יש לסרוק כמחצית מבסיס הנתונים ולכן אין זה מבנה מתאים עבור גישות ישירות. שיטת |04] היא המהירה ביותר לאיתור סגמנט השורש מכיון שהיא משתמשת בתהליך חישובי ולא בסריקת אינדקסים. בשיטת ₪15 רשומת בסיס הנתונים מאוחסנת בדרך כלל בצורה רציפה ללא מצביעים מסוג כלשהו, למעט מצביעים הקושרים אֶת הרשומה לסגמנטים הנמצאים בשטח גלישה. שיטה זו יעילה מאד כאשר יש לסרוק את המבנה ההיררכי בסדר מעלה-מטה-שמאלרימין, כי אין צורך לבצע גישות פיסיות רבות לקבלת כל הסגמנטים. -- הוספת רשומה: במבנה 484 אין אפשרות להוסיף רשומות או סגמנטים חדשים, במבנה 40% הוספת רשומה או סגמנט היא המהירה ביותר. במבנה ₪104 מהירות הוספה גבוהה אך יש צורך גם לעדכן את האינדקס. במבנה /א8ו4! יש לבצע הזזה פיסית של כל הסגמנטים כדי לשמור על הסדר ההיררכי שלהם ולכן מהירות ההוספה איטית יותר. -- ניצול שטח אחסנה: במבנה /50 הניצול הוא הטוב ביותר כי אין תקורה הנובעת משימוש במצביעים. מבנה |//53ו1! זקוק למקום עבור האינדקס אבל אינו משתמש במצביעים לקישור הסגמנטים לשטח גלישה, למעט מצביעים מרשומת השורש לשטח הגלישה. מבנה //1 אינו משחרר את השטחים שמתפנים לאחר ביטול סגמנטים. מבנה סו אינו זקוק = למקום עבור אינדקסים אבל משתמש במגוון מצביעים לקישור הסגמנטים למבנה היררכי. וא/סה משחרר את השטח שמתפנה בעקבות ביטול סגמנט ולכן ניצול שטח האחסון טוב יותר מאשר ב- /ג/5ו1, מבנה וו זקוק למקום עבור האינדקס ועבור המצביעים. גישה ישירה לסגמנט שורש, גישה באמצעות מצביעים לסנמנטים תלויים גישה באמצעות אינרקס לסגמנט השורש, גישת סררתית לטגמנטים לו מכנים פיטיים גישה באמצעות אינרקס לסגמנט שורש, גישה באמצעות מצביעים לסגמנטים תלויים גישה סָררתית בלבר גישה ישירת לסגמנטים תלויים מצכיעים מצביעים מצביעים מצביעים גישה סררתית בן/תאום היררכיים בן/תאום היררביים לסגמנטים תלויים תרשים 18 - 11: מבנים פיסיים ב-5ואו תרשים 18--11 מסכם את ארבעת המבנים הפיסיים או שיטות הגישה הקיימים ב-8ושו ומדגיש את המאפיינים העיקריים של כל אחד מהם. 206 4. קשרים לוגייס (סוהפחסוז9!8 |00108.) ב 8/אן אפשר לקשור סגמנטים המופיעים בשני בסיסי נתונים פיסיים או יותר, או לקשור סגמנטים מאותו בסיס נתונים פיסי בצורה שונה מהמבנה ההיררכי הפיסי. הקשרים הלוגיים מאפשרים קבלת מבנים לוגיים נוספים למבנה הלוגי המתקבל מתוך בסיס הנתונים הפיסי. בצורה זו מוגדרות למעשה היררכיות חדשות המאפשרות גישה נוחה ושונה אל הנתונים. הרשומה החדשה שנוצרת הינה רשומה לוגית (80010 |פסוטָס.!) להבדיל מהרשומה הפיסית שהכרנו עד כה. הצורך בקשרים לוגיים מתעורר כאשר קיימים נתונים זהים במבנים היררכיים שונים. תרשים 19--11 מציג דוגמא לשני בסיסי נתונים פיסיים, בסיס נתונים "פריט" ובסיס נתונים "ספק". בבסיס נתונים פריט יש לנהל נתונים אודות הספקים של כל פריט בעוד שבבסיס נתונים ספק יש לנהל נתונים אודות כל הספקים המוכרים במערכת. זוהי דוגמא לכפילות נתונים. כתובת בסיס נתונים ספק בסיס נתונים פריט תרשים 19 - 11: כפילות נתונים בשני בסיסי נתונים פיסיים //% | בסיס נתונים ספק בסיס נתונים פריט תרשים 20 - 11: שימוש בקשרים לוגיים למניעת כפילות נתונים 207 ב 118 אפשר למנוע את כפילות הנתונים על-ידי שימוש בקשרים לוגיים. ניתן להחליף את סגמנט הספק בבסיס נתונים פריט במצביע אל רשומת הספק המתאים בבסיס נתונים ספק. במקרה זה נאמר שסגמנט השורש של רשומת הספק הוא סגמנט אב לוגי (1ח0ז8ק |6].00108 של סגמנט הספק בבסיס נתונים פריט. סגמנט הספק בבסיס נתונים פריט יקרא סגמנט בן לוגי (0ווח0 וסוס ). בדוגמא שבתרשים 20--11 יתכן שאותו פריט מסופק על ידי ספקים שונים. במקרה זה יהיו מספר סגמנטים של מצביעים מבסיס נתונים פריט לבסיס נתונים ספק. לסגמנט הבן הלוגי יש שני אבות, אב פיסי ואב לוגי. לסגמנט הבן הלוגי ניתן לגשת מסגמנט האב הפיסי דרך המסלול הפיסי, ואפשר לגשת אליו מסגמנט האב הלוגי דרך המסלול הלוגי. כאשר סגמנט בן לוגי מוצג למשתמש הוא מכיל את המפתח המשורשר של האב הלוגי (06.] ץ6א 8160ח0810ח00 1ח6זהק |108ַ0/ ---) ואחריו את הנתונים בסגמנט עצמו. מבנה סגמנט בן לוגי מוצג בתרשים 21--11. המפתח המשורשר (א0 ]) מוצג למשתמש תמיד כאשר הוא ניגש לסגמנט דרך המסלול הפיסי. עם הוספת סגמנט בן לוגי חדש לבסיס הנתונים יוצג המפתח המשורשר שלו, כדי שמערכת 1/ וס תוכל לבצע את הקישור הלוגי המתאים. 8 ח56010ז6)ח! נתונים המופיעים בסגמנט בן לוגי ואב לוגי תרשים 21 - 11: מבנה סגמנט בן לוגי בדוגמא שבתרשים 20--11, בעת הוספת סגמנט ספק חדש לבסיס נתונים פריט יכיל סגמנט הבן הלוגי את מספר הספק ונתונים נוספים הנוגעים לפריט ולספק, כגון תאריך תחילת אספקה. בעת קריאת סגמנט בן לוגי יוצגו למשתמש נתונים אשר נמצאים בסגמנט עצמו ונתונים נוספים אשר נמצאים ברשומת האב הלוגי. בדוגמא זו יבוצע הקישור מרשומת הפריט לרשומת הספק בבסיס נתונים ספק באמצעות השדה "מספר ספק". הצגת קשרים לוגיים מחייבת שימוש במצביעים מיוחדים בנוסף למצביעים הנהוגים לתיאור הקשרים הפיסיים. מערכת 18| משתמשת בקשרים הלוגיים הבאים, אשר מקבילים לסוגי הקשרים הפיסיים: - 105 (81ו₪ 1!6ח0 |1.00108): מצביע על הבן הלוגי הראשון, - 101 ()88 ] 071!0 |100108): מצביע על הבן הלוגי האחרון, - 175 (0זאשזסת חווד |109108): = מצביע על הסגמנט התאום הלוגי הבא, -- 118 (8:0/שא280 חוד וףסוטס.]): מצביע על הסגמנט התאום הלוגי הקודם, - 15 (287601 |1.00108): מצביע מסגמנט בן לוגי לסגמנט אב לוגי. 1 שיטות להצגת מבנים לוגייס קשרים לוגיים אפשר ליישם בשלש שיטות: 1 קשר לוגי חד-כיווני בשיטת קשר לוגי חד-כיווני (קוהפחסו39|81 |09ו1פ0 1 |8חסוז60זוטסחסוא) משתמשים במצביע ק ] אשר מורה מסגמנט הבן הלוגי אל סגמנט האב הלוגי. נניח שקיים קשר רב--רב" 208 ערכי בין פריטים לספקים. כדי לנהל קשר זה ניתן להשתמש בקשר לוגי חד-כיווני בין שני המבנים ההיררכיים. תיאור מספר פריט פריט תאריך | תאריך תאריך | תאריך : סיום תחילת סיום תחילת 5 = אספקה | אספקה אספקה | אספקה | בטיס נתונים ספק בסיס נתונים פריט תרשים 22 - 11: קשר לוגי חד-כיווני הקשר הלוגי החד-כיווני בין הסגמנטים, כפי שמופיע בתרשים 22--11, מאפשר הצגת שני מבנים לוגיים חדשים בנוסף למבנים הלוגיים המבוססים על המבנה הפיסי של בסיסי הנתונים. שני מבנים לוגיים חדשים אלו מוצגים בתרשים 23--11. כפי שניתן לראות, מבנה לוגי פריט מציג בפני המשתמש את נתוני הפריט יחד עם נתוני הספק (או ספקים) של הפריט. מבנה לוגי ספק מציג בפני המשתמש את נתוני הספק יחד עם נתוני הפריטים שהוא מספק. נשים לב לעובדה שהשימוש בקשר לוגי חד-כיווני אינו מונע כפילות נתונים ומשאיר את הטיפול בהם באחריות המשתמש. מבנה לוגי ספק מבנה לוגי פריט חיאור מספר ] פריע פריט | אספקה תאריך ‏ | תאריך סיום חחילת אספקה | אספקה אספקה תרשים 23 - 11: מבנים לוגיים המבוססים על קשר לוגי חד-כיווני 2 זיווג פיסי בקשר לוגי דודכיווני מערכת 18| משתמשת בשיטה זו (|100108 ו008ו601ז01/ 8180 ץ!!8סופעחק קוח5חסו₪6/80) לשם קישור ישיר בין שני הסגמנטים המופיעים בשני המבנים ההיררכיים. בשיטה הקודמת ניהול הנתונים הכפולים בשני הסגמנטים הוא באחריות המשתמש, וכאן מעדכנת מערכת 01/1 באופן אוטומטי את הסגמנט השני בעת עדכון הסגמנט הראשון, ולהיפך. לדוגמא, עדכון שדה "תאריך תחילת אספקה" בהיררכיה של הפריט יגרום לעדכון 209 מקביל של שדה זה בהיררכיה של הספק ולהיפך. המבנים הלוגיים המתקבלים בשיטה זו זהים לאלו המתקבלים בשיטה הקודמת. תיאור מספר פריט פריט תאריך | תאריך האריך סיום תחילת 1 תחילת. אספקה | אספקה אספקה תרשים 4 - 11: זיווג פיסי בקשר לוגי דו-כיווני 3 זיווג בפועל בקשר לוגי דוזכיווני כדי למנוע את כפילות הנתונים אשר קיימת בשתי השיטות הקודמות פותחה שיטת קישור נוספת (סוהפחסוופופ3 681וסס.] |חסווספזוסום 60זופק עוופטחו/). בשיטה זו רק אחד משני הסגמנטים מופיע בצורה פיסית בבסיס הנתונים ואילו הסגמנט השני מופיע בפועל בלבד. להגדרת הקשר בין האב הלוגי לבין הבן הלוגי משתמשת מערכת 01/1 בסגמנט בן בפועל (ווחס 81סופַס.1 זו --- 0.ש). הוא מוגדר כסגמנט תלוי של האב הלוגי ואינו קיים באופן פיסי ביחידת האחסון. מטרתו היחידה היא להגדיר את נקודת המבט של האב הלוגי על הנתונים המופיעים בסגמנט הבן הלוגי. באמצעות סגמנט הבן בפועל מתאפשרת הגישה מסגמנט האב הלוגי לסגמנט הבן הלוגי. סגמנט זה מאפשר גם להגדיר את סדר המיון של הבנים הלוגיים במסגרת קשר התאומים. מכיון שניתן לגשת לבן הלוגי הן מהאב הפיסי והן מהאב הלוגי, מתקבל קשר לוגי דוזכיווני (תרשים 25--11). בסיס נתונים ספק בסיט נתונים פריט תרשים 25 - 11: קשר לוגי דו-כיווני 200 הקשר הלוגי הדו-כיווני בין שני בסיסי הנתונים הפיסיים מאפשר הגדרת מבנים לוגיים חדשים אשר מכילים סגמנטים משני בסיסי הנתונים הפיסיים. תוכנית היישום פועלת על || המבנה הלוגי כאילו הוא המבנה הפיסי של הנתונים. עבור כל פריט היא יכולה לקבל את כל | הספקים והכתובות שלהם, ולהיפך -- עבור כל ספק ניתן לקבל את כל הפריטים שהוא מספק | | ואת המלאי הנוכחי שלהם. באופן פיסי אף אחד מהמבנים האלה אינו קיים, אבל ניתן לפעול | | עליהם כאילו היו קיימים. תוכנית היישום אינה מטפלת במצביעים והיא רואה את המבנה הלוגי העומד לרשותה כמבנה היררכי פשוט. בסיס נתונים פריט בסיט נתונים ספק תרשים 26 - 11: קשר לוגי דוכיווני בין רשומת פריט לבין ספקים תרשים 27--11 מציג דוגמא של הקשרים הלוגיים כאשר ספק אחד מספק מספר פריטים שונים. ספק 4 מספק פריטים א, 2 ולכן יש מצביעים (ש.|) מהם אל סגמנט השורש שלו. מסגמנט השורש ספק ישנו מצביע לפריט הראשון (=0.)) ולפריט האחרון (.01.). בין הסגמנטים בשתי רשומות הפריט קיימים קשרים של תאומים לוגיים (=ד.), 8ד)). המבנים לוגיים המתקבלים מקשרים לוגיים דו-כיווניים מוצגים בתרשים 28--11. 271 בסיס נתונים ספק בסיס נחונים פריט תרשים 27 - 11: קשר לוגי דו כיווני בין רשומות פריט לבין רשומות ספק |95[ 0 ]6[ תרשים 28 - 11: מבנים לוגיים המתקבלים מקשרים לוגיים דו-כיווניים 22 2 הצגת מבנה עצ מוצר כמבנה לוגי אפשר להשתמש בקשרים לוגיים גם עבור סגמנטים אשר נמצאים באותו מבנה פיסי. נדגיב זאת באמצעות מבנה עץ מוצר של פריט. הפריט יכול להיות הרכבה סופית, תת"הרכבה, פריט בסיסי מעובד או חומר גלם. שמירת הנתונים על הרכיבים בתוך הסגמנטים התלויים היתה גורמת לכפילות נתונים רבה מכיון שאותו רכיב (תת-הרכבה או חומר גלם) יכול להופיע במספר רב של פריטים סופיים. | תרשים 29 - 11: מבנה רשומת פריט - עץ מוצר למניעת הכפילות בנתונים ניתן להשתמש בקשרים לוגיים. עץ המוצר של פריט 4 מוצג בתרשים 30--11. הפריטים 4 ו87 הם הרכבות והפריטים ₪ ן- 0 הם חומרי גלם או פריטים בסיסיים מעובדים. תרשים 30 - 11: דוגמא לעץ מוצר של פריט 4 תרשים 31--11 מציג את המצביעים השונים הקושרים את סגמנט השורש של הפריטים השונים עם סגמנטים תלויים של פריטים אחרים. בצורה זו מתארים מבנה עץ מוצר ללא כפילות נתונים. 23 חומר גלם 0 חומרי גלם ב תרשים 31 - 11: מצביעים הדרושים ליישום עץ המוצר הקשרים הלוגיים השונים מאפשרים להציג מבנה לוגי חדש שבו אין נתונים כפולים כלשהם. השימוש בקשר תאום לוגי (₪ד] ,8ד) מאפשר לקבל מבנה המכיל את כל ההרכבות שבהן משתתף חומר גלם כלשהו, כלומר אילו רשומות כלולות באילו רשומות או היכן בשימוש (56(-חו-878ח//). הרכבות מרכיבים תרשים 32 - 11: מבנים לוגיים המתקבלים משימוש בקשרים לוגיים 204 השימוש בקשרים הלוגיים מאפשר בניית מבנים לוגיים מורכבים ביותר אשר מכילים סגמנטים ממספר בסיסי נתונים פיסיים. תרשים 33--11 מציג דוגמא של קשרים לוגיים בין שני בסיסי נתונים פיסיים ובין סגמנטים באותו בסיס נתונים פיסי, ושל שני המבנים הלוגיים הנובעים מאותם קשרים. הסטוריה תרשים 33 - 11: קשרים לוגיים ומבנים לוגיים 205 3 בסיס נתונים לוגי בסיס נתונים לוגי (2886 2818 [108ס.]) הינו אוסף של סגמנטים המסודרים במבנה היררכי בדיוק כמו בסיס נתונים פיסי. מקור הסגמנטים בבסיס נתונים לוגי הוא בסיס נתונים פיסי אחד או בסיסי נתונים פיסיים אחדים. סגמנט כלשהו בבסיס הנתונים הלוגי יכול להכיל את נתוני הסגמנט בלבד או גם נתונים נוספים שמופיעים בסגמנט האב הפיסי או בסגמנט האב הלוגי. בבסיס נתונים לוגי, סגמנט 8 יכול להיות בן של סגמנט 4 אם קיים מצביע כלשהו מסגמנט 4 אל סגמנט 8. מצביע זה יכול להיות המצביע הרגיל מסגמנט אב פיסי לסגמנט בן פיסי, או מצביע מסגמנט בן לוגי או סגמנט אב לוגי. ניתן לומר שבבסיס נתונים לוגי הקשרים אב-בן יכולים להיות קשרי בן-אב באחד מבסיסי הנתונים הפיסיים. בעת בניית בסיס נתונים לוגי יש לקיים שני כללים: -- סגמנט השורש בבסיס נתונים לוגי חייב להיות סגמנט שורש בבסיס נתונים פיסי כלשהו. -- כאשר הקשר אב-בן בבסיס הנתונים הלוגי הוא קשר אב-בן בבסיס נתונים פיסי, לא ניתן להשתמש באב הפיסי שנית בבסיס הנתונים הלוגי. כלומר, אם סגמנט 4 הוא אב של סגמנט 8 גם בבסיס נתונים לוגי וגם בבסיס נתונים פיסי, סגמנט 4 לא יוכל להיות בן של 8 בבסיס נחונים לוגי גם אם קיים בסגמנט 8 מצביע אל סגמנט האב . החשיבות של בסיסי נתונים לוגיים נובעת מהעובדה שניתן לנצל אותם לייצוג קשרים רב-- רב"ערכיים בין שתי יישויות. כל מבנה רשתי ניתן לייצוג באמצעות אוסף של בסיסי נתונים לוגיים עם ירידה קטנה יחסית בזמן התגובה לאחזור. עם זאת נראה ששיטת הטיפול ברשתות לפי המלצות ו00048% הינה ישירה ופשוטה יותר. למרות הקשרים הלוגיים המבנה המוצג למשתמש הוא תמיד מבנה היררכי. בזמן פעולות עדכון עליו להכיר את המבנה ההיררכי של בסיס הנתונים הפיסי, מכיון שקיימות מגבלות מסויימות לעדכון בבסיס נתונים לוגי. תרשים 34--11 מציג שני בסיסי נתונים פיסיים ושני בסיסי נתונים לוגיים אשר מופקים באמצעות הקשר הלוגי שביניהם 206 כסיס נתונים פיסי 1 בסיס נתונים פיסי 2 בסיס נתונים לוגי + (כולל חלק מהסגמנטים) תרשים 4 - 11: בסיסי נתונים פיסיים ובסיסי נתונים לוגיים המופקים מהם 207 5 שפה להגדרת נתונים מערכת ניהול בסיסי נתונים כוללת שפה להגדרת הנתונים אשר באמצעותה מגדיר מנהל בסיס הנתונים את המבנה הפיסי של בסיסי הנחונים ואת הקשרים הלוגיים שביניהם. השפה הינה למעשה אוסף של פקודות מקרו עם מגוון של פרמטרים. ב87!א! קיימות שתי שפות להגדרת נתונים: שפה להגדרת סכימה (80ס) ושפה להגדרת תת-סכימה (088). 1 הגדרת סכימה (חסטוחו91ם ₪996 031 --- סמם) הפקודות המשמשות להגדרת הסכימה: א. ספס: הפקודה הראשונה קובעת את שם בסיס הנתונים ואת שיטת הארגון שלו. להגדרת בסיס נתונים לוגי יש להשתמש בפרמטר /0616.] במקום שם של אחת משיטות הארגון הבסיסיות. ב. דםפ5גדאס: הפקודה מתארת את הקובץ הפיסי המשמש לאחסון בסיס הנתונים. הפקודה מציינת את שם הקובץ, סוג הדיסק, גודל הגוש ומספר תכונות פיסיות נוספת. ג 556%: להגדרת' הסגמנטים יש להשתמש. בפקודה אשר מציינת את שם הסגמנט ואת שם סגמנט האב במבנה ההיררכי. פרמטרים נוספים של הפקודה הם אורך הסגמנט בבתים, סוג המצביעים מסגמנט האב לסגמנט הבן (=00, =0ק, .וסק) וסוג המצביעים בין התאומים של אותו סגמנט (= דק , =דס, מדק, או סגמנט ללא תאומים). ד םס ופות: כל שדה בסגמנט יש להגדיר באמצעות פקודה אשר מכילה כפרמטרים את שם השדה, ציון שדה מפתח, גודל השדה בבתים וסוג השדה (נומרי, אלפא, נקודה צפה וכדומה). רק שדה אחד בסגמנט יכול להיות מוגדר כשדה מפתח. לדוגמא, הפרמטר (,550 ,סא-אםדו)=שאא מגדיר את השדה סא-|םדו כשדה מפתח. האות ( (6טףוחש) מציינת שתחת אותו סגמנט אב לא יתכנו שני מופעים שונים של סגמנט בן עם אותו מפתח, ואם תכתב האות |א (וסזוטוא) היא תציין שיתכנו מספר מופעים של סגמנט בן עם אותו ערך מפתח. ה. פ:!1/0₪4: פקודה זו מיועדת להגדרת אינדקס או קשר לוגי של הסגמנט. ו- אםסספפ ,5₪ואו= ,פאם: פקודות המסיימות את הגדרת בסיס הנתונים. תרשים 35--11 מציג בסיס נתונים לדוגמא ובהמשך ניתנת ההגדרה שלו. פריט אשזו ." יצרן חספאפט מלאי /8סדאפעאן ; תרשים 355 - 11: בסיס נתונים 208 שם בסיס הנתונים שיטת ארגון ומוגסז שם הקובץ סוג הדיסק גודל הגוש בבתים שם סגמנט הפריט הגדרת סגמנט שורש (ס) אורך הסגמנט שדה המפתח אורך השדה שדה אלפא-נומרי (6) שם סגמנט המלאי שם סגמנט אב מצביע לבן הראשון והאחרון אורך הסגמנט שדה בסגמנט צמסדאם שאו שדה בסגמנט צמסדאםעאו שם סגמנט יצרן שם סגמנט אב מצביעים פדק ,=דק שדה מפתח בסגמנט מססאש שדה בסגמנט מססאשצ ,הם-- צהס דאםעא!=שואהא וא4סה=0055 צא! =1ספ (0--- 2 8 = ,וא דו==והא ,0= דאשח אק 9 דצ ,(50,0, סא-ואם דו)== אהא ,9=פשדצץם 0=םשקצך צהסדאםעא=פושהא ,ואםדו= דא=חק ופ 6=6םדצם ,צדודאא ט0ס==אהא ,50 דצם ס=םקצך ד כ==ואא ,8=6ם דצ 6=םקצך ,הססאם/==!וא שאםז=דאפחס ,1=פםדצם ספאוצוז=חם זאוסק ,(ו ,550 ,סא-סאם/)=שוהא ,5=5שדצם 6=םסצך שו הא-סאם/=שואהא (5=0ם דצם 0=םקצך ספפ זז דהס ואפ ס+שו= ספ סופו= פישו= ספ סופ ספות 29 שדה בסגמנט הספאפצ ,= ד ס==ו א ספות ,5=6םדצם 0=םקצך הוראות סיום ההגדרה : אפספס הפואו= סאם הדוגמא בתרשים 36--11 מציגה הגדרת קשר לוגי בין שני בסיסי נתונים. קשר לוגי זה מייצג למעשה קשר רב--רב-ערכי בין הפריט לבין היצרן. שני הסגמנטים, סגמנט |ופדו וסגמנט 08סא=/ הם סגמנטי אב לסגמנט מססא=/-ו=דו. שיטה זו מאפשרת להחזיק את נתוני היצרן בבסיס נתונים יצרן בלבד ובבסיס נתונים פריט להשתמש במצביע מהבן הלוגי מססאםש-ש=דו אל האב הלוגי מססא=/. בזמן הגדרת בסיס נתונים יצרן מציינים באמצעות פקודת 0 1.011 את העובדה שיש לו בנים לוגיים. בסיס נתונים יצרן פריט ואפזו יצרן הפריט מלאי הססאפץ-אפדו צהסזאם שאו בסיס נתונים פריט תרשים 3:6 -11: קשר לוגי בין שני בסיסי נתונים הסכימה (80ס) עבור המבנה שבתרשים 36--11: בסיס נתונים אהסח00555=3/ ,הס-צם סדאם עצו=שוטהא ספסם קובץ פיסי (9ז8016 8 ) ז זהס סגמנט שורש 59 דצם ,0= דא ,ואש דו=ם גא ואספפ שדה מפתת 0=םקצד ,5=9ם דצם ,(550,0 , סא-שם דו)=ם אהא ספות סגמנט 6=פם דח ,= דו|= דאבק , צה סדאםעצן=ם הא |אססס שדה 0=םקצך ,5=10ם דצ/ם ‏ צדודאג ס=םהא םשו שדה 0=םמצז ,5=6ם דצ ,םזג פ=5ואא ספות סגמנט עם קשר דאפה הק [=חם דאוס> ,המספאםט-שם ו=ם גא ואספפ אב לוגי 1דם , ( (8ם-סאפע ,הססאם/) ,ואש דו) )=זאשההם 200 שדה 0=םקצץד ,555 דצ (א ,550 ,סא-פאם/)==וא בו שדה 6ם וד ,5-6 דצ ,םד פ=ם הא ספות סיום ההגדרה אפסספס הפואו= פאם בסיס נתונים 4605553548 ,8פ-סאם/=5וגא ספס קובץ פיסי (8ז800010ז08) זז סגמנט 5 דט ,הססאם/=וגא אפשס בן לוגי (8ס-?צחסזאפעאו מססאםע-שם דו)=םוהא סוחס שדה מפתח 5 ,(0 ,550 ,השפוטא-סאםע)=5 גא 2349 שדה 0א ,םוהא-סאם/=5 ובא פופו שדה 0 דד ,₪55 הססא-סאם/=5וא פופו סיום ההגדרה אפסספס המפואו= סא= 2 הגדרת תת-סכימה לכל תוכנית המשתמשת בבסיס הנתונים מוגדרת תת-סכימה (תפזפסזק--58ק 0% ח506000800). תת-הסכימה היא אוסף של שטחי תקשורת (וגזחסזק -- ₪08 0% חסו8סוהטחזוחס0) בין מערכת 8ון לבין תוכנית היישום המשתמשת בבסיס הנתונים. עבור כל בסיס נתונים, פיסי או לוגי, יש להגדיר שטח תקשורת (08ק) אחד אשר מכיל תיאור של חלק מהסגמנטים שהוגדרו בבסיס הנתונים ואשר תוכנית היישום זקוקה להם. שטח התקשורת מגדיר למעשה תת-עץ במבנה ההיררכי ולכן הוא חייב להתחיל בסגמנט השורש. ניתן להגדיר מספר בלתי מוגבל של שטחי תקשורת לאותו בסיס נתונים ומספר בלתי מוגבל של תוכניות יישום רשאיות להשתמש באותו שטח באמצעות תת-סכימות (58ק) זהות או שונות. תיאור קצר של השדות המרכיבים את שטח התקשורת, 008: א. בּ שואהא-ספס: מכיל את שם בסיס הנתונים כפי שהוגדר בסכימה (80כ). ₪ |-566: מכיל את הרמה ההיררכית של הסגמנט שטופל בפקודת אא אחרונה. סגמנט השורש נמצא ברמה 1, הבנים שלו ברמה 2 וכך הלאה. 5פ0ס-05דגד5ף: מכיל קוד החזר (0068 חזטזפה) המציין אם הושלם הביצוע של פקודת |/וס האחרונה. אם הביצוע לא הושלם כהלכה, יכיל השדה את קוד השגיאה. 5 ודפס-00מק: מכיל את אופציות העיבוד המותרות עבור הסגמנט האחרון שטופל. . שגא-556: מכיל את שם הסגמנט האחרון שטופל. הודסאם ו-צםא-8ת: מכיל את האורך הנוכחי של המפתח ההיררכי המשורשר עבור הסגמנט האחרון שטופל. 4 -צפא-8-: מכיל את המפתח ההיררכי המשורש של הסגמנט האחרון שטופל. 21 לדוגמא, בגישה לסגמנט היצרן בבסיס נתונים פריט המופיע בתרשים 36--11 יכיל המפתח המשורשר את מספר הפריט ואת מספר היצרן. השפה להגדרת תת-הסכימה מורכבת ממספר פקודות מקרו כאשר לכל אחת מהן יש מספר פרמטרים. להלן תיאור קצר של הפקודות המשמשות להגדרת תת-הסכימה: א. 08פ: פקודה זו קובעת באמצעות פרמטר ם))ן4אספס את שם בסיס הנתונים שהתוכנית תשתמש בו. פרמטרים נוספים כוללים את אופציות העיבוד, אורך המפתח ועוד. הפרמטר ד0000ק מאפשר להגדיר את אופציות העיבוד המותרות לתוכנית היישום. האופציות הנפוצות הן 6 (661) עבור קריאה בלבד, 0 (06/608) עבור ביטול, | (011פח!) עבור הוספה, ₪ (1806ס₪6) עבור עדכון. האופציה 6 (/6א) מציינת שתוכנית היישום אינה יכולה לטפל בסגמנט, אבל הוא מהווה חלק מתת-הסכימה והיא יכולה להשתמש בסגמנטים הבנים שלו. ב. 556א55: כדי שתוכנית יישום תוכל לפנות לסגמנט יש להגדירו בפקודה זו. את הסגמנטים יש לרשום באותו סדר שבו נרשמו הסגמנטים במבנה ההיררכי ב-80ס המתאים. ג. 1=א85: מאפשרת את הגדרת השדה בתוך הסגמנט כדי שהתוכנית תוכל לקרוא אותו או לעדכנו. פקודה זו מאפשרת להגביל את התוכנית לטיפול רק בחלק מהשדות של הסגמנט. אם פקודה זו אינה מופיעה בהגדרה, 1/ 1ם מניח שהתוכנית יכולה לטפל בכל השדות הסגמנט. ד. ם)חו/: הפקודה מאפשרת הגדרת שדה בפועל, שדה שאינו מופיע בסגמנט הפיסי. בין הפרמטרים של הפקודה אפשר לכלול שם שגרה אשר תקרא אוטומטית מספריית התוכניות כאשר תוכנית היישום תפנה לשדה זה. . ה. א680ק: מציין את סוף הגדרת תת-הסכימה (88ק) וקובע את שפת התכנות של תוכנית היישום ואת שם תת-הסכימה. ו פאם: מציין את גמר ההגדרה. לכל תוכנית המשתמשת בבסיס הנתונים יש לכתוב תת-סכימה, כדוגמא, נכתוב תת-סכימה ( (58ק) עבור תוכנית שצריכה להפיק דוח אשר מציג את רשימת היצרנים לכל פריט. המבנה הלוגי של הנתונים ניתן בתרשים 37--11, והגדרת הסכימה ניתנת בהמשך. אפזו הססאפצ : - תרשים 37 - 11: מבנה לוגי של נתונים לתוכנית יישום לדוגמא 22 ,8=םקצך 08 שם בסיס הנתונים ,הם-צה סדאםעאו== האס אופצית העיבוד המותרת: קריאה בלבד 8=ד 000הק אורך המפתח המשורשר של שני הסגמנטים א=אם ו/םא סגמנט שורש ,ואםזו=ם!)גא | 856א85 ס=זאטה הט סגמנט ,הססאם/=5ו/גאא | 556א55 שם סגמנט אב ו דו=דאסח הס שדה סא-סא5/=ואא פ+זאספ שדה םוגא-סאם/=שואגא םוא שפת תכנות קובול 1% | א865פק שם תת-הסכימה 4 == אק סאם 6. שפה לטיפול בנתוניס מערכת 1./1ם כוללת שפה לטיפול בנתונים (שְחּטחַח9.! 1ח900706ח8! 0818 -- וווס) אשר משולבת בתוך שפה מארחת כגון .6080, 1/ וק או ₪ 81/א4856. הטיפול יכול להיות בסגמנט אחד או יותר בו-זמנית, ולכן צריך לנהל מראי מקום, אשר מציינים את מיקום תוכנית היישום בתוך בסיס הנתונים. 1 מבנה פקודת וואס הפנייה ל- 1/ ס בקובול למשל מתבצעת באמצעות הוראת .| 04 בעלת המבנה הבא: .ח/55... ,584 ,88זג 0/] ,6וה8ח-08ק ,הסווסחט! 0516 יו וד 1.681 041 -- חסו)סחט!: הגדרת הפעולה אשר תוכנית היישום מבקשת ש- 1/ וס תבצע: 4 -- (שטסוח( )66): שליפת סגמנט בהתאם לתנאי הנקבע ב-./88. השליפה אינה תלוייה במיקום התוכנית בבסיס הנתונים. פקודה זו מאפשרת הצבה ראשונית לצורך התחלת העיבוד, או מעבר לשלב עיבוד אחר. א -- (1א6א )06): שליפת הסגמנט הבא לפי המיקום הנוכחי של התוכנית. הסגמנטים נשלפים לפי הסדר ההיררכי, מעלה-מטה-שמאל-ימין. אם קיים ‏ 85 ישלפו רק הסגמנטים שמתאימים לתנאי השליפה. 6% -- (1ח6זהק חותוו/ אא +36): שליפת כל הסגמנטים השייכים לרשומת אב אחת. סגמנט האב נקבע על ידי פקודת (6 או א6 אחרונה. אם קיים 884 ישלפו רק הסגמנטים שמתאימים לתנאי השליפה. 23 ₪ -- (₪010 661): פקודה זו מאותתת ל- 1/ וס שהתוכנית מתכוונת לעדכן את הסגמנט שנשלף ועליה למנוע טיפול בו על ידי תוכניות אחרות. הוראת !סה (4) אפשר לשלב בכל אחת מהפקודות הקודמות: (ו6₪, א64, שאח6. דחפו -- (1ז6פח!): זוהי פקודה להוספת סגמנט חדש לבסיס הנתונים. יש לקבוע היכן להוסיף את הסגמנט באמצעות 85 מתאים. זם |ם -- (06/666): פקודה לביטול הסגמנט וביטול כל הסגמנטים התלויים בו. פקודה זו יכולה לגרום לפגיעה בבסיס הנתונים ועל כן יש להגביל את השימוש בה. ]שח -- (860!806): פקודה לעדכון תוכן סגמנט אשר קיים בבסיס הנתונים. אין אפשרות לשנות את מפתח הסגמנט, אלא על ידי ביטול הסגמנט והוספת סגמנט חדש במקומו. סוה ח-8 0ק: קובע את שם תת-הסכימה שהתוכנית משתמשת בה. תת-הסכימה מכילה שטח תקשורת (08ק) בין התוכנית לבין 1/ ום. שטח התקשורת מכיל נתונים שונים, כגון: שם בסיס הנתונים כפי שנקבע בסכימה (ספס), סטטוס של הפקודה שבוצעה. על תוכנית היישום לבדוק שדה זה לאחר כל פעולה, סוגי הפעולות המותרים לתוכנית (קריאה, כתיבה, עדכון), הרמה ההיררכית של הסגמנט שטופל בפעולה אחרונה, אורך המפתח המשורשר שהוחזר, המפתח המשורשר של כל הסגמנטים לאורך המסלול ההיררכי. 3 0/ן: שטח בתוך תוכנית היישום שאליו או ממנו יקראו או יכתבו הסגמנטים על ידי מערכת 1/ 1ם. -- 888 ()הפוט0ז ה0ז568 1ה00זף56): זהו תנאי לשליפת סגמנט. אפשר לציין ארגומנט שליפה לכל סוג סגמנט במבנה ההיררכי, אך סדר כתיבתם צריך להיות לפי סדר הסריקה של המבנה. את ארגומנט השליפה כותבים בצורה הבאה: ה0וז8|111081 0 ,6ו000- 0 חר 0 ,6-6 ניתן לזהות את הסגמנט על ידי ציון שמו או על ידי ציון שמו וערך של שדה בתוך הסגמנט. תו ההוראה (0-0006ח8ווח00) הינו אופציונלי ומאפשר שינוי מסויים בפקודת 1/1 שבהוראה כפי שנראה בסעיף הבא. את התנאי (חסוו1/08ט00)) רושמים בצורה הבאה: 6 חהסוזו0ח00 ,6ההח-16!0= בדוגמאות שבהמשך נרשום לשם הפשטות את תנאי השליפה ((8558) בצורה סימבולית ולא בצורה פורמלית, כפי שהוא צריך להכתב. 24 2 דוגמאות לפקודות וס נציג מספר דוגמאות למבנה פקודות ‏ !ואס במערכת 1/ 01 עבור המבנה ההיררכי שבתרשים .-38 מחלקה (ס8אצ)) חולה (זאפודאפ) מספר רופא (08זסס0) אבחנה מאריף סוג אבחנה אבחנה תרשים 38 - 11ו: בסיס נתונים היררכי טיפול (זאשואדאשחז) אבחנה (ואסזקואצ8) א. גישה ישירה (|94ש0ז₪91 801זוכ): 1. שלוף את נתוני מחלקה 702: (702= סא-8//) סח גצ מטסואט זפ 2. שלוף את נתוני חולה 8425 המאושפז במחלקה 604: (604= 0א- סה עש) סה עו סטסואט ד (8425= סא-דאם!ד ק) דאשוד שק 3 שלוף את נתוני האבחנה של החולה בדוגמא 2 שנעשתה בתאריך שלאחר 01/04/82: (604= 0א-סה/ /ץ) סה גצ מטסואט זט (8425= סא-דאם!ד0) דאשוד קש (820401<=דדג/ס-/א/י5) ואסדקואץ5 ב. שליפה סדרתית (|8ע6וז61ח |18ח66000: 1. שלוף את נתוני כל הרופאים שטיפלו בחולה שמספרו 8425: סחגצ פטסואט ז35 (8425= סא-דאשוד ק) דאשודא ק .הסזססם .הסזססם דאפא ז65 1 205 בדוק אם מפתח היררכי משורשר מכיל מספר חולה 8425, אם כן בצע עיבוד וחזור לכתובת 1- 4881 !. אחרת המשך. בדוגמא זו לא קבענו את מספר המחלקה, שהוא המפתח של סגמנט השורש. לכן תבצע מערכת 01/1 סריקה סדרתית בבסיס הנתונים עד לאיתור סגמנט חולה ראשון עם המספר המבוקש. כל פקודת דאשא ד85 תשלוף סגמנט רופא נוסף. לאחריה יש לבדוק אם התחלף סגמנט החולה מכיון שהפקודה עלולה לחצות את גבולות העץ ההיררכי ולעבור לחולה אחר (הוראה 6% תחסום מעבר לרשומת אב אחרת). 2 שלוף את כל הסגמנטים המופיעים בבסיס הנתונים: .סה אש פטסואע ד5 6 .דאפא ז95 1 .1 סד 80 בדוגמא זו מחכצעת סריקה סדרתית של כל בסיס הנתונים לפי הסדר ההיררכי (מעלה-מטה- שמאל-ימין) של כל עץ. משתמשים בצורת שליפה זו לשם העתקת גיבוי של בסיס הנתונים. 3. שלוף את נתוני האבחנות של חולים שגילם נע בין 25 ל307: סחגצ פטסואש זפ (30 > 6 סאג 25 < 65א) דאשודאס .ומסדקשצפ .סא-זאפוד ק-קאפד סד סא-זאפודא ק =שסוא .אסדקואצפ זאםא זם8 - .5-2 | סא-זאםוד ק-קום ז = (המפתח משורשר ב- 558) סא-דאשודה ק =ו 24 סד 80 ג. שליפה סדרתית בתוך רשומת אב (+חפזפק חוחזוו 30171608 |8ו1ה6ט00) השימוש בפקודה ₪א6 דומה לשימוש בפקודה א8. ההבדל הוא שפקודת ₪א6 מחזירה לשטח התקשורת קוד"החזר מיוחד לאחר שהיא מסיימת לסרוק את כל הסגמנטים מאותו סוג בתוך רשומת האב שנקבעה על ידי פקודת ()6 או א6 קודמת. בפקודת אג) אשר יכולה לחצות גבולות של רשומת אב ללא התרעה הבדיקה חייבת להעשות על ידי תוכנית היישום. ד. עדכון סגמנט כדי לעדכן סגמנט יש לשלוף אותו תחילה באמצעות אחת מפקודות השליפה ולציין את אופציית ס.וס₪. 206 -- עדכן את שם החולה: סחגצו פטסואט פ וס זפ .(0=8425א- דאםודג ק) דאשודאק .םוא4א-דאשוד הק סד םוא-צופא פצסוא .2/0 ]ספת ה. הוספת סגמנט חדש פקודת ההוספה חייבת להגדיר את המסלול ההיררכי עד לסגמנט האב של הסגמנט החדש. מערכת 1./1ם תוסיף את הסגמנט החדש מתחת לסגמנט האב שנבחר ובסדר המתאים בהתאם לתוכן שדה המפתח. -- הוסף רשומת אבחנה חדשה לחולה שמספרו 8425: סחגצ זחשפאו (0=8425א-דאםודא ק) דאשודא ק ושסדקוצפ ו. ביטול סגמנט קייס בדומה לעדכון סגמנט, גם בביטול יש תחילה לשלוף את הסגמנט באמצעות אחת מפקודות השליפה עם האופציה כ ס₪1. -- בטל רשומת חולה שמספרו 8425 יחד עם כל הסגמנטים התלויים: סתאצו פטסואט סו ז3 .(0=8425א-דא=וד ס) דאשוד ק .=זם וס %ז. השימוש בתו הוראה (6008 חאו ס0) תנאי שליפת הסגמנט, 88, יכול להכיל תו מיוחד המאפשר הרחבה מסויימת של פקודות אס. נסקור בקצרה חלק מתוי ההוראה האפשריים. 1. שליפה היררכית (0 = 6008 6ח8חווהס0) אופציה זו מאפשרת שליפת מספר סגמנטים באמצעות פקודות 1./1ם אחת. בפקודה הבאה למשל נרשמה האופציה 0 ולכן ישלפו גם סגמנט המחלקה וגם סגמנט החולה בפקודה אחת. הפקודה ללא אופציה ₪ היתה שולפת רק סגמנט אחד כפי שנדרש בתנאי לשליפת סגמנט החולה. ס*סהגצו פטסואטש דט .(0=8425א-דאש1ד0) דאטוד שק אופציה ₪ מיועדת לשליפת מספר סגמנטים במסלול ההיררכי בהתאם לבחירת המשתמש וסגמנטים אחרים לא ישלפו. אופציה ₪ יכולה להופיע ברמה היררכית אחת או יותר בהתאם לצורך, ואין צורך לציין אותה ברמה ההיררכית האחרונה המופיעה ברשימת התנאים לשליפה כי זו חשלף תמיד. 207 ניתן לשלב אופציה זו עם פקודות דהשפאו, שדם ופס, סג וקפה. 2. סריקה מהתחלה (= = 6006 6ח8ווח00) במקרים מסויימים עורכים סריקה לפנים במבנה ההיררכי של הרשומה ולאחר שליפת סגמנט מסויים ובדיקתו יש צורך לשלוף סגמנט הנמצא לפניו בסדר ההיררכי. שימוש בפקודה דאםא 65 מאפשר סריקה רק בכיוון לפנים ועל כן נזקקים להוראת חזרה כביכול. אופציה = מורה שהחיפוש אחר הסגמנט הזה יתחיל מהסגמנט האחרון שנקרא באמצעות פקודה ₪51 םטסוא או דאפא ז65. יש לבדוק למשל את סוגי האבחנה של החולה. אם מזהים סוג אבחנה מסויים צריך לשלוף את כל הסגמנטים של הטיפולים של אותו חולה. מכיון שסגמנט הטיפול נמצא בסדר ההיררכי לפני סגמנט האבחנה, לא ניתן להשתמש בפקודת שליפה רגילה ויש להוסיף לה את ההוראה לסרוק מההתחלה: .(508=סא-סח/) סה אע פעסואש ז5 3 ווסדסוצ5 דאשוד= דא=ח הק אוחדועש זאפא זם6 בו סםג-קשד-ואסדקוצ5 דסא =!| .1 ד 60 .חא דאםואדה=חד דאשההק אוחדועש זאפא זם6 3. גישה לסגמנט אחרון (.]=6006 שחו וח 00) כאשר יש צורך לגשת לסגמנט אחרון מסוג כלשהו אפשר לעשות זאת בפקודה אחת אם מציינים את קוד ההוראה 1. אם הגדרת בסיס הנתונים (ם8ס) הכילה מצביע לסגמנט אחרון מבין התאומים בסוג הסגמנט, תתבצע גישה מיידית. אחרת -- תבצע המערכת סריקה לפנים עד לקבלת הסגמנט האחרון הרצוי. הפקודה לשליפת סגמנט הטיפול האחרון של החולה שבו אנו עוסקים: סהאצו פטסואט ז65 דאפודאס . |א ךאש זהפחהד 208 7 סיכוס מערכת ניהול בסיסי נתונים 5)או מטפלת בניהול נתונים בעלי מבנים מורכבים ביותר. המערכת מונעת כפילויות ומאפשרת גמישות רבה בהגדרת הקשרים הלוגיים שבין בסיסי הנתונים הפיסיים. קיימת אפשרותלהגדיר צירופים שונים של מצביעים בין הסגמנטים ולמעשה ניתן להגדיר מבנים דומים לרשת למרות שצורת הטיפול היא תמיד היררכית. השימוש ב-8!| מחייב להגדיר במפורש את השטחים לשימוש על-ידי 1/1ם. הוראות קלט/פלט במערכת מחייבים ידע של המבנים הלוגיים. מערכת 58| הינה אחת ממערכות 08/8 הגדולות והמקיפות ביותר הקיימות היום. מכיוון שהיא פותחה בסוף שנות ה-60 היא נמצאת בשימוש נרחב מאד במתקנים של מחשבי יבמ גדולים. הארכיטקטורה של המערכת והמונחים המקובלים בה הם יחודיים ואינם תואמים את המלצות ‏ 6ד8ס 1י00048, אשר הוגשו לאחר ש- 58| כבר פעלה במתקנים רבים. כפי שנאמר בתחילת פרק זה, קיימת מערכת ניהול בסיסי נתונים דומה 1/ |פ-008/08 אשר מופעלת במחשבי יבמ בינוניים וקטנים בסביבת מערכת ההפעלה 5סס. יש הבדלים קטנים בינה לבין רכיב 1/ וס של 5ואו (8/08או). שירותי מילון נתונים אפשריים לשתי מערכות אלו באמצעות מוצר תוכנה נפרד ולא נסקור אותו כאן. 209 פרק יב -- 5וס! 133 3130356 8160ז60זחו וח6ו5ץ5 מבוא . מושגי יסוד . מבנים פיסיים . מבנים לוגיים של נתונים . שפה להגדרת נתונים . שפה לטיפול בנתונים . סיכום ₪00 ₪ ד | 4 ו 21 1. מבוא מערכת ניהול בסיסי נתונים 5)אס! פותחה על ידי חברת חסוופזסקזס00 זפחוווטס בשנת 5 בהתאם להמלצות 6ד08 00048%1. המערכת מיועדת לפעול במחשבי יבמ הבינוניים והגדולים. המערכת מכילה שפה להגדרת נתונים אשר נפרדת מתוכניות היישום, שפה להגדרת המבנה הפיסי ושפה לטיפול בנתונים. המערכת מכילה מילון נתונים המהווה חלק בלתי נפרד ממנה. 2 מושגי יסוד בתחילת הדיון נסקור את מושגי היסוד המקובלים במערכות 8!ופו: -- שדה (וח9ו! 0818): יחידת הנתונים הבסיסית והקטנה ביותר במערכת. לכל שדה יש שם סימבולי אשר מאפשר לתוכנית היישום לפנות אליו. -- רשומה (0זסספה): אוסף של מספר שדות בעלי משמעות לוגית מבחינת המשתמש. הרשומה הינה יחידת התקשורת הבסיסית בין בסיס הנתונים לבין תוכנית היישום. -- סוג רשומה (6ק/ץד 860016): אוסף בלתי מוגבל של מופעים של רשומות מאותו סוג. ניתן להגדיר מספר בלתי מוגבל של סוגי רשומות שונים אשר לכל אחד מהם נקבע שם ייחודי. -- חבורה (861): החבורה היא אוסף של סוגי רשומות המורכבות מטוג רשומה אחד שהוא רשומת אב (6סץד 6זסספח זפהשס) ואחד או יותר סוגי רשומות שהם רשומות בן (זססוח9!! 86 6ז600ה). לכל חבורה שם יחודי ויכולים להיות לה מופעים אחדים. כל מופע של חבורה מורכב ממופע אחד של רשומת אב ואפס, אחד או יותר מופעים של רשומות בן. -- קובץ (8!ו=): הקוב מוגדר כמבנה פיסי המוכר למערכת ההפעלה. הוא יכול להכיל מופע של סוג רשומה אחד או יותר ושל הקשרים שבין סוגי הרשומות. -- בסיס הנתונים (8889 0818): אוסף כל הקבצים המוגדרים בסכימה אחת. 23 3 מבנים פיסיים כל הקבצים של מערכת 8ואס! הם קבצים בגישה ישירה, מיוצגים בשיטת |804₪ של יבמ. במבנה הפיסי מרכיבים אחדים: -- רשומה. לכל רשומה שני חלקים: קידומת (או61זק) המכילה את המפתח הפיסי ואת המצביעים השונים הקושרים אותה לחבורות שבהן היא מופיעה, גוף (ץ800) המכיל את כל שדות הנתונים של הרשומה. לכל רשומה בבסיס הנתונים יש מפתח פיסי (ע68 8896 מּו08) המזהה אותה בצורה חד-משמעית ואשר אינו ניתן לשינוי. המצביעים בקידומת הרשומה הם המפתחות הפיסיים של הרשומות שרשומה זו קשורה אליהם. מצביעים שונים מפתח פיסי שרות נתונים 3 גוף ----6----- קידומת | ------ ₪ תרשים 1 - 12: מבנה רשומה ב-פואסו -- דפים (08068). בסיס הנתונים מחולק לדפים בעלי מספרי זיהוי. כל דף יכול להכיל מספר רשומות בהתאם לגודלו, ובמקרה של רשומות באורך משתנה הן יכולות להתפרס על פני מספר דפים. הדף מחולק לשורות אשר כל אחת מהן מכילה מופע אחד של רשומה (באורך קבוע). בשיטה זו מורכב המפתח הפיסי של הרשומה ממספר הדף ומספר השורה שבו היא מאוחסנת. המבנה הלוגי של בסיס הנתונים מיושם באמצעות המצביעים הקושרים את הרשומה אל רשומות אחרות. המיקום הפיסי של הרשומה בלתי תלוי במבנה הלוגי המוגדר על-ידי החבורות. -- שטחים (885ז4). השטח הינו חלוקה לוגית של בסיס הנתונים. כל שטח מורכב מדפים אשר מכילים את הרשומות. בסיס הנתונים מורכב מאחד או יוחר שטחים בהתחשב באילוצים הבאים: א. כל דף בבסיס הנתונים יכול להשחייך לשטח אחד בלבד ואין אפשרות לחפיפה בין שטחים, ב כל הדפים בשטח אחד הם בעלי גודל פיסי זהה, כל המופעים של רשומות מאותו סוג חייבים להופיע בשטח אחד, על המשתמש לקבוע טווח מספרים לזיהוי הדפים בשטח. כל הדפים השייכים לשטח אחד חייבים להיות בטווח רצוף וסדרתי של מספרים. ניתן ליצור מרווחים בספרור הדפים בין השטחים השונים. - קבצים (88וןת). בסיס הנתונים מאוחסן באחד או יותר קבצים לגישה ישירה. כל קובץ מורכב מאוסף של גושים פיסיים (8100%8) כאשר בכל אחד מהם דף לוגי אחד. )סו מאפשר להקצות את השטחים לקבצים לפי אחת מהאפשרויות הבאות: א. כל בסיס הנתונים יאוחסן בקובץ אחד, ב. כל שטח יופיע בקובץ נפרד, 204 ג. | מספר שטחים שונים יאוחסנו בקובץ אחד, ד. שטח אחד יאוחסן במספר קבצים שונים. 1 שיטות איתור רשומות (06סו חסוופסס |) קיימות שלש שיטות לאחסון ולאיתור רשומות בבסיס הנתונים: -- 68+6: בשיטה זו המשתמש קובע שדה אחד מתוך הרשומה כשדה מפתח -- זהו המפתח הלוגי של הרשומה. מערכת 9)וס| מפעילה תהליך חישובי לתרגום המפתח הלוגי לכתובת פיסית. התהליך החישובי "דואג" לפזר את הרשומות בצורה אחידה עד כמה שניתן בשטח שבו מאוחסנות הרשומות מאותו סוג. שיטת 010 מאפשרת למשתמש גישה ישירה לרשומה על פי תוכן המפתח הלוגי שלה. מפתחות לוגיים אינם בהכרח יחודיים מבחינת הכתובות הפיסיות ולכן אפשרי מצב של כתובות כפולות (188פסווקְטם) אשר המשתמש צריך לציין כיצד לטפל בהן. - או/: ניתן להגדיר שיטת איתור או אם הרשומה משתתפת כרשומת בן בחבורה כלשהי. רשומות הבן השונות מאוחסנות באותו דף שבו מאוחסנת רשומת האב בחבורה. אם אין מקום אחסון פנוי תנסה המערכת לאחסן את הרשומה בדף הבא וכך הלאה, עד למציאת מקום אחסון פנוי וכתוצאה מכך הגישה היא סודרת ואינה מתאימה לגישה ישירה. שיטה זו יכולה להעלות את יעילות העיבוד של בסיס הנתונים מאחר וניתן לשלוף את המופע של החבורה בהוראת קלט אחת. מקובל לקבוע שיטת וע לרשומת בן בחבורה שבה תדירות הגישה מרשומות האב לרשומות הבן היא הגבוהה ביותר. -- דספחום: הרשומה מאוחסנת בדף ובשורה אשר נקבעים על ידי המשתמש. לשליפת הרשומה על המשתמש לדעת את המפתח הפיסי שלה. שיטת איתור זו מחייבת ידיעת המיקום הפיסי של הרשומה ולכן משתמשים בה למטרות מיוחדות בלבד. 2 חבורות (890) הרשומות ב- 8!)וס! קשורות יחדיו למבנה לוגי הנקרא חבורה. לכל חבורה יש להגדיר סוג רשומה אחד כרשומת אב ואחד או יותר סוגי רשומות המוגדרות כרשומות בן. מופע של חבורה מורכב ממופע אחד של רשומת אב ומספר כלשהו של מופעים של רשומות בן. מופע של סוג רשומת רשומת אב אב מופע של מופע של מופע של סוג רשומת בן רשומת בן רשומת בן רשומת בן תרשים 2 -12: מבנה חבורות 2055 אפשר להגדיר את סוג הקשר בין הרשומות בחבורה. בכל הרשומות מופיע מצביע זאש אל הרשומה הבאה בחבורה והוא מאפשר עיבוד סדרתי שלה. כל רשומה מכילה מצביע דאפא אחד עבור כל חבורה שבה הרשומה מוגדרת כרשומת אב או כרשומת בן. אם יש צורך בסריקת החבורה בכיוון הפוך מגדירים מצביע סומ אל הרשומה הקודמת בחבורה. ניתן לקשור את רשומות הבן באופן ישיר לרשומת האב אם מגדירים מצביע הםאעשס. המצביעים הסוהק ר ממא/שס הם אופציונליים. נזכור שכל המצביעים מכילים למעשה את המפתחות הפיסיים של הרשומות בבסיס הנתונים. הם מאוחסנים בקידומת של כל רשומה ומאפשרים לה להשתתף ברשומת אב או כרשומת בן בחבורות שונות. הגדרת הרשומה כוללת את המיקום היחסי של כל אחד מהמצביעים השונים בקידומת הרשומה. 4. מבניס לוגיים של נתוניס המבנים הלוגיים ב" 8!וס! הם כל המבנים שניתן לבנות באמצעות החבורות. מבנים אלה הוסברו בפרק המתאר את מודל הרשת ולכן לא נחזור עליהם כאן. 206 5 שפה להגדרת נתוניס סכימות ותת-סכימות במערכת 0!8! מוגדרות באמצעות שפה להגדרת נתונים (.וסס) שכתיבתה דומה לכתיבה בקובול. הסכימה מגדירה את בסיס הנתונים ותת-הסכימות מאפשרות לתוכנית היישום השונות את הגישה לבסיס הנתונים. הסכימה ותת-הסכימות מאוחסנות במילון הנתונים של פופו. 1 שפה להגדרת הסכימה הסכימה מוגדרת באמצעות חמש קבוצות של משפטים: -- ה0:ו)קוז0650 6₪18ח56: במשפט זה קובע מנהל בסיס הנתונים את שם הסכימה. הוא יכול להוסיף נתונים כגון תאריך היצירה, שם המתכנת והערות נוספות. -- חסו)מוז0650 6!ו₪: במשפטים אלה מגדירים את הקישור בין הקבצים של בסיס הנתונים לבין הקבצים הפיסיים וקובעים את הסוג של כל קובץ. על המשתמש להגדיר לפחות שני קבצים: קובץ אחד לשם רישום האירועים (|פחזטס!) וקובץ אחד שיכיל את בסיס הנתונים. אפשר לאחסן את בסיס הנתונים במספר קבצים פיסיים שונים. - חסו]כ!ז₪650 68ז3: במשפטים אלה קובעים את שמות השטחים ואת טווח מספרי הדפים שיאוחסנו בכל שטח. בנוסף נקבע גם המיפוי בין הדפים הלוגיים לבין הגושים הפיסיים בקבצים. מספר הדפים המוקצה לשטח קובע את גודלו. -- 00ו01]ז0650 6ז8660: במשפטים אלה מציינים את סוגי הרשומות בסכימה, את המופע שלהם בשטחים השונים ועוד. חיאור סוג הרשומה כולל את שם הרשומה, מזהה יחודי של סוג הרשומה, צורת האיתור ושדות הנתונים שלה. -- חהסו)ס!ז0650 861: במשפטים אלה מגדירים את הקשרים בין סוגי הרשומות שהוגדרו בסכימה. לכל חבורה נקבע שם, צורת קישור הרשומות וציון רשומות האב ורשומות הבן, סדר הרשומות בחבורה וסוג החברות. יי גי ג תאריך מספר הזמנה הזמנה ה אפזו-- ספהפסהס תאריך מחיר אספקה יחירה פריט בהזמנה תרשים 3 -12: סבימה 207 את הסכימה שבתרשים 12-3 יש להגדיר בצורה הבאח: .אסוזקוה0פשס 507354 שם בסיס הנתונים .6הםפהס-- 051 5! סואגא ב 50 תיאור הקבצים .אסודקוה50ס0כ = וום 0 סד א55/6 = )וח-8כ 8! םואגא = וו .0 8! םקצד מסוצספספ .9 סד 558% ]באהטסנ 8! אגא ששום מספרי הדפים .אסוזקוח50כ השחה בשטח 0 טשחרד 2001 מבאגה שח ה-- ד005 פו םוגא המחה 8-5 = ₪1 אוה וצצ מספרי דפים יחסיים .0 0 1 שאסח- 0 שחחד 5001 מפאגם םחה--סחס 5! פוגא גשה = ]ו=-8כ == אוה דוצש .0 סד 1001 ואסחת .אסוזקוה0550 פהס0סשה רשומת לקוח הםואס ד5ש6 פו פואגא פהס0שם זיהוי הרשומה 0 פו סו פה8ס6שה מפתח הרשומה סו-- זפטס 6או5ש 641.0 8! פפסא אסוד1064 וצורת האיתור ספצוס )ג דסא 5ם דא6ו וקטפ שח ג-- 0057 ודוע .05 85035 ז5ע0--א60050 0411 שגרה לבדיקה לפני אחסון .(5)א 0ו פו--ז008 03 (30)< סוס םטגא--זפע0 03 .6" -03 .(20)< 60| צזוס 05 .(10)א< סוס זםםהז 05 .(5)א 6וס השפואטא 05 הפסחס 8ו טואא סהסססה 5 פו סו סמססשה הפפואטא-סחס סאופש 041.6 8 סססוא אסוזהסס.ו ספווס 41 דסא 5שדגסו וטס .4פחה--סחס אוחדועש .(4)א ₪16 השפואטא--סהס 03 .(6)< ₪16 =זהם--סהס 03 אםדו-סםהםסחס 5 סואגא פהס60=ה 0 5! סו ספהסספה .הםסהס--או--5!ואםדו גו/ 5ו סססוא אסוד6ס. 2008 .(9)א 6וםס הםםואטא-- םדו 03 .9 )9 !םש צזוזאהטס 03 .9079 וש םסוהק ‏ 03 .(6)א 6וק | 5 זהס--צהםטו)|םכ ‏ 03 ,אסודקות50פכ ז55 שם החבורה מפואסד5ס--=ס--5ה5פח0 8 סגא זספס ספ זה 50 8! הפסהס מסומק סד ספאאו! אוגחס 6ו פססש מיקום המצביע 1 5| צםאמס דאשא הפואסד5ט6 8! הפא/צס ברשומה 2 5| צםאמכ מסוהק 1 םאמ דאשא השסהס 8 הםפוטשו 2 58| צםאמס מסומס מפתח המיון מםפואטא-סחס 8ו צפא 6אוסא505א ספצס 411 דסא םג 5םדה6ו וקטס . וטא והאסודסס מפסהס--או--5=דו 5! שואגא זפס דפחו= 85| הםסהס אוגחס 8! פססא רשומת אב 3 65| צםאמכ זאשא הפס 8 מפאצס רשומת בן 1 צםאמס דאשא ואם דו-- פםהםסחס 8! השפ פוא .6ודהומסדטג צהסדהסאגא מן הראוי לשים לב לדמיון שבין שפת הגדרת הסכימה לבין שפת התכנות .)0080. גם שפות ההגדרה האחרות של 8וס מזכירות בצורת הכתיבה את 0080₪. 2 שפה להגדרת אמצעי האחסון המשתמש קובע מספר מאפיינים פיסיים של בסיס הנתונים באמצעות שפה הקרוייה 6 וסז!חסכ) 6018! 106ש8ם -- וסו/וס. שפה זו משמשת לקביעת המיפוי בין הדפים הלוגיים לבין הגושים הפיסיים בקובץ, גודל מאגרי קלט/פלט והשטחים שבהם משתמשים. .אסודקוהס5סס גוספוא מסוטסס )סואם--ד0005 8 םוא גא ג וספו פסוטפםס .6חשסהס--ד005 םגא 505 =0 אסוד550 80-58 חטם-- ד005 5! םוא גא הם--₪0 858 1180 או דא00 הק .58 5 5אוג דא 60 80-55 209 .אסוז650 גשה .= מהה--ד009 000 .54חא 54חה--סח0 צ005 3 שפה להגדרת תת-סכימות תוכניות היישום פונות אל בסיס הנתונים באמצעות תת-סכימה אשר מגדירה את התצפית של המשתמש על הסכימה. ניתן להגדיר מספר בלתי מוגבל של תת-סכימות המתייחסות לסכימה אחת. תת-הסכימה מורכבת משני קטעים: קטע אחד המזהה את תת-הסכימה וקטע שני אשר מגדיר את הנתונים שתוכנית היישום תשתמש בהם. במסגרת זיהוי תת-הסכימה נקבע השם שלה ושם הסכימה שאליה היא מתייחסת והשם שניתן למתקן האחסון בהגדרת :סווס. בהגדרת הנתונים על המשתמש לציין את כל הרשומות, החבורות והשטחים שאליהם ברצונו לגשת. ניתן להרשות לתוכנית היישום לראות את כל הרשומה או רק חלק מהשדות המרכיבים אותה. במסגרת תת-הסכימה ניתן להגדיר גם את פעולות העדכון שתוכנית היישום תורשה לבצע בבסיס הנתונים. אפשר לקבוע עבור כל פעולה אם היא מותרת או אסורה לתוכנית היישום. דוגמא להגדרת תת-סכימה: .אסופועוס אסודא6ו=ודאשס! 508507054 .6מםסהס--ז009 ₪ וא 505 05 זהסקפה-- ד5ט0 פו םוא גא 5085035 . ןסווס--ד5ט0 פו םוא גא הוספוש פסוטסס .אסופועוס דגס 4א5ה850ש5 .אסוד550 54ח "סא" ו פד סקט הס= 00% צס עוחק 3354 הפה -- זפ 0 צק 00 ,"סא" 8 ד סקט מס 006 !| צסהעוחק הפחג המהה--סחס צקסס ,אסוד550 0ה0ס6שה .ואס 005 01 .םו--ד009 03 .8סא-- 0059 03 .םח0ס6םה המסמס 005 .אסוד850 זפ .6 םס 5 0ס--תס--6הםפחס 007 100 6. שפה לטיפול בנתוניס השפה לטיפול בנתונים מאפשרת לתוכנית מגוון של פעולות בבסיס הנתונים. תוכנית היישום הנטענת לזכרון המחשב מחולקת לשני חלקים: -- הוראות התוכנית לעיבוד הנתונים, -- שטח עבודה (68זג חואזסצ ז050 -- 4/צ) המכיל את הרשומות שהתוכנית מעבדת. שטח זה מכיל גם שטח תקשורת מיוחד בין תוכנית היישום לבין מערכת 8ואסו, שגודלו נקבע ל-200 בתים. אל שטח התקשורת מעבירה המערכת מידע עבור תוכנית היישום בהתאם לפעולות שבוצעו, כמו לדוגמא קוד מצב (818108) המציין אם הבקשה של תוכנית היישום בוצעה בהצלחה או לא. השדות המוגדרים בשטח התקשורת הם: =ואהא-הסחק: שם תוכנית היישום, 58 :| בשדה זה יוצג קוד המצב של פקודת ואס האחרונה שבוצעה, צםאפס: מפתח הזיהוי של הרשומה האחרונה שתוכנית היישום טיפלה בה, שוגא-50030ה: | שם הרשומה האחרונה שטופלה על ידי תוכנית היישום, =טגא-הםחה: שם השטח האחרון שתוכנית היישום ניגשה אליו, זפ-הסהתם: שם החבורה שהתוכנית טיפלה כאשר קרתה שגיאה, סמסספה-הסההם: | שם הרשומה שהתוכנית טיפלה בה כאשר קרתה שגיאה, 54ח-הסתת=: שם השטח שהתוכנית טיפלה כאשר קרתה שגיאה, אפס-דסשחוס: שם השדה המשמש לשיטת איחור ד6שחוס. כדי שהתוכנית היישום תוכל למקם את עצמה בבסיס הנתונים מנהל 8פ! מראי מקום (8ז0108)0ח! עסח6זזטוס) המכילים את מפתחות הזיהוי (9ץ08-9) שתוכנית היישום טיפלה בהן לאחרונה. מראי המקום המנוהלים על ידי !אפסו הם: דואע-אשח: המפתח של הרשומה האחרונה שתוכנית היישום טיפלה בה, שפצז-₪0080ה: | לכל סוג רשומה בתת-סכימה קיים מראה מקום אחד המכיל את המפתח של הרשומה האחרונה שתוכנית היישום טיפלה בה, זפ לכל חבורה בתת-סכימה קיים מראה מקום אחד המכיל את המפתח של רשומת האב האחרונה שתוכנית היישום טיפלה בה, 4 לכל שטח בתת-סכימה קיים מראה מקום אחד המכיל את המפתח של הרשומה האחרונה שתוכנית היישום טיפלה בה, 201 ניתן לחלק את פקודות .ואס של מערכת פואסו לשלש קבוצות: פקודות בקרה, פקודות אחזור ופקודות עדכון, אשר נסקור בהמשך. 1 פקודות בקרה פקודות הבקרה משמשות לניהול השטחים השונים המטופלים על-ידי תכנית היישום במהלך העיבוד. סאופ: פקודה זו קושרת את שטחי התקשורת של 8)אס! ואת הרשומות שהתוכנית מעבדת עם שטחי העבודה (א/()). לפני שניתן לבצע עיבוד כלשהו של בסיס הנתונים חייב להתבצע קישור של תת-הסכימה באמצעות פקודת סאום. צסגשח: פקודה זו מכינה את השטח לעיבוד על-ידי תוכנית היישום. אין אפשרות לעבד שטח שלא "נפתח" באמצעות פקודה זו לשם קריאה בלבד או גם לשם עדכון. אם מספר תוכניות רצות בו-זמנית ומעדכנות את אותו השטח, ניתן למנוע עדכון בו זמני על"ידי פתיחה עם אופצית ד0 דסחק. אם רוצים למנוע גם את קריאת השטח עלידי תוכניות יישום אחרות ניתן להשתמש באופציה ששן0105א₪. פוא]=: פקודה זו מבצעת את סגירת השטח בגמר העיבוד. 2 פקודות אחזור פקודות אלה משמשות לאחזור רשומות מתוך בסיס הנתונים והבאתן לשטח העבודה (צוש). ד /סאו=: פקודת סאו= מאפשרת איתור מופע של רשומה בבסיס הנתונים. הרשומה הופכת להיות הרשומה האחרונה ומראי המקום מעודכנים בהתאם. פקודת 61 מעבירה את הרשומה אל שטח העבודה. ניתן לשלב את פקודות סאן ו- ד לפקודה יחידה -- אוגדפס, המאתרת ומעבירה את הרשומה. קיימים מבנים שונים לפקודת או דפס/סאות: א. 64.0: פקודת 60 641 אןג זםס/סאו-] מאחזרת רשומה על פי המפתח הלוגי שלה אשר מועבר לשטח העבודה לפני ביצוע הפקודה. לדוגמא, .סו--דפעס סד 104 פטסשו .הםואסד5ט0 6410 סאו= אם קיימות בבסיס הנתונים רשומות אחדות בעלות מפתח זהה, תאוחזר רק הרשומה הראשונה מביניהן. שאר הרשומות תאוחזרנה באמצעות פקודות שד64ו ופטס דאשא סאו=: .הםוא0ד005 פד סו ופטס דאשא סאו= ב. דם5 אווזדו/ו: לאחר שהתוכנית מאחרת רשומה כלשהי ניתן להתחיל בניווט בבסיס הנתונים על פי החבורות השונות שהוגדרו. פקודת ד85 אוגודועו או דםס/סאוץ מאפשרת את האופציות הבאות: דפחו= -- רשומת בן ראשונה בחבורה, דפ ] -- רשומת בן אחרונה בחבורה, דאםא -- רשומת הבן הבאה בהתייחס לרשומה האחרונה שטופלה, סוק -- רשומת הבן הקודמת בהתייחס לרשומה האחרונה שטופלה, הםאצס --רשומת האב של החבורה, 302' ןש -- לאיתור רשומה בחבורה הממויינת לפי מפתח כלשהו, חו-א -- = לאיתור הרשומה ה- א-ית מהרשומה האחרונה שטופלה. דוגמא לפקודות אחזור: .כו-- 0051 סד 104 מעטסוא .הס דש 0 641 אוג4זפס .חםוס דפ00--*ס--5חםסחס צוח דועש הםסחס זפהו; אוא4דפס .ה5וו0ד605--=ס--5הםפחס אוה דועו המפהס דאשא אוה זפס מכיון שרשומות הבן בחבורה 0%58ד05--+0--5הםסחס ממויינות לפי מספר הזמנה ניתן לגשת לרשומות ההזמנה על פי המפתח. .םו--ד005 סד 104 פשסו₪ .הםהואטא--סהס סד 805 סשסוא .הםושוסד005 041.0 סאו הפוס ד005--=ס--5השסחס אוה דוצ הפסחס אוה זםס .הספואטא--סהּס 6או5ט ג. םג אווזדוש: אפשר לנווט בבסיס הנתונים על פי המיקום הפיסי של תוכנית היישום. פקודת = אוה דוצו או דםס/סאו: מאפשרת את האופציות הבאות: דפח|; -- רשומה ראשונה בשטח, זפ -- רשומה אחרונה בשטח, דאשא -- הרשומה הבאה בשטח בהתייחס לרשומה האחרונה שטופלה, הסוחק -- הרשומה הקודמת בשטח בהתייחס לרשומה האחרונה שטופלה, חז--א -- הרשומה ה א--ית מהרשומה האחרונה שטופלה. םח ה-- ד5 0 אוה דועש דפחו= אוה זפס .4םחה-- ד005 אוה דוצ דאפא אוה דפס אם באותו שטח מאוחסנות מספר סוגי רשומות, ניתן לשלוף סוג רשומה מסויים כאשר מציינים את שם הרשומה. .םהה -- סחס אוה דועש ואש זו-- סםמםסהס דאשא צןג דפס ד. צפא-8פ: אם תוכנית היישום מכירה את מפתח הזיהוי ניתן לגשת ישירות לרשומה באמצעות פקודת צםא-08 אוב דפס/סאום. את ערך מפתח הזיהוי אפשר לקבל באמצעות הפקודה ד4000. על המשתמש להגדיר שדה בינרי, /0 (59)8 0|פ, שישמש לאחסון המפתח. סדר הפעולות: סו--דפט6 סד 104 שעסש .005058 6410 אואזפס .58ו00810--=0--5הםסחס אוה דוצ הםסחס דאפא אוג דפס צסאםחהטס הפואסדפטס--"0ס--5השסחס ואסםם 1--צפא ד 200 .1-ץםא 8! צםא--8כ אוג4זפס 3 3 פקודות עדכון פקודות אלה מאפשרות את עדכון הרשומות והקשרים בין הרשומות שבבסיס הנתונים. ₪ 0דף: הוספת רשומה חדשה לבסיס הנתונים מתוך שטח העבודה ( שו()) שבתוכנית. על תוכנית היישום לעדכן את כל מראי המקום עבור החבורות שבהן משתתפת הרשומה בסוג חברות אוטומטית כדי שהמערכת תקשר את הרשומה החדשה לחבורות המתאימות, שדם ופס: ביטול רשומה המופיעה בבסיס הנתונים. לפקודה זו יש מספר תבניות שונות: .4 שדם וס מבטלת את הרשומה ואת כל רשומות הבן הקשורות אליה. דאםאג ומסק =דם |םס מבטלת את הרשומה ואת כל רשומות הבן הקשורות בקשר הכרחי (עז0810ח8!). כל רשומות הבן הקשורות בקשר אופציונלי מנותקות מהחבורה אך אינן מתבטלות. =ודס 551 שדם וס מבטלת את הרשומה ואת כל רשומות הבן הקשורות בקשר הכרחי ואת רשומות הבן הקשורות בקשר אופציונלי ואינן קשורות לכל חבורה אחרת. צמוססוא: פקודה לעדכון תוכן רשומה שמופיעה בבסיס הנתונים. אסור לעדכן את שדות המפתח של הרשומה. "עדכון" שדה מפתח יכול להעשות על ידי ביטול רשומה והוספה מחדש עם שדה מפתח שונה. ד0פאא0ס: אם רשומת הכן קשורה לחבורה בקשר ידני (|טח8א) ניתן לקשור אותה לחבורה באמצעות פקודה זו. דסשאא 800וס: מנתקת רשומת בן מחברותה בחבורה שבה הוגדרה בסוג חברות ידנית. מן: הפקודה מאפשרת לתוכנית היישום לבדוק אם החבורה מכילה רשומת בן. קיימות מספר אופציות לפקודה זו, ולדוגמא אחת מהן: ... צדקום דסא הפסזפ5טס--6-0חםסחס = 7 סיכוס 8 הינה מערכת לניהול בסיסי נתונים המבוססת על המלצות 6ד8כ 00048%1. היא ומיישמת את רוב ההמלצות שבדוח וכוללת הרחבות נוספות. השפות .)סס, ‏ )וס הן שפות דמויות אנגלית ולכן קלות ללימוד ולהבנה. המשתמש אינו צריך להגדיר בצורה מפורשת את שטחי קלט/פלט שבתוכנית היישום. שטחים אלו מוגדרים בנפרד באמצעות )6ואס. מערכת 8ופו מאפשרת ייצוג מגוון מבנים לוגיים החל ממבנים פשוטים יחסית עד למבנים מורכבים מאד. .)אס היא שפה פרוצדורלית אשר מאפשרת את הניווט בבסיס הנתונים על בסיס רשומה אחת בכל פעולה (6ווד-6-860070-81-8ח0). תכונה זו עלולה לגרום למורכבות ולקושי מיותרים בתוכנית היישום. למערכת מצורפות תוכניות שירות אחדות המסייעות באחזקת בסיס הנתונים. לאחרונה הוכרז על מישק טבלאי ל- 8!/ם!, אשר מאפשר להציג למשתמש מבנים של רשומות שטוחות. 24 פרק יג דסד 1. מבוא 2. מושגי יסוד 3 מבנים פיסיים 4. מבנים לוגיים של נתונים 5. שפה להגדרת נתונים 6. שפה לטיפול בנתונים 7. השוואה בין מערכת .41 דסד לבין המלצות 1צ0048 8. סיכום 15 1. מבוא מערכת דסד פותחה על ידי חברת ,סחו וע והססחו0 ונמצאת בשימוש במספר רב של מחשבים גדולים וקטנים (במערכות ואפו, הסא, 006, ועוד). המבנה הבסיסי בד.|גדסד הינו מבנה היררכי בעל שתי רמות אשר מאפשר ליצור מבני נתונים מורכבים וגם להציג רשתות. המערכת מאפשרת בניית מאגר נתונים מרכזי לשירות כל תוכניות היישומים. כל אחד מהגורמים המשתמשים תורם את חלקו בבניית מאגר הנתונים ונוטל ממנו את הדרוש לך. המערכת מאפשרת אינטגרציה של בסיסי הנתונים של היישומים השונים למאגר נתונים אחד, המונחים שמשתמשים בהם במערכת זו שונים מאלו המופיעים בדוח 0001 מכיון שמערכת .ו דסד פותחה לפני הופעת הדוח. לאחרונה הוכרוה מערכת פוד אשר מכילה מישק טבלאי לבסיס הנתונים ומאפשרת הצגת רשומות שטוחות. השדות ברשומה השטוחה יכולים לבוא ממספר רב של קבצים פיסיים, הניווט בבסיס הנתונים, כדי לקבל את כל השדות של הרשומההשטוחה, מתבצע אוטומטית על- ידי מערכת פוד בהתאם להגדרה חד"פעמית של ה87 ומאוחסנת במילון המרכזי של המערכת (עזפחסווסום). 17 2 מושגי יסוד בתחילה נציג את המונחים המקובלים במערכות ו|אזסז: -- שדה (%ח6וח6|ם 088 ,₪6!0 818כ): יחידת הנתונים הבסיסית במערכת. ההתייחסות לשדות היא לפי שמם ולא באמצעות כתובות פיסיות. שדה יכול להתחלק לתתדשדות ( 0-65 6). לדוגמא השדה "תאריך" מתחלק לתת-שדות הבאים: יום, חודש, שנה. -- רשומה (0ז₪600 0418): אוסף של מספר שדות בעלי משמעות לוגית מבחינת המשתמש. הרשומה הינה יחידת התקשורת הבסיסית בין בסיס הנתונים לבין תוכנית היישום. ניתן להגדיר מספר בלתי מוגבל של סוגי רשומות שונות. -- קובץ (564 0818): אוסף כל המופעים של הרשומות מאותו סוג. כל קובץ יכול להכיל מספר בלתי מוגבל של מופעים של רשומות. -- בסיס נתונים (8856 0818): אוסף של כל הקבצים השונים. בסיס נתונים פריטים קובץ רשומה תתישדה תרשים 1 - 13: מושגי היסוד ב- |4זסד 1008 3 מבניס פיסייס בד | דסד מבחינים בין שני סוגי קבצים: -- קובץ ראשי (8 95197/א): קובץ בגישה ישירה שאינו תלוי בקובץ אחר. לכל רשומה בקובץ יש מפתח לוגי אחד המשמש את המערכת הן לאחסון הרשומה בבסיס הנתונים והן לאחזור הרשומה. הכתובת הפיסית של הרשומה נקבעת על ידי הפעלת תהליך חישובי כלשהו על התוכן של המפתח. לכל הרשומות בקובץ ראשי מבנה קבוע אחד. -- קובץ משני (6/₪ 6ו8/80/): קובץ התלוי בקובץ ראשי אחד או יותר. הגישה לרשומות המופיעות בקובץ המשני נעשית רק דרך הקובץ הראשי. אין אפשרות לגשת לרשומות בקובץ משני בגישה ישירה. בין שני סוגי הקבצים קיימים קשרים (8ח291 6פָפאחו 1) הקושרים קובץ ראשי עם אחד או יותר קבצים משניים. שני קבצים ראשיים יכולים להיות קשורים לקובץ משני אחד. הקשר הוא תמיד חד-כיווני, מהקובץ הראשי לקובץ המשני, לא ניחן לקשור בין שני קבצים מאותו סוג. הקשרים מבוצעים באמצעות מצביעים המכילים את הכתובת היחסית של הרשומה בקובץ? (זפטוחטא! 0זסספח 6עו91/פה--אחה). בתרשימים נציין קובץ ראשי במלבן וקובץ משני בעיגול. קובץ ראשי חח - שם הקובץ קובץ משני שש - שם הקובץ קשר תרשים 2 - 13: הסימנים המקובלים לקבצים שני סוגי הקבצים משמשים ליישום קשרי אב-בן מסוג א:1. הקובץ הראשי יכיל בדרך כלל את הנתונים הקבועים או היציבים והקובץ המשני יכיל בדרך כלל את הנתונים המשתנים (דינמיים) בארגון. דוגמא לקבצים ראשיים: קובץ עובדים, קובץ פריטים, קובץ לקוחות. דוגמא לקבצים משניים: קובץ פרטי תעסוקה של העובד, קובץ תנועות מלאי של פריט, קובץ הזמנות של הלקוחות, קובץ חשבונות לתשלום וכדומה. תרשים 3--13 מציג מבנה נתונים מורכב יחסית שניתן לבנות במערכות .ן4דסד. 109 תרשים 3 - 15: מבנה נתונים מורכב 1 מבנה קוב ראשי לכל רשומה בקובץ ראשי יש שדה בקרה (₪16/0 |סשחסס) אחד המשמש את המערכת כמפתח לוגי לאחסון ואחזור הרשומה. הרשומות בקובץ הראשי משמשות למעשה כנקודות כניסה לבסיס הנתונים ולכן אסור השימוש במפתחות כפולים בקובץ ראשי. ניתן ליישם קובץ ראשי כקובץ בגישה ישירה (804₪1) בלבד. אם בוחרים ב שן4סם או ב- 6505-/54/ הגישה לרשומות היא בעזרת תהליך חישובי והתנהגות הקובץ היא כמו בקובץ רגיל בגישה ישירה. תרגום המפתח לכתובת וחישוב הכתובת היחסית של הרשומה בקובץ (4007685 6שו₪6/80 חסו!8!סו08) נעשים בשגרה אשר משתמשת בשיטות חישוביות שונות כדי לקבל מספר מינימלי של כתובות זהות (פוחעָחסחץ8). כאשר מתקבלת כתובת זהה מנסה המערכת לאתר כתובת פנוייה במקום קרוב ככל הניתן לכתובת המקורית. בדרך כלל הרשומה עם הכתובת הזהה תחימצא באותו גוש פיסי ולכן ברוב המקרים הגישה לרשומה בקובץ הראשי תבוצע בפעולת קלט/פלט אחת. לכל רשומה בקובץ הראשי יש מבנה קבוע אחד, כפי שמוצג בתרשים 5--13. מרכיבי הרשומה: - ד400: שדה המשמש את המערכת בלבד לשם שרשור הרשומות שתהליך החישוב קבע להן כתובת פיסית זהה. השדה משמש לקישור הרשומה עם הכתובת המקורית שלה. - צםא 801דא60: שדה המפתח אשר נמצא בכל רשומה בקובץ הראשי. לכל רשומה שדה מפתח אחד בלבד. 2210 תהליך חישובי לתרגום ו?וואססאגה וזסד 8 מפתח לכתיבת ואמזוה210 כתובת פיסית יחסית (ואחה) אחסון רשומה בקובץ ראשי תרשים 4 - 13: שיטת הגישה לקובץ ראשי ושר את הרשומות בקובץ הראשי לרשומות בקובץ המשני. ישור בהתאם למספר הקבצים המשניים מצביע לרשומה הראשונה ולרשומה -- 044 אאו1: שדה זה ק לכל רשומה בקובץ הראשי יתכנו מספר רב של שדות ק הקשורים אל הקובץ הראשי. שדה הקישור מכיל את ה האחרונה בקובץ המשני הקשורות לרשומה בקובץ הראשי. אורך שדה הקישור 8 בתים. | --- / ₪שדו 4דגם: שדות הנתונים של הרשומה. שדה קשר קשר מפתח | שדה שורש | | | סח זא סס זססא ו צםא 3 | תרשים 5 - 13: תבנית רשומה בקובץ ראשי 31 2 מבנה קובצ משני קובץ משני יכול להיות בנוי כקובץ וסם או כקובץ 54-5805/. הגישה לרשומות בקובץ משני מבוצעת באמצעות המצביעים המופיעים ברשומות שבקובץ הראשי בשדות הקישור (ח081 אחו ]). הרשומות בקובץ המשני יכולות להיות בשתי תכניות שונות. א. סוג רשומה אחד בקובץ המשני ח 1 אזאס אזדאסם אאוע צפא אאוע אפזו אשזו הזאס ח הזאק ₪ 1 ח 1 תרשים 6 - 15: סוג רשומה אחד בקובץ המשני כל הרשומות הן מאותו סוג, במבנה ובאורך זהה. | צפא: המפתח הלוגי של הרשומה בקובץ הראשי שאליה קשורה הרשומה בקובץ המשני. מכיון שרשומה אחת בקובץ המשני יכולה להיות קשורה למספר רב של קבצים ראשיים עשויים להיות מספר מפתחות כמספר הקשרים. המפתח הזה נקרא גם מצביע לוגי ( זסוחוסק עזהוחוזק 0108 1--קק |). והוא מקביל למצביע לרשומת האב במבנה י00038. הוא אינו מכיל את הכתובת הפיסית של רשומת האב אלא את המפתח הלוגי שלה. הזמנות 112 - [אזחי אאוע: אלו הם שדות הקישור שבין הרשומות בקובץ המשני הקשורות לאותה רשומה בקובץ הראשי. כל שדה קישור מכיל מצביע לפנים, לרשומה המשנית הבאה הקשורה לאותה רשומה בקובץ אב ומצביע לאחור, לרשומה המשנית הקודמת הקשורה לאותה רשומה בקוכץ האב. אורך שדה הקישור 8 בתים. -- א אפדו אדאפ: שדות הנחונים של הרשומה המשנית. בתרשים 7--13 מוצגת דוגמא של קשר בין קובץ ראשי לקוחות לבין קובץ משני הזמנות. המכיל רק סוג רשומה אחד. בדוגמא יש שני מופעים של רשומות בקובץ הראשי (לקוח מספר 124 ולקוח מספר 145). רשומת לקוח 4 קשורה לשלש רשומות הזמנה (הזמנות מספר 8, 9, 24). ב. מספר סוגי רשומות בקובץ המשני (₪60010 00060) ניתן להגדיר מספר חבניות שונות לרשומות המופיעות בקובץ המשני בתנאי שכל התבניות תהיינה באורך זהה. כל רשומה מכילה שני תווים המזהים את סוג הרשומה. הרשומות מחולקות לשני קטעים; קטע בסיסי הזהה לכל הרשומות בקובץ המשני וקטע משתנה בהתאם לסוג הרשומה. בתרשים 8 מוצגות תבניות של שני סוגי רשומות. אזאם ] אאוש אפזו | חזאגק 2 ח =- ₪850 8 ------ 60080 8 ----- תרשים 8 -13: שני סוגי רשומות בקובץ משני נשתמש בדוגמא שבתרשים 9--13 כדי להסביר את השימוש בשני סוגי רשומות בקובץ משני אחד: רשומת כותרת הזמנה המכילה פרטים כלליים על כל ההזמנה ורשומת פריט בהזמנה. הזמנה אחת עשויה להכיל מספר רב של פריטים מוזמנים ובהתאם לכך יהיה גם מספר הרשומות מסוג "פריט בהזמנה". השימוש בסוגי רשומות שונים בקובץ המשני מאפשר גמישות בקישור שלהן לקבצים ראשיים שונים בהתאם לצורך. בדוגמא זו ניתן לקשור לקובץ ראשי פריטים. קשר זה מאפשר קבלת מידע עם כל ההזמנות שמופיע בהן פריט נתון. 213 רשומה אחת ערך תאריך אאון מספר בותרת להזמנה הזמנה הזמנה הזמנות הזמנה הזמנה רשומות אחדות ו --/ פריט להזמנה אחת ר קז זו תרשים 9 - 13: שני סוגי רשומות בקובץ משני הזמנות קובץ מספר הומנה תרשים 10 - 15: קשרים בין קבצים ראשיים וקובץ משני עם שני סוג רשומות 14 בתרשים 10--13 מוצגת דוגמא לשימוש בשני סוגי רשומות בקובץ המשני. ניתן לראות שלקוח 124 קשור לשתי הזמנות שונות, הזמנות מספר 8 ו97. הזמנה מספר 8 מורכבת מפריטים א ו87 והזמנה 9 מורכבת מפריט ג בלבד. הרשומה של פריט ג בקובץ ראשי פריטים קשורה לרשומות של פריט זה שבהזמנות 8 ו"9. הרשומה של הזמנה 9 בקובץ מספר הזמנה קשורה לכותרת ההזמנה בקובץ הזמנות. 3 סוגי קשרים בין קוב ראשי לבין קוב משני בין קובץ ראשי לבין קובץ משני יכולים להיות קשרים בעלי אופי שונה בהתאם למספר הקבצים מסוג אחד הקשורים לקבצים מסוג שני. כפי שצויין קודם, אין אפשרות לקשור בין קבצים מאותו סוג, כלומר בין קבצים ראשיים לבין עצמם ובין קבצים משניים לבין עצמם. -- קובץ ראשי בודר (8509// סְסַח/). הקובץ הראשי אינו קשור לקובץ משני כלשהו. קובץ ראשי בודד הוא בדרך כלל טבלת נתונים הבנוייה כקובץ ללא קשרים. -- קובץ ראשי קשור לקובץ משני אחד (6|ספוז8/ 6 -- ז8810!א פוחַחו5). הקובץ הראשי קשור אך ורק לקובץ משני אחד, לדוגמא קובץ לקוחות הקשור לקובץ חשבונות. תרשים 11 -13: קובץ ראשי קשור לקובץ משני אחד - קובץ ראשי קשור למספר קבצים משניים (8|טהוז8 וטוא -- ז0ו95 6וחֶחו5). הקובץ הראשי קשור למספר קבצים משניים, לדוגמא קובץ הלקוחות קשור לקובץ הזמנות ולקובץ חשבונות. -- קובץ משני קשור למספר קבצים ראשיים (סוסמוז8 וטוא -- ז950!א וזוטוא). הקובץ המשני קשור למטפר קבצים ראשיים שונים והקובץ הראשי קשור למספר קבצים משניים שונים. שיטה זו מאפשרת בניית רשתות נחונים במערכת .דסד. 25 == ד >= ד 07 ₪ ) | ₪ ו | וטו תרשים 12 -13: קובץ ראשי קשור למטפר קבצים משניים קיימים מספר סוגי קשורים אשר אסור להשתמש בהם: -- קובץ משני בודד -- קשר ישיר בין שני קבצים ראשיים. -- קשר ישיר בין שני קבצים משניים. אם דרוש קשר בין שני קבצים ראשיים או בין שני קבצים משניים יוצרים אותו באמצעות קשר אל קובץ משני משותף. 26 פריט 8 תרשים 15 - 13: קובץ משני קשור למספר קבצים ראשיים 64 אינדקס משני מערכת .)א דסד אינה תומכת בצורה ישירה באינדקס משני אך ניתן לתכנת את האינדקס המשני תוך שימוש בטכניקת הקבצים ובקשרים שביניהם. בתרשים 14--13 מוצגת דוגמא של אינדקס משני לקובץ לקוחות המאפשר גישה לרשומות הלקוחות לפי מפתח נוסף, סוג לקוח. בקובץ הלקוחות מוצגות שלש רשומות של לקוחות: הלקוחות שמספרם 100 ו-200 מוגדרים "סוג 1" ולקוח 140 מוגדר "סוג לקוח 2". בונים קובץ ראשי "סוג-לקוח" המכיל את רשימת סוגי הלקוח האפשריים. לקובץ זה קשרים לקובץ משני "מספר-לקוח", המכיל את מספר הלקוחות הקשורים לכל סוג לקוח. רשומות הקובץ קשורות בהתאמה לקובץ ראשי "לקוחות". על"ידי קשר עקיף זה מקבלים את הקשר בין סוג לקוח לרשומת הלקוח. הקשר אינו מנוהל באופן אוטומטי על-ידי המערכת, אלא נקבע בתכנות על-ידי המשתמש. לפיכך, כאשר יש שינוי בקובץ הלקוחות, כמו למשל הוספת לקוח חדש או ביטול לקוח קיים, יש לעדכן בהתאם את מסלול הקשר לקובץ "סוג-לקוח". 27 ג לקוחות סוג לקוח סוג לקוח = אינדקט משני לקובץ לקוחות הזמנה 4 הזמנות תרשים 14 - 13: אינדקס משני ב- |4דסד 2|8 4. מבניס לוגייס של נתוניס המבנים הבסיסיים של המערכת, הקובץ הראשי הקובץ המשני והקשר, מאפשרים להרכיב מבני נתונים מורכבים. גם מבנים אלו חייבים לקיים את הכללים אשר חלים על המבנים הבסיסיים. נסקור את המבנים המורכבים הנפוצים ביותר. 1 מבנה היררכי בעל רמה אחת עחסזבּזסו4! וצפו-פוחַחו56). המבנה מוצג כקשר חד---רב-ערכי פשוט בעל יישום מידי. רשומה אחת בקובץ הראשי קשורה למספר רשומות בקובץ המשני, כפי שרשומת אב קשורה למספר רשומות בן במבנה היררכי. תרשים 15 - 13: מבנה היררכי פשוט במבנה ההיררכי הפשוט המוצג בתרשים 15--13 לכל רשומת לקוח קשורות מספר רשומות חשבנן בהתאם להזמנות שבוצעו. הגישה לרשומה בקובץ ראשי לקוחות הינה ישירה ומתבצעת על פי המפתח הלוגי שלה, לפי מספר הלקוח. הגישה לרשומות החשבון מתבצעת באמצעות המצביעים המרכיבים את השרשרת הדודכיוונית בקובץ הראשי ובקובץ המשני. 2 מבנה היררכי בעל מספר רמות (עחסזפזסוו |סטפו-טוטו). כדי ליישם מבנה בעל רמות אחדות משתמשים במספר סוגי רשומות בקובץ המשני. אפשר לנצל תכונה נוספת של המערכת שהיא אפשרות הקשר בין רשומה בקובץ הראשי לרשומה כלשהי בקובץ המשני. במבנה ההיררכי שנוצר משמעות הדבר -אפשרות גישה ישירה לרשומות ברמה נמוכה יותר ללא מעבר דרך רשומת האב שלהן. 1519 תרשים 16 - 13: מבנה היררכי בשתי רמות תרשים 16--13 מציג דוגמא ליישום המבנה ההירככי בשתי רמות. בשיטה זו כל הרשומות המשתתפות במבנה קשורות זו לזו בקשר דו-כיווני אחד. סדר הסריקה של המבנה הוא מרשומת כותרת בהזמנה הראשונה, לאחריה רשומות הפריטים שלה ולאחריהן רשומת כותרת ההזמנה הבאה וכן הלאה. בפועל, זוהי סריקה סדרתית של שרשרת המכילה שני סוג רשומות. כדי להגיע לכותרת של הזמנה מספר 9 למשל, יש לקרוא את כל הרשומות המופיעות לפניה. כדי לשפר את מהירות הגישה לרשומות משתמשים בקישור נוסף בין הקובץ הראשי לבין הקובץ המשני. הקשר השני קושר סוג רשומה אחד בלבד, למשל את כותרות ההזמנה. הקשר הזה יוצא שרשרת המכילה את רשומות הכותרת בלבד ועל ידי כך מאפשר גישה מהירה יותר אל רשומת כותרת מבוקשת. 200 הזמנה8 לקוחות . סח 1 -- הזמנות תרשים 17 - 13: מבנה היררכי עם גישה מהירה לרשומות כותרת 3 מבנה רשת (אזסשוזפא ) מבנה רשת אפשר ליישם באמצעות הקשר שבין קובץ משני אחד למספר קבצים ראשיים, וכדוגמא נשתמש בקשר רב--רב"ערכי אשר קיים בין ספקים לפריטים למשל. בדומה להמלצות .)60048 מוצג קשר זה על ידי שני קשרים מסוג חד---רב-ערכי, אשר כאן מקבל ביטוי בקישור קובץ משני אחד למספר קבצים ראשיים, כפי שמוצג בתרשים 18--13. 21 רשומות קשר תרשים 18 - 13: מבנה רשת פשוט דוגמא נוספת למבנה רשתי מופיעה בתרשים 19--13 המתאר שימוש בקובץ משני עם שני סיג רשומות. רשומות הפריט בקובץ ההזמנות קשורות הן לקובץ הלקוחות והן לקובץ הפריטים ובכך יוצרות קשר רב--רב-ערכי בין הלקוחות לבין הפריטים. | ה זו 4 הומנות תרשים 19 - 13: מבנה רשת מורכב 22 6 מבנה עצ מוצר (פזטזסטזז5 |8וז6ו8ו-זס-ווו) במערכת .ן4דסד לא ניתן להציג קשרים בין רשומות בקובץ ראשי. כדי לתאר את הקשרים שבין הרשומות של הפריטים המרכיבים את עץ המוצר יש להשתמש בטכניקה של / 0-ה הר 2 | ן | | | | | ן | 4 הרכבות פריטים -- == תרשים 0 - 15: מבנה עץ-מוצר 3 קובץ ראשי, קובץ משני וקשרים בין הרשומות שלהם. הקובץ הראשי מכיל את רשומות הפריטים. הקובץ המשני מכיל רשומות המתארות רמה של תת-הרכבה בלבד, כלומר יחס אב-בן, קשרים בין רשומות השייכות לתת-הרכבה אחת וקשרים בין רשומות שפריטים שלהן נמצאינ | :ת-הרכבות שונות. ברשומות שבקובץ הרכבות צריך להיות ידה המציין את מספר המופעים של הפריט בהרכבה. הקובץ הראשי קשור אל הקובץ המשני בשני סוג קשרים: קשר מהפריט אל הרשומה הראשונה של תת-ההרכבה (//פוח659) שלו וקשר מהפריט אל הרשומה הראשונה בתת-ההרכבה הראשונה שבה הוא כלול ( 86(-חו-878ח//0. 1 ו.- מפורט של עץ מוצר ניתן בתרשים 20--13. בדוגמא זו קיימים קובץ פריטים, קובץ הרכבות וקשרים. הרשומות של קובץ הרכבות מתארות קשרי הרכבות בלבד ולא פריטים בודדים. כך למשל הרשומות 8--ג, 0--ג, ם--4 מתארות תת-הרכבה אחת, והרשומות ₪--ם, =--ס מתארות תת"הרכבה אחרת, אשר כלולה בתת-ההרכבה הראשונה. הרשומות בהרכבה ג למשל קשורות ביניהן. רשומה 8--4 קשורה לרשומה 8--6 בתת-הרכבה אחרת מכיון שהפריט 8 מופיע בשתיהן. הקשר מסוג עו0וח4556 שבין קובץ פריטים (ראשי) לבין קובץ הרכבות (משני) מוביל מרשומת פריט לכל הרשומות בהרכבה שלו. ובדוגמא, רשומה 4 קשורה אל רשומות 8--, 8 ס-- רשומה 0 קשורה לרשומות ₪--ם =--0 וכך הלאה. קשר מסוג 6 --8ז6ח/ מוביל מכל פריט אל רשומות הרכבה שבהן הוא משתתף. כך למשל מפריט סיהיו קשרים אל רשומות ס--4 ,ם--6 ששייכות לשתי תת-הרכבות שונות. בתרשים 21--13 מוצגת דוגמא לסכימה מורכבת על בסיס נתונים בארגון תעשייתי, לתיאור הסכימה יש להשתמש בכל סוגי הקשרים שנדונו בפרק זה. מספר 7 תרשים 21 - 13: סכימת בסיס נתונים ב- 41זסד 24 5 שפה להגדרת נתוניס כדי להקים בסיס נתונים יש להגדיר תחילה את הסכימה שלו. ההגדרה כוללת את הקבצים, הרשומות והקשרים ביניהם ומספר תכונות פיטיות של הקבצים. במערכת .וג4דסד נעשות ההגדרות בשפה מיוחדת ( סכ) העובדת הידור בתהליך הקרוי א865כ (8886 0818 חסוו078ח30). א4זהם 5 הקוחה 50 תרשים 22 - 13: הידור הסכימה לכל קובץ במערכת ניתן שם מזהה חד"משמעי בן ארבעה תוים. שם זה משמש קידומת קבועה גם בשמות השדות המרכיבים את הרשומות בקובץ. לשדה המפתח יש מבנה מיוחד 01אאאא שבו -]הז0 מציין את כעובדה שזהו שדה מפתח (ע66 וסזוחסס) ובמקום אאאא רושמים את שם הקובץ. בכל רשומה יש להגדיר שדה ראשון בן 8 חווים בעל שם קבוע דססהאאאא המשמש את .4 דסדבניהול המערכת. ליצירת קשר בין שני קבצים יש להשתמש בכללים הבאים: -- בקובץ הראשי יוגדר שדה קשר בן 8 בתים על ידי השם /צצא.|אאאא כאשר ץץ הינו שם סימבלי הניתן על ידי המשתמש, ובמקום אאא ירשם שם הקובץ. -- בקובץ המשני יהיו שני שדות לכל קשר: שדה המפתח הלוגי של הקובץ הראשי במבנה אאאאעטעט כאשר אאאא הוא שם הקובץ הראשי ו ץצ הוא שם הקובץ המשני. שדה הקשר השני יהיה בעל שם זהה לשדה הקשר בקובץ הראשי. נשתמש בדוגמא פשוטה להגדרת סכימה של בסיס נתונים 008701588 המכילה קובץ ראשי לקוחות. 051 וקובץ משני הזמנות חסחּס. שני הקבצים מוצגים בתרשים 23--13 ולאחריו -- ההגדרה ב- סס. ש . /, / ק 7 תאריך מספר שרה מפתח לוגי הזמנה הזמנה קשר לקוחות ביג 8אטאהסהס מסא)זפטס ב תרשים 23 - 13: תבנית שני קבצים להגדרת סכימה הזמנות הסאס 25 :אסוז הא --2455-- זה פ--אופפם שם בסיס הנתונים .5השו 0 ד005=ם! הא--8455-- דס תחילת הגדרה של קובץ ראשי 7-77 :פ-- ד ס--חש ד45א--א8506 שם הקובץ הראשי ד05=ם!וא-- זם5-- דאס תיאור הקובץ הראשי :4 דה כ--ח= זוא > =8 שדה המפתח (מספר לקוח) 7= |הדסד9 וס שדה הקשר לקובץ משני 8 0=וא א דפס 0= סה דפס :4 דהס--סא= סוג הדיסק (גושים באורך קבוע--למשל יבמ 3370) 4ם"-םסושסס קובץ 540/5806/ 5 ו--2400586 גודל הגוש 6-- וג עה דאו-- וסחהזא0ס--ו54₪/ מספר רשומות משוער בקובץ 0 םה-- 061041/-- |4זסד :זםפ-- ד פ--חהם ד5/ו--סא= תחילת ההגדרה של קובץ משני ‏ :ד85--ג דהס-- ץח דא=- = וה הוח /- -אוססם שם הקובץ המשני .הפה == א-- 4-55 דוס :4 דם-- 8465 המפתח הלוגי של הקובץ הראשי (מספר לקות) 7 ססהס שדה קשר לקובץ הראשי הסה 0ס=8=הסא 009 מספר הזמנה 8=6טאהסחס 6 ד הפס 6 :ג דס-- סא= שיטת גישה ישירה 80 א4פפ=ססהדפוא-- 200586 סוג הדיסק (יבמ 3330) 0-ו מספר רשומות לגוש מספר רשומות משוער בקוב ן - 006 81--הפק-- 05ה00םה--. וסוס 0" -- 041ו08.-- 41 דסד :זפ-- ד ס-- ה דאם--= וגוה ה/-- פא= .אסו דא --865-- דה ס-- סא= מבנה לוגי מבנה פיסי אם הקובץ המשני מכיל סוגי רשומות אחדים מגדירים תחילה את השדות המשותפים ואחר כך את השטחים בהתאם לסוג רשומה. לדוגמא: שרה קשר סוג הרשומה סת "מילוי" כדי לקיים אורכי רשומה שווים סוג הרשומה דן שדה קשר בין הרשומות בקובץ :זה פ--8455 600052הסחהס + 7=דפטסהסמס משותף 00 8=0=ה0א/ דפס 8=6ואטאהסחס סה=60005--500₪0ה 6= זג סחסחו.1. 1.9 זו=0005--סחססשה 9= וט דומסחס.1. ופ דוחהסחהס=8=הסא וואשדו.1. 8 צדאסחסהס.1. פה דו +- 27 6. שפה לטיפול בנתוניס השפה לטיפול בנתונים (6חַטחַח8.! זח09ח6ף8ח9! 1 - - !ואס) מאפשרת גישה ישירה לרשומות ראשיות, גישה באמצעות מצביעים לרשומות משניות שבקובץ וגישה סדרתית, בהתאם לסדר הפיסי של הרשומות. לקבלת השרותים של מערכת ניהול בסיס הנתונים דסדמתוך שפה מארחת ( 60801) יש לרשום הוראה במבנה הבא: 1 | ,הוה -6הָבּאחו!! ,06ח0ז600ז ,6ההִהה-0319-506 ,518105 ,חסוזפזסקס) 5ה בדה | ומס (סא= ,60070-8768ז ,51|-1ח0ח6!9 ,₪1010-|סזוחסס לכל סוג פעולה או הוראה יש להשתמש באוסף הפרמטרים המתאים, מתוך הרשימה שבמבנה ההוראה: -- אסוד/השקס: הפקודה שיש לבצע, לדוגמא קריאה, כתיבה וכדומה. -- 8141008 שדה בתוכנית אשר יכיל בסיום הפעולה את קוד המצב אשר יציין אם הפעולה הושלמה כראוי או לא ומדוע. -- ₪והא--ד55-- ד שם הקובץ כפי שהוגדר בסכימה. -- םסאפהםתפה:. מספר המציין את המיקום היחסי של רשומה משנית מתחילת השרשרת. פרמטר זה מיועד להוראות בקבצים משניים בלבד. -- 4ד1ק--65אאן 4 שם הקשר כפי שהוגדר בסכימה. מכיון שרשומה משנית עשוייה להשתתף במספר קשרים יש לציין לפי איזה קשר יש לבצע את הפעולה. - 0!פו=-- 600 המפתח של הרשומה בקובץ הראשי לצורך גישה ישירה. כאשר מטפלים ברשומות משניות שדה זה יכיל את המפתח הלוגי של הרשומה הראשית הקשורה לרשומה המשנית. - ד8ו1--דאם)ם = רשימת שמות השדות שיש לקרוא מהרשומה. השדות יקראו ויועברו לשטח העבודה בסדר שבו הם רשומים. -- ₪5--3500₪0 שטח עבודה בתוכנית שאליו יועברו השדות שיקראו מהרשומה או שאליו יועברו השדות שיכתבו אל הרשומה (עדכון). הפקודות ב-. | דסד מתחלקות למספר קבוצות: פקודות לעיבוד סדרתי, פקודות לעיבוד קובץ ראשי. פקודות לעיבוד קובץ משני ופקודות בקרה. 1. וו לעיבוד סדרתי דאאסח: פקודה זו מאפשרת קריאה של קובץ ראשי או קובץ משני בהתאם לסדר הפיסי של הרשומות. כל פקודה מחזירה רשומה אחת. 2 פקודות לעיבוד קוב ראשי אסגפח: קריאת רשומה מקובץ ראשי לפי מפתח רשומה נתון. אדוח/: עדכון רשומה בקובץ הראשי אשר נקראה לפני-כן באמצעות פקודת וס גשה א--400: הוספת רשומה חדשה לקובץ ראשי. המערכת משתמשת במפתח ובתהליך חישובי לקביעת כתובת הרשומה בקובץ. אם המקום המיועד לרשומה תפוס על ידי רשומה אחרת, המערכת תבצע סריקה לאיתור מקום פנוי אחר כדי לכתוב אותה. בתרשים 24--13 8 ניתנת דוגמא לשלש רשומות שהיו צריכות לתפוס אותו מקום פיסי (פוחעהסתץ5), ומוצג הקשר שנוצר ביניהן באמצעות המצביעים. . , 1 - צםא זססחּ אחם . תרשים 24 - 13: תוכן שדה שורש עבור פוחעחסחץ5 כאשר מגיעה רשומה חדשה אשר כתובתה המקורית היא 791, תוזו הרשומה עם הפתת אא למקום פנוי אחר והמצביעים יעודכנו בהתאם. ראה תרשים 25--13. ץצסא זססהּ אחח 000 4 מרוו א 2 תרשים 5 - 13: כתיבת רשומה חדשה בקובץ /-- ס: ביטול רשומה בקובץ ראשי. יש לבטל תחילה את כל הרשומות בקובץ המשני הקשורות לרשומה זו. 29 3 פקודות לעיבוד קוב משני שסג=ח: קריאת רשומה בקובץ משני באמצעות מצביע לפנים. הסגפה: קריאת רשומה בקובץ משני באמצעות מצביע לאחור. ססג=ה: קריאת רשומה לפי המקום היחסי שלה בשרשרת. המקום היחסי נמסר בשדה םהה בפקודת הקריאה. שדוח/: עדכון רשומה בקובץ משני. יש תחילה לקרוא את הרשומה באמצעות אחת הפקודות הקודמות. סצססג: הוספת רשומה חדשה בסוף שרשרת. המערכת תעדכן את המצביעים לאחר הפעולה. לפני הפעולה לאחר הפעולה תרשים 26 - 13: הוספת רשומה בסוף שרשרת הוססג: הוספת רשומה חדשה לפני הרשומה הנוכחית שהתקבלה בפקודת הקריאה האחרונה. בתרשים 27--13 מוצגת הוספת רשומה לאחר קריאת הרשומה המשנית "2". הרשומה החדשה "4" הוכנסה למקום השני בשרשרת, לפני רשומה "2". לפני הפעולה לאחר הפעולה תרשים 27 - 15: הוספת רשומה לפני רשומה נוכחית 200 חרשים 28--13 מציג דוגמא החדשה שנוספה "5/4 הרשומה הוכנסה לפי מקומה הלוגי בהתאם לרשומה הנוכחית ועל השני בשרשרת. אותה רשומה לאחר הפעולה תרשים 28 - 13: הוספת רשומה בשתי שרש א4צססם: הוספת רשומה חדשה לאחר הרשומה הנוכחית שנקבעה בפעולת ההוספה המוצגת בתרשים 29--13 הרש הרשומה החדשה תוכנס למקום השלישי בשרשרת . לפני הפעולה תרשים 29 -13: הוספת רשומה לאחר רשומה נוכ של קובץ משני אשר קשור לשני קבצים ראשיים. תהייה קשורה לשתי רשומות ראשיות. בש הרשומה רשרת הקשורה לקובץ ,וא "כן היא חופשת את המקום הוכנסה בסוף השרשרת הקשורה לקובץ ,אא. רות בפקודת קריאה אחרונה. ומה הנוכחית היא הרשומה השניה ולכן לאחר הפעולה חית 21 ספץ1פס: ביטול רשומה משרשרת בקובץ המשני. יש לקרוא תחילה את הרשומה באחת מפקודות הקריאה. תרשים 30--13 מציג דוגמא לביטול הרשומה השניה בשרשרת. לאחר הפעולה לפני הפעולה תרשים 0 : ביטול רשומה בשרשרת אם הרשומה המשנית משתתפת במספר קשרים היא מתבטלת בכל הקשרים שהיא משתתפת | בהם, כפי שמוצג בתרשים 31--13. 0 5 לאחר הפעולה 0 תרשים 31 -13: ביטול רשומה בשתי שרשרות לפני הפעולה 4 פקודות בקרה אסאןופ: תוכנית היישום מכריזה באמצעות פקודה זו על עיבוד הקובץ, ומציינת את סוג 22 העיבוד -- קריאה או עדכון. המערכת מפקחת שהתוכנית תבצע רק את הפעולות שמורשות לה. תוכנית יכולה למנוע מתוכניות אחרות לגשת לקובץ שהיא פועלת בו כדי למנוע את עדכונו בו"זמנית על ידי תוכניות שונות. נעילת הקובץ גורמת לכתיבת סימון מיוחד בכותרת הקובץ. =סאופ: שחרור הקובץ על ידי תוכנית היישום לשימוש של תוכניות אחרות. 7 השוואה בין מערכת ואזסדלבין המלצות |צ60548 המבנה הבטיסי בהמלצות 00 היא החבורה ()86). במערכת .)ג דסד הקשר בין הקובץ הראשי לקובץ המשני מציג מבנה דומה למבנה החבורה, והוא מכיל סוגי קשר שונים: מצביע לפנים, מצביע לאחור ומצביע סמלי לרשומת האב. המשתמש אינו יכול לבחור באילו מצביעים ישתמש בהוראות השונות. רשומות חדשות מתווספות באופן אוטומטי בסוף השרשרת, אך המשתמש יכול להכניסן במקום שונה אם ציין כך בפקודת העדכון. בהמלצות 00 ניתן לקבוע את הסדר של החבורה (0=!₪ , ס=!, ממויין) בזמן הגדרת הסכימה, מבנה הרשת בד,|דסד מורכב יותר מכיון שאין אפשרות לקשרים ישירים בין קבצים ראשיים או משניים. הרשת המתקבלת בהמלצות +צ0005 מתאימה יותר למבנה האמיתי של הקשרים בין הנתונים. תרשים 32--13 מציג דוגמא למאגר נתונים ב- )6008 וב- | דסד. מאגר הנתונים ב- דסד מכיל קבצים ראשיים וקבצים משניים. 13 יי היכן בשימוש 0008 תרשים 32 - 13: מבנה נתונים ב-.00048%1 וב-.ואדסד 8 סיכוס מערכת .|דסד לניהול נתונים מאפשרת הגדרת קשרים שונים ומגוונים בין הנתונים. היא משתמשת במודל הרשת אך אינה מכילה את כל התכונות המומלצות עלזידי )י048ס0. הטיפול בנתונים נעשה בשפה פרוצדורלית והמשתמש חייב להגדיר את המאגרים בצורה מפורשת. המערכת אינה מאפשרת הגדרת תנאי שליפה לרשומות ולכן רוב העיבוד הוא סדרתי לאורך הקשרים. המערכת יכולה לפעול באופן מקוון (פחוו-חס) באמצעות מערכת תוכנה לניהול תקשורת כמו 08ו0, 1/אסחוטאם ואחרות. מחולל הדוחות 8008158 מאפשר עריכת דוחות מבסיס הנתונים. מערכת | |דסד הינה אחת ממערכות ניהול בסיסי הנתונים הנפוצות ביותר. אפשר להתקינה במחשבים של יצרנים שונים: במערכות יבמ בארכיטקטורת 370, מערכות |שץ6חסו, ס8צוחנו, הסא, 600, 11/פסם, פחפָטסזזטם ועוד. חברת וחססחוס הכריזה לאחרונה על מערכת פוד לניהול בסיסי נתונים. מערכת זו משתמשת במבנים הפיסיים של מערכת 1דסד אולם משחררת את המשתמשת מטיפול בקבצים ראשיים ומשניים. המשתמש עובד עם רשומות לוגיות (אוס!/ ז59( 109108 -- עט )6 אשר יכולות להכיל שדות מקבצים ראשיים ומשניים כאחד. שיטה זו מפשטת מאד את הטיפול בבסיס הנתונים מכיון שהמשתמש עובד עם רשומות שטוחות בלבד. מערכת פוד מכילה מילון נתונים פעיל המשמש לאחסון ההגדרות של הקבצים, השדות, הקשרים וה-/(1. מערכת 8וד משולבת עם מחולל היישומים 5ו|דאהא, מחולל דוחות .|4/שוחדשה מצו5אשהםתקואסס ושפת שאילתות למשתמש הקצה ץחשום דא=סו ו ושדאו. 24 פרק יד -- 04845 וח516ץ5 2356 0313 0371380!6 מבוא . מושגי יסוד . מבנה פיסי של בסיס הנתונים . מבנים לוגיים . שפה להגדרת נתונים . שפה לטימול בנתונים סיכום = ₪ ₪ .רת ל 15 1. מבוא מערכת 4048459 פותחה על ידי חברת 46 6ז8שו/50 במערב גרמניה ומיועדת בעיקר למחשבי יבמ גדולים. לאחר זמן פותחה מערכת |א-404846 המיועדת למיני מחשבים ממשפחות קסק ו- אש של חברת 6מס. 8 אינה מניחה מבנה מיוחד כלשהו של הנתונים, כגון מבנה היררכי או רשתי. כל הרשומות במערכת הן רשומות שטוחות רגילות כאשר הגישה אליהן מבוצעת באמצעות רשימות הפוכות (1.815 60!זפשח!). בסיס הנתונים בנוי מקובץ אחד או יותר אשר מכיל את הרשומות ומקובץ נוסף אשר מכיל את הרשימות ההפוכות. המערכת מאפשרת הגדרת מספר רב של שדות כמפתחות משניים. אפשר לקשור קבצים זה לזה באמצעות הרשימות ההפוכות על פי תוכן שדה מסויים המופיע ברשימות ההפוכות שלהם. הקישור מאפשר לבנות בסיס הנתונים המתאים למודל הרשתי או המודל ההיררכי, למרות תצוגת הנתונים למשתמש אשר דומה לתצוגתם במודל הטבלאי. עם זאת, מערכת 40488 איננה מערכת טבלאית מכיון שהיא חסרה חלק מהאופרטורים המוגדרים במודל הטבלאי. 207 2 מושגי יסוד כדי לתאר את המערכת יש להכיר תחילה מספר מושגי יסוד הנהוגים בה: -- שדה (0!6ו=): השדה הוא יחידת הנתונים אשר מכיל נתון לוגי כלשהו והוא יכול להתחלק לתת-שדות (₪16!68-מט5). המערכת מבחינה בין שני סוגי שדות: שדה אלמנטרי (1010= עז8זח0ות6ום) ושדה רב-ערכי (₪16!0 6טו8/-6וסוווטוא). שדה אלמנטרי יכול להכיל ערך אחד בלבד בעוד אשר שדה רב-ערכי עשוי להכיל מספר ערכים שונים. ניתן להגדיר שדה קבוצתי (₪10/6 קטסז) אשר מורכב ממספר שדות. שדה קבוצתי החוזר על עצמו מספר פעמים בתוך הרשומה הוא שדה קבוצתי מחזורי ₪910 קטסז 0ו06100). -- מפתח ( זס)ק!ז0650): המפתח הוא ערך שדה, תת-שדה או שדה קבוצתי ברשומה אשר מאפשר גישה אליה באמצעות הרשימות ההפוכות. ניתן להגדיר שדות מפתח אחדים לכל רשומה ובהתאם לכך תהיה לכל אחד מהם רשימה הפוכה. את שדות המפתח ניתן להגדיר בעת יצירת הקובץ או לאחר מכן באמצעות תוכנית שירות מיוחדת. המערכת מאפשרת הגדרת מפתחות יחודיים (6טףוח() אשר אינם מכילים ערכים כפולים. מטרת השימוש במפתחות הינה ליעל את הגישה לרשומות אשר בבסיס הנתונים. -- רשומה (860076): הרשומה הינה יחידת התקשורת הבסיסית בין בסיס הנתונים לבין תוכנית היישום. הרשומה מוגדרת כאוסף של מספר שדות בעלי משמעות לוגית מבחינת המשתמש. רשומה אחת יכולה להכיל עד 500 שדות נתונים. כדי לאפשר גמישות בניהול השדות ברשומה מוסיפה המערכת לכל שדה ברשומה את הזיהוי שלו ואת אורכו. בכך היא מאפשרת למשל להוסיף שדות לאזור פנוי ברשומה מבלי שיהיה צורך לטעון מחדש את הקובץ. שיטת ניהול השדות מאפשרת גם לדחוס את הנתונים ולקבל רשומה דחוסה (0ז3900 00667800). מטרת הדחיסה הינה בעיקר לחסוך בנפח הקובץ ולהוסיף נתונים על ידי "פינוי" מקום ברשומה מבלי שיהיה צורך לטעון מחדש את הקובץ. בתהליך הדחיסה מסלקת המערכת מרווחים (%8ח8!פ) רצופים בשדות אלפבתיים, מסלקת אפסים מובילים בשדות מספריים והופכת אותם למבנה ארוז (60א80ק). כאשר ישנם שדות ריקים (6טו8/ ווטא) רושמת המערכת עובדה זו וחוסכת את המקום שלהם. בדרך כלל יכול תהליך הדחיסה לחסוך עד 50% בשטח אחסון הקובץ. הדחיסה נעשית באופן אוטומטי על ידי המערכת לפני כתיבת הרשומה. אפשר למנוע את פעולת הדחיסה כפי שיוסבר בהמשך. - קובץ (6ו=): קובץ הוא אוסף כל המופעים של הרשומות מאותו הסוג. כל קובץ יכול להכיל עד 16 מיליון רשומות שונות בגושים בעלי גודל קבוע. מספר הרשומות לגוש משתנה לפי אורכן ולאחר שהקובץ עובר תהליך דחיסה. בכל גוש משאירים מקום פנוי מסויים לצורך הגדלה עתידית של הרשומות על ידי תוספת שדות, או שינוי בשדות קיימים. -- בסיס נתונים (8886 0818): בסיס נתונים במערכת 30838 מכיל עד 255 קבצים שונים אשר כל אחד מהן מכיל סוג רשומה אחד בלבד. -- מספר סודר פנימי (זסטוחטא 06ח50006 |4חזפוח!-- 5!): לכל רשומה פיסית הנרשמת בקובץ נקבע על ידי המערכת מספר סודר פנימי. המספר הסודר נשאר קבוע ולא ניתן לשנותו, אלא רק לבטלו כאשר מבטלים את הרשומה. מטרתו העיקרית לשמש כמצביע אל הכתובת היחסית של הרשומה בקובץ. 158 . 3 מבנה פיסי של בסיס הנתוניס מערכת 204848 מכילה שני סוגי קבצים: קובץ נתונים אשר מכיל את רשומות הנתונים (₪600109 0918) וקובץ הקשרים אשר מכיל את הרשימות ההפוכות (11818 160זפשחו) ונתוני בקרה ( חסוו8חזסזח! |סזוחס0). קובץ קשרים רשומות נתונים תרשים 1 - 14: שני סוגי הקבצים ב-404845 1 קובצ הנתוניס (809זסו5 פּום) קובץ הנתונים הינו קובץ 804 המכיל את הרשומות באורך משתנה בתוך גושים בעלי גודל קבוע. אחוז מסוים מגודל הגוש נשאר פנוי לטיפול בגידול עתידי של הרשומות בגוש. גודל השטח הפנוי נקבע בזמן בניית הקובץ. 2 קוב הקשריס (ז0ו48500)9) קובץ הקשרים מכיל את נתוני הבקרה, טבלאות הניהול ואת הרשימות ההפוכות. נפחו כרבע מנפח האחסון של קובץ הנתונים. המרכיבים העיקריים בקובץ הקשרים הם: - טבלאות לתיאור רשומות (800/8ד חסווס!ז650 19/6): הטבלאות מכילות את ההגדרה הלוגית של הרשומות: לכל שדה ברשומה ניתן התיאור, התכונות והסיווג. המשתמש יכול לפנות לטבלה זו באמצעות פקודות מיוחדות. | -- טבלאות לניהול שטחי אחסון (806!5ד 001וח806ח8!) 6חָ9זס51): הטבלאות מיועדות לסייע בניהול שטח האחסון של בסיס הנתונים ולמטרה זו הן מכילות מידע על תכולת שטחי האחסון של הקבצים השונים. כאשר נדרש לקובץ שטח אחסון מעבר להקצאה הקיימת, השגרות לניהול שטחי האחסון מאתרות ומקצות אותו מתוך שטח האחסון הרזרבי שבפיקוחן. כאשר מבטלים רשומה או קובץ מתבצע רישום מתאים של השטח שהתפנה לשם שימוש חוזר. -- מתרגם כתובות (זס1ז6עח00 655ז4000): בזמן טעינת הרשומות לקובץ מוסיפה המערכת לכל רשומה את המספר הסדורי הפנימי (א5!) שלה. מספר הגוש הפיסי שבו נרשמת הרשומה נרשם בטבלה מיוחדת הנקראת טבלה לתרגום כתובות. טבלה זו הופכת למעשה את ה- 19 למפתח לוגי ולא פיסי מאחר והוא איננו מכיל את הכתובת הפיסית של הרשומה אלא את מספרה 19 הסדורי בתוך הקובץ. כאשר משנים מקום של רשומה לאחר שהיא גדלה ואין לה מקום בגוש המקורי שלה, אין צורך לשנות את המספר הסודר שלה. הרשומה עוברת עם א8! שלה ובטבלה מציינים את מספר הגוש החדש שבו היא נמצאת. שיטה זו קרויה שיטת מיעון עקיף (901זוחו 9חו06659/) לרשומות. טבלת תרגום הכתובות מכילה כניסה אחת לכל רשומה בקובץ הנתונים והמפתח הסדורי הפנימי של הרשומה משמש לה כאינדקס הגישה. כלומר, במקום החמישי בטבלה נמצא את הכתובת הפיסית של הרשומה שה- א8! שלה הוא חמש וכדומה. הכתובת הפיסית הינה כתובת הגוש הפיסי שבו מאוחסנת הרשומה. 7 ו תרשים 2 - 14: חיפוש רשומה באמצעות טבלה לתרגום כתובות -- רשת הקשרים (אזסצוזס חסוו8ו45500): רשת הקשרים כוללת את הרשימות ההפוכות הדרושות לאיתור רשומה לפי מפתח. לכל מפתח מנוהלת רשימה הפוכה נפרדת. הרשימה מכילה עבור כל ערך של המפתח את רשימת המספרים הסודרים (88!) של הרשומות שבהן מופיע ערך זה ומונה את מספר הרשומות האלה. הרשימה ממויינת לפי ערך המפתח. בתרשים 4--14 מוצג לדוגמא קובץ ספקים אשר מכיל רשומה אחת עבור כל ספק ואת הרשימות ההפוכות שלו. הרשומה בקובץ כוללת שדות אחדים: מספר ספק, שם ספק, כתובת, סוג ספק ועוד. לקובץ הספקים הוגדרו שלשה שדות מפתח: מספר ספק, שם ספק וטוג ספק. המערכת תבנה שלש רשימות הפוכות, אחת עבור כל מפתח של הרשומה. הרשימה תכיל את ערך המפתח ואת רשימת המספרים הסודרים (א5|) של הרשומות המכילות ערך זה. הרשימה ההפוכה מיועדת לאיתור רשומות לפי תוכן שדה המפתח, ללא צורך בגישה אל הרשומות עצמן. כדי להקל על החיפוש בונה המערכת לכל אחת מהרשימות ההפוכות רמות אינדקס אחדות (עד 6) בהתאם 20 למספר המפתחות, מספר הרשומות בקובץ ואורך שדה המפתח. האינדקטים "שקופים" למשתמש ומנוהלים אוטומטית על ידי המערכת. טבלאות לתיאור רשומות ב = רשומה תרשים 3 - 14: מבנה קובץ הקשרים | ₪ | א | | משפ | | ו | | 6 | ₪ |. ופמלטה | | ו | :| ביטקום דגם מערכות טלרר תריראן תרשים 4 - 14: קובץ ורשימות הפוכות 21 4. מבניס לוגייס לאחר הגדרת הרשומות הבודדות המרכיבות את הקבצים בבסיס הנתונים ניתן לבצע את זיווג הקבצים (סַחווסטס0 6וו=) לשם בניית רשתות או היררכיות. קישור בין רשומות של שני קבצים כלשהם מתאפשר על פי שדה משותף אשר מופיע בשתיהן. ניתן לבצע קישור או לבטלו בכל עת לאחר בניית הקבצים. הקשרים בין הקבצים מיוצגים על ידי טבלאות ממויינות של מספרים סודרים אשר נשמרות בקובץ הקשרים. אפשר לקשור קובץ אחד עד ל-80 קבצים אחרים, וכל רשומה יכולה להיות קשורה למספר בלתי מוגבל של רשומות בקובץ אחר. יי 2 קובץ ו תרשים 5 - 14: קישור קבצים בתרשים 6--14 מוצגת דוגמא לקישור בין שני קבצים, קובץ ספקים וקובץ פריטים. נניח שקיים ביניהם קשר רב--רבדערכי, כלומר כל ספק יכול לספק מספר פריטים וכל פריט יכול להיות מסופק על ידי מספר ספקים. לשם כך יהיה ברשומת הספק שדה רב-מופעי אשר מכיל את מספרי הפריט המסופקים על ידו, וברשומת הפריט יהיה שדה רב-מופעי המכיל את מספרי הספק שלו. את קישור הקבצים אפשר לבצע על פי השדות "מספר ספק" ו"מספר פריט" אשר מופיעים ברשומות שני הקבצים. הקשר שהתקבל הוא רב--רב-ערכי דוכיווני. קישור שני קבצים זה לזה מאפשר הגדרת מבני נתונים מורכבים ביותר לשם הצגת מודל משתמש (שוסו/ ז50)) רשתי או היררכי בהתאם לצורך. 12 מספר תרשים 6 -14: קשר רב - רב"ערכי בין קובץ ספקים לבין קובץ פריטים ספקים פריטים ' הזמנות פריט בהזמנה לקוחות לקוחות פריטים הזמנות מודל הזמנות היררכי פריט בהזמנה תרשים 7 - 14: מודל משתמש רשתי והיררכי פריט בהזמנה 13 5 שפה להגדרת נתוניס הגדרת הנתונים הינה תולדה של הגדרת הקבצים, הרשומות, השדות והקשרים שבין הקבצים. לכל קובץ מספר מזהה אשר נקבע על-ידי המערכת בזמן טעינתו הראשונית. השדה הינו היחידה הבסיסית החשובה ביותר מכיון שהוא מכיל את הנתונים. הוא יכול להיות שדה מפתח שבאמצעותויוצרים את הקשר בין רשומות וקבצים. המשתמש צריך להגדיר כל שדה אך אין הוא נזקק תמיד לכל הפרמטרים מכיון שאינם דרושים או שקיימות עבורם ברירות מחדל קבועות במערכת. הפרמטרים "רמה", "שם", אורך ו"סוג" חייבים להופיע תמיד. הגדרת השדה כוללת את הפרמטרים הבאים: -- רמת השדה (1610-1.6461=): מספר בן שתי ספרות אשר מגדיר את רמת השדה ברשומה, כמקובל בשפות תכנות גבוהות כגון קובול. קיימת אפשרות של הקבצת שדות לשם יצירת מבנה היררכי. -- שם השדה (6חזפא-16/0=): לכל שדה ניתן שם סמלי באורך של שני תוים בלבד. -- אורך השדה (חוּפַח !-6/0/₪): אורך השדה המקורי לפני הדחיסה. המערכת מבצעת דחיסה של כל הרשומות לפני כתיבתן בקובץ אלא אם נדרש לא לבצע זאת. -- סוג השדה (06/ד-0/6ו₪): המערכת מכירה מספר סוגי שדות: מספרי ארוז (280%680), מספרי לא-ארוז (80%60סח!), אלפנומרי, בינרי, נקודה-צפה. -- אופציות נוספות: במסגרת אופציות אלה ניתן להגדיר תכונות נוספות של השדה, להלן כמה מהאפשרויות: א שדה מפתח (זסוק!ז0650): השדה מוגדר כשדה מפתח אל הרשומה לשם חיפוש, מיון ועיבוד לוגי סדרתי. ב. שדה רב"ערכי (06ו8/-16ס1₪ט//): השדה מכיל מספר ערכים שונים. לדוגמא "שם רחוב" הוא שדה אחד אשר עשוי להכיל מספר מילים אשר מייצגות ערכים נפרדים כמו למשל ברחוב ששמו "חיים נחמן ביאליק". לצורך שליפה אפשר להגדיר חלק מהערכים של השדה, כמו למשל "נחמן" או "ביאליק". דוגמא נוספת לשדה רב-ערכי היא שדה "מילות מפתח" של מסמך. ג. שדה מחזורי (₪6/0 06710010): השדה עשוי להופיע ברשומה מספר משתנה של פעמים, כמו למשל בוקטור חד-ממדי. הפנייה לשדה מחזורי תיעשה על ידי ציון האינדקס הקובע את מקומו היחסי בוקטור. ד. שדה באורך קבוע (ח1פַח1.0 60אן=): אופציה זו מבטלת את דחיסת השדה. ה. שדות ריקים (חסווסחוו5ו₪ 6טו8-ווטא): המערכת עורכת דחיסת נתונים ולכן יש לציין אם שדה שבו אפסים או מרווחים הוא ריק (ווטא) או שאלו הם נתונים. מבנה כללי להגדרת רשומה ב- 404846: דוגמאות: ...5חסוו0ק0 ,6סץ ד-8!0= ,ה91ח6!0-1.6= ,6ות16!0-8=] ,6טו8/-1610- -- שם הרשומה 4( (אין פרוט) ,01 -- שדה 1ג, אורך 10, מבנה 5 ארוז (ק), מפתת -- שדה 42, אורך 5, ארוז 250 ,02 -- שדה 43, אורך 10, אלפנומרי ,0210 בדוגמא זו רמת הרשומה היא 01 ורמת כל השדות היא 02. 4 .6 שפה לטיפול בנתוניס השפה לטיפול בנתונים נותנת למשתמש שירותים של עיבוד ואחזור נתונים. 1 עיבוד נתוניס המתכנת יכול לקבל את שירותי מערכת התוכנה 404846 באמצעות הוראות .1 )64 אשר כתובות בשפה העילית המארחת .60801 או 1/ |₪ מבנה ההוראה: ,ז-ם--0ה600םח ,-תעם-- זה חס ,06% 1פ-- וסמזאס6 באופנ 'פהםהסגי ובס .=חטֶם--ם דה סקט ,ז]-טם--שט |אע ,--עם--07ה 695 כל הפרמטרים שלאחר 6אן05 הם שמות משתנים. אין צורך להשתמש בכל הפרמטרים. -- שטח בקרה (006|ם-|0ח00): בשטח הבקרה נמסרת הפקודה שיש לבצע, זיהוי המשתמש, מספר הקובץ, גודל המאגרים לקלט/פלט ואופציות נוספות כגון מיון. בשטח זה נמסר שם שדה שמוגדר בתוכנית כדי לקבל בו את קוד"החזרה (0066-חזט)6ח) לאחר ביצוע הפעולה על ידי 0886ג. הפקודות האפשריות הן: א. 51: הפקודה מחזירה את רשימת כל המספרים הסודרים (א5!) של הרשומות אשר עונות צב ט. י לקריטריון החיפוש שנמסר ב-11ט8-ח0ז569. הרשומה מועברת לשטח המצויין בפקודה ואם אין בו מקום מספיק, ירשמו המספרים הגולשים בשטח זמני ואחר-כך יועברו לשטח העבודה. מספר המופעים של רשומות שמתאימות לקריטריון החיפוש נמבר בשדה בשטח הבקרה. מספר זה מאפשר לקבוע את מספר החזרות הדרוש על פקודת 81 כדי לקרוא את רשימת כל המספרים הסודרים. 2: פקודה זהה לפקודה 51 אך היא מחזירה רשימה ממויינת של המספרים הסודרים לפי תוכן שדות המפתח. . 1]: פקודה זו מעבירה רשומה מהקובץ אל שטח הרשומה בתוכנית (1/ט0-8ז3600). משתמשים בפקודה זו לאחר פקודת חיפוש אם א5! של הרשומה לא ידוע. אם ה- אפו של הרשומה ידוע, יש תחילה להעביר את תוכנו לשדה בשטח הבקרה. . 12: הוראה לקריאת הרשומות לפי הסדר הפיסי שלהן בקובץ. . 3!: הוראה לקריאת הרשומות לפי סדר של אחד מהמפתחות שלהן. . 9!: שליפת כל הערכים של מפתח מסויים ומספר המופעים. במקרה זה מתבצעת גישה רק לקובץ הקישור. ניתן להשתמש בפקודה זו על מנת לבדוק כמה רשומות קיימות בקובץ עבור ערך מסויים של המפתח. . 1א: פקודה זו מוסיפה רשומה חדשה לקובץ. הערכים של שדות הרשומה צריכים להיות ב- ז00818-80, והמבנה של הרשומה צריך להיות ב- ]1ט81-8וחזס". . 41: פקודה לעדכון שדה אחד או יותר ברשומה קיימת. בדרך כלל ניתנת פקודה זו לאחר פקודת חיפוש. יש למסור בשטח הבקרה את שמות השדות שיש לעדכן ואת הערכים החדשים. 2: פקודה זו מאפשרת להוסיף שדות חדשים לרשומה קיימת, כלומר לעשות שינוי של הסכימה. הפקודה "מגדילה" את הרשומה אך אינה רושמת בה ערכים חדשים כלשהם. הערכים ירשמו בפקודת 41. . 1ם: פקודה לביטול רשומה מהקובץ. את ה"א8ו של הרשומה מאתרים בדרך כלל 255 באמצעות פקודת חיפוש. -- מאגר מבנה הרשומה (זפ!טם-!8וחזס"): המאגר מכיל את מבנה הרשומה או את שמות השדות שיש לשלוף. המאגר מכיל רצף של שמות השדות ואורכם. -- מאגר הרשומה ( ז460070-8/16): מכיל את הרשומה שנשלפה מהקובץ בהתאם למבנה שנקבע במאגר מבנה הרשומה. -- מאגר חיפוש (זפ!וטם-ח0ז808): מכיל את קריטריון החיפוש, אשר מורכב ממספר הקובץ, שם שרה המפתח ותנאי בוליאני כלשהו. -- מאגר ערכים (ז1/9ט8106-8/): מכיל את תוכן שדות המפתח שהוגדרו במאגר החיפוש. -- מאגר עדכון (ז000816-8/!9): מכיל את תוכן השדות עבור בניית רשומה חדשה או שדות שמעדכנים רשומה קיימת. 2 שאילתות שפת השאילתות ד0ו40450 מונעת את הצורך להשתמש בשפה מארחת ובהוראות המערכת המורכבות כפי שראינו קודם. שפת השאילתות דומה במבנה החיצוני לשפת קובול או לשפה אנגלית והיא מאפשרת לבצע פעולות פשוטות של שליפה, עדכון והצגת שדות מתוך הרשומה בשיטה אינטראקטיבית. לדוגמא, הוראת סא|= לאיתור רשומות: 86 | = |ן=--חשו וקקש5 או סאו= 5 = פו--₪8] |קקט5 הדוע שליפת רשומה על פי תנאי בוליאני: 6 | = ון=--חשו וקקש5 או סא 1 < שקצז--חש! וסקש5 הזוע את הרשומות הנשלפות ניתן למיין לפי שדה כלשהו ברשומה: 8 1 םו--חפן וקפט5 או סאו- ם|אגא--חפן וקמקעפ צם זה508 סאג < פקצדז--הפן]קסט5 חדוצו אם קובץ הספקים קשור לקובץ הפריטים (פַחו!קט00 6ון=)ניתן להציג שאילתות מורכבות המבוססות על קשר זה. לדוגמא: -- שליפת כל הפריטים המסופקים ע"י ספק נתון ואשר מחירם גבוה מ-10000 שקל. את הפריטים יש להציג בצורה ממויינת לפי שם הפריט: סאג 10000 < =סוחם ה דוו פואשדו סאו= ₪ וןח-- חש |קק 5 סד פם 000 5 = סו--חםן וק 50 דועש אסודקוה50םס-- ופזו צם זה50 .םוא--חהשו ומקש8 ,סו--אשדו ,אסזוםוס50םס--ושדו ץג וספוס -- ניתן לשאול בצורה דומה שאילתא סימטרית המבקשת את רשימת כל הספקים המספקים פריט מסויים: 16 סאג 5|=--חש! וקקט5 סאוו 5םדו סד סם וסטסס '86ה'י= סו--ששדו אזוצש םואא--חם! ]סק 5 צם ז3ה 50 .ס!ו--חש!| |קקש6 ,םו\א--חפו ופס5 ץג וספוס ניתן להציג שאילתות עם תנאי שליפה המתייחס לחמישה קבצים שונים הקשורים ביניהם. השימוש ב- דס|40450 נוח מאד בגלל צורת הצגת השאילתא ובגלל מודל הנתונים הפשוט שבו משתמשת מערכת 304848 לעומת הצורה הפרוצדורלית של השפה לטיפול בנתונים. 27 29 7 סיכוס 8 היא מערכת ניהול בסיסי נתונים אשר משתמשת במודל נתונים פשוט מאד וברשימות הפוכות. אפשר להוסיף מסלולי גישה בכל נקודת זמן. כל הקשרים בין הנתונים מיושמים בקובץ נפרד ואין להם כל ביטוי בקובץ הנתונים עצמו. המערכת מבצעת דחיסה אוטומטית של הרשומות כדי לחסוך בשטח אחסון. אפשר להשתמש בסיסמאות ומפתחות נוספים לשם בטיחות ואפשר לבצע הצפנה אוטומטית של הנתונים. בנוסף למערכת הבסיסית של ניהול בסיסי נתונים כוללת המערכת תת-מערכות נוספות לשם שירותים בסביבת עיבוד בתקשורת ובהידברות: --- דקןח40480 שפת שאילתות דמויית אנגלית לשם אחזור נתונים וביצוע עיבודים פשוטים, -- 0400 מחולל דוחות, - |4מטד3א -- מעבד שפה הידברותית המכיל מספר תכונות של דס|ה480סג ו- אססגסגה. |א4חטדהא משמש למטרות הבאות: תכנות שאילתות מזדמנות, מחולל דוחות, הגדרת מסכים ופיתוח יישומים מקוונים. -- דאוו04 שפת-מקרו המספקת אפשרויות פיתוח שגרות לגישה לבסיס הנתונים ומגדילה בכך את אפשרויות הבקרה והבטיחות של בסיס הנתונים. 20308 פרק טו -- 501/05 3 צז6ט0) 60זטזסטז51 וח516ץ 1. מבוא 2. הגדרת נתונים 3 טיפול בנתונים 4. בטיחות נתונים 5. סיכום 29 1. מבוא מאז תחילת שנות ה-70 הושקעו מאמצים רבים בפתוח מערכות לניהול בסיסי נתונים המבוססות על המודל הטבלאי. אחת המערכות הנסיוניות המפורסמות היא מערכת התוכנה ₪ 55167 שפותחה במעבדות המחקר של חברת יבמ. 8 וח6ופץ5 הינה יישום של המודל הטבלאי שנוסח על ידי 0000 .=.₪ זם. אחת התרומות החשובות של המחקר היא פיתוח שפה לא-פרוצדורלית -- .501 (00806ח8.! ץזסטב) פזטוסטזו6) אשר מיועדת לשתי מטרות, הן להגדרת נתונים והן לטיפול בהם. השפה שפותחה פורסמה בספרות המקצועית ואומצה גם על ידי חברת 8זפשו5011 |8חסו6|91 במערכת 001.5 אשר פותחה על ידה. אחת המטרות העיקריות בפיתות .501 היתה פשטות הטיפול בנתונים. ואמנם, אחת התכונות המעניינות ביותר בשפה זו היא הניווט האוטומטי לשם אחזור של הנתונים. ניווט זה מאפשר למשחמש להגדיר מה הוא רוצה לקבל מתוך בסיס הנתונים ולא איך לקבל את הנתונים. רוב השפות האחרות מחייבות את המשתמש לקבוע "איך" להגיע אל הנתונים באמצעות אוסף של אופרטורים המופעלים בעיתוי מתאים ("קרא רשומת שורשו", "התקדם לרשומה הבאה" וכדומה). המשתמש ב- .601 אינו צריך לדעת כיצד הנתונים מאוחסנים בעוד המשתמש במערכות רשתיות או היררכיות חייב להכיר את שיטת אחסון הנתונים. כתוצאה מכך יכולים משתמשים שאינם אנשי מקצוע בעני"א ללמוד את המערכת בקלות ובפשטות יחסית לשם ניצול משאביה באופן עצמאי, ותוכניתני יישומים מנוסים יכולים להגדיל את יעילותם על ידי ניצול מרחב התמרון והאפשרויות. חברת יבמ פיתחה שתי מערכות לניהול בסיטי נתונים אשר מבוססות על המודל הטבלאי: 8 למערכות 08//85ס ומערכות 0/0/58 08271 למערכות 8/וא. 082 הינה מערכת מקיפה ומתקדמת יותר אך עקרונות ניהול בסיס הנתונים והשימוש בשפה הינם כמו ב- 8. בהמשך הפרק נסקור את צורת הגדרת הנתונים והטיפול בהם אשר מתאימים לשתי המערכות. 31 2. הגדרת נתוניס שפת .501 מאפשרת את הגדרת הטבלאות המרכיבות את בסיס הנתונים בצורה פשוטה מאד. פשטות זו נובעת מהעובדה שמבנה הנתונים אינו מכיל מצביעים, אינדקסים או מסלולי גישה כלשהם מוגדרים. הגדרת טבלאות בסיס הנחונים במודל הטבלאי מורכב מטבלאות אשר יש להגדיר בעת בניית בסיס הנתונים או לאתר מכן, בכל עת שרוצים להוסיף טבלה חדשה. הגדרת טבלה כוללת את שמה, את שמות השדות (עמודות) | המרכיבים אותה ואת התכונות | של השדות. בתרשים 1--15.מוצג מבנה של שלש טבלאות שעל פיהן נוכל לרשום את הסכימה הטבלאית של בסיס הנתונים: ספקים (מספר-ספק, שם-ספק, כתובת) פריטים (מספר-פריט, תיאור-פריט) הזמנות (מספר-"ספק, מספר-פריט, מחיר, כמות) ספקים אפ קט פריט ואפזו 7 - 5 הזמנות 858 צזוזאא טס | 6 | הפפואטא- זו מפפואטא-סקט9 | מה | כמ || ו תרשים 1 - 15: הגדרת טבלאות הגדרת טבלה נעשית בפקודה 481.5 ₪ד0354. השמות של השדות בטבלאות השונות יכולים להיות שונים או שהם יכולים להיות שוים. במקרה האחרון יהיה צורך לרשום את שם הטבלה. כמציין לשם השדה כאשר מטפלים בנתונים, למשל משפואטא םדו או מםפוטא. 6הפסהס כאשר "מספר-פריט" הוא =פוא/וא בשתי טבלאות שונות. בהוראות להגדרת הטבלאות שבתרשים 1--15 השתמשנו בשמות שדות שונים. 2 טא דסא הש םדאו הםםוטא--5) מםן| |קקע5 ם ופד פזהפהס ,(30) מהחס םוא /א--5 ((40) 038 5-58 6א זסא מ65םזאו השפואטא-םדו) ואפדו = )הגד פדגפהס ((45) 048 אסודקוהספפס-- אסדו )טא דסא הם םדאו המםםואטא--קק90) 5פסחס ם' ההז טזהםהס )טא זסא 5 6ם זאו הםפואטא--דו ,(6.2) 41ו₪וססס שסוחק ( (8.2) |אואוסםס . צדודאאטס בכל שורה בכל טבלה חייב שדה אחד לפחות להיות שדה-זיהוי או שדה-מפתח ולכן הוא חייב להכיל ערך כלשהו "לא-אפס" ( וטא דסא). משתנים מספריים אשר מוגדרים המדאו תופסים מילה שלימה (6זסשווט=). אפשר להגדיר משתנה שלם דא 11 )אפ התופס חצי מילה (0זסשוזו48). מערכת .80 מאפשרת הוספת עמודות חדשות לטבלאות קיימות באמצעות פקודת השד! 5. הרחבת הטבלאות נעשית באופן דינמי, כלומר במהלך העבודה, ואפשר להשתמש מיד בטבלה המורחבת. השדות בעמודות שנוספו הם ריקים (ווא) ורישום הנתונים בהם נעשה בפקודות עדכון רגילות של המערכת. לדוגמא, אם יש להוסיף לטבלת הפריטים עמודה חדשה אשר מכילה את סוג הפריט (תו אחד אלפנומרי) נרשום: אמדו ם ופהזד מפד]4 - (1) 048 םקצד-שפזו ססג 33 3 טיפול בנתוניס מערכת .501 מאפשרת גישה לבסיס הנתונים ממסוף באופן אינטראקטיבי, מתוכנית מקוונת או מתוכנית אצווה. הדוגמאות שבהמשך אינן עוסקות במבנה ההוראות להצגת הנתונים ולא בצורת השימוש בהן. לפיכך, הצגת פלט פירושו הצגה במסוף או במאגר התוכנית. לשליפת נתונים בשפת .)60 משתמשים בהוראה ₪01 551 בעלת המבנה הכללי הבא: שמות שדות שיש לשלוף (או *) טסוה ספ שם טבלה, או טבלאות, שמתוכן יש לשלוף וח 8019 ואסחץ תנאי שליפה 2 חורה | [הסו8סוו|8 טס שחפראא] סדר מיון 0 [6וחהח-%6טם ווה צם השסמס] [ ] מסמן משפט אופציונלי >< בנוסף לעוצמה הרבה של פקודת 551.50 היא מאופיינת בכך שהיא שולפת מספר שורות (רשומות) בבת-אחת ולא רשומה בודדת כמו בשפות האחרות. כלומר, היא פועלת על חבורות (8018) ומפיקה כפלט חבורה, שהיא למעשה רשימה או דוח שלם. נציג את שפת +50 באמצעות מספר דוגמאות מבלי לנסות להגדיר אותה בצורה פורמלית. הגדרה מפורטת ניתנה בפרק אשר דן במודל הנתונים הטבלאי. כל הדוגמאות מבוססות על בסיס נתונים טבלאי המכיל את שלש הטבלאות הבאות אשר מוצגות גם בתרשים 1--15: ספקים (מספר ספק, שם ספק, כתובת) פריטים (מספר פריט, תיאור פריט) הזמנות (מספר ספ ק, מספר פריט, מחיר, כמות) 5 1 שאילתות שאילתא הינה דרישה לאחזור נתונים מבסיס הנתונים לפי מאפיינים כלשהם. המשתמש במסוף או המתכנת יכול להציג שאילתות שונות, פשוטות ומורכבות יותר אשר תשלופנה נתונים מטבלה אחת או יותר. להלן מספר דוגמאות: -- יש לקבל את רשימת כל הפריטים כשהם ממויינים לפי שם פריט. מציין שיש להציג את כל השדות בטבלה * 4-7‏ ד0ם|85 םדו ואסהץ אסוזקוה50םס-ואפדו ץם מפסחס -- יש לקבל את רשימת כל ההזמנות כשהן ממויינות לפי מספר פריט ובתוכו לפי מספר- ספק. מתוך הטבלה יש להציג רק את מספר-הפריט, מספר"הספק ומחיר-הפריט-בהומנה. 244 וח ,הםםאעא-קש6 ,הפמואעא-זו | זסם|טפ פ5חםסחס ואסם;- הםםואטא-ק קפ ,מספואטא-דו צם מפספהס -- יש לקבל את רשימת כל ההזמנות של ספק 109 אשר בהן מחירי הפריטים בין 1000 ל-2000 שקל. * דסם ןפ 8 אסח; סאג 109 = מפפואטא-5קט5 =הם הש 0 סאצאג 1000 אםםצצדשם =סומק הםפואטא-זו צם הפסהס כתנאי שליפה אפשר לרשום ביטוי חשבוני במקום שם של שדה או במקום ערך קבוע כלשהו. לדוגמא: 002 < שסוחק ממפה/ש -- יש לדעת תיאור הפריט, מחיר הפריט וכמות בהזמנה של כל הפריטים המסופקים על ידי ספק 110 שבהן המחיר נע בין 1000 ל20007 שקל. שאילתא זו שונה משאילתות קודמות בכך שאת השדה "תיאור -הפריט" צריך לשלוף מטבלת הפריטים. הקשר בין שתי הטבלאות מתבצע על ידי השוואת שני השדות של "מספר-פריט" בשתי הטבלאות. קריטריון הקשר נרשם ברשימת תנאי השליפה שחםוז). צדודאטט מסוהק ,הםפואטא-ואשדו ,אסודפוהספפס- םדו | דסם|55 ואםזו ,פהפסהס אסם- סאג 110 = מספואעא-קקפ שתסה/ש סאג 2000 סאג 1000 אשפצודשם שסומק הםפואטא-שדו = מפפואטא-דו אסודקוה50שס-פזו צם הפסהס שאילתא זו מדגימה את עוצמתה הרבה של .50. ניסוח שאילתא כזו בשפה פרוצדורלית רגילה הינו מורכב למדי ומחייב מיומנות תכנותית רבה והכרת מבנה הנתונים. לשם כך פותחו במערכות אלו שפות שאילתות אשר "מסתירות" מהמשתמש את מורכבות המערכת ומאפשרות לו גישה פשוטה יותר. -- יש לקבל את שם הספק וכתובתו, תיאור הפריט והמחיר עבור כל ההזמנות של פריט 1 שמחירו גבוה מ-2500 שקל. זוהי דוגמא לשליפת נתונים מתוך שלש טבלאות שונות. 5 שסוחק ,אסודקוה50םס- םדו ,86םהסכ )א- 5‏ ,םואבא-5 0 | הפו |פקשפ ‏ אפזו ,5מםסהס אסח- פאה 44581 = מפפואעא-דו םחשה/ש סאה 0 < םסוק סאג מםםאטא-5ש5 = הספאעטא-5 מםפואטא-אשדו = הפפואטא-דו םא-5 צם מםסחס =- %₪ לקבל את רשימת הפריטים שבהם מופיעה בשדה תיאור פריט, המילה שח ספ זוהי דוגמא לחיפוש מחרוזת תווים בתוך רצף של תווים. * זז אשד ואסח- 5% %0 שאן ! אסודקום50שס-אפזו םתםה/ש במערכת טבלאית אין קשרים מוגדרים מראש בין הנתונים, ולפיכך ההשוואה לשם בחינת הקשר בין שדות בטבלאות שונות יכולה לגזול זמן רב. כדי לשפר את הביצועים יש להגדיר אינדקסים לשדות. את האינדקסים יוצרים בתוכנית שירות לאחר טעינת הטבלה או לאחר עדכון. 2 אופרטוריס קבוצתייס אופרטור קכוצתי פועל על קבוצה שנבחרה לפי תנאי השליפה ₪86 /ש) מתוך טבלה אחת או יותר. האופרטור פועל על שדה (עמודה) בקבוצה של השורות שנשלפו. השפה מכירה ב57 אופרטורים: זאאטסס -- למנות מספר מופעים בתוך קבוצה מוגדרת (במקרה זה -- מספר השורות שנשלפו), טפ -- לסכם תוכן שדה כלשהו, 46 -- לחשב ממוצע של שדה בתוך הקבוצה, אגא -- למצוא ערך מקסימלי של שדה בקבוצה, אוו -- | למצוא ערך מינימלי של שדה כלשהו בקבוצת השורות שנשלפה. אופרטורים אלו מגדילים את עוצמת השפה ותורמים לשיפור העבודה ולחסכון בזמן של המשתמשים. את האופרטורים הקבוצתיים רושמים במשפט 507 |55. אם לא רושמים כל שדה שהוא, התוצאה שתוצג תכיל רק את התוצאה של פעולת האופרטור. אם יצויינו שמות שדות, הם יוצגו גם כן עם התוצאה של פעולת האופרטור. להלן מספר דוגמאות. -- המשתמש מעוניין לדעת את מספר הספקים המספקים את פריט 448. 156 (הםםואטא-5ש5 דסאוזפוס) זאטס6 זסם וספ 0-68 אסחםת 8 = חםפטשטא-שאםדו | םהםה/ דסאודפוס מציין שהמונה יכיל את מספר המופעים של מספרי ספק שונים בלבד ולא יכיל מופעים כפולים של הזמנות מאותו ספק. --- יש לחשב את המחיר הממוצע של פריט 448 בכל ההזמנות שהוא מופיע. (65וחק) 40/6 ז95]₪0 5חםסהס אסםת 8 = תםשםאטא-ששדו | פחפה/ -- יש לסכם את הכמות המוזמנת מפריט 448 בכל ההזמנות שבהן מחירו נע בין 1000 ל- 0 שקל. יש להציג את תיאור הפריט, המחיר הממוצע בכל ההזמנות וסיכום הכמות שלו. (צדודא4ט0ס) אשפ ,(שסוחמס) 6 ,אסודקוה80םס-ואפדו | זסם |85 אשד ,פהםסהס אסםת סאג 448 = השפואטא-דו | םהשחצו סאג 2000 סאג 1000 אםם/שד5ם שסוםק משפאטא-םדו = הפפואעא-דו -- המשתמש מעוניין לדעת מהו המחיר הגבוה ביותר המשולם עבור פריט 448 באיזו הזמנה שהיא. (=סוחק) אגא ז0ם|םס 5 ואסםת 8 = הםפואעא-דו =השחה/ | אם הוא מעוניין גם במספר הספק, עליו לכתוב את ההוראה: (6₪וחק) אגא ,השטואעשא-- קטפ ז0ם]55 6םסחס ואסח; 8 = הםםאטשא-זדו מחהפה/ו 27 3 שאילתות מורכבות במערכת ]80 אפשר לבנות שאילתות מורכבות מאד תוך שימוש בתת-שאילתות (ץז006פט8). הפלט של תת-השאילתא, שהינו למעשה טבלה, נמסר כקלט לשאילתא הראשית. נשתמש במספר דוגמאות כדי להציג את השימוש בטכניקה זו. -- המשתמש מעוניין לדעת את נתוני ההזמנה מבין ההזמנות של ספק 109 עבור פריט 455 שבה מחיר הפריט גבוה מהמחיר המקסימלי שבין ההזמנות של ספק 117 עבור אותו פריט. אילו לא ניתן היה להשתמש בתתדשאילתות היה צורך לפרק שאילתא זו לשתי שאילתות נפרדות. השאילתא הראשונה היתה מאתרת את המחיר המקסימלי עבור פריט 455 מבין כל ההזמנות של ספק 117. תוצאה זו היחה משמשת כקלט לשאילתא שניה שהיתה מחפשת מחיר גבוה יותר וזין כל ההזמנות של ספק 109. ב-.801 ניתן לשאול שאילתא מורכבת זו בצורה ישירה, את תת-השאילתא תוחמים בסוגרים כאילו היחה שם-שדה בתנאי השליפה. * ך0ם |55 5הםסהס ומסח סאה 455 = הספואעא-דו | מתפח/ו סאג 109 = מספואטא-קטפ < שסוחק (5סוחק) אהוא דסם |55) פהשסחס סח סאג 455 = חהםפואעא-דו | םהפחצו (117 = הםחואטא-505 -- המשתמש מעוניין לדעת מיהו הספק המספק את הפריט 885 בכמות גדולה מהכמות הממוצעת המסופקת על ידי ספק 125, יש להציג את השדות מספר-ספק, שם-ספק, כתובת" ספק. אין להשתמש כאן בסימון * מכיון שפועלים על שתי טבלאות ואין כוונה להציג את השדות של שתיהן. 6 תס .ה-6 ,םוגא-5 ,הםםוטטא-קש5 זסם|םס חש |קקש5 ,6הםסהס אסח- סאה 885 = השפואטא-דו ממםהו סאג מםם שא-5 = משאטא-קטפ < צזודאהטס (צזודאהטס) 4/8 ז0ם]05) 5פפהס ואסחה- סאג 885 = מםטאטא-דו םהפח/ (125=חם םאטא-קטס 158 4 עדכון בסיס הנתוניס עדכון בסיס הנתונים נעשה בטבלאות שכל עמודותיהן מוגדרות ולפיכך הוא פועל על שורות שלימות או על שדות בשורה. אפשר להוסיף או לבטל שורה ולעדכן תוכן שדה. כדי להוסיף עמודה או לבטל עמודה בטבלה משתמשים בהוראות אחרות. את השורות שיש לעדכן מאתרים במשפטי ד85|=0 לפי תנאי שליפה (=השה/)) כמו בשאילתות. נציג מספר דוגמאות לפקודות עדכון של בסיס הנתונים. -- המשתמש רוצה להוסיף פריט חדש בטבלת הפריטים |₪=ד!. כאן אין צורך בתנאי שליפה כי אפשר להוסיף את השורה בסוף הטבלה, או במקום כלשהו פנוי. את ערכי השדות החדשים רושמים בפרמטר 8ם! |4/ לפי סדר השדות בהתאמה. (אסודקוה50םס-שםזו ,המםוטא-אםדו) אפזו סזאו | זחשפפא!ו (/14<15<35 ש5005' ,'449) | פמט !מע -- המשתמש רוצה לשנות את תיאור פריט 449. אמזו שזהססט :1415 /ש5ח50' = אסודקוחמ50םס-אפדו וב 9 = הםשפואטא-מדו םהפהו אפשר לבצע עדכון קבוצתי בכל או בחלק מהשורות של הטבלה כאשר לא מציינים תנאי שליפה, או שתנאי השליפה מתייחסים ליותר משורה אחת. זאת נראה בדוגמא הבאה. -- המשתמש רוצה להגדיל ב"10% את מחירי כל הפריטים המסופקים על ידי ספק 109. פהמסאס שזגסקט םסוק א 1.1 = שסוחק דפס 9 = הפפ ושטא-ק50 םהפה/ש בדוגמא זו באה לידי ביטוי אפשרות נוספת שלא הזכרנו קודם -- ביצוע חישובים והקניית תוצאות חישוב לשדה כלשהו. אפשר גם להציג את התוצאה כפלט. הפעולות החישוביות יכולות להיות מורכבות כמקובל בפעולות עיבוד נתונים. --- המשתמש רוצה לבטל את רשומת ספק 154 מטבלת הספקים. . חשן וקמקט5 =דם םס 4 = מםשםאשא-6 שהםה/ו 9 4 בטיחות נתוניס מערכת .50 מספקת מספר אמצעים בעלי עוצמה לשם אבטחת הנתונים. החשובים שבהם: טבלאות לוגיות והרשאות. 1 טבלה לוגית - ץופוצ המשתמש במערכת מעוניין לעיתים רק בחלק מהנתונים הכלולים בטבלאות השונות ולרוב הוא משתמש במספר טבלאות לשם הצגת השאילתות. בדרך המקובלת היה עליו להגדיר מדי פעם מחדש את אוסף הנתונים (טבלאות, שדות ותנאי שליפה) או ליצור לעצמו טבלה ממשית נפרדת. כדי להקל עליו מאפשרת המערכת להציג לו תצפית קבועה (עוםו/) של הנתונים שנדרשים על ידו. הדבר נעשה באמצעות טבלה לוגית שאינה קיימת באופן ממשי בבסיס הנתונים אלא נבנית על פי הטבלאות הממשיות והמשתמש פועל בה כאילו היתה טבלה ממשית. שיטה זו מגדילה את אי התלות בנתונים ואת יעילות העבודה. מאידך, תורמת השיטה לבטיחות הנתונים בכך שהיא מאפשרת להציג למשתמש רק את הנתונים המותרים לו ומסתירה מפניו את השאר. דוגמאות לבניית טבלאות לוגיות: -- מדור הזמנות חו"ל מטפל רק בהזמנות מספקים בחו"ל. לשם כך ניתן להגדיר עבורו טבלה לוגית אשר תכיל את כל ההזמנות של ספקים מחו"ל אשר מספריהם בתחום 301 עד 0. טבלה לוגית זו תשחרר את המדור מזיהוי ההזמנות שלו בכל שאילתא בצורה מפורשת והיא גם תמנע את הגישה של אנשי המדור להזמנות מספקים אחרים. הפרמטרים הנילווים להגדרת //שו/ מכילים את שם הטבלה ואת שמות השדות. ,מםםואטא-דו- ,הםפואטא-5055-ה) 5הספהסה צופוצ םזהפהס 6 (צדודאה וס-ה ,שסוחק-ת * [ז0ם|םפ 8 ואסם- 0 0אג 301 אםם/צדםם הםטאטא-קקע6 מהםת/ ההוראה 05475 יוצרת עצפו/, או טבלה לוגית 8הםס03 שבסוגריים רשומים שמות העמודות שלה. בהוראה ₪0 |56 שולפים את כל העמודות או חלק מהעמודות של הטבלאות הרשומות בביטוי |ס8=. עמודה בטבלה החדשה יכולה גם להיות תוצאה של פעולה חשבונית בעמודה של טבלה ממשית, כפי שנראה בדוגמה אחרת. בביטוי שחםה/ מציינים את תנאי השליפה של הנתונים מתוך הטבלאות הממשיות כדי לבנות את הטבלה הלוגית. אנשי מדור הזמנות חו"ל המשתמשים בטבלה לוגית זו יכולים לטפל בה כאילו היתה טבלה ממשית בבסיס הנתונים. שינויים בטבלה הממשית שממנה נבנית הטבלה הלוגית, כגון הוספת עמודות חדשות, שינוי סדר עמודות ועוה אינם משפיעים על הטבלה הלוגית והמשתמש בה אינו מרגיש בשינוי. 100 -- מדור הזמנות חו"ל מעוניין תמיד לדעת את ערך-ההזמנה שהוא המכפלה שבין מחיר הפריט לבין הכמות המוזמנת. ניתן להוסיף לטבלה הלוגית שדה "ערך-הזמנה" ובכך לשחרר את אנשי המדור מרישום דרישה חוזרת לחישוב השדה. מכיון שזוהי טבלה לוגית השדה לא קיים בטבלה ממשית כלשהי והוא מחושב בכל פעם שיוזכר שמו (במקרה זה 41.0₪/ע-4). ,הםםואשא-דו-ח ,הםפואטא-קקט50-ה) 5הםפחסו עופוצ =זגפהס 5 (שעש ]הע-ר , צדודאה טס-ה ,=סומס- ,צדודאאטס ,שסוחק ,השפואעשא-זו ,משפואטא-קט5 ז0ם 551 צדודא טס א שסוםק 5םסחס ואסם- 0 סאג 301 אםםשוד6 הפםואטא-קקט5 ממפחהש -- מדור הזמנות חו"ל מעוניין לקבל בטבלה שלו גם את שם הספק ואת תיאור הפריט. למרות ששני שדות אלה מופיעים בטבלאות שונות ניתן לבנות טבלה לוגית שתכיל שדות אלה. ,הםםואטא-דו- ,םוא א-קקט5-₪ ,הםפואטא-:קע5-ה) פהמפחסט צופוצ פדהשהס 5 (םט!א/- , צדודא ס-4 ,=סותס-ה ,אסודקוהספמס-ו-₪ ,אסודקוה56םס-אשדו ,המשפואטצ-דו ,םגא-5 ,מפפאעא-קפט5 ד0סםפ צדודא טס א שסוחק ‏ צדודאהטוס ,םסוק אשדו ,הפו |קקש5 ,פהמסהס ואסם- סאג 500 סאג 301 אםםשוד85 השפואטא-קקט5 ממפחו סאג הםפואעא-5 = מפפאטא-קקט5 השפאעטא-אםדו = הספואטא-דו 2 קביעת הרשאות מערכת .]80 מאפשרת לקבוע את הפעולות שמותר לכל משתמש לבצע בטבלאות הממשיות או הלוגיות. ולצורך עניין ההרשאות אין כל הבדל בין טבלה ממשית לבין טבלה לוגית. הרשאה למשתמש ניחנת באמצעות פקודת דא/68 שהשימוש בה נעשה גם כן על פי הרשאה. ההרשאות במערכת נקבעות ומנוהלות על ידי מנהל בסיס הנתונים. הרשאות ניתנות לטבלאוה, לעמודות ולשורות (גם לפי ערכים), לפעולות ולהרשאות. להלן מספר דוגמאות. -- יש להרשות לכל המשתמשים גישה לצורך קריאה בלבד (ד661.60) לטבלה ההזמנות מספקי חו"ל. ז0ם)55 זא;34 המפסחסר אס סוופטק סד 2|(1 -- במדור הזמנות חו"ל יש משתמש אחד, 558-1ט, אשר מורשה גם לעדכן את הטבלה ולהוסיף הזמנות חדשות. זהשפאו ,מדהססקט זאג הםסחסת אס 1 סד -- משתמש 558-2!( מורשה לעדכן את מחיר הפריט בהזמנה. (פ5סוהק) םדהסקט | זאגחס 6פחס אס 2 סד -- למשתמש 3 ולמשתמש 4 מותר לקרוא ולעדכן את טבלת הספקים וטבלת ההזמנות. סקט ,55507 | זא3ח6 5מםסהס ,הפו ןופק אס 4 ,958-3 סד 5. סיכוס מערכת .)50 מיועדת לשימוש על"ידי משתמש הקצה חסר הידע במחשבים וגם על-ידי המשתמש המנוסה. אחת התכונות היחודיות שלה הוא הניווט האוטומטי בתוך בסיס הנתונים אשר מאפשר למשתמש להגדיר מה הוא רוצה ולהשאיר בידי המערכת את ביצוע העבודה. תכונה נוספות היא השפה האחידה לעבודה אינטראקטיבית ולשילוב עם שפות תכנות בתוכניות מקוונות ובאצווה. המודל הטבלאי תורם לפשטות המערכת מנקודת מבט המשתמש ומקל עליו את הבנת מבנה הנתונים. בנוסף לפונקציות שהוצגו בקצרה בפרק זה יש למערכת 60 מרכיבים נוספים כגון גישור לשליפת נתונים ממערכת היררכית ‏ 1/+ם, מרכיב להכנת דוחות, אוסף תוכניות שירות אינטרקטיביות ליצירה ותחזוקה של בסיס הנתונים. המערכת כוללת מילון נתונים פנימי אשר מחזיק את תיאור הטבלאות והגדרת השדות המרכיבים אותן. המילון בנוי במבנה טבלאי והמשתמש יכול לפעול בו בהוראות .)80 כפי שהוא פועל על טבלאות הנתונים שלו. שפת השאילתות החדשה שהוכרזה על ידי חברת יבמ, ו הגוא עזפטםס--:ואס עזווו80-] מרחיבה את אפשרויות השימוש בשפת .501 לשאילתות ולהכנת דו"חות וכוללת אמצעי עזר נוספים המסייעים למשתמש שאינו מנוסה ומקילים ומייעלים את עבודתו של המנוסה. 2 מעוכות לניהול בסיסי נתונים (₪5ומס) רשימת סיכוס נספח זה מציג את רשימת המערכות המסחריות לניהול בסיסי נתונים. רשימה זו אינה שלימה אבל היא כוללת את רוב המערכות הקימות. הרשימה מבוססת על סקר שוק שבוצע על ן ן ן ידי הירחון אסודגוא ה ד ס. ועל מידע שהיה זמין בעת כתיבת הספר. 13 צר | | | | | 8 ספוופסת | ת₪656870 שד ז-אסז5 8000 | .קזסס ו ו | וטוטה | 00 החססחו 5 זו חסוופזסס זס 0 8 וס 8 וסזוחס מזסס .6חו 08 חווט 6 אואס .סח! 5516715 50 -611!ו10] .600 868810 [ואץ6 חס .חן |ו6ץ6 חס .6חן .₪ְזס6 ואו .םזס60 ואו 4 שם המערכת, וס זה ס וו פאס דסשחהוס וו פאס 6זסד 4 ופססא אפ - 0 פום 0 5 ז גח פאז 0 וו-815ס ב וופסו צו-ואם 5ו 2 מיועד למחשבים. 03% 370 ואפו 85. 8צ/פסס 280 .0. 105 | סו 6, 6000. 600 מערכת הפעלה 80058 פפטסזוטם 80 מערכת הפעלה 0₪!א 3, 370 שחו 8, 08/8 0 .200 ||פצוע6חס] 006/00 1 0/0סס - 2500 405ט0]זט₪ 1000 עזט)וח06 הסא בי 303% 370 ואחו אא43 יי וי 0 זספטץ0) 00 5( 0 5 וווםספא 0 0 ס8צוחש 0 פס 60 1ו/ססק 0 ה 0 0 0 0 ואו אא30 .43% 0 ואפ אא0אא43 מכנה נחונים., מהופך טבלאי מהופך רשתי רשתי רשתחי +צ00046 והרחבות יחודיות טבלאי רשתי 1צ00049 רשתי )60048 רשתי רשתי ולפני 0816) רשתי )060048 היררכי אחזור נתונים מחולל דוחות שפת תכנות- יי וכל שפה התומכת בד | שפה עצמאית 080% 003 ל 00 אהחזחס: 556 וג .אגא זהס; :0080 55 ,11 ,אגא זה 00801 558 ,1908 6 .]0080 6 ,אההזמס: אאהזחס, .)0080 2% אגחזהס] .080 יי 0 00 אגהזהס? .00801 וום זס|סוה556 אין שפת שאילחות צהסטסג זהס אפהא-ד 0-6 יש אין יש אין יש יוצר .קזסס ואפו מזס0ס ואו .סְזסס ואפו מזס6 שחו .:]ז60 |פזח! סו חזוח! 6 אא .16 8516005 .6ח| 68ופָס.) וא .6ח! 000015זק 8 סזסווא 68 ₪850 .6ח] 5 ווח סחוזם .0 סוחס ג .6ח! 876ו]60 חס))6!8ה₪ 6600 6וןחוסט חס!)8 חח זס!ה! |8צ6 זופת שם המערכת וס 005 2 שום 0 ואש זפצס 50 זהסקסאה וו פוואגם ווו 6פסוא 5 פאס 8 א מופ מיועד למחשבים. 0 ואפ אא43 8 0 וואפו אא30,%א43 ואצץ,95צ/05סס 0 ואפ 0%%,אא43 פצא 0 ואפ 0%% אא43 5 ,אע ,95 אא43 .370 ואפו 0. 70 600 0 סאשוח/ .70 433% 00| ו 1 0 ססםק סש 0 ואפו אס 1 פס 0 סאוח סא 06 6 0 0 ואו מיקרו מחשבים המכוססים על מעבד 280 או 1000 מערכת הפעלה |₪/0 0 פסוווחק 6וחוזק 0 או בויב בי אאצססס 0 ואפו 0000 ]ץע מבנה נתונים היררכי טבלאי טבלאי אחזור נחונים מחולל דוחות מהופך שפת הכנות, 1 0080 וו פה 556 00801 אגחזמס; 00801 1 באמצעות וי אגהזמס? :0080 ז6!סוח4556 ,1/1 רשתי :צ600048 אגהזהס?. 0080% טבלאי רשתי רשתי רשתי :00048 אגהזחס? .אה זה 0 00806 550 .1 רשתי |צ00048 אגהזחס, .00801 טבלאי טבלאי רשתי 00/1 .6.אאחזהס זס!סוח556א , 5041 אאגחזחס, 504 שפח שאילתות אין יש יש זפטטטס זפםטחגת אין יש 155 שם- 68מנ0 6 ץז וט חסופואם וח06ההד .6 6 טח 0 166 שם המערכת 8 א-085ג 0 פואם ךל מיועד למחשבים 0 ואו 43% וה 0 ססס אגץ 0 סאוחט אפסאאד מבנה נתוניס מהופך, רשתי רשתי )00038 טבלאי שפת תכנות אג זז 0030 1 550006 אא הזה ס, .00806 ושם אמזהס; .)0080 אד שפת שאילתות. ואס מטזהא |אחהס;אם 1 רשימה ביבליוגרפית הרשימה הביבליוגרפית כוללת מגוון של ספרים, חוברות, תקופומים ומאמרים בנושאים שנדונו בספר זה. בנוסף קיימת ספרות רבה בתחומים שונים המתפרסמת על ידי יצרני המחשבים ועל ידי בתי- תוכנה המפתחים מערכות תוכנה לניהול קבצים ובסיסי נתונים. הקורא המעונין יוכל לבחור חומר נוסף הכולל גם תיאור מערכות חומרה ויחידות אחטון ותיאור יישומים והפתרון שניתן בהם לבעית אחסון נתונים. - אחיטוב ניב: "התפתחות הביקוש לבסיסי נחונים מצד המשתמשים", מעשה חושב, כרך די, מס. 8, 1977. 2 ארגון וניהול קבצים, המכון לפריון העבודה והייצור. . בוסל יצחק: "הגישות השונות למערכות לניהול בסיסי נתונים", מעשה חושב, כרך ז', מס. 7, 0. 77 **4. | הייפרמן רז: "ארגון נתונים וניהול קבצים", הוצאת הוד-עמי, 1982. 5 טוקר אבנר: "בסיסי נתונים", דפים לתלמיד בהוצאת המכון לפריון העבודה והייצור, 1980. 6. | לדור מנחם: "עיצוב מסדי נתונים ב157או", יבמ ישראל, 1979. 7 | עמיהוד יצחק: "תכנון ותכנות יישומי מחשבים", הוצאת הוד-עמי 1975. 8 * עמיהוד יצחק, קורפל יונתן: "יסודות בניתוח ותכנון מערכות מידע", הוצאת הוד-עמי, "0 9 .פרידמן מרק: "תעשית בסיסי הנתונים/מבט שונה", מעשה חושב, כרך ח, מס. 5 1981. 0 פרץ אברהם, שמואל דוד: "בחינת תוכנה לניהול בסיסי נתונים עבור המל"מ", מעשה חושב, כרך ', מס. 3, 1979. 11 שי דוד: "קישור בין מסדי הנתונים", מעשה חושב, כרך ח', מס. 3. 1981. 2. שפיגלר ישראל: "מילוני נתונים", מעשה חושב, כרך ז', מס. 6, 1980. ** ספרי רקע ללימוד הנושא * ספרים מומלצים אחרים 257 5 0670016 ח8ו! 2856 8 חו "08וח8 60 818" :[1974] .2.8 והוזפה - .1 .8 0ז510רחג ,0ח3!וס4ן-חזזסא , 6019708 חב סוסוחוו .67108וח/-ח1זסא! 01 68 8זה 50 "טח הסווסטססזוח!" :5הסא .2 .8 -חזסא ]0 0 8זו501 "6000 00910" :0845 .3 |החזטסן. "5ואפס 8 זס] 860ח ה סַהועוו1ה06!" :[1980] .ו 380855 ,.א שוחה - .4 .0 סק ,8 סא ,31 | ,ה6 6 הגוא 5ח6ופץ5 "זחסרוה תסזושח= זס טס 00 זספט-ט!טו 8 חו ץוזטס50" :[1972] .= .2 הספזססחה - .5 .8 ס08067// ,.ו סחופטם זסזו0ט ,ו 00 ח| 065ה098 חו | | סטסז ע00ז5 230 3/5א/3481 וזסססה הוזפוהו" :[1975] 3/504₪6א/ופאה | .6 ."5506705 000901 ח8! 2856 0818 חס 6 08)]8 ]0 85:ש001ז510 ץ600 חק" :[1974] .צ.א פָהסזופוחזה - .7 סחהווסה-חזזסא ,4 סק ;6885זחַה00 =|ם| .ססזק 5קוהפהס0!8 הח 56 8 0 ה080זקק ה |8חסו9/8ה .ה ה500ש5" :[1976] .ו/.וא הההה8פה - .8 . סק ,1 וס .6 28180850 .8ח8זד 0 ,חר 86חהוא 006 8 |008ו181 (/-- 509ץ5" :[1979] || 66 ...וא ההההפה - .9 .1 סס ,5 סא ,12 וס טסו 00 ,"5510 80901 חהו ,009000 זס) 68ט0והח00) 0 -- 88856 2888" :[1980] .9 406 .10+ .06 סחה עו - חס ,"80 חח 0חה סח8 וחזסזזסם הזחו 8856 8 ס 3068 חסהטזסטה" :[1975] הסהסזסטג - .11 ; .6זסתפווסטק |סצ ,001 "פפזטוסטזו6 860 זס חסווט!סטם 6חד' :[1972] ...0 הומהסהם | .12 .8 סק ,7 סא ,15 סם ,16 וסצ ,1ו60₪ "880 85 זסוהוחהזטסזק סחד'י :[1973] .שצ.0 ההותהסאם | .13 4 "8508 8 |008ו39!86 חח!1הסות6!קח!" :[1980] .5.₪ |0זההחזהם ‏ .14 סק ,02000087 ,ח0וו8וח818ס 0ו0ח0806// "06ו801זק 0 עזססחד ,5סזטזסטזו5 818" :[1975] .4.7 021085 | .15 .5 םש "זח6וח6חה הגו 6 08% ח0 260810 8חז" :[1972] .3.6 פָהוהח8ס ‏ .16 .3 |ס/ ,10 ,ז20ש81ח2 6 ₪)28 60)זפטח! טס 0ח8 פופץ!החה" :[1975] .=.ה 85ה00ז08 - .17*+ .5 סא ,18 ו|סצ ,008 "פסזטוסטזוס 0ח8 חעו! "פוחסו5ץ5 ה 8856 הוה" :[1979] .=. 0800088 .18* - .6ח! חססה8ם זס טסו 00 "59168 6 818 ח! 05ח8ז! )ח6זזט)" :[1979] .6.4 6הוסוההה0 | .19 .6 סק ,5 סא ,12 וסצ חסוז8 וח זס)ח! "]8וזסזט)+ 4 -- 08180886 10 11165 חחסזם" :[1981] . עאפטסו8זחס - .20 .5 סק ,3 סא ,4 |ס ‏ זְחסחִסַהָהּה8ו/ חב .אזסץ-שו6 ,01 "הסספם בדמס 00" :[1971] 6זםס וץ00088 .21 8 58:60 6 זס) 818 01 !006 |9חסוו9ו9 ג" :[1970] .ח.ם 0006 .22* .7 סכ ,6 סא ,13 |סע ,0001 ,"פאחהם 8 חן "!סו |החסוופוסם 6] 0 חסוו28ו|הוחזס זסהוזט=" :[1971) .=.ם 0006 .23 .3 סק ,06-38|1ו+ח6זק .ה הפטה זסזו00 ,551008 850 "9)6008ע5 8 088 ח| 06ה00ה0000ח| 818" :[1975] ...ה 6סטזטס ‏ .24 1088 בש ב ב גי ל בר הפי ה-א .5 סס ,!וזסקג ,הסווההופזהם 8 , הסוו8וח18כ ")95 86 ₪ חו עווזססוחוי' :[1977] .וא.ם 6סוזטס סם "68|זהחסווסו 81 01 שפצזטס 4" :[1981] ...= חהההאספוכ ,.א.ם 6סוחטס .5 סקס ,חסזפ!א ,הסוווחהוהס ץ09!6/)-ה400180 "5516005 9180856 סז הסוזסטססזזח! ה" :[1977] .0.4 סוה .חסוזו60 6ח2 ,עַה8קוח 00 פהותפוופטק 0009008 ,579)6708 חסווהוחזס!חו ]חח ההוא" :[1974] .8.8 פפוטהם הח 86768 ||41-אובזב וא "זחסוהקס!פט6כ סה8 פזטזסטזו5 ,פחסווהסהטס: .55105 חהסו)8וחזס!ח! הרהה בו ,הסו81 הוה "ו |החסוובוסם חך" :[1981] .ם.! ההההאססום .7 סס ,590900 .4 | חח "5חהסו28וה98זס ₪856-וה0 חס |ופוזסוטד 4" :[1972] .צ). 65!ח= .1 סס ,7 וסט ,החפ זף סז ,וההסוטה "וח5516 1ה0וח0ה4חה! 6בהס4והכ 8 פחך" :[1977] .5.0 פפחסוו= .2 סכ ,2 סא ,7 וס ,|החזטס!. 456פוהס "חח 00 חא 08 8% ]0 ץזס)9!ו] ]סוזם א" ]1974[:‏ .3.1 החעו= סס ,8 סא ,20 !סש ,חסווהוחגוהם "ו 8 חה ו 8 חס הסו)28וח8ףזס 6 או" :[1977) .6.5 058 .8 ס|0808 68 "6זט)סטז51 0ח8 65קעד 84" :[1978] ...1 פ0וו₪601 ,.0.0 ספוו01 .4 ,0115 סססשוסוסחם ,ווה 8 !0 |פחזטס0 "פוסזוחס6 עזוז00וה| 8886 וכ" :[1979] .ב.נ זסווסו 8 מס ,8 סא ,30 |וסע ,%הסוחפטהחפוא 5 ,501/05 ,6חסוזפסוופטס 1 ,פחסוז4סוופטס 5 :[1971] ואם | .קְזסס 6חפחוו!ט ,פחסוזאסוופטס פאסו :[1975] פואסו וסצ טס 8140880 "ח4ו08כ 088 וס חסוזטוסצם פד :[1981] .וצצ הוחו .> סס ,3 סא ,11 6 "6006 ההז 1ה6 800 חהו 56בסו8ס 8 8" :[1981] .4 פַח|א! .2 סס ,4 סא ,11 וס ,ופחזטסט | ו הט :זט סז זסוטק וח 00 )וס זה 6חדך" :[1968) 5.ם הוטהא .ץ65)6//-ח200150 "פוחחזוזסףת בח פַחווזס6 :וז סז זסוטסוח 00 )ס זא פחד" :[1973] 0.5 חוטחהא -ע001500-0/88!6 "שַחוהסז908 00% הזז "59165 פחוו-חכ זסו זז פוו=" :[1969] .כ פווטסא0 1 -אזסץ-שסא ,506ז6)חו - ע9!ו) "ז51810|ח|הח0/ 0856והס סד" :[1976] .3.6 הסעץע -אזסץ-שפא .|1!08-718ח6זק ו"ח0ו9801281זכ0 ספַה-והס זסוטק ו סש" :[1977] .2 חוזזהוא זה 8180886 0סזטסוופ| )0 זט 4" :[1977] .וא זפווווא .204 מס ,1 !סל ,הו 6חָהחהוא סחה חס וזזסוח! ,"608ו59 )וא 2856 8 חו 5ו1066 סח 6זטזזס)וחסזג" :. .6 ,./.6 ח800][וא .5107087 ,0ח8!!ס1]-ח+זסא "5וח5)6ץ5 | ,"ע000!00ח161 סח ה0ו69כ :6זטזט 6חז זס 408505ופסי :[1982] .א.6 ח856[וא -.2 סכ ,1 סא ,12 וס ,והחזטסט ספבסבּוהס 25. 26. 27. 28. 3 (0. 11. 22. 4. 4. 5 6. 7. 6 9. 0. 211. +2. 44 .44א .45 6 217. 209 6 |צ8 000 6חץ !0 80801!48זק |108ז0ז15] חב" :[1978] /ש.ד 8ווס "058|5סזש .9 סק ,4 סא ,8 |סצ ,|החזטס!. 8180886 004 פחד הווש 60 זה וחסס ה80סזס סא |8חס!₪6/31 6חד'י* :[1979] /ש.ד פוו .4 סק ,3 סא . |ס/ ,|פחזטס!. 281808568 ,"חס8סזסס ,חסו8וח18 כ "8]80886 1806 ץז 8 חַחוסַהח8ו" ] .1 אוסק סס ,000009 0206 חן 010165 9חואס0 זס 8//818ח4" :[1980] .₪ 0ח60!3/] ,.כם זפווסק סס ,10 סא ,23 וסט ,040% ' 8 ח3וא ,"81808508 חסו81ט!9ש= 0חה חףופפם 6 ה" :[1978] .₪ ה8ותז609ח50 .6 סם ,2 סא ,11 וסש ,זסוטסוחס0 ,"החד וח 3850 8 חז 5ח600זום" :[1974] = תס .8 מס ,9 סא ,20 !ס/ ,חסוז8וח8ו3ם 6 086% ח! 0ח!400859/ 86 פסזטזסטז91 081" :[1973] ווה 61 ,.ו סאח56 .0 סס ,1 סא ,12 |ס ,!חזטסצ .58 8 ,"5510008 זו 0 ,"300/85 6 |₪6/8110084" :[1979] .ו חזוחז5 ,.ם חזווחפ .8 סס ,4 סא ,12 ו|סצ .סח] וחססחו ,פחסו81סו!סטס ]סד :|4זסד 06 ו 6 מוהכ" :[1977] .= ע9א8ש0ח00/ 28)וזוחסופד .0ח| 885זש 4080600 ,"516008 ,"₪880 8 פחד פַחוחש/99ס" :1 .₪4 עאפטסתס0ס/] 28וזוחסוד .7 סס 409056 ,חסוו8 818 |החזטס .8ע5 |ואם! "68וזס)60זום/ץזחסווסום 8" :[1973] שש א|2סעשוסטח ו .4 סא ,12 !סש 6 ז6 ה 0 "9910008 6 !0 885!סוסחוזק" :[] .2 הפוחוש .6ח] 688 86 1 |החזטס 0 "08וזהחסווסום 18 חס 000816" :[1978] .= 88 8 סס ,8 סא ,29 וס ,1ה6וח306 הו .אזס ץ-6 ,688ז ה טח6! "ח80ז61וח 0 6 פמו8כ" :[1981] .2.1 ח6|00/ 58 ,600/760060185] ,ץוזטססס 6 8:8" :[1980] ווס 66 .6 סססע .9 סס ,2 סא ,19 |ס/ ,|פחזטסצ .8 8 009/5% 0ח8 סס,9 סא ,11 |ס ,זוטקח 00 ,"918005 6 פוט" :[1978] |ו618 .6.8 90צ .71 |סש ,|החזטסצ ,59 ]80 ,"8000896 ]| 2886 8 א שםס" :[1977] .וש .₪ זססו2 .1 סס ,4 סא ,16 200 14 +4. 0. 1. 2 4 4 5. 6. 7. 2 9. 0. 01 2 6 4. 5 מילון מונחים ואינדקס מילון המונחים הקצר המצורף מגיש לקורא את המונחים העיקריים שהוא נזקק להם בעבודתו, בנושא שבו דן הספר. הקבלת המונחים באנגלית ובעברית חָסייע לקורא בעת עיון בספרות העזר העניפה שרובה נכתבה באנגלית. במילון משולב גם אינדקס, אשר נותן את מראי המקום העיקריים של הדיון בנושא או במושג. סדר המיון הוא לפי המונח האנגלי המקובל. כתובת מוחלטת 00 58 050|8/ שיטת גישה 44 0 00085 שדה תוצאתי ממשי 100 \0פסז |108ס שדה מקור ממשי 100 6 008 (בסיס נתונים בשיטת 155 8 06 ה--5 ג "רשימות הפוכות") וחס)5/9 08856 מתרגם כתובות 109 זס טח סס 4007655 שפת "אלפאיי 199 8 הס וה 44 3 פ/ופה תוכנית יישום 6 וחב זססזס הסוזהסווכס ה איזור, שטח (אחסון) 4 זז קשר אסוציאטיבי 5 אחו! 6שו5500/81/ זכרון אסוציאטיבי 21 6 468ש5800|81/ מקשר, קובץ הקשרים 109 600 תכונה 75 סטפוזוות ביטול השפעת העדכון 2301 0 גבוי 1 208 קטאסאם אצווה 208 חסוהם יחס בינרי 55 הסוו8|פז עֶזפחום סיבית 33| זום גוש (נתונים) 33 אססוםּ צורת תקנון לפי בויס וקוד 205 החזסז |הוחזסה 8009/0000 בית 33> 6 מפתח אפשרי, מועמד 17 א 80010816 מכפלה קרטזית 64 005 שרשרת 2 חוהחס מאפיין 1 ו ערך המאפיין 12 010119106 זה חס סגמנט בן 206 זר 500 סווח) נקודת מבדק 21 60 (ועידה בענין נתונים חס 608 חס -- 0008 ושפות תכנות) 2,%3 585 ו5/9167 30 818 חבורה (לפי )0008%) 117 ב מודל תפישתי 1 000 |008 006 סכימה תפישתית או מושגית 2.8 8 |0008ח 0 21 מפתח משורשר עדכון בו-זמני הסבה משלים מפתח מורכב מראה מקום (בבסיס הנתונים) מסילה (בדיסק) יחידת אחסון לגישה ישירה גישת בסיס הנתונים שגרת בסיס נתונים מילון נתונים אי תלות בנתונים שלימות נתונים שדה נתונים מודל נתונים כפילות נתונים בטיחות נתונים משמעות, סמנטיקה של נתונים שיתוף נתונים (בסיס נתונים טבלאי של יבמ) מנהל בסיס הנתונים הגדרת בסיס הנתונים מפתח בסיס הנתונים מכונת בסיס נתונים מערכת לניהול בסיס נתונים (קבוצת עבודה של .וצ0008) מערכת בסיסי נתונים מבוזרים שפה להגדרת נתונים נעילה ללא מוצא אנומליית ביטול תלות הפרש ארגון (נתונים) לגישה ישירה קבוצות זרות (יחסים) (בסיס נתונים היררכי של יבמ) שפה לטיפול בנתונים ביטול דינמי של תנועות ישות מפתח ישות 12 208 222 19 8 17 121 412 42 21 .9 21 56 209 03 7 5 209 155 20.05 12 20.6 208 1234 200 21 2.38 205 '8 206 1099 19 ד 0 03 208 פא 008608160 6 סה ס) חסוצפטחס) ו ץ6א סהטסקו 00 זס0!68ח! עְסחפזזט זססחווץס 8 1זו-- 50 6 8107806 חסהסזקקה 0856 808 8 זכ 0886 818 ְזחסו)0ו0 בוה 68 וה ץז חן 818 וח6)! הכש (000ח 818 ץז 18 ץזוז500 818 818 58 0חוזהח8 והש 82 -- 0818 0896 2 זס)8ז81!ח|וחו80 0886 0818 -- 84 חסו])!ח|061 0856 0818 -- קמס ץ6א 0888 0818 -- צםא םס 808 0886 0918 -- ואמם הוח 0388 0818 -- 6ואמס וח879106 קטסז) 185% 2856 0818 -- )זםס 8 080660 --- 86סס וח916/ץ8 0886 068 חהסוןוח!/06 0818 -- ופפ 8000 ץ|הוהסחה חסוז6ו6ם עס 6חזוזוס 0 800885 +ס8זום +חוס[פום ₪1 /1 -- 08181 4 00886%5ח8! חסוו8|טק!חהוח 0818 -- ואס 208 11 3 חסו1805801 ס|וחהחע0 -- מדס ו ששח ץ6א עווזה= מודל ישויות=קשרים 171 קבוצת ישות 75 סכימת חיצונית 102 עובדה 93 שדה 4) ,31" קובץ 1.083" זיווג קבצים 112 צורה תקנית ראשונה 201 רשומה שטוחה 2.2 מערכות לניהול קבצים 41 צורה תקנית רביעית 266 תלות פונקציונלית שלימה 16 פונקציה 7 תלות פונקציונלית 93( מרווח (בין גושי נתונים מוקלטים) 393 רנדומיזציה (תהליך חישובי 42 לערוב נתונים) שיטת גישה -- |א404 202 היררכי, מידרגי מסלול גישה היררכי 17 מודל נתונים היררכי 7ר, שפה היררכית 1508 שיטת ארגון קבצים עילית 46 שיטת גישה -- |אגסוו 200 שיטת גישה -- ₪158 200 שיטת גישה -- |354 (מערכת לניהול בסיס נתונים רשתי) 23 (מערכת לניהול בסיס נתונים 83 היררכי, יבמ) ארגון אינדקס סדרתי 88 (מערכת לניהול בטיט נתונים) 7, 164 אנומליית הוספה 99| אמינות, שלימות 4 מישק 2200 חיתוך (הצלבה) 2 000ח כ!ה5חס!)6!8ז -- ע%!1ח= 1 עוזחם 88ח50 |8חז0)אם 0% ו ₪6 חווקטסס פוו= (=₪א1) וחזסז |הוחזסה זפזו= 8000 )!= 5500 661 הוח 16 -- פו= (₪א4) וחזסז |הוחזסה הזזטס- ץ0ה060606 |החסוזסחט ווט= חסווסחט- צ0ה06006706 |החסוזסתט-] 30 8חוח85] 1 |8ס!תסזה8זטוח -- ואמהסת 0 800658 צֶה0סז8ז6ון )08 800655 |8ס|חסזהזסורן 000 0818 |08וח0ז8ז6ו3] 68 ו108ח0ז3ז1!0] 6 |6ע0! חשות 6 ה281|0וח3 ףס סח |8סוחסזהזסוח -- !ג סו 6 800058 117601 0 |68|הסז9זסות -- 31541 300688 |1|8ח86006 |8ו1ח59006 |8ס|חהסז8זסוח -- וא54ר 800088 6 סמספזהָ6זח! -- פושוס! וה6ז85 3061 וח 3 הוח הס!81וחזזסזה! -- פוא! וח6ו9ץ8 חס!281!ח8זס |1!8ח5606 א6סחו 5 תאו צְוהחסחה חסוזז6פח1 שוזסטוחו 6 חן חסו)860ז16)ח[ נתוני קשר (הצלבה) רשומת קשר (הצלבה) סכימה פנימית קובץ מהופך צירוף (יחסים) מפתח שדה מפתת מסלול גישה רשימה, שרשרת ראש הרשימה או השרשרת נעילה קובץ יומן בסיס נתונים לוגי אי תלות לוגית מבנה לוגי של נתונים מודל לוגל קשרים לוגיים יחידת דיסק מגנטית מיפוי רב"קובץ, קובץ אב רשומת בן אנומליית העדכון שרשרת מורכבת טבעת דו-כיוונית תלות רב-ערכית ניווט מודל נתונים רשתי צומת תיקנון קבוצה ריקה מופע (מערכת לניהול בסיסי נתונים) מודל נתונים של הארגון שטח גלישה , רשומת אב, רשומת בעלים דף סגמנט אב גוש (נתוני) קשר של התוכנית 14 1158 1417 18 9 3 127 33 109 2 2 274 200 206 8 6 9 207 412 2,.[[.00 0 203 200 22 8 208 1.4 13 44 18 (0 3 11 10 200008 033 14 206 28 8 חסוז8600ז0זח! סז ה%075601!0ח! 50078 |8חז6+ח! 6 6זזסטח| חוסט עצ ו ץצ הז סבַבאחו1 ב זו 18 00% |06 1.00108| 0818 6 6 0 0318 |108ף1.0 6זט)0טז51 0818 |1.00108 008 !1.0108 0וה5חסו6/81ז 1.0108 ]אחט 015% 0ו30061ו פחוססהּוא 50 6 סז זסם וחפוא ץ|הוחסחה עזוססו וטו סחוזוזוטוא ץ0ח06ח0606 ססט!הטוווטשו חסוז8ףוטהא 0061 0818 אזסשווסאז 86סא חסוז281ו|8 וחזסצז 1 ווטא 6 זז 5 ]סח 0061 0818 הסו281?וחהףזכס 8זה שס!!זסשכ) זסחהשס 00 +חה6ז3ק חסו08וחהט רו 00 ה8זטסזק -- קש אססום בסיס נתונים פיסי אי תלות פיסית מבנה פיסי של נתונים מודל פיסי סכימה פיסית מצביע מפתח ראשי תכונה ראשית, עיקרית כוונת עיבוד קבוצת המכפלה היטל (יחסים) גוש (נתוני) הגדרה של התוכנית (בסיס נתונים ושפת שאילתות) שפת שאילתות רנדומיזציה, ביצוע חישוב אקראי רשומה שיטת איתור הרשומה סוג רשומה התאוששות יחס אלגברה של יחסים שפת נחונים טבלאית מודל נתונים טבלאי חשבון של יחסים יחס, קשר קבוצת יחסים, קבוצת קשרים כתובת יחסית שחזור טבעת שורש רשומת שורש סכימה צורה תקנית שניה אינדקס משני מפתח משני בטיחות סגמנט ארגון סדרתי (של נתונים) (שפה לטיפול ביחסים) קבוצה צורת קשר בחבורה 208 88 7 9 13 |11 1.07 19 222 4 172 21 19 4 20 5: >: 155 1017 2.09 4 19 199 2.01 17 4 66 20 208 3 04 120 (108 203 20007 51 2,893 204 17 12 5 1120 6 0818 |08!פעחק חחח 0818 |8סופעחק שזטז זו 0818 |8סופעחש ו006 |8סופעחש 5068 |8סופעחק זסוחוסק ץ6א עזה וחוזק 6סוזזה פוחוזק הזח סַה|6688סזק סז חסו90[סזש הסו081ווו5060 וה זטסזס -- 58ם אססום 6קרחאפ עפ עזפטף -- 085 6 צְזסטכ) פחו2ווהסטחה 0זסססם 6 חה0סו0081! סזסספם 6 וסססת ץז 600 חס6!8%0 08 |8חסוז9|)3 86 0818 !|8ח6!8)!0 006 0818 |8חסוז6|8 95( |8ח0ו46/81] קוח5ח36|3%0 ]6% ס[תפחסו)3ופ 5 פעו6!8 6ס זו פחום ג סז וסס 8 (א2) הזזסן |פהזזסה 6ח5600 א6ח! ץז08ח6800 ץ) ץז08חה5800 0 ו ה0וז28וח08זס |1(8ח5906 0 5% 6 55 צורת חברות בחבורה בחירת מופע חבורה סדר החבורה מיתוג חבורות חבורה סינגולרית (מערכת לניהול בסיס נתונים טבלאי, יבמ) תת-קבוצה תת-סכימה מצביע סימבולי סינונים, שם נרדף (מערכת לניהול בסיס נתונים) (מערכת נסיונית לניהול בסיס נתונים טבלאי, יבמ) צורה תקנית שלישית (מערכת לניהול בסיס נתונים רשתי) מסילה (בדיסק) תלות עוברת צץ סגמנט תאום שרשרת דו-כיוונית טבעת דודכיוונית איחוד (יחסים) נקודת תצפית של המשתמש, מבט שטח עבודה של המשתמש קובץ משחנה נקודת תצפית, מבט איחוד או שילוב מבטים (מודלים) שדה תוצאתי בפועל שדה מקור בפועל 106 1412 12 19 16 39 14,1 1 12 0 80 117 100 204 07 412 16 2,007 206 2 8 0 20,022 171 109 11 220 100 101 !חפ זסם וח0וח +39 ח0ו89/801 06ח8זזט000 501 זז ₪ הַחוחסזופ +66 1 זהטפחופ 05 0% 8 ח50ט6 זסוחוסס סווסטוחץ9 והץְהסחץ6 0 וום דצ ₪ ואםזפצפ א) וחזס! |הוהחזזסה 6זוחד ]סד אספזד ץ0ח6 9080 6 הזד ד +56 חושד + עְּצו סד פחז עָפאי סשד הסוח וע ז80 8 חואזסצו זספט -- 4 6 6!ס8!זה/ שפו חסו16081ח! סו +/890ז |8טאזו 06 |אטו - מהו בסיס נתונים - 014-8856 ? - מה מערכת לניהול בסיסל נתונים - 0805 ? - מהם ישות, קשר, מודל נתונים פיסי ומודל נתונים לוגי, סכימה ומילון- נתונים? - מהם הכלים לאבטחת שלימות ובטיחות הנתונים? - מהן מכונות בסיסינתונים? - מהם התכונות והמאפיינים העיקריים של המערכות המסחריות ? בסיס? נתונים - עקרונות, מודלים וילשומים מציג את התיאוריה של המער- כות לניהול בסיסינתונים (28₪05) , את המודלים הלוגיים העיקריים (היררבל, רשתי וטבלאי), ומספר מערכות מסחריות הפועלות בשוק: 5 פואספו, |4,דסד, 3885סה, 501/05. בסיסי נתונים - עקרונות, מודלים ויישומים נועד להכשיר מנתחי מערכות, מתכגנים ומתכנתים העוסקים בפיתוח יישומים. הוא יסייע לאחראים לניהול בסיסי נתונים ( 0015181015 6 מזגם -- ₪ 8 0 ) במילוי תפקידם ויתן להם כלים להעריך ולבחור את המערכת אשר מתאימה ביותר לדרישות היישומים. זהו המשך לספר ארגון נתונים וניהול קבצים, מאת המחבר. הספר מותאם לתוכניות הלימודים למנתחי מערכות המופעלות באוניברסר טאות, במכללות, בבת=ספר מקצועיים ובקורסים נבחרים. בסיום כל פרק הובאו שאלות לחזרה ולתרגול. | בסוף הספר הובאו ביבליוגרפיה, מילון מונחים ואינדקס. המחבר רז הייפרמן, ‏ יליד 1949, תואר ראשון בסטטיסטיקה וכלכלה ותואר שני בחקר ביצועים מטעם האוניברסיטה העברית בירושלים. בוגר קורס מנתחי מערכות של המכון לפריון העבודה והייצור. עובד בחברת "טכנולוגיה מתקדמת" כמנהל פרויקט ומנתח מערכות. עד שנת [198 עבד במרכז שרותי המידע של משרד התקשורת בתפקידים של מנתח מערכות ומנהל תחום מערכות לוגיסטיות. התמחה בתכנון וביישום של מערכות מידע הפועלות בסביבה של בסיסי נתונים ותקשורת. מרצה בנושאים של בסיסי נתונים וארגון קבצים במכון לפריון העבודה והייצור ובמכללות למחשבים. הרצה בקורסים של המדור ללימודי חוץ של הטכניון ושל משרד התקשורת. ספרים נוספים בהוצאת "הוד-עמל" 1. המחשב האלקטרוני ועיבוד הנתונים, י' עמיהוד 2. תכנון ותכנות יישומי מחשבים, " עמיהוד 3. הקלט למחשב, ס' מצפי 4. יסודות בניתוח ותכנון מערכות מידע, " עמיהוד ו" קורפל 5. מערכות תקשורת נתונים, א' סקופ 6. ארגון נתונים וניהול קבצים, ר' הייפרמן 7. מיקרו-מחשבים וה-6800 - חומרה ותוכנה, א' הראל * הספרים באישור משרד החינוך.