28
1 236363 םםםםםם םםםם םםםםםם1 . םםםםם

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

Embed Size (px)

DESCRIPTION

236363 מערכות מסדי נתונים. 1. הקדמה. ברוכים הבאים !. מרצה: יוהן מקובסקי חדר 628 טלפון 4358 דוא"ל: [email protected] שעת קבלה: יום רביעי, 13:30 מתרגל אחראי: יבגני אברמוביץ' חדר 407, טלפון 4349 דוא"ל: [email protected] - PowerPoint PPT Presentation

Citation preview

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

1

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

. הקדמה1

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

2

ברוכים הבאים !יוהן מקובסקימרצה:

4358 טלפון 628חדר [email protected]דוא"ל:

13:30שעת קבלה: יום רביעי,

יבגני אברמוביץ'מתרגל אחראי: 4349, טלפון 407חדר

[email protected]דוא"ל:

עדי עומרימתרגל: 4335, טלפון 312חדר

[email protected]דוא"ל:

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

איך יראה העולם בלי מסדי נתונים?

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

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

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

באופן חוקי.

3

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

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

4

נושאי הקורס

הקדמה א.

(ERDדיאגראמות ישויות קשרים )ב.

אלגברה של יחסים )אלגברה רלציונית( ג.

תחשיב היחסים ד.

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

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

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

SQLשפת השאילתות תילמד בתרגול: ושפת השאילתות ODLשפת הגדרת המידע לימוד בקריאה עצמית :

OQL.

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

פרטים על הקורס

/http://webcourse.cs.technion.ac.il/236363 אתר הקורס:

יבשים ואחד רטוב3תרגילים:

הגשה בזוגות

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

כל תרגיל יבש.4% התרגיל הרטוב ו-8%

כרגיל יהיו שינויים )בעיקר קלים( מהשקפים של הסמסטר הקודם.

5

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

6

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

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

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

מערכת ניהול מסדי נתונים (DBMS ─ Database Management System )

תוכנה המיועדת לניהול מאגרי נתונים גדולים.

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

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

7

היסטוריה•1960sתחילת פיתוח מערכות ניהול נתונים – •Late 1960s פיתוח המודל ההיררכי )מוטיבציה: מערכות –

לניהול הזמנת מקומות בטיסה((Edgar Codd – הופעת המודל הרלציוני )1970••1980s ,המודל הרלציוני הופך להיות המודל הדומיננטי –

SQLפיתוח שפת השאילתות •1990s התפתחות התמיכה ביכולות אנליזה מגוונות, סוגי –

נתונים שונים, שאילתות מורכבות, מחסני נתונים וכו'.לאחרונה – כיווני התפתחות שונים, כגון:•

-ERPפיתוח שכבת אפליקציה מעל שכבת מסד הנתונים, לדוגמה •Enterprise Resource Planning

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

וכו'

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

DBMSמערכת הקבצים מול ה-שימוש במערכת הקבצים דורש מימוש של:

- שמירת הנתונים על הדיסק באופן מובנה

- תוכניות יעילות לשליפת נתונים

- מניעת אי עקביות

(למשל, האם ניתן לייצג שני אנשים שונים בעלי אותו מספר זהות? )

- טיפול בריבוי משתמשים

- הגנה על הנתונים:

- מפני נפילות

- מפני גישה לא מורשית

8

DBMS .היא למעשה מימוש של כל אלו ועוד

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

9

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

.שפת שאילתותומאפשרת שליפת מידע בעזרת

: דרך ייצוג הנתונים במערכת.מודל הנתונים•ייצוג המידע נעשה על פי מודל נתונים מופשט, וביצוע

השאילתות נעשה על פי המודל הנתון.

דוגמה: במודל הרלציוני, הנתונים מיוצגים בטבלאות והשאילתות גם הן מחזירות טבלאות

. מאפשרת לשלוף מידע ממסד SQL: למשל שפת שאילתות•הנתונים.

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

10

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

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

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

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

מקיימים תנאים לוגים מסוימים )למשל שת"ז היא מספר ייחודי(.

: רכיב המאפשר ליצור מגבלות על הרשאות בטחון המידע•גישה.

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

11

SQL interface

Query evaluation engine:

Transaction manager

Lock manager

Recovery manager

Disk space manager

Buffer manager

File and access methods

Plan executorOperator Evaluator

Parser Optimizer

Data files Index files System catalog

Disk

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

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

במודל הנתונים.

מושג על ידי חלוקה לשלוש רמות של הפשטה:

12

רמה פיסית

רמה לוגית

מבטי משתמש (views )

אי תלות באחסון הפיזי מעבר לכאן

אי תלות בארגון הלוגי מעבר לכאן

תאור המידע לפי המודל שלנו )מאורגן

לפי סכימה רלציונית(

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

13

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

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

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

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

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

14

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

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

(.DDL - Data Definition Languageבאמצעות שפת הגדרת נתונים )

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

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

Language.)

ועוד.הגדרת מבטים, הוספת אינדקסיםפעולות נוספות:

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

מנהל המערכת

אחראי, (DBA – Database Administrator)מנהל המערכת בין היתר, על:

- תכנון הרמה הלוגית והתאמה לרמה הפיסית

- אבטחת מידע וניהול הרשאות גישה

- טיפול במערכת ההתאוששות מנפילות

(Tuning - כוונון של המערכת )

15

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

16

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

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

מהקבצים.

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

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

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

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

17

מודלים של נתונים

ישנם מספר מודלים של נתונים:

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

(. אין הפרדה בין הרמה הלוגית pointersנעשה באמצעות מצביעים )לרמה הפיסית.

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

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

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

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

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

18

מודלים של נתונים – המשך

(:Object Oriented Data Modelמודל הנתונים המכוון עצמים )נתונים מיוצגים על ידי אובייקטים באופן המזכיר רעיונות

(.OOPמתכנות מכוון עצמים )

(:Semistructured Data Modelמודל הנתונים המובנה למחצה )הנתונים מיוצגים במבנה של גרף אך בשונה ממודל הרשת,

ישנה אי תלות ברמה הפיסית.

XML : מקרה פרטי של מודל הנתונים המובנה למחצה שבוהנתונים מיוצגים במבנה של עץ.

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

19

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

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

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

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

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

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

ברמה הלוגית.

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

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

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

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

המודל הרלציוני: טרמינולוגיה

20

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

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

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

תכונה )אטריביוט, שם עמודה( תבנית )סכמה, כותרת

הטבלה(

יחס )רלציה, טבלה( רשומה )שורה(

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

הגדרה פורמאלית D1,…, Dn וקבוצה A1,…, An. נתונה קבוצה של שמות תכונות 1

תחומים המתאימים לתכונות )כל תחום הוא קבוצה של שלערכים(.

n את הסכמה הרלציונית המכילה את )R)A1,…, An. נסמן ב- 2A1,…, Anהתכונות

הינו תת קבוצה של מכפלת התחומים:R מעל rיחס

r ⊆ D1× D2 × … × Dn

21

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

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

ב. יש חשיבות לסדר.

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

22

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

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

כל האובייקטים האפשריים".

שם

)מחרוזת(

תאריך לידה

26.5.1907ג'ון ווין,

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

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

מפתחות r הינו קבוצת תכונות המוכלת בסכמה של rשל יחס על-מפתח

כך שהערכים בתכונות אלו מאפשרים לזהות באופן חד ערכי . כלומר, מפתח על מגדיר אילוץ: אין שתי רשומות rרשומות מ-

שלהן ערכים זהים בכל עמודות המפתח.rביחס

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

. מפתח קבילגם

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

23

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

24

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

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

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

הנגינה.

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

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

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

25

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

ניתן לאפיין מספר סוגים של ישויות שעליהן נרצה לשמור מידע:

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

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

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

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

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

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

26

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

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

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

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

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

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

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

27

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

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

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

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

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

הסופי.

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

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

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

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

28

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

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

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

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

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

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

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