Download presentation
Presentation is loading. Please wait.
1
מערכות ניהול בסיסי נתונים
ד"ר שמעון כהן Version 1.2 הקריה האקדמית
2
מטרות הקורס להבין את הצורך במערכת לניהול בסיסי נתונים
להכיר את התיאוריה והמודלים השונים להבין את מבנה ודרכי העבודה של מערכת לניהול בסיס נתונים ללמוד לתכנן בסיסי נתונים "נכונים"/"שלמים" באנגלית Consistent להבין כיצד עובדים עם מערכת לניהול בסיסי נתונים הכנסת נתונים (Insert) , שינוי (Change) , מחיקה (Delete) שפת SQL לביצוע שאילתות (הוצאת ידע מהנתונים)
3
מבנה המצגת מבוא עבור ניתוח ועיצוב עבור המודל הטבלאי עבור
אלגברה טבלאית עבור
4
חומר הקורס החומר לפי סדר החשיבות: דברי המרצה בכיתה השקפים
ספר "בסיסי נתונים טבלאיים ושפת SQL" של רז הייפרמן חומר באינטרנט דרך קשרים (Links)
5
פרקים לקורס מהספר של רז הייפרמן
א 19 מושגי יסוד ב 78 ניתוח ועיצוב ג 150 מודלים קלאסים– רק סעיפים: 1, 2, 3.1 עד 3.3 ד 208 מודל טבלאי - מבוא ה 226 מודל טבלאי – אלגברה טבלאית ו 246 מודל טבלאי – שפת SQL (לא כולל סעיפים 6, 8) ז 310 מודל טבלאי – שפת QBE ח 325 מודל טבלאי - נושאים מתקדמים - רק סעיפים: 1, 2, 3, 4, 6, 6.1, 8, 9 ט 353 מערכות מבוזרות
6
מבנה הקורס מטלות: [4] ניתוח מודל נתונים [8] ייצור בסיס נתונים ושאילתות
[11] תיאוריה מפגשים: פתיחה ומבוא (פרק א) המשך מבוא (פרק א) ניתוח מודל נתונים (פרק ב) מודלים (פרק ג וקצת פרק ד) מודל טבלאי (פרק ד) אלגברה טבלאית/רלציונית (פרק ה) שפת SQL (פרק ו) שפת QBE "לפי דוגמא" (פרק ז) תיאוריה – תלויות (קצת מפרק ב) תיאוריה – עיבוד מקבילי (קצת פרק א) מודל טבלאי מתקדם (פרק ח) נושאים מתקדמים (פרק ט)
7
נושא ===== מבוא פרק א בספר
8
נתוני הארגון לכל ארגון משאבים שונים, אחד מהם הוא:
הנתונים (Data) והמיידע (Information) שבהם מחלקת המיידע/המחשוב מטפלת בנתונים נותנת שירותים לארגון וללקוחות שלו ניסיון למחשוב (דיגיטציה) של "כל" הנתונים צילומים, דפים, טפסים
9
מחלקת המיידע נתונים הארגון הנהלה שיווק ומכירות מחקר ופיתוח ייצור כספים
כוח אדם לוגיסטיקה מחלקת המיידע נתונים לקוחות
10
מטרות הארגון בטיפול בנתונים
נגישות (Accessibility) מהירה לכל הנתונים (למי שמותר) ניצול הקשרים בתוך הנתונים בטחון הגישה לנתונים (Data Security) עדכון במקום אחד (מניעת סרבול בעדכון) חסכון במקום, מניעת כפילויות (Duplications) חסכון בפיתוח תוכנה בטחון הקיום של הנתונים שלמות הנתונים (Data Integrity) אפשרות לעבודה במקביל (Parallel) אפשרות לעבודה באופן מבוזר (Distributed) קלות בתחזוקה (שדרוג הגדרות/מחשבים/דיסקים/תוכנה)
11
תפקידי מערכת ניהול בסיסי נתונים
ניהול הנתונים בצורתם הגולמית (פיזית על הדיסק) מתן שירותי תוכנה שיתנו תוקף למטרות
12
משתמשי מערכת ניהול בסיסי נתונים
המשתמשים: מנהל בסיס הנתונים (Database Administrator) תוכנה לניהול משתמשי קצה (End Users) ממשקים לתוכנה חיצונית לשימוש במיידע (הכתובה בשפת תכנות) שפות: C++, Java, VB, Cobol ממשקים (API: Application Program Interface) מערכת ה DBMS היא אובייקט (קופסא שחורה) ש: מנהלת את עצמה ואין למשתמש אפשרות להתערב, אלא... אפשר להגיש למערכת בקשות דרך ממשק שהיא מגדירה נקרא: Controlled Access
13
הגדרה: בסיס נתונים בסיס נתונים (DB: Data Base)
אוסף של סוגי נתונים שונים הקשורים ביניהם בקשרים לוגים דוגמא: נתונים: מרצים, סטודנטים, קורסים, מבחנים, ציונים, עבודות קשרים: מרצה מלמד בקורס סטודנט לומד בקורס בחינה שייכת לקורס במועד מסויים תלמיד ניגש לבחינה התלמיד מקבל ציון בבחינה
14
הגדרה: מערכת לניהול בסיסי נתונים
באנגלית: DBMS: Data Base Management System מערכת תוכנה המנהלת בסיס נתונים ומאפשרת גישה למספר רב של יישומים שונים בו זמנית יישומים פרטיים/ביתיים: VB, Access, PowerBuilder חברות ואינטרנט Oracle, MS SQL Server, Sybase, Informix חשיבות בסיסי נתונים בעולם עיבוד הנתונים / התוכנה? חברת אורקל היא חברת התוכנה השניה בגודלה בעולם ולה "רק" מוצר אחד.
15
הגדרה: מחולל יישומים מחולל יישומים (Applications Generator)
סביבת פיתוח המשלבת את כל הרכיבים הדרושים לפיתוח יישום מלא: שפת תכנות / שפת סקריפט (Script Language) שירותי עריכה (התכנית, מסכים, תפריטים ...) הרצת היישום ניהול הפרויקט מערכת בסיס נתונים למטרות כלליות: Access, Power Builder, VB, VC++ מיוחד לצורכי ארגון – מערכת ERP SAP, Baan, MRP
16
דימוי: DBMS ושאר העולם
17
מודל כללי של DBMS יישום יישום יישום יישום תת סכמה תת סכמה תת סכמה
תוכנת בקרה סכמה סכמה פנימית נתונים נתונים נתונים ספר עמ 32
18
הגדרה: סכמה פיזית סכמה פיזית: תאור המבנה הפיזי של הנתונים
באנגלית: Physical Schema כלומר: איפה נמצאים הנתונים (Storage Devices) קבצים בהם נמצאים הנתונים/מיקום על הדיסק צורת הארגון של הנתונים שימוש באינדקסים
19
סכמה פיזית סכמה פיזית:
20
הגדרה: אינדקס אינדקס: מבנה נתונים המאפשר גישה מהירה למבנה נתונים אחר לפי שדה/ות מסוים/ים נאמר: A הוא אינדקס של טבלה B לפי שדה F אינדקס לטבלת הסטודנטים לפי מספר תעודת זהות אינדקס לטבלת הסטודנטים לפי מספר סטודנט אינדקס לטבלת הסטודנטים לפי שם משפחה ושם פרטי צורה פנימית של אינדקס: עץ בינרי, עצי 2-3, Hash Table מאפשר גישה מהירה = במקום N גישה ב Log2(N) למשל חיפוש בטבלה של 1000 איש ללא אינדקס בממוצע 500 צעדים חיפוש בטבלה של 1000 איש עם אינדקס בממוצע 10 צעדים חיפוש בטבלה של מיליון איש ללא אינדקס בממוצע חצי מליון צעדים חיפוש בטבלה של מיליון איש עם אינדקס בממוצע 20 צעדים
21
אינדקס - מבנה פיזי 545 789 321 845 567 212 932 811 278 178
22
הגדרה: סכמה סכמה: התיאור הפורמלי המלא של כל הנתונים, הקשרים ביניהם והאילוצים הקיימים עליהם. באנגלית: Schema, Conceptual Schema, Global View התיאור – "נתונים על הנתונים" נמצא גם בבסיס הנתונים הפורמלי – לא כפוף לסכמה הפיזית (למשל: אוסף של טבלאות) מלא – טבלאות, שדות קשרים, אילוצים וכל הפרטים עליהם. כל – אין מקום אחר לחפש בו הגדרות ... קשרים (Relations) – מאפשרים הוצאת מיידע אילוצים (Constraints) – למשל: איזה ערכים מותרים בשדות, קיום ישויות, פרוצדורות פנימיות לשמירה על שלמות הנתונים (Stored Procedures)
23
הגדרה: תת סכמה תת סכמה: תאור ייחודי של סכמת הנתונים
באנגלית: Local View, Sub Schema, External View תאור ייחודי טבלאות טבלאות וירטואליות ("ככה אני רוצה לראות את זה") איחוד נתונים ממספר טבלאות מבט חלקי: חלק מהטבלאות, חלק מהשדות שדות בפועל (שם אחר) או שדות מחושבים (Computed) של סכמת הנתונים - בנוי על טבלה/הטבלאות הקיימות למשל תוכנית לטיפול בספר הטלפונים של החברה: טבלה עם שם העובד, מספר חדר, מספר טלפון פנימי בסכמה: טבלת עובד עם הרבה שדות, טבלה של מספרי טלפונים
24
תהליך ההגדרה הגדרת סכמה הגדרת תת סכמה הגדרת הסכמה הפיזית הגדרת הנתונים
סכמות תת סכמות אינדקסים הרשאות ספר עמ 38
25
הגדרה: קטלוג הנתונים קטלוג הנתונים: כל מרכיבי התיאור של בסיס הנתונים
באנגלית: Data Catalog, Meta-Data, אפשר גם: I2: Information about the Information ואפשר גם: I3 מאפשר לתוכנה לגשת נתונים (I1) לתיאור הנתונים (I2) – דוקומנטציה של המערכת הגדרות (למשל כלי Case שייצר את ההגדרות "אוטומטית") שינוים: כותרות, גודל, מבנה על מנת שהתוכנה תדע לקרוא את תיאור הנתונים (I2) הגישה לתיאור הנתונים (בדרך כלל) היא כמו לנתונים רגילים היא צריכה לדעת כיצד הם בנויים (I3) אומרים ש: בסיס הנתונים מגדיר את עצמו (Self-defined)
26
עקרון הפעולה של DBMS יישום שטח תקשורת שטח עבודה תוכנת בקרה FMS
מערכת ניהול הקבצים Buffer קטלוג נתונים נתונים ספר עמ 41
27
הגדרה: אי תלות פיזית אי תלות פיזית: היכולת לבצע שינויים במבנה הפיזי של הנתונים מבלי לשנות את תכניות היישום העברת הנתונים לדיסקים אחרים מבנה הקבצים והגישה לרשומות יצירת אינדקסים חדשים קבוץ (Clustering) רשומות לגושים (Blocks) ביזור (distributed database) הנתונים, שיכפול (Duplication) ספר עמ 46
28
הגדרה: אי תלות לוגית אי תלות לוגית: היכולת לבצע שינויים במבנה הלוגי של הנתונים מבלי לשנות את תכניות היישום הוספת שדות שינוי סדר השדות הוספת טבלאות יצירת קשרים בין טבלאות נאמר: "המערכת תומכת באי תלות פיזית/לוגית אם אפשר לבצע שינויים במבנה הפיזי/לוגי של הנתונים מבלי לשנות את תכניות היישום" התיאורים (סכמות) + התוכנה = מערכת ה DBMS --- אלו שמאפשרים את ה"קסם" הזה יש לזה מחיר בביצועים (מהירות החישוב) "יעני מסורבל" אם המערכת לא נותנת אי תלות אז יש לזה מחיר כבד בתחזוקה !!! ספר עמ 46
29
יתרונות המערכת שיתוף הנתונים (Data Sharing)
אמינות הנתונים (Data Integrity) זמינות הנתונים (Data Availability) סטנדרטיזציה גמישות אבטחת הנתונים (Data Security) עבודה בו זמנית (Concurrent Access) עבודה מבוזרת ספר עמ 68
30
חסרונות המערכת סיבוכיות (Complexity) ביצועים (performance) עלות
"בעיה“ של יצרני המערכת – Oracle, Microsoft, IBM ביצועים (performance) מחיר יקר לעבודה עם התיאורים השונים: פיזי, לוגי, מבט ביישומים רגישים לזמן (Time-Critical) יתכן ונבנה משהוא מיוחד (מאוד יקר) עלות רכישה, יישום, הטמעה, תחזוקה משאבי חומרה דורש הרבה זמן חישוב לא תמיד יעיל באחזקת הנתונים על הדיסק רגישות לתקלות בימים אלה לא ממש... מורכבות שחזור ספר עמ 68
31
נושא ===== ניתוח ועיצוב מודל הנתונים
פרק ב בספר
32
כיצד נגיע לסכמה? צריך תהליך של ניתוח ועיצוב (הבנת הבעיה ותכנון הפתרון)
33
תהליך הבניה של בסיס נתונים
ניתוח ועיצוב מודל הנתונים: הבנת הדרישות (Requirements) סיפור מעשה (בלשון פשוטה / מובנת ללקוחות) יצירת המודל תפישתי (Conceptual Model) של מנתח המערכת מובן לבני אדם (אפשר להציג ללקוחות) ללא תלות בסכמה הלוגית (מערכת מסוימת) ובסכמה הפיזית תכנון הסכמה הלוגית (עיצוב) תכנון הסכמה הפיזית
34
תהליך הבניה של בית מה עושה הארכיטקט? מבין את דרישות הלקוח
מכין מודל ממוחשב/קרטון/שרטוט אייך יראה הבניין מה יהיה בכל חדר לוודא ש: אני מבין מה הלקוח רוצה הלקוח מבין שאני מבין מה הוא רוצה מכין שרטוטים לקבלן יסודות / קורות / חשמל / מיים
35
מצד אחד הלקוחות, מצד שני בסיס הנתונים
הדרך מפה לשם מצד אחד הלקוחות, מצד שני בסיס הנתונים ובאמצע המתכנן ארכיטקט
36
הגדרה: מודל (בעברית "דגם")
"תאור מקורב של ישות" תאור – פיסי – קרטון, שולחן חול, מפה, אב טיפוס מסמך – הסבר, שרטוט מקורב – יותר קרוב = יותר פרטים, קשה לבנות, קשה להבין יותר רחוק = ... ישות – עצם פיסי, תהליך פיסי: מחשב, בית, שטח, מכונית תהליך – מערכת, כיצד עובד המחשב, כיצד נוסעת המכונית
37
הגדרה: מודל נתונים מודל נתונים מורכב משלושה חלקים M(S,C,O):
Structure מבנה הנתונים קבוצות של עצמים / ישויות כולל התכונות של כל ישות קשרים בינם Constraints אילוצים לכל סטודנט מספר מזהה יחיד ציונים תמיד בין 0 ל 100 Operators פעולות על הנתונים להפקת מיידע (Information) ספר עמ 81
38
הגדרה: קבוצה קבוצה: אוסף של עצמים, כל עצם מיוצג על ידי שורה (Tuple)של ערכים תיאורטית Tuple: (a1,a2,a3,a4) מעשית שורה בטבלה: (17887,Moshe, Levy,178,79,) ספר עמ 87
39
מושגים והגדרות קבוצה סופית / אין סופית חבר בקבוצה קבוצה ריקה
תת קבוצה / קבוצה חלקית זיהוי החברים בקבוצה על פי תנאי לוגי קריאה בשם (Enumeration) קבוצות זרות ספר עמ 87
40
פעולות על קבוצות קבוצה A וקבוצה B איחוד – אלו ב A יחד עם אלו ב B
משלים Ac (Complement) ביחס לכל העצמים כל אלו שאינם ב A קבוצת המכפלה: A x B (או מכפלה קרטזית) יצירת קבוצה מסוג חדש ובה זוגות = אחד מ A והשני מ B ספר עמ 87
41
יחסים בין קבוצות יחס – מושג מתורת הקבוצות
"יחס בממד N" הוא כאשר מכפילים N קבוצות יחס 1:1 מגדיר תת קבוצה של המכפלה לכל אחד מ A יש קשר רק לאחד מ B ולהפך "חלקי" אם לא לכל אחד ב B יש "חבר" ב A יחס 1:N מגדיר תת קבוצה של המכפלה לכל אחד ב A יש מספר "חברים" ב B, להפך רק אחד יחס N:M מגדיר תת קבוצה של המכפלה לכל אחד ב A או B יש מספר "חברים" בקבוצה השניה ספר עמ 87
42
מה בין מודל נתונים לתורת הקבוצות?
מודל נתונים מורכב משלושה חלקים M(S,C,O): Structure מבנה הנתונים קבוצות של עצמים / ישויות כולל התכונות של כל ישות קשרים בינם Constraints אילוצים קשרים: לכל סטודנט מספר מזהה יחיד ציונים תמיד בין 0 ל 100 Operators פעולות על הנתונים פעולות על קבוצה בודדת ובין קבוצות ספר עמ 81
43
שלב בבניה: הבנת הדרישות
סיפור המעשה מכסה את הנושאים הבאים: הלקוח / החברה הפעילות בחברה תפקיד המערכת הבעיות שהיא צריכה לפתור משתמשי במערכת, וכיצד ישתמשו בה (כללי) הישויות במערכת והקשרים בינן השימוש (פירוט) במערכת (Use Cases) לזכור: זה סיפור (טקסט) שממנו נרצה להמשיך הלאה
44
ספר טלפונים – דרישות סיפור פשוט של מערכת פרטית: הלקוח: אני
הפעילות – קשר עם החברים תפקיד המערכת הבעיות שהיא צריכה לפתור לזכור את כל הפרטים על החברים לרכז את הכל במקום אחד לאפשר לי למצוא במהירות כתובות וטלפונים חיפוש לפי קריטריונים שונים: פרטים אישים משתמשי במערכת, וכיצד ישתמשו בה (כללי) רק אני אשתמש, כיצד (ראה "תפקיד המערכת")
45
ספר טלפונים – דרישות – ישויות
הישויות במערכת והקשרים בינן המערכת צריכה לזכור את פרטי האנשים: שם פרטי, שם משפחה, מין, הערה, כתובת ומספרי טלפון. השמות יכולים להיות בעברית או באנגלית ואורכם לא יעלה על 20 תווים. לכל אדם כתובת אחת הכתובת כוללת את שם העיר, שכונה, רחוב, מספר בית, מספר דירה, קומה, זיפ-קוד לכל אדם כמה מספרי טלפונים כוללים: טלפון, סלולארי, זימונית כל מספר כולל קידומת והמספר
46
ספר טלפונים – דרישות – שימוש א
פרוט השימושים במערכת (Use Cases) עדכון אנשים הכנסה ועדכון של רשימות האנשים עם כל הפרטים שלהם, המערכת תבדוק אם יש כבר אדם כזה ותאפשר להכניס מספר אנשים עם אותו שם. לכל בן אדם אפשרות לרשום טלפון אחד או יותר
47
ספר טלפונים – דרישות – שימוש ב
פרוט השימושים במערכת (Use Cases) חיפוש נתונים של אדם חיפוש לפי שפה (עברית או אנגלית) ואחר כך אלפון (לפי אות) שיראה את האנשים ששם משפחתם מתחיל באות מסוימת או טווח של אותיות. חיפוש לפי ארץ ועיר חיפוש לפי קריטריון כללי על ערכים: פירטי האדם, פירטי הכתובות והטלפונים התשובה לחיפוש יכולה להיות קבוצה של אנשים
48
ספר טלפונים מורכב – דרישות
סיפור פשוט של מערכת פרטית: הלקוח: אני הפעילות – קשר עם החברים/לקוחות שלי תפקיד המערכת הבעיות שהיא צריכה לפתור לזכור את כל הפרטים על החברים לרכז את הכל במקום אחד לאפשר לי למצוא במהירות כתובות וטלפונים חיפוש לפי קריטריונים שונים: פרטים אישים, סוג הקשר משתמשי במערכת, וכיצד ישתמשו בה (כללי) רק אני אשתמש, כיצד (ראה "תפקיד המערכת")
49
ספר טלפונים מורכב – דרישות – ישויות
הישויות במערכת והקשרים בינן המערכת צריכה לזכור את פרטי האנשים: שם פרטי, שם משפחה, מין, הערה, כתובות ומספרי טלפון. עם כל אדם יש לי קשר: חבר, לקוח, ספק, עובד השמות יכולים להיות בעברית או באנגלית ואורכם לא יעלה על 20 תווים. לכל אדם בדרך כלל כתובת אחת אבל לפעמים יותר: פרטי, שכירות, הורים, משרד הכתובת כוללת את שם העיר, שכונה, רחוב, מספר בית, מספר דירה, קומה, זיפ-קוד לכל אדם כמה מספרי טלפונים בארץ ובעולם וכוללים: טלפון בכתובת, סלולארי, זימונית כל מספר כולל את הארץ, קידומת עיר, המספר, מספר השלוחה מספרי טלפון יכולים לכלול ספרות, אותיות, סימני פיסוק ורווחים הייתי רוצה לתחזק ברשימות את: הארצות, הערים והקידומות שלהם כדי ש בזמן השימוש אוכל לבחור ולהימנע מתקתוק כל פעם מחדש
50
ספר טלפונים מורכב – שימוש א
פרוט השימושים במערכת (Use Cases) עדכון רשימות הכנסת רשימות של ארצות, ערים וקידומות – אני רוצה לראות איזה כבר יש לי ולהכניס רק חדשים. אני רוצה שיהיו ממוינים לפי הארץ ואחר כך להכניס עיר ולעדכן קידומת הכנסת רשימות ("פענוח" Decoding) של סוגי אנשים וסוגי כתובת עדכון אנשים הכנסה ועדכון של רשימות האנשים עם כל הפרטים שלהם, המערכת תבדוק אם יש כבר אדם כזה ותאפשר להכניס מספר אנשים עם אותו שם.
51
ספר טלפונים מורכב – שימוש ב
פרוט השימושים במערכת (Use Cases) חיפוש נתונים של אדם חיפוש לפי שפה (עברית או אנגלית) ואחר כך אלפון (לפי אות) שיראה את האנשים ששם משפחתם מתחיל באות מסוימת או טווח של אותיות. חיפוש לפי ארץ ועיר חיפוש לפי קריטריון כללי על ערכים: פירטי האדם, פירטי הכתובות והטלפונים התשובה לחיפוש יכולה להיות קבוצה של אנשים
52
שלב בבניה: יצירת המודל תפישתי
יצירת המודל התפישתי (Conceptual Model): הגדרת הישויות (Entities) וקבוצות של ישויות הגדרת התכונות (Attributes) של הישויות הגדרת הקשרים (Relations) שרטוט דיאגרמת הישויות והקשרים באנגלית: ERD – Entity Relation Diagram ספר עמ 96
53
הגדרה: ישות = עצם ישות / עצם: משהו ולו ידע
מחלקה/קבוצה של עצמים – הגדרה של אוסף עצמים בעלי אותן תכונות והמצייתים לאותם חוקים. ישות במודל נתונים: ישות שהמערכת תזכור את תכונותיה ספר עמ 96
54
המודל התפישתי - ישויות זיהוי ישויות (מהדרישות)
עצם – מטוס, צק/המחאה, טלפון, עיר עצם מופשט – קורס, מבחן, הזמנה בעל תפקיד - לקוח, ספק, מורה, תלמיד אירוע – טיסה, נפילת מתח, מכירה פרוט – הגדרה, תאור או סטנדרט הגדרה של בוגר תואר הגדרה של תכונות מכונית ספר עמ 96
55
מבחן לזיהוי ישויות כיצד נדע שהגדרנו נכון קבוצה של ישויות
אחידות - האם כל הישויות ממש דומות (אותם תכונות ואותם חוקים) אפשרות לפיצול למספר סוגים (עץ ירושה) האם הישות היא יותר מתכונה -משקל, -מס תעודת זהות, ?כתובת, ?מספר טלפון, +בן אדם האם מופיע המילה "או" בהגדרה אם ההבדל בערך של תכונה אז לא ממש משנה האם הגדרנו על ידי רשימה ספר עמ 96
56
המודל התפישתי - תכונות לכל תכונה מרחב ערכים (Domain) שהתכונה יכולה לקבל הגדרה על ידי רשימה הגדרה על ידי טווח ערכים הגדרה על ידי כלל/תכונה הגדרה על ידי טבלת פענוח הגדרה על ידי דמיון לתכונה אחרת אפשר שילוב של ההגדרות ספר עמ 98
57
המודל התפישתי – סוגי התכונות
סוגי התכונות: שמית – שם פרטי, שם משפחה מזהה – באופן יחיד למשל: מספר תעודת זהות, מספר חבר התייחסות – מזהה קשר לישות אחרת תיאורית – מתארת תכונה של הישות מפתח (Key) אחת או יותר תכונות המזהות את הישות באופן יחיד אי אפשר לסלק אף שדה מבלי לפגוע בתכונה הקודמת חשוב: יתכנו מספר מפתחות שונים לישות ספר עמ 98
58
המודל התפישתי – תכונות לתכונות
תכונות לתכונות: סוג התכונה: מספרי, טקסטואלי, בולאני (כן/לא), אובייקט (תמונה, הקלטה...) שדה מחושב (Computed) = נוסחה המבוססת על תכונות אחרות למשל: תכונה "גיל" מחושבת מהתכונה "תאריך לידה" אופציונלי/חובה (Mandatory/Optional) אם אופציונלי = אפשרות לערך ריק (Null) אם חובה = אפשרות לערך "ברירת מחדל" (Default Value) תחום (ערכים מותרים )
59
המודל התפישתי – תכונות לתכונות
תכונות לתכונות: לערך טקסטואלי = מותר/אסור ערך של שדה באורך אפס "שם פרטי"=אסור, "תאור כללי"=מותר שרשרת באורך אפס פורמט להצגה, דיוק עשרוני (למספרים) תבנית להקלדה כותרת לתכונה להצגה (Caption) אורך (לשדה טקסטואלי = ברור? = עד 255, עד 64K או יותר) לשדה מספרי = נקודה צפה?, טווח +/- (Byte, Integer, Long, Single, Double) חשוב לדעת מהלקוחות כבר בשלב הניתוח, כי!!! הם אלו שיודעים את התשובות
60
מלון נתונים - תכונות נכין טבלה ובה השדות (* סימן לחובה) שם התכונה *
סוג התכונה * (T=טקסט, M=טקסט ארוך מ 128, N=מספר, B=בולאני, E=רשימה) דומה לשדה אחר כותרת לתכונה להצגה * אורך * מספרים: B=עד 127 I=32000, L=שלם גדול, F=נקודה צפה, D=מספר צף גדול מותר/אסור ערך של שדה באורך אפס * פורמט להצגה (חובה למספרים) תבנית להקלדה תחום (ערכים מותרים ) *
61
מלון נתונים - ישויות שם הטבלה ומתחת רשימת השדות
שם התכונה * (בדרך כלל כשם תכונה במילון הנתונים הכללי) דומה לתכונה אחרת (ראה מלון הנתונים הכללי של התכונות) תכונה מחושבת – הנוסחה לחישוב מתכונה אחרת (תכונות) אופציונלי/חובה * - האם חייב להיות לו ערך ? (טקסטואלי) אפשרות ל"עלות" על שאר התכונות
62
תכונות לתכונות – כיצד נרשום 2
נכין טבלה כללית של כל התכונות בכל הישויות נכין לכל ישות טבלה ובה התכונות של הישות שימוש ב"דומה לשדה" אפשרות ל"ערך עולה" (Override) = מיוחד לשדה תפקיד התכונה בישות שדה מפתח עיקרי (PK: Primary Key) שדה התייחסות (לישות אחרת) (FK: Foreign Key)
63
הגדרה - קשר קשר: יחס בין אובייקט/ים מקבוצה אחת לאובייקט/ים מקבוצה אחרת (או אפילו אפשרות לאותה קבוצה) ספר עמ 96
64
המודל התפישתי – סוגי הקשרים
אונרי (רפלקסיבי) למשל: "אדם א הוא הורה של אדם ב" תיקיית א (Directory) מכילה את תיקיה ב בינרי למשל: מרצה מלמד קורסים, סופר כותב ספרים טרינרי ספק מספק את הפריט לפרויקט שחקן משחק את התפקיד בסרט ספר עמ 96
65
המודל התפישתי – קשרים על תנאי
לעיתים הקשרים הם על תנאי (Conditional) כלומר: לא כל ישות מהקבוצה (א או ב) משתתף בקשר עיר הבירה של ארץ לכל ארץ עיר בירה אבל לא כל עיר היא עיר בירה הסטודנט משאיל ספרים
66
המודל התפישתי – "עוצמת" הקשר
עוצמת הקשר (Cardinality) שונה מכל כיוון סוגים באופן כללי (נקרא Functionality) 1:1 1:N N:M כאשר משתמשים בגבולות עליון ותחתון נקרא Cardinality ספר עמ 105
67
המודל התפישתי – "עוצמת" הקשר
(0,1) בירה של (1,1) ארץ עיר אפס מבטא על תנאי מספר קשרים בין ישויות מאותן קבוצות מרצה בשנת שבתון לא מלמד אף קורס רבים לרבים (1,1) חלק מ (1,N) ארץ ישוב (0,N) מלמד (1,1) קורס מרצה (0,N) הורה של (0,2) אדם אדם (0,N) כתב (1,N) ספר סופר ספר עמ 103
68
המודל התפישתי – קשר משולש
אפס מבטא על תנאי מרצה שנת שבתון יחס אונרי (0,N) (0,N) משחק ב סרט שחקן (0,N) תפקיד ספר עמ 105
69
הצד עם ראש החץ המלא הוא הצד של הישות הראשית
תת ישות (Sub Entity) הגדרה: ישות א נקראת תת ישות של ישות ב" אם קיום א תלוי בקיום ב (קוראים לזה גם: תלות קיומית) (1,1) חלק מ (0,N) לקוח הזמנה הצד עם ראש החץ המלא הוא הצד של הישות הראשית (1,1) חלק מ (0,N) הזמנה פריט לא !!! תת ישות: נרצה לזכור את נתוני הפריט כי הם חשובים גם אם לא חלק מהזמנה מעניין: יש נתונים שצריך לזכור על הקשר
70
המודל התפישתי – תכונות הקשר
(1,1) חלק מ (0,N) הזמנה פריט תכונות הקשר: כמות מחיר/הנחה בדומה לתיאור תכונות הישות = נרשום טבלה המתארת את תכונות הקשר
71
המודל התפישתי – תלות בזמן
יש יחסים התלויים בזמן למשל "עובד ב" השאלה שנשאל את עצמנו: האם חשוב לנו לזכור את ההיסטוריה של הקשר בזמן? אם כן: נשנה (נגביר) את עוצמת הקשר נוסיף שדה (התחלה) /שדות (טווח) של זמן דוגמא: אדם עובד בפרויקט קשר ללא היסטוריה (0,1) === (1,N) קשר (0,N) === (1,N) ותכונות לקשר: מתאריך עד תאריך
72
קשר – איך נזהה ? זיהוי הקשר: הכלה/חלק מ פעולה / אינטראקציה
כמו במשפט: "א הוא חלק מ ב", א כולל את ב" "א הוא בעל של ב" תלות קיומית: "כל א הוא חלק מ ב אחד" פעולה / אינטראקציה כמו במשפט: "א פעל על/ב/עם/את ב", "הטייס מטיס את המטוס", "הרוכב רכב על הסוס", הנהג נהג במכונית"
73
קשר "סוג של" (IS-A) נקרא גם: קשר ירושה (Inheritance)
קשר סוג – תת סוג (Type – Sub/Type) הגדרה: נאמר שישות מקבוצה א היא סוג של ישות מקבוצה ב אם לישות א כל התכונות של ישות ב, ואולי יותר. לעתים אותן תכונות אבל קשרים אחרים ספר עמ 101
74
קשר "סוג של" - דוגמאות מכונית היא סוג של כלי רכב
אופנוע הוא סוג של כלי רכב סטודנט הוא סוג של אדם מרצה הוא סוג של אדם עובד הוא סוג של אדם עגבנייה, מלפפון הוא סוג של ירקות אלון, שיטה הם מסוג של עץ עצים וירקות הוא סוגים של צמחים
75
קשר "סוג של" - דוגמאות הכללה (Generalization) – מלמטה למעלה
אדם הכללה (Generalization) – מלמטה למעלה פרוט (Specialization) – מלמעלה למטה סטודנט עובד ספרן מרצה בודק תרגילים
76
המודל התפישתי – דיאגרמה
דיאגרמת הישויות והיחסים כוללת: שרטוט שם המערכת ישויות (מלבנים) קשרים רגילים שם הקשר (מעוין או אליפסה) אם יש תכונות אז לעטוף במלבן "עוצמת“ (Cardinality) הקשר תלות קיומית – חץ עם ראש מלא "סוג של" קו חוצה טבלת כל התכונות (ראה) טבלת התכונות לכל ישות תכונות מפתח ראשי (PK) סימון שדות זרים (FK) תאור מילולי של אילוצים נוספים
77
תהליך הבניה – סיכום ביניים
דרישות מודל תפישתי סכימה לוגית סכימה פיזית ראיונות תרחישים מודל מקומי N מודל מקומי 1 מודל תפישתי ERD מודל לוגי טבלאי, היררכי, רשתי מודל פיזי קבצים, אינדקסים ספר עמ 145
78
ספר טלפונים פשוט - ERD טלפון חבר כתובת (1,1) (0,N) אפשר להשיג ב (1,1)
גר ב (1,1) כתובת
79
טלפונים פשוט – מילון נתונים - תכונות
שם סוג כותרת אורך אפס אחרים FirstName T שם פרטי 20 N פונט עברי LastName שם משפחה Sex B מין - פורמט: "זכר"/"נקבה" Age גיל פורמט: מספר שלם Comment M הערה Y City עיר Address כתובת 100 תחום: שרשרת לפי הסדר - שכונה, רחוב, מספר בית, מספר דירה, קומה, זיפ-קוד PhoneType E סוג טלפון תחום: {בית, עבודה, סלולרי, זימונית} PhoneArea קידומת 2 תחום: 1-2 ספרות (לא כולל את האפס) PhoneNum מספר 7 תחום: בין 6 ל 7 ספרות BirthDate D תאריך לידה ראה תאור
80
טלפונים – מלון נתונים - ישויות
ישות: חבר (FRND = Friend) שם דומה ל חובה אחרים FRND_FirstName FirstName Y פונט עברי FRND_LastName LastName FRND_Sex Sex פורמט: "זכר"/"נקבה" FRND_BirthDate BirthDate אפשר להסתפק בשנת לידה FRND_Age Age פורמט: מספר שלם, מחושב מ BirthDate FRND_Comment Comment N טקסט חופשי ראה תאור
81
נושא ===== מודל הטבלאי פרק ד בספר ספר עמ 208
82
הגדרה: מודל טבלאי מודל נתונים יחסי (Relational Model) או טבלאי מורכב מאוסף של יחסים/טבלאות טבלה: אוסף של של אברים R(d1, d2,,, dn) כך שכל dx שייך ל Dx, שהוא תחום בעברית: כל איבר ביחס (שורה בטבלה) מייצג אובייקט וביחד קבוצה של אובייקטים כל d הוא בעצם עמודה שערכיה נלקחים מתחום מסוים D עמודה בטבלה מתארת תכונה של האובייקט ספר עמ 212
83
הגדרה: מודל טבלאי - המשך
טבלה מקיימת את התכונות הבאות סדר העמודות אינו חשוב לכל עמודה שם שונה הערך אינו נקבע על פי המיקום סדר השורות בטבלה אינו משנה לכל סידור (מיון) משמעות אין שתי שורות זהות אם "קשה" לנו עם הדרישה אז נגדיר שדה "מזהה יחיד" כל ערך הוא פשוט ללא מבנה פנימי (לא רשימה של ערכים, או הררכיה) ספר עמ 213
84
מודל טבלאי כזכור מודל נתונים מורכב משלושה חלקים M(S,C,O)
מבנה – הטבלאות והתכונות אילוצים (קשרים) כיצד מגדירים קשרים ? ("עמודות משותפות") פעולות מה הם הפעולות על הטבלאות ? (SQL)
85
מודל טבלאי - מפתחות זיהוי יחיד (Unique) של אובייקט (שורה)
מפתח פשוט (שדה אחד) /מורכב (מספר שדות) מפתח ראשי (Primary Key) מפתח אפשרי (Candidate Key) מפתח זר (Foreign Key) ספר עמ 216
86
מודל טבלאי – הגדרת הקשרים
קשר בין שתי טבלאות נוצר ("אוטומטית") כאשר יש שתי עמודות (אחת בכל טבלה) שלהן אותו מרחב ערכים. כלומר !!! אם נוסיף טבלה חדשה היא "מתקשרת" לטבלאות הקיימות "ללא מאמץ" למשל: הקשר "עובד ב" "מספר מחלקה" בטבלת ה"מחלקות" "מספר מחלקה" בטבלת ה"עובדים" למשל: הקשר "אפשר להשיג בטלפון" "מספר סידורי“ בטבלת "חבר" "מספר סידורי של חבר" בטבלת "טלפון"
87
מעבר ממודל תפישתי ללוגי (טבלאי)
ישויות לטבלאות אם יש חשש לשורות שוות אז נוסיף שדה מזהה "מלאכותי" אם אין מפתח אחד לפחות יחסים? היישום תלוי ב"עוצמת" (Cardinality) הקשר דרכי פעולה הוספת שדה "מקשר" (Reference Field ) או (Foreign Key) הוספת טבלה ובה מפתחות שני הצדדים
88
מעבר ממודל תפישתי ללוגי - יחסים
יחסים? 1:1 (1,1) = (1,1) – רכב ותעודת ביטוח (שדה מקשר באחד מהצדדים) (0,1) = (1,1) – ארץ ועיר בירה (שדה מקשר בארץ) (1,0) = (1,0) – נשוי (טבלה מקשרת) 1:N (0,1) = (1,N) – שחקן בנבחרת המכללה (טבלה מקשרת) (1,1) = (1,N) – עובד שיך למחלקה (שדה מקשר בעובד) N:M סטודנט לומד בקורס (טבלה מקשרת)
89
מעבר ממודל תפישתי ללוגי - יחסים
קשר עם תכונות במידה ויש תכונות לקשר נגדיר אותו כטבלה למשל: עובד משתתף בפרויקט משתתף (תכונות הקשר): תאריך התחלה, מספר שעות
90
נושא ===== אלגברה טבלאית
פרק ה בספר ספר עמ 226
91
אלגברה טבלאית מאפיינים: אוסף של פעולות (Operators) על טבלאות
אופרטור אונרי (Unary Operator) פועל על טבלה אחת כמו ש"העלאה בריבוע" פועל על מספר אחד אופרטור בינרי (Binary) פועל על שתי טבלאות כמו ש + מחבר שני מספרים התוצאה !!! טבלה !!! מסקנה: נוכל להפעיל אופרטור על התוצאה (כמו עם מספרים ) וחוזר חלילה ספר עמ 228
92
אלגברה טבלאית - פילוסופיה
מבוססת על מתמטיקה ומגדירה באופן ברור את: המרכיבים של הביטוי התנאים שכל מרכיב צריך לקיים המשמעות של כל אופרטור התוצאה תוצאה: חוסר תלות במחשב, בבסיס הנתונים ובשפת התכנות/השאילתות בפועל: השטח בחר ב SQL ספר עמ 228
93
בטויי טבלאות הביטוי : E = ((( A q B) p) r B) A B q r C E p D
94
אלגברה טבלאית – אופרטורים אונריים
אונריים: בחירת שורות (Select) בחירה לפי תנאי כל השורות שמקימות תנאי מסוים – כל התלמידים ששמם מתחיל ב "כ" בחירת עמודות – היטל (Project) יצירת טבלה חלקית – חלק מהעמודות כי זה מה שמעניין / מבט פרטי (View) ומה אם נוצרו כפילויות? ספר עמ 229
95
אלגברה טבלאית – אופרטורים
בינריים צירוף (Join) – יצירת טבלה בעלת מבנה שונה צירוף שתי טבלאות – העמודות משתי הטבלאות בדרך כלל על בסיס עמודה משותפת – תנאי שוויון או אחר איחוד (Union) – חיבור שתי טבלאות ליצירת טבלה ארוכה איחוד שתי טבלאות בעלות אותו מבנה איחוד השורות משתי הטבלאות חיסור טבלאות (Minus) – חיסור השורות של טבלה ב מטבלה א חיתוך טבלאות (Intersection) – רק השורות שגם בטבלה א וגם בטבלה ב ספר עמ 232
96
אלגברה טבלאית – צירוף (Join) א
צירופי טבלאות ליצירת טבלה במבנה חדש צירוף (Join) – כל העמודות משתי הטבלאות שוויון בין ערכים של עמודה מטבלה א לעמודה מטבלה ב צירוף טבעי (Natural Join) - כנ"ל אבל מופיעה רק עמודה אחת צירוף חיצוני (Outer-Join) השורות מטבלה א מצורפות על בסיס שוויון (שתי עמודות) לשורות מטבלה ב משתתפות גם השורות האחרות בטבלה א (שאין עם מי לצרף בטבלה ב) בשדות שאינם יש ערך רייק (Null) ספר עמ 234
97
אלגברה טבלאית – צירוף (Join) ב
מכפלה קרטזית (Product) כל שורה מטבלה א מצטרפת לכל השורות מטבלה ב מספר השורות בטבלת התוצאה היא מכפלה בדרך כלל מוסיפים תנאי ל"קיצוץ" במספר השורות דוגמא: כל התלמידים שאפשר ל"שדך" צירוף של טבלת הסטודנטים לעצמה = כל הזוגות האפשריים תנאי "מצב משפחתי" של צד א אינו "נשוי" והוא "גבר" "מצב משפחתי" של צד ב אינו "נשוי" והיא "אישה" ספר עמ 240
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.