You are on page 1of 48

‫תכן ופיתוח של‬

‫מערכות מידע –‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שיקולים בתכן בסיס הנתונים של‬


‫מ"מ‬

‫שקופית ‪1‬‬ ‫תכן ופיתוח של מ"מ‬


‫מהו בסיס נתונים?‬
‫‪ ‬בסיס נתונים (‪ )DB‬הוא אוסף של נתונים הקשורים ביניהם‪.‬‬
‫‪ ‬נתונים הם עובדות ידועות שאפשר לרשום ולשמור אותן ויש להן מובן‪.‬‬
‫‪ ‬היחידות הבסיסיות המרכיבות נתונים מכונות רכיבי נתונים או שדות‪ .‬לדוגמא‪,‬‬
‫ת"ז‪ ,‬שם‪ ,‬תאריך לידה וכתובות הם רכיבי נתונים של אנשים‪.‬‬
‫‪ ‬בסיס הנתונים מייצג חלק מסוים של המציאות שאותה מעונינים לשמור‬
‫במערכת המידע‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬מערכת ניהול בסיס נתונים (‪ )DBMS‬היא אוסף של תוכניות‬


‫המאפשרות למשתמשים ליצור ולנהל בסיסי נתונים‪.‬‬
‫‪ ‬מאפשרת הגדרה – הצהרה על סוגי הנתונים‪ ,‬המבנה‬
‫שלהם‪ ,‬הקשרים ביניהם ואילוצים‪.‬‬
‫‪ ‬מאפשרת הקמה – שמירה ראשונית של הנתונים‪.‬‬
‫‪ ‬מאפשרת תפעול – שליפה‪ ,‬עדכון‪ ,‬הוספה‪ ,‬מחיקה‪.‬‬
‫שקופית ‪2‬‬ ‫תכן ופיתוח של מ"מ‬
‫מקום בסיס הנתונים במערכת המידע‬

‫ממשק משתמש‬

‫תוכניות יישום‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫תוכנת גישה לבסיס הנתונים‬ ‫בסיס הנתונים‬

‫מערכת מידע‬

‫שקופית ‪3‬‬ ‫תכן ופיתוח של מ"מ‬


‫מדוע להשתמש ב‪ DBMS -‬ולא בקבצים?‬
‫‪ ‬כפילות נתונים וחוסר עקביות‬
‫‪ ‬קבצים עשויים להיות בפורמטים שונים‪.‬‬
‫‪ ‬נתון יכול להימצא במספר קבצים עם ערכים שונים‪.‬‬
‫‪ ‬תכנון נכון של בסיס נתונים יכול למנוע זאת‪.‬‬
‫‪ ‬בעיות גישה לנתונים‬
‫‪ ‬דרישות פונקציונליות חדשות גוררות כתיבת תוכניות במערכות קבצים‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬הסטנדרטיות של בסיסי הנתונים מקלה על הוספת פונקציונליות למערכת‪.‬‬


‫‪ ‬גישה מקבילה של משתמשים לנתונים‬
‫‪ ‬בעיות אבטחה‬
‫‪ ‬בעיות שלמות‬
‫‪ ‬במערכות בסיסי נתונים ניתן לבצע אילוצים על ערכי‬
‫השדות ללא כתיבת תוכניות מיוחדות‪.‬‬
‫שקופית ‪4‬‬ ‫תכן ופיתוח של מ"מ‬
‫כיצד נבחר ‪?DBMS‬‬
‫‪ ‬מודל הנתונים‪:‬‬
‫‪ ‬מודל טבלאי (עיקר השוק)‬
‫‪ ‬מודל מונחה עצמים‬

‫‪ ‬מספר משתמשים בו זמנית‬


‫‪ ‬קיבולת נתונים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬ביצועי מהירות‬
‫‪ ‬התאמה לחומרה ולמערכות הפעלה‬
‫‪ ‬מחיר‪:‬‬
‫‪ ‬רכישה‪/‬הקמה‬
‫‪ ‬גיוס כ"א מתאים‬
‫שקופית ‪5‬‬ ‫תכן ופיתוח של מ"מ‬
‫(נכון ל‪)2019 -‬‬ ‫שוק בסיסי הנתונים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪6‬‬ ‫תכן ופיתוח של מ"מ‬


‫בסיסי נתונים רלציוניים (טבלאיים)‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪7‬‬ ‫תכן ופיתוח של מ"מ‬


‫מודל טבלאי‪/‬רלציוני‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪8‬‬ ‫תכן ופיתוח של מ"מ‬


‫מהי תבנית בסיס נתונים (סכמה)?‬
‫‪ ‬התכנון הלוגי של בסיס הנתונים‪:‬‬
‫‪ ‬הגדרת הטבלאות במסד נתונים רלציוני‬
‫‪ ‬הגדרת הקשרים בין שדות‬
‫‪ ‬הגדרת האילוצים‬

‫‪ ‬הסכמה משתנה לעיתים רחוקות‪.‬‬


‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬הסכמה מוגדרת באמצעות שפות ‪Data Definition‬‬


‫)‪.Language (DDL‬‬

‫מייצרת את הטבלה עם השדות והמפתח הזר‬


‫‪ ‬דוגמא ב‪:SQL -‬‬
‫( ‪create table account‬‬
‫‪account-number‬‬ ‫‪char(10),‬‬
‫‪balance‬‬ ‫)‪integer‬‬
‫שקופית ‪9‬‬ ‫תכן ופיתוח של מ"מ‬
‫כיצד מגדירים סכמה?‬
‫• דוגמא ב‪QBE -‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪10‬‬ ‫תכן ופיתוח של מ"מ‬


‫מהו מופע בסיס הנתונים?‬
‫‪ ‬אוסף המידע המאוחסן בבסיס הנתונים ברגע נתון‪:‬‬
‫‪ ‬ערכי התכונות בשורות השונות של כל טבלה ברגע מסוים‬
‫‪ ‬האובייקטים השונים הנמצאים במערכת ברגע נתון‪.‬‬
‫‪ ‬המידע המאוחסן בבסיס הנתונים משתנה במשך הזמן‬
‫בעקבות הוספת נתונים חדשים או ביטול‪/‬עדכון נתונים קיימים‪.‬‬
‫‪ ‬הטיפול במופע של בסיס הנתונים נעשה באמצעות שפות‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫)‪.Data Manipulation Language (DML‬‬


‫‪ ‬דוגמא ב‪:SQL -‬‬
‫שולף ומחזיר‬ ‫‪delete‬‬
‫‪select customer.customer-name‬‬ ‫‪insert‬‬
‫לבחור טבלה\ות‬
‫‪from customer‬‬ ‫‪update‬‬
‫;’‪ where customer.customer-id = ‘192-83-7465‬פילטר‬

‫שקופית ‪11‬‬ ‫תכן ופיתוח של מ"מ‬


‫כיצד מנהלים מופע של בסיס הנתונים?‬
‫• דוגמא ב‪:QBE -‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪12‬‬ ‫תכן ופיתוח של מ"מ‬


‫מושגי יסוד של בסיסי נתונים רלציוניים‬
‫‪ ‬בסיס נתונים רלציוני מורכב מאוסף טבלאות (רלציות)‪.‬‬
‫‪ ‬שורות הטבלה הינן רשומות‪.‬‬
‫‪ ‬עמודות הטבלה הינן שדות או תכונות‪.‬‬

‫‪ ‬כל רשומה מתארת קשר בין ערכים של שדות‪.‬‬


‫‪ ‬הערכים שמקבל שדה נלקחים מתוך סט הערכים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫המותרים לעמודה זו – התחום של השדה‪.‬‬


‫ציון‬ ‫סמסטר‬ ‫שם סטודנט שם קורס‬
‫‪98‬‬ ‫א'‪2003‬‬ ‫תכן ופיתוח‬ ‫אבי כהן‬

‫שקופית ‪13‬‬ ‫תכן ופיתוח של מ"מ‬


‫מושגי יסוד של בסיסי נתונים רלציוניים (המשך)‬
‫ייחודי‬
‫‪ ‬מפתח חד ערכי (‪ )unique key‬הינו שדה או צרוף שדות אשר‬
‫‪Type text here‬‬

‫ערכם מאפיין חד ערכית רשומה בטבלה‪.‬‬


‫‪ ‬מאפשר הבחנה בין רשומות וזיהוי חד ערכי‬
‫‪ ‬יתכנו מספר מפתחות חד ערכיים לטבלה‬

‫‪ ‬מפתח קביל (‪ )candidate key‬הינו מפתח חד ערכי מינימלי‬


‫כדי לדעת שהוא מפתח קביל‪ ,‬בודקים אם המפתחות שנמצאים הם חד ערכיים‪ ,‬אם לא אז הוא מפתח קביל‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫מפתח ראשי‬
‫(כלומר‪ ,‬איננו מכיל מפתח חד ערכי)‪.‬‬
‫אחד‬

‫מפתחות קבילים‬
‫‪ ‬יתכנו מספר מפתחות קבילים לטבלה‬
‫‪ ‬כל קבוצה של תכונות שמכילה את המפתח הקביל‬
‫מפתחות חח"ע‬
‫הינה מפתח חד ערכי‬
‫‪ ‬מפתח ראשי (‪ )primary key‬הינו אחד המפתחות‬
‫הקבילים שנבחר לשמש כמפתח ראשי של הטבלה‪.‬‬
‫שקופית ‪14‬‬ ‫תכן ופיתוח של מ"מ‬
‫שיקולים בתכן בסיסי נתונים רלציוניים‬
‫‪ ‬פשטות ומובנות בסיס הנתונים‪:‬‬
‫‪ ‬אוסף השדות של כל הטבלאות צריך להכיל את כל סוגי הנתונים‬
‫הדרושים למערכת (ישויות וקשרים ביניהן)‪.‬‬
‫‪ ‬אוסף השדות המרכיב טבלה צריך לתאר ישות אחת‪.‬‬

‫‪ ‬הימנעות מכפילויות‪:‬‬
‫‪ ‬כפילות משמעה שאותם נתונים נשמרים ביותר ממקום אחד במודל‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫הלוגי של בסיס הנתונים‪.‬‬


‫‪ ‬לדוגמא‪ :‬מ"ז‪ ,‬שם סטודנט‪ ,‬קוד מחלקה‪ ,‬שם מחלקה‪ ,‬קוד קורס‪ ,‬שם‬
‫קורס‪ ,‬מס' נקודות‪ ,‬ציון‪.‬‬
‫‪ ‬כפילויות גורמות ל‪:‬‬
‫‪ ‬בזבוז שטח אחסון‪.‬‬
‫‪ ‬בעיות בעדכון הנתונים‪/‬חוסר עקביות‪.‬‬
‫שקופית ‪15‬‬ ‫תכן ופיתוח של מ"מ‬
‫שיקולים בתכן בסיסי נתונים רלציוניים (המשך)‬
‫‪ ‬שמירת שדות נגזרים בבסיס הנתונים‪:‬‬
‫‪ ‬שדה נגזר (‪ )derived field‬הינו שדה שערכו ניתן לחישוב מאוסף של‬
‫שדות אחרים בבסיס הנתונים‪.‬‬
‫‪ ‬שמירת שדה נגזר בבסיס הנתונים דורשת עדכון השדה בכל פעם‬
‫שמשתנה ערך של אחד הרכיבים (כדי לשמור על שלמות בסיס‬
‫הנתונים)‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫רצויה כאשר נעשה בו שימוש תכוף‬ ‫‪ ‬שמירת שדה נגזר בבסיס הנתונים‬
‫בדרך כלל שומרים את הערך הגולמי ולא הנגזר‬

‫וחישובו אורך זמן‪.‬‬

‫‪ ‬מזעור הצורך בשינוי סכמת בסיס הנתונים‪:‬‬


‫‪ ‬האם הגבלת שם משפחה ל‪ 10 -‬תווים היא הגיונית?‬
‫‪ ‬האם הקצאת ‪ 4‬שדות לשמות הילדים של עובד הגיונית?‬

‫שקופית ‪16‬‬ ‫תכן ופיתוח של מ"מ‬


‫שיקולים בתכן בסיסי נתונים רלציוניים (המשך)‬
‫‪ ‬קביעת מפתחות ראשיים שערכם איננו משתנה‪:‬‬
‫‪ ‬מפתח זר (‪ )foreign key‬הינו קבוצת שדות בטבלה מסוימת המהווה‬
‫השדהוריתמס' סטודנט בטבלת ציונים‬ ‫מפתח ראשי בטבלה אחרת‪ .‬למשל‪,‬‬
‫המפתח הזר מצביע על השדה הראשי בטבלה המק‬

‫(מס' סטודנט‪ ,‬מס' קורס‪ ,‬סמסטר וציון)‪.‬‬


‫‪ ‬שינוי ערך של מפתח ראשי מצריך שינויים של כל המפתחות הזרים‬
‫המתבססים על המפתח הראשי‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫לסטודנטים בשנים הראשונות‬


‫לא עושים מחקר‬
‫אז צריךלפצל לשני מקרים‪:‬‬
‫‪ ‬מניעת ערכים ריקים בשדות‪:‬‬
‫סטודנטים בשנים הראשונות‪ ,‬סטודנטים לתארים מתקדמים‬

‫‪ ‬ערכים ריקים גורמים לבזבוז שטח אחסון ועלולים להקשות על הבנת‬


‫סטודנטים‪ :‬מ"ז‪ ,‬שם‪ ,‬כתובת‬ ‫הטבלה‪.‬‬

‫מתקדמים‪:‬‬ ‫סטודנטים‬ ‫שם‪,‬‬ ‫מ"ז‪,‬‬ ‫סטודנטים‪:‬‬


‫צריך לציין שמ"ז בטבלה זאת הוא מפתח זר‬

‫מ"ז‪ ,‬שם מנחה‪ ,‬נושא‬ ‫כתובת‪ ,‬שם מנחה‪ ,‬נושא‬


‫מחקר‬ ‫מחקר‬
‫מ"ז מצביע על השדה של מ"ז ששל טבלת הסטודנטים‬
‫ואז כשרוצים לדעת שם או כתובת סטודנט מסוים‪,‬‬
‫שקופית ‪17‬‬ ‫שולפים מטבלת הסטודנטים לפי מ"ז שנמצא בטבלת‬ ‫תכן ופיתוח של מ"מ‬
‫סטודנטים מתקדמים‬
‫בסיסי נתונים רלציוניים ונרמול‬
‫‪ ‬דרך לבנות מסד נתונים רלציוני שמקיים את שיקולי‬
‫התכן שלעיל – נרמול‬
‫‪ ‬מושג יסוד‪ :‬תלות פונקציונאלית (בין שדות)‬
‫שדה או אוסף של שדות‬
‫תלוי בשדה או אוסף של שדות‬

‫‪ ‬מגוון צורות נרמול‪ :‬צורה נורמלית ראשונה‪ ,‬שניה‪ ,‬שלישית‬


‫ועוד‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬מה הבעיה בטבלה הבאה?‬


‫המפתח אסור שיהיה ‪null‬‬

‫שכר‬ ‫תאריך‬ ‫שעות‬ ‫שם‬ ‫מס'‬ ‫משרה‬ ‫שם‬ ‫מס'‬


‫סיום‬ ‫חבילה מצטברות‬ ‫חבילה‬ ‫עובד‬ ‫עובד‬
‫הקשר בין עובד וחבילה הוא לרבים‬

‫שקופית ‪18‬‬ ‫תכן ופיתוח של מ"מ‬


‫תלויות פונקציונליות בין שדות‬
‫‪ ‬תלות פונקציונלית בין שדה ‪ A‬לשדה ‪ )B  A( B‬משמעה‬
‫שערך של שדה ‪ A‬קובע חד ערכית את ערכו של שדה ‪B‬‬
‫‪ ‬מ"ז ‪ ‬שם סטודנט‬
‫‪ ‬מ"ז ‪ 123456789‬קובע שם של סטודנט יחיד‪ ,‬למשל משה כהן‬
‫‪ ‬יתכנו מספר סטודנטים בעלי אותו שם‬
‫‪ ‬יהי ‪ K‬מפתח קביל של טבלה ‪ R‬ו‪ F -‬שדה כלשהו של טבלה‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ R‬שאיננו במפתח‪ ,‬אזי ‪F  K‬‬


‫‪ ‬מהם התלויות בטבלה הבאה?‬

‫שכר‬ ‫תאריך‬ ‫שעות‬ ‫שם‬ ‫מס'‬ ‫משרה‬ ‫שם‬ ‫מס'‬


‫סיום‬ ‫חבילה מצטברות‬ ‫חבילה‬ ‫עובד‬ ‫עובד‬

‫שקופית ‪19‬‬ ‫תכן ופיתוח של מ"מ‬


‫דרגת נרמול ראשונה‬
‫‪ ‬בסיס נתונים הוא ב‪( 1NF -‬צורה נורמלית ראשונה) אם תחומי כל‬
‫אם כל השדות של הטבלה אי אפשר לפרק אותו‬

‫התכונות של כל הטבלאות הם אטומיים‪ .‬כתובת הוא שדה לא אטומי כי צריך לפרק לעיר‪ ,‬רחוב‪....‬‬
‫למשל ת"ז הוא אטומי‬

‫‪ ‬תחום הוא תחום אטומי אם לכל איבר שבו מתייחסים כאל יחידה אחת‪,‬‬
‫שאינה ניתנת לפרוק לתת יחידות‪.‬‬
‫אם יש לנו שדה שאינו אטומי וידוע לכמה שדות רוצים לפרק אותו אז אין בעיה מגדירים שדות לפי הנדרש‪date‬‬
‫הרלוונטים‪author-list, keywords‬‬ ‫אבל אם לא ידוע לכמה שדות לפרק אז יוצרים טבלה חדשה ומקשרים בין‬
‫‪ ‬האם הטבלה הבאה היא ב‪1NF? -‬‬
‫‪ document: title, author-list, date (year, month, day), keywords‬‬
‫שדה אינו אטומי‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫צריך לפרק‪ :‬יש פסיקים כי הוא בעצם רשימה‬


‫‪ ‬בכדי להשיג נרמול ‪:1NF‬‬
‫‪ ‬עמודה המורכבת מסוגים שונים תפוצל לעמודות המכילות שדות אטומיים‪.‬‬
‫‪ ‬עבור עמודה המורכבת משדה חוזר‪ ,‬ניצור טבלה חדשה‪ ,‬שתכלול את‬
‫מפתח הטבלה המקורית ‪ +‬עמודה לשדה החוזר‪ ,‬ונמחק את השדה החוזר‬
‫מהטבלה המקורית‪.‬‬
‫‪ ‬כיצד יראה ‪ document‬לאחר נרמול ‪?1NF‬‬

‫שקופית ‪20‬‬ ‫תכן ופיתוח של מ"מ‬


‫דרגת נרמול שניה‬
‫‪ ‬טבלה היא ב‪( 2NF -‬צורה נורמלית שניה) אם היא ב‪1NF -‬‬
‫ובנוסף כל שדה בטבלה שאיננו במפתח תלוי בכל המפתח‪.‬‬
‫‪ ‬אחרת תיווצר בעיה בשמירת חלקים מהרשומה כאשר שאר הנתונים‬
‫עדיין לא ידועים ובעדכון הנתונים (עקב כפילויות)‬
‫‪ ‬לדוגמא‪ ,‬עובד שעדיין לא שובץ לחבילה וחבילה שעדיין לא שובצו‬
‫אליה עובדים (אך יש לה שם ותאריך סיום)‬
‫‪ ‬בכדי להשיג נרמול ‪:2NF‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬אם קיימת תלות ‪ ,K’  A1, …, An‬כאשר ’‪ K‬הינו חלק מהמפתח‬


‫ו‪ A1, …, An -‬שדות בטבלה שאינם במפתח‪ ,‬ניצור טבלה חדשה‬
‫שתכלול את ’‪ K‬ואת ‪ K’( A1, …, An‬מפתח הטבלה) ונמחק את‬
‫‪ A1, …, An‬מהטבלה המקורית‪.‬‬
‫‪ ‬כיצד תראה טבלת העובדים והחבילות לאחר נרמול ‪?2NF‬‬

‫שקופית ‪21‬‬ ‫תכן ופיתוח של מ"מ‬


‫דרגת נרמול שלישית‬
‫‪ ‬טבלה היא ב‪( 3NF -‬צורה נורמלית שלישית) אם היא ב‪2NF -‬‬
‫ובנוסף כל שדה בטבלה שאיננו במפתח תלוי רק במפתח‪.‬‬
‫‪ ‬אחרת תיווצר בעיה כפילויות של נתונים ועדכונם‬
‫‪ ‬לדוגמא‪ ,‬אם השכר של משרה מסוימת משתנה‪ ,‬יש לעדכן את כל‬
‫רשומות העובדים המחזיקים באותה משרה‬
‫‪ ‬בכדי להשיג נרמול ‪:3NF‬‬
‫‪ ‬עבור קבוצת שדות ‪ ,Y‬כך ש – ‪ X  Y‬ו‪ X -‬איננו מפתח‪ ,‬ניצור‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫טבלה שתכיל את עמודות ‪ X‬ועמודות ‪ X( Y‬מפתח הטבלה) ונמחק‬


‫את עמודות ‪ Y‬מהטבלה המקורית‬
‫‪ ‬כיצד תראה טבלת העובדים והחבילות לאחר נרמול ‪?3NF‬‬
‫‪ ‬קיים נרמול גבוה מ‪3NF -‬‬
‫‪ ‬החסרון‪ :‬פיצול טבלאות ‪ ‬עלות גבוהה באיחוד לצורך קבלת המידע‬

‫שקופית ‪22‬‬ ‫תכן ופיתוח של מ"מ‬


‫מה למדנו עד כה?‬
‫• מושגים בסיסיים במסדי נתונים רלציוניים‬
‫– טבלה‪ ,‬שדה‪ ,‬רשומה‪ ,‬סכמה‪ ,‬נתונים‬
‫– מפתח חד ערכי‪ ,‬קביל‪/‬על‪ ,‬ראשי‬
‫– מפתח זר‬
‫• שיקולים בתכן בסיסי נתונים רלציוניים‬
‫פשטות ומובנות‬ ‫–‬
‫המנעות מכפילויות‬ ‫–‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שמירת שדות נגזרים ומזעור הצורך שינוי סכמה‬ ‫–‬


‫קביעת מפתחות ראשיים ומניעת ערכים ריקים‬ ‫–‬
‫• נרמול בסיסי נתונים רלציוניים‬
‫– מושג התלות הפונקציונאלית‬
‫– צורות נורמליות ראשונה (אטומי)‪ ,‬שניה (כל המפתח) ושלישית (רק‬
‫במפתח)‬
‫ב‬

‫שקופית ‪23‬‬ ‫תכן ופיתוח של מ"מ‬


‫מהי שאילתה (‪?)Query‬‬ ‫השאילתה נחשבת בשכבה האמצעית‬
‫ליתר דיוק בין האמצעית לתחתונה‬
‫כך שהיא שולחת מהאמצעית את הפעולות שהיא רוצה‬
‫לעשות לשכבה התחתונה ואז הפעולות מתבצעות על הדאתא‬
‫מחזירה לאמצעית את התוצאה‪...‬‬ ‫שלושת השכבות‬
‫‪ ‬שאילתה הינה אמצעי פניה לבסיס הנתונים לשם איחזור נתונים וניתוחם‪.‬‬ ‫‪UI‬‬

‫‪BL‬‬

‫‪ ‬סוגי שאילתות‪:‬‬ ‫‪Data\DB‬‬

‫‪ ‬שאילתת בחירה ‪ -‬מקבלת נתונים מבסיס הנתונים או מתוצאות הרצה‬


‫של שאילתות אחרות ומציגה את התוצאות בהתאם לקריטריונים‬
‫שנקבעו בשאילתה‪ ,‬לפי הסדר שנקבע‪.‬‬
‫‪SELECT DISTINCT city‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪FROM Pilot‬‬
‫;”‪WHERE State = “England” AND Rank = “CA‬‬

‫‪ ‬שאילתות עדכון – מאפשרת עדכון (מופע) בסיס הנתונים‬


‫ע"י שינוי ערכים‪ ,‬הוספת נתונים‪ ,‬או מחיקתם‪.‬‬
‫“‪UPDATE Pilot SET Pilot.Name = "Charley‬‬
‫;”‪WHERE Pilot.State="Thailand‬‬

‫שקופית ‪24‬‬ ‫תכן ופיתוח של מ"מ‬


‫שאילתות (המשך)‬
‫‪ ‬מה ההבדל בין שאילתות לבסיס הנתונים?‬
‫‪ ‬פלט השאילתה אינו נשמר – יש להריץ את השאילתה מחדש על מנת לקבל את‬
‫תוצאתה‪.‬‬
‫‪ ‬שאילתה יכולה להציג את הנתונים בצורה יפה יותר‪ :‬נתונים מסכמים‪ ,‬הקבצות‪,‬‬
‫מיונים שונים‪ ,‬חתכים שונים‪ ,‬וכו'‪.‬‬

‫‪ ‬כל שאילתה מורכבת מ‪:‬‬


‫‪ ‬הגדרת הקבוצה שעליה עושים את השאילתה‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬הנתונים בהם מעונינים‬


‫‪SELECT DISTINCT city‬‬ ‫נתונים‬
‫‪FROM Pilot‬‬
‫קבוצה‬
‫;”‪WHERE State = “England” AND Rank = “CA‬‬

‫‪ ‬שפת השאילתה הנפוצה –‬


‫)‪SQL (Structural Query Language‬‬
‫שקופית ‪25‬‬ ‫תכן ופיתוח של מ"מ‬
‫‪must:‬‬
‫‪from where‬‬

‫מבנה שאילתת בחירה ב‪SQL -‬‬


‫‪6‬‬
‫רשימת השדות שיוצגו בתוצאת השאילתא ‪SELECT‬‬
‫‪1‬‬ ‫רשימת הטבלאות בהן נמצאים הנתונים ‪FROM‬‬
‫איך לפלטר‬
‫‪2‬‬
‫תנאים לוגיים הקובעים אילו רשומות ישלפו ‪WHERE‬‬
‫‪3‬‬ ‫שדות לפיהם מבצעים הקבצה ‪GROUP BY‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪4‬‬ ‫אילו קבוצות של רשומות יוצגו ‪Having‬‬


‫‪5‬‬ ‫;השדות לפיהם יתבצע מיון ‪ORDER BY‬‬
‫‪where tloy b-from‬‬
‫‪having tlo b-group by‬‬

‫שקופית ‪26‬‬ ‫תכן ופיתוח של מ"מ‬


SQL -‫דוגמאות לשאילתות בחירה ב‬
Flight Number Dep Arr Time
111 TLV BKK 07:00 Flight Number Date Aircraft Passengers
222 BKK KTM 20:30 Number
333 KTM AMS 15:00 111 11/06/1998 6628 400
444 TLV LHR 13:00 111 01/09/1998 6628 410
555 LHR TLV 19:00 222 13/08/1998 6740 150
666 ORY LHR 10:00 333 15/08/1998 6629 380
777 TLV JFK 01:00 444 17/08/1998 6629 380
888 JFK TLV 19:00 444 20/08/1998 6741 170
999 AMS ORY 09:00 555 19/08/1998 6629 330
666 02/09/1998 6740 180
‫ברגר‬-‫ ©איריס ריינהרץ‬2003-2013

Flight 777 21/08/1998 6629 385


888 22/08/1998 6629 370
Code Name City State
AMS Schiphol Amsterdam Holland FlightDetails
BKK Don Muang Bangkok Thailand
EWR Newark New York USA
JFK JFK New York USA
KTM Vishno Kathmandu Nepal
LHR Heathrow London England
ORD O'Hare Chicago USA
ORY Orly Paris France
TLV Ben Gurion Tel Aviv Israel
Airport
27 ‫שקופית‬ ‫תכן ופיתוח של מ"מ‬
‫פרום יותר מטבלה אחת‪,‬‬
‫בדי לעשות מיזוג ביניהם אז מס' הרשומות בטבלת המיזוג תהיה‬
‫המכפלה הקרטיזית של מס' הרשומות של כל הטבלאות‬
‫דוגמא לשאילתות בחירה ב‪SQL -‬‬
‫מתחילים תמיד בפרום ‪ -‬ויר ‪ -‬סיליקט‬
‫•‬ ‫‪SELECT FlightDetails.Flight_no, FlightDetails.Date, Flight.Dep‬‬
‫= ‪FROM Flight INNER JOIN FlightDetails ON Flight.Flight_no‬‬
‫רק הרשומות שמס הטיסה זהה למס הטיסה בטבלה השנייה ‪FlightDetails.Flight_no‬‬
‫‪WHERE FlightDetails.Passengers > 300‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪28‬‬ ‫תכן ופיתוח של מ"מ‬


‫דוגמא נוספת‬
• SELECT Airport.City, Airport.State
FROM (Airport INNER JOIN Flight ON Airport.Code = Flight.Arr)
INNER JOIN FlightDetails ON Flight.Flight_no =
FlightDetails.Flight_no 10 records
WHERE FlightDetails.Passengers > 300
GROUP BY Airport.City, Airport.State
7 records
HAVING Count(Flight.Flight_no) > 1
‫ברגר‬-‫ ©איריס ריינהרץ‬2003-2013

ORDER BY Airport.City, Airport.State


5 Records (groups):
111 B T
111 B T
333 A H
2 ordered records 444 L E
(groups): 555 T I
Bangkok, Thailand 777 N U
Tel Aviv, Israel 888 T I

29 ‫שקופית‬ ‫תכן ופיתוח של מ"מ‬


‫דוגמא נוספת (המשך)‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪30‬‬ ‫תכן ופיתוח של מ"מ‬


‫בסיסי נתונים מכווני עצמים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪31‬‬ ‫תכן ופיתוח של מ"מ‬


‫עצמים‬-‫מודל מכוון‬
class employee {
/*Variables */
string name;
string address;
date start-date;
int salary;
/* Messages */
int annual-salary();
string get-name();
string get-address();
‫ברגר‬-‫ ©איריס ריינהרץ‬2003-2013

int set-address(string new-address);


int employment-length();
};
.‫מתודות לכל מחלקה‬/‫ הגדרת שירותים‬
.‫ שימוש בהורשה‬

32 ‫שקופית‬ ‫תכן ופיתוח של מ"מ‬


‫מושגי יסוד של בסיסי נתונים מכווני עצמים‬
‫‪ ‬עצם (‪ )object‬הוא דבר שעליו שומרים נתונים ובאמצעותו מבצעים‬
‫פעולות‪.‬‬
‫‪ ‬עצם הוא הפשטה של דבר מהעולם הממשי (אין צורך במפתח)‪.‬‬
‫‪ ‬מצב של עצם (‪ )object’s status‬הוא אוסף הערכים שיש לתכונות של עצם‬
‫מסוים ברגע נתון‪.‬‬
‫‪ ‬התנהגות של עצם (‪ )object’s behavior‬היא אוסף של פונקציות (שירותים‪,‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שיטות) שהעצם יכול לבצע בעצמו‪.‬‬

‫‪ ‬מחלקה (‪ )class‬היא אוסף של עצמים‪.‬‬


‫‪ ‬עצם הוא מופע של המחלקה אליה הוא שייך‪.‬‬
‫‪ ‬לכל העצמים השייכים לאותה מחלקה יש אותן תכונות‬
‫ואותה התנהגות‪.‬‬
‫‪ ‬לדוגמא‪ ,‬סטודנטים – מ"ז‪ ,‬שם‪ ,‬ציון ממוצע‪,‬‬
‫עדכן פרטים‪ ,‬חשב ציון ממוצע‪.‬‬
‫שקופית ‪33‬‬ ‫תכן ופיתוח של מ"מ‬
‫הגישה מכוונת העצמים לעומת הגישה‬
‫הפרוצדורלית‬
‫‪ ‬גישה פרוצדורלית‬
‫נקודת המוצא היא המערכת‬ ‫‪‬‬
‫התנהגות המערכת מכתיבה את הפירוק למרכיביה‬ ‫‪‬‬
‫התהליכים המערכתיים עוברים פירוק ועידון‬ ‫‪‬‬
‫שינוי בתהליך מערכתי מכתיב שינוי בכל המערכת‬ ‫‪‬‬
‫‪ ‬גישה מכוונת עצמים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫נקודת המוצא הן הישויות המרכיבות את המערכת‬ ‫‪‬‬


‫הקשר בין הישויות מרכיב את חלקי המערכת‬ ‫‪‬‬
‫האינטראקציה בין הישויות מרכיבה את תהליכי המערכת‬ ‫‪‬‬
‫שינויים יותר ממוקדים‬ ‫‪‬‬

‫שקופית ‪34‬‬ ‫תכן ופיתוח של מ"מ‬


‫מאפייני הגישה מכוונת העצמים‬
‫‪ ‬הנתונים מאורגנים כאובייקטים שניתן לזהותם‪.‬‬
‫‪ ‬אין צורך במפתח קביל כבמודל הרלציוני (מטופל אוטומטית)‪.‬‬
‫‪ ‬אובייקטים בעלי אותו מבנה נתונים (אותן תכונות‪ ,‬מצבים) ואותה‬
‫התנהגות (שירותים‪ ,‬פונקציות) מסווגים למחלקה‪.‬‬
‫‪ ‬מחלקה היא הפשטה שמתארת מאפיינים שחשובים למודל‬
‫ומתעלמת משאר המאפיינים‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬אובייקט הוא מופע של מחלקה‪.‬‬


‫‪ ‬לכל אובייקט יש ערכים לתכונות המחלקה‪ ,‬וניתן להפעיל עליו את‬
‫שירותי המחלקה‪.‬‬

‫שקופית ‪35‬‬ ‫תכן ופיתוח של מ"מ‬


‫עקרונות מנחים בגישה מכוונת העצמים (‪)1‬‬
‫‪ ‬רב צורתיות (‪)polymorphism‬‬
‫‪ ‬אותו שירות (מתודה) מתנהג בצורה שונה במחלקות שונות‪.‬‬
‫‪ ‬למשל‪ ,‬שירות ‪ move‬של חלון שונה משירות ‪ move‬של כלי‪-‬שח‪.‬‬

‫‪ ‬אובייקט ‪ O1‬שמפעיל שירות של אובייקט ‪ O2‬לא יודע את פרטי‬


‫השירות של ‪ O2‬ולא יודע כמה מימושים יש לאותו שירות‪.‬‬

‫?‪What´s the time‬‬


‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫?‪What´s the time‬‬

‫‪It is 8 p.m.‬‬ ‫‪It is 8 p.m.‬‬

‫שקופית ‪36‬‬ ‫תכן ופיתוח של מ"מ‬


‫עקרונות מנחים בגישה מכוונת העצמים (‪)2‬‬
‫‪ ‬הורשה (‪)inheritance‬‬
‫‪ ‬מחלקות מסודרות בצורה היררכית‪.‬‬
‫‪ ‬מחלקה שיורשת ממחלקה אחרת מקבלת ממנה את‬
‫מבנה הנתונים (תכונות וקשרים) שלה ואת שירותיה‪.‬‬
‫‪ ‬הפשטה (‪)abstraction‬‬
‫‪ ‬מתארת מאפיינים שחשובים למודל של המחלקה‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫ומתעלמת משאר המאפיינים שלה‪.‬‬


‫‪ ‬הורשה ופולימורפיזם מקלים על ההפשטה‪.‬‬

‫שקופית ‪37‬‬ ‫תכן ופיתוח של מ"מ‬


‫עקרונות מנחים בגישה מכוונת העצמים (‪)3‬‬
‫‪ ‬כמיסה (‪)encapsulation‬‬
‫‪ ‬הפרדה בין ההיבטים החיצוניים של אובייקט‪ ,‬אשר גלויים בפני‬
‫אובייקטים אחרים‪ ,‬לבין פרטי המימוש של האובייקט‪ ,‬שהינם‬
‫מוסתרים‪.‬‬
‫‪ ‬אחת הדרכים להשיג כמיסה היא ‪ scope‬שיכול להיות ‪private,‬‬
‫‪.protected, public, package‬‬
‫‪ ‬שימוש חוזר (‪)reuse‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬ההבנה ששירותים של מחלקות שונות הם למעשה סוג אחד של‬


‫שירות עוזרת להבנה ומפחיתה את מספר המקרים שיש להבינם‬
‫ולנתחם‪.‬‬

‫שקופית ‪38‬‬ ‫תכן ופיתוח של מ"מ‬


‫שיקולים בתכן בסיסי נתונים מכווני עצמים (‪)4‬‬
‫‪ ‬הפשטה של המציאות‪:‬‬
‫‪ ‬המודל צריך לשקף את המציאות‪.‬‬

‫‪ ‬הכמסה והסתרת מידע‪:‬‬


‫‪ ‬הסביבה "יודעת" מה העצם יודע לעשות‪.‬‬
‫‪ ‬העצם "יודע" איך לעשות זאת‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬הסביבה מעדכנת‪/‬שולפת מידע על העצם דרך "ממשק ציבורי"‪.‬‬


‫מחליטה לפיהם ‪Private, protected, public ‬‬

‫‪ ‬תכן היררכי‪:‬‬
‫‪ ‬הימנעות מכפילויות של הגדרות‪.‬‬
‫‪ ‬חסכון בזמן ובמשאבי פיתוח – שימוש חוזר‪.‬‬

‫שקופית ‪39‬‬ ‫תכן ופיתוח של מ"מ‬


‫הקמה של בסיסי הנתונים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫שקופית ‪40‬‬ ‫תכן ופיתוח של מ"מ‬


‫מיהם משתמשי ‪?DB‬‬
‫‪ ‬מעצבי בסיס הנתונים‬
‫‪ ‬מנתחי מערכות או מהנדסי תעו"נ‬
‫‪ ‬אחראים על הבנת הצרכים והדרישות מהמערכת‪ ,‬תכן תפיסתי‪/‬לוגי של בסיס‬
‫הנתונים ותרגומו בהתאם ל‪DBMS -‬‬

‫‪Database Administrator – DBA ‬‬


‫‪ ‬מנהל את בסיס הנתונים‪ :‬תכן פיסי‪ ,‬הכנה לשימוש‪ ,‬וכו'‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬מקים את בסיס הנתונים הראשוני‬


‫‪ ‬מנהל הרשאות גישה‬
‫‪ ‬אחראי לתחזוקה השוטפת‪ :‬מבצע שינויים בהגדרות‪ ,‬גיבויים‪.‬‬

‫‪ ‬מתכנתים‬
‫‪ ‬אחראים על פיתוח תוכניות המשתמשות בבסיס הנתונים‬

‫שקופית ‪41‬‬ ‫תכן ופיתוח של מ"מ‬


‫מודלים של נתונים‬
‫‪ ‬מודלים תפיסתיים‪/‬לוגיים משתמשים במונחים כגון ישויות‪ /‬עצמים‪,‬‬
‫שדות‪/‬תכונות וקשרים‬
‫‪ ‬מודל ישויות‪-‬קשרים )‪(Entity-Relation, ER‬‬
‫‪ ‬מודל טבלאי‪/‬רלציוני‬
‫‪ ‬מודל מכוון‪-‬עצמים (‪)Object-Oriented, OO‬‬
‫‪ ‬מודלים פיסיים מתארים את אופן אחסון הנתונים במערכת המחשב‪.‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬הגדרות טיפוסי נתונים ומבני הרשומות‬


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

‫שקופית ‪42‬‬ ‫תכן ופיתוח של מ"מ‬


‫שלבים עיקריים בהקמת מערכת ‪DB‬‬
‫‪ ‬הבנת הצרכים והדרישות מהמערכת‪.‬‬
‫‪ ‬תכן תפיסתי של בסיס הנתונים‪:‬‬
‫‪ ‬מודל זה מייצג את הבנת צרכי הנתונים של המערכת‬
‫‪ ‬מטרת שלב זה לארגן את הנתונים והקשרים ביניהם לצורה שמובנת על‬
‫ידי מנתח המערכות‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬מודל זה נטול אילוצים הנובעים ממערכת ‪ DBMS‬מסוימת‪ ,‬מאילוצי‬


‫חומרה או מכל אילוץ טכנולוגי אחר‬
‫‪ ‬דוגמא‪ :‬מודל ‪ER‬‬

‫‪ ‬תרגום המודל התפיסתי ללוגי בהתאם למערכת‬


‫‪ DBMS‬מסוימת‪:‬‬
‫במודל הטבלאי אין הורשה‬
‫‪ ‬דוגמא‪ :‬מודל טבלאי‬
‫שקופית ‪43‬‬ ‫תכן ופיתוח של מ"מ‬
‫שלבים עיקריים בהקמת מערכת ‪( DB‬המשך)‬
‫‪ ‬תכן פיסי של בסיס הנתונים‪:‬‬
‫‪ ‬ניתן לעצב מבנה לוגי מסוים במספר מבנים פיסיים שונים‬
‫‪ ‬המבנה הפיסי נועד לקצר את זמן התגובה ולנצל את נפח האחסון‬
‫‪ ‬פיתוח תוכניות המשתמשות בבסיס הנתונים‪:‬‬
‫‪ ‬תכנות בשפה עלית (כגון ‪)Visual Basic‬‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬ריכוז מספר פעולות ב‪( Stored Procedures-‬בשפת ‪)PL/SQL‬‬


‫‪ ‬הכנה לשימוש‪:‬‬
‫‪ ‬הקמת החומרה (לדוגמא‪ ,‬שרתים) והתוכנה (מערכת ה‪)DBMS -‬‬
‫‪ ‬אתחול נתונים‬
‫‪ ‬אחזקת בסיס הנתונים‪:‬‬
‫‪ ‬גיבויים‬
‫שקופית ‪44‬‬ ‫תכן ופיתוח של מ"מ‬
‫מתכן לוגי לתכן פיסי של בסיס הנתונים‬
‫‪ ‬לאחר סיום הייצוג הלוגי של בסיס הנתונים מתבצע תכנונו הפיסי‪.‬‬
‫לצורך כך יש להעריך את "עומס העבודה"‪:‬‬
‫‪ ‬מהן שאילתות השליפה העיקריות‪ ,‬באיזה תדירות מתבצעות? מהי כמות‬
‫הנתונים הנסרקת בכל שאילתה?‬
‫‪ ‬מהם העדכונים העיקריים‪ ,‬באיזה תדירות משתנים? מהם השדות המתעדכנים?‬
‫‪ ‬מהי רמת הביצועים הנדרשת לביצוע שאילתת שליפה או עדכון?‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫טבלת עובדים‬ ‫‪ %‬טבלה‬ ‫תדירות‬ ‫פעולה‬


‫כתובת‬ ‫שכר‬ ‫שם‬
‫)‪S(elect‬‬ ‫‪S‬‬ ‫‪S‬‬ ‫‪100‬‬ ‫חודשי‬ ‫דו"ח‬
‫תשלומים‬
‫)‪I(nsert‬‬ ‫‪I‬‬ ‫‪I‬‬ ‫‪0.1‬‬ ‫יומי‬ ‫הוספת‬
‫עובד‬
‫)‪U(pdate‬‬ ‫‪S‬‬ ‫‪10‬‬ ‫חודשי‬ ‫העלאת‬
‫שכר‬

‫שקופית ‪45‬‬ ‫תכן ופיתוח של מ"מ‬


‫שיקולים בתכן הפיסי של בסיס הנתונים‬
‫‪ ‬נפחי אחסון‪ .‬כמה מקום נצטרך?‬
‫‪ Partitions ‬או הקבצת הנתונים על הדיסק (‪)Clusters‬‬
‫‪ ‬לעיתים כדאי לחלק את הנתונים למספר חלקים כדי לשפר יעילות‪.‬‬
‫‪ ‬בבסיס הנתונים של בזק‪ ,‬לדוגמא‪ ,‬מחזיקים כל שנה בנפרד‪.‬‬
‫‪ ‬אילו אינדקסים להגדיר?‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬אינדקסים מאפשרים לשפר מאד את שליפת הנתונים‪.‬‬


‫‪ ‬אינדקסים מכבידים על עדכון הנתונים‪.‬‬

‫‪ ‬האם להשתמש בבסיס נתונים מרכזי או מבוזר?‬


‫‪ ‬בבסיס נתונים מבוזר ‪ -‬הנתונים יותר נגישים‪.‬‬
‫‪ ‬קל יותר לעדכן ולשמור על שלמות הנתונים‬
‫בבסיס נתונים מרכזי‪.‬‬
‫שקופית ‪46‬‬ ‫תכן ופיתוח של מ"מ‬
‫שלבים בתכן מבטי משתמשים‬
‫‪ ‬איתור קבוצות משתמשים‬
‫‪ ‬מיהם המשתמשים‪ ,‬מהי השתייכותם הארגונית ומהן מטלותיהם?‬
‫‪ ‬מהם המאפיינים של כל אוכלוסיית משתמשים?‬

‫‪ ‬איתור פונקציונליות המערכת הנדרשת עבור כל קבוצת‬


‫משתמשים‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫‪ ‬איתור הנתונים הנדרשים לשם קבלת הפונקציונליות של מערכת‬


‫המידע‬
‫‪ ‬מתן הרשאות בהתאם למאפיינים הנ"ל‪.‬‬
‫‪ ‬מבטי המשתמש מטופלים בדר"כ דרך‬
‫ממשק המשתמש‪.‬‬
‫שקופית ‪47‬‬ ‫תכן ופיתוח של מ"מ‬
‫לסיכום‪ ,‬תכן בסיס נתונים כולל‪:‬‬
‫תכן לוגי‪/‬תפיסתי‬
‫תכן פיסי‬
‫תכן מבטי משתמש‬
‫‪© 2003-2013‬איריס ריינהרץ‪-‬ברגר‬

‫וכעת נעבור ל‪...‬‬


‫מבוא ל‪ ,UML -‬דיאגרמות‬
‫נסיבות השימוש ומחלקות‬

‫שקופית ‪48‬‬ ‫תכן ופיתוח של מ"מ‬

You might also like