236363 מערכות מסדי נתונים

16
1 236363 םםםםםם םםםם םםםםםם1 . םםםםם םםםםם: םםםם םםםם םםםםם םםםםםםם: םםםם םםםםםם

Upload: jackson-rowe

Post on 04-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

236363 מערכות מסדי נתונים. 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה. ברוכים הבאים !. מרצה: אמיר שפילקה חדר 521, טלפון 4907 דוא"ל: [email protected] שעת קבלה: בתאום מראש מתרגל מוביל: נדב שרגאי חדר 214, טלפון 3821 דוא"ל: [email protected] - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 236363 מערכות מסדי נתונים

1

236363מערכות מסדי נתונים

. הקדמה1

אלדר פישרשקפים:עריכה ותוספות: אמיר שפילקה

Page 2: 236363 מערכות מסדי נתונים

2

ברוכים הבאים !אמיר שפילקהמרצה:

4907, טלפון 521חדר [email protected]דוא"ל:

שעת קבלה: בתאום מראש

נדב שרגאימתרגל מוביל: 3821, טלפון 214חדר

[email protected]דוא"ל: 14:30שעת קבלה: יום שלישי

אירינה לווהבודקת:2997, טלפון 415חדר

[email protected]דוא"ל: שעת קבלה: בתאום מראש

מבחן סופי )חומר סגור(80%חישוב הציון: תרגילי בית20%

Page 3: 236363 מערכות מסדי נתונים

3

נושאי הקורסהקדמה א.

ERתרשימי ב.

אלגברה רלציונית כשפת שאילתה ג.

תחשיב רלציוני כשפת שאילתה ד.

Datalogשפת המודל הלוגי ה.

שיקולי תלויות פונקציונאליות בתכנון מסד הנתונים ו.

צורות נורמאליות בהינתן תלויות פונקציונאליות ז.

XQuery ו-XPath ושפות השאילתה XMLשפת ח.

SQLשפת השאילתות תילמד בתרגול::)לא חובה בסמסטר זה(לימוד בקריאה עצמית

ODLשפת הגדרת המידע .OQLושפת השאילתות

Page 4: 236363 מערכות מסדי נתונים

4

מסדי נתוניםמערכת ניהול מסדי נתונים

(DBMS ─ Database management system )היא מערכת המיועדת לנהל מאגרי נתונים גדולים.

מערכת כזו תהיה אפקטיבית כאשר מדובר באוספים של נתונים המסודרים לפי מבנה לוגי קבוע, שגודלו קטן יחסית

לכמות הנתונים הכוללת.

דוגמא: מאגר נתונים של בנק.

כל נתון שייך לאחד ממספר קבוע של "סוגים" ─ פרטים אישיים של לקוח, פרטים אישיים של עובד, העברה כספית בחשבון

לקוח . . .

עם זאת, מספר הנתונים מכל סוג )למשל, מספר ההעברות הכספיות הכולל( הוא מאוד גדול.

Page 5: 236363 מערכות מסדי נתונים

5

מערכת ניהול מסדי נתוניםמערכת לניהול מסדי נתונים מורכבת מהאלמנטים הבאים:

. DB: דרך יצוג הנתונים ב- מודל הנתונים•מטרת המודל היא לתרגם את הידע/מידע שבשימוש למודל

מתמטי עליו ניתן לבצע מניפולציות ולשאול שאילתות.: מאפשרת חיפוש יעיל בקבצים.מערכת לניהול קבצים•.DB. מאפשרת לשלוף מידע מה- SQL: למשל שפת שאילתות•.DB: כלי שנועד למנוע כשלים ב- בקרת מקבילות והתאוששות•

למשל ששני משתמשים שונים לא יכתבו בו זמנית לאותו תא זיכרון.

נועד לאפשר התאוששות מנפילות.: כלי הבודק שכל הנתונים המסד אימות שלמות המידע•

מקיימים תנאים לוגים מסוימים )למשל שת"ז היא מספר(: כלי המאפשר ליצור מגבלות על הרשאות גישה.בטחון המידע•

Page 6: 236363 מערכות מסדי נתונים

6

מסדי נתונים ─ הרמות העליונות

: כל משתמש רואה מבט )חלקי( על המסד. רמת המשתמש

משתמשים שונים יכולים לראות מבטים שונים, ואלו לא בהכרח

משקפים את ארגון הנתונים הפיזי במסד.

)בעקבות ניתוח צורכי היישום(: כוללת הגדרת מבנה מסד הנתונים

את המבנה הלוגי של הנתונים והקשרים ביניהם. מתבצעת בדרך

DDL )Data Definitionכלל באמצעות שפת הגדרת נתונים,

Language(.

Page 7: 236363 מערכות מסדי נתונים

7

הרמות העליונות ─ המשך להפקת מידע מהמסד )באמצעות (Queriesביצוע שאילתות )

התוכנות המורצות מעל המסד(: עבור שאילתה הכתובה בשפת שאילתות מתאימה, המסד יפלוט פלט מתאים )בד"כ בצורת

טבלא(.

: הוספה, מחיקה ועדכון של פרטים. לשפה לביצוע שינוי נתונים DML )Data Manipulationשאילתות ושינויים קוראים

Language(.

לעיתים, נרצה גם לשנות את המבנה הלוגי של המסד לאחר שכבר אוחסנו בו נתונים )למשל ─ בעת התרחבות ארגונית של

חברה(.

Page 8: 236363 מערכות מסדי נתונים

8

מסדי נתונים ─ אספקטים נוספיםברמות התחתונות: יש לתרגם את הגדרות הנתונים לתכנון הולם

של מבני הקבצים המאוחסנים פיזית על הדיסק. בהינתן שאילתא, יש לתרגם אותה לאלגוריתם יעיל לשליפת הנתונים

מהקבצים.

בנוסף, יש לממש עבור מסד הנתונים בקרת גישה )לפי הרשאות המשתמשים(, בקרת מקביליות )עבור מסדים הנגישים למספר

משתמשים בו זמנית(, אבטחת עמידות המידע בנפילות של המערכת . . .

אספקטים אלו הם מחוץ לתחום של קורס זה.

Page 9: 236363 מערכות מסדי נתונים

9

מודלים למסדי נתוניםישנן מספר גישות לתכנון מסד נתונים.

מודלים הסטורים שלא ילמדו המודל המדרגי ומודל הרשת:בקורס זה. במודלים אלו הקשר בין האובייקטים השונים במסד

(.pointersהנתונים נעשה באמצעות מצביעים )

האובייקטים מסודרים בטבלאות. קשר בין המודל הרלציוני:רשומות מטבלאות שונות יזוהה ע"י זהות בערכים מתאימים

בטבלא. מרבית הקורס תוקדש למסדי נתונים הבנויים לפי מודל זה.

כלי חשוב בניתוח דרישות ובבניית (:ERמודל ישות ─ קשר )סכימה למסד נתונים רלציוני. במובן מסוים נמצא "רמה אחת

מעל" המודל הרלציוני.

דומים למסדי (:object orientedמסדי נתונים מכווני עצמים )(.OOPנתונים רלציונים, בתוספת רעיונות מתכנות מכוון עצמים )

Page 10: 236363 מערכות מסדי נתונים

10

ייצוג ע"י טבלאנניח שאנו רוצים לייצג אוסף של אובייקטים מסוג מסוים

)למשל: ברצוננו לאסוף נתונים על שחקני קולנוע(ושבידינו רשימה של תכונות שערכיהן מאפיינות כל אובייקט

)למשל: שם, תאריך לידה, וסרט ראשון(.

אנו נוכל להביט על אוסף האובייקטים כטבלא, שבה כל שורה מתאימה לאובייקט, וכל עמודה מכילה את הערכים של כל

האובייקטים עבור תכונה אחת.

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

יותר במסד מתייחסות אל הנתונים.

נתגלה בסרט תאריך לידה שם

הכרכרה 26.5.1907 ג'ון ויין

ג'ונגל האספלט 1.6.1926 מרילין מונרו

Page 11: 236363 מערכות מסדי נתונים

11

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

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

שם

)מחרוזת(

תאריך לידה

26.5.1907ג'ון ווין,

1.6.1926מרילין מונרו,

Page 12: 236363 מערכות מסדי נתונים

12

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

מידע יהיו מאותו "סוג", זאת אומרת שתהיה לכולם אותה רשימת מאפיינים ורק ערכי המאפיינים יבדילו ביניהם.

כל אובייקט יתאפיין דוגמא: רשימת קבצים מוזיקלים להשמעה.( וזמן ...mp3/ogg/wmaע"י שם השיר, שם הקובץ, הפורמט )

הנגינה.

במקרים כאלה אין החלטות קשות ברמת הארגון הכללי של המסד ─ כל הנתונים יאורגנו כטבלא אחת, שתמומש על

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

Page 13: 236363 מערכות מסדי נתונים

13

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

במקרה כזה ניתן לאפיין מספר סוגים של אובייקטים:

─ עבור כל סטודנט נשמור את שמו, מס' הזהות סטודנטיםוכתובת.

─ עבור כל קורס נרצה לשמור את שם הקורס, מס' קורסיםהקורס ושם מרצה.

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

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

כיצד נארגן את האובייקטים הנ"ל ?

Page 14: 236363 מערכות מסדי נתונים

14

אפשרויות ארגוןאפשרות פשטנית: נשמור טבלא אחת גדולה. לכל רישום של סטודנט

לקורס, נחזיק את שם הסטודנט, מס' זהות, כתובת, שם הקורס, מס' הקורס, שם מרצה, וציון סופי. לאפשרות זו חסרונות רבים.

─ מדוע צריך לאחסן את כתובת הסטודנט מספר רב יתירות רבה מדיכל כך של פעמים ?

─ איך נשמור את נתוני חוסר יכולת לייצג תרחישים מסוימיםהסטודנט עבור סטודנט שלא לקח עדיין אף קורס ?

─ אם הסטודנט משנה כתובת, נצטרך לאתר ולשנות קושי בעדכוןאת כל הרשומות הקשורות בלקיחת קורס על ידו. יהיה קשה

להימנע ממצב שבו נתוני הסטודנט יפסיקו להיות קונסיסטנטיים בין הרשומות.

Page 15: 236363 מערכות מסדי נתונים

15

אפשרויות ארגון )המשך(

אפשרות יותר ריאלית: נשמור טבלא אחת לסטודנטים, טבלא

אחת לקורסים וטבלא אחת לרישומים של סטודנטים לקורסים.

אפשר לשמור עבור כל רישום לקורס רק את התכונות המזהות

של הסטודנט )מס' זהות( ושל הקורס )מס' קורס(, בנוסף לציון

הסופי.

הגדרת קיומו של סטודנט מסוים אינה תלויה ברישומו לקורסים ─

יש לכל סטודנט מעמד של ישות "עצמאית" במאגר וניתן

לעדכנו ככזה. בדומה לכך נוכל לעדכן רשומה של קורס.

Page 16: 236363 מערכות מסדי נתונים

16

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

קורסים הוא לקח, אלא נרצה לדעת גם אצל אילו מרצים הוא למד ?

אם בטבלא עבור יחסי לקיחת הקורסים נשמור רק את מספרי הקורסים, אז שאילתה מעין זו תיקח זמן רב יותר כי נצטרך

לבצע התאמה גם עם הטבלא עבור ישויות הקורסים.

יתרה מזו, אם בינתיים התחלפו המרצים בקורס אז השאילתה הנ"ל תחזיר תשובה לא נכונה ! איך נתקן זאת ?

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

ההחלטות לגבי ארגון הנתונים במסד אינן טריוויאליות !