Upload
cara-wade
View
68
Download
0
Embed Size (px)
DESCRIPTION
236363 מערכות מסדי נתונים. 1. הקדמה. ברוכים הבאים !. מרצה: יוהן מקובסקי חדר 628 טלפון 4358 דוא"ל: [email protected] שעת קבלה: יום רביעי, 13:30 מתרגל אחראי: יבגני אברמוביץ' חדר 407, טלפון 4349 דוא"ל: [email protected] - PowerPoint PPT Presentation
Citation preview
1
236363מערכות מסדי נתונים
. הקדמה1
2
ברוכים הבאים !יוהן מקובסקימרצה:
4358 טלפון 628חדר [email protected]דוא"ל:
13:30שעת קבלה: יום רביעי,
יבגני אברמוביץ'מתרגל אחראי: 4349, טלפון 407חדר
[email protected]דוא"ל:
עדי עומרימתרגל: 4335, טלפון 312חדר
[email protected]דוא"ל:
איך יראה העולם בלי מסדי נתונים?
דמיינו תסריט שבו, יום אחד, בין רגע נמחקים כל מסדי הנתונים בעולם:
את בלי מסדי הנתונים של משרדי הממשלה לא ניתן יהיה לנהל רישיונות, ...המדינה: ימחק המידע לגבי גביית מיסים, אזרחות,
הטלפונים, בין היתר יתקשו או יפסיקו לפעול: בנקים, בתי חולים, חברות המשלם משכורות חברות התעופה, אוניברסיטאות, ולמעשה כל גוף
באופן חוקי.
3
אז מי שומר על היתרה שלכם בבנק, הציונים, המידע הרפואי, ...?
4
נושאי הקורס
הקדמה א.
(ERDדיאגראמות ישויות קשרים )ב.
אלגברה של יחסים )אלגברה רלציונית( ג.
תחשיב היחסים ד.
Datalogשפת המודל הלוגי ה.
תיאוריה של תכנון מסדי נתונים ו.תלויות פונקציונאליות•פירוק סכמות וצורות נורמאליות•
XQuery ו-XPath ושפות השאילתה XMLשפת ז.
SQLשפת השאילתות תילמד בתרגול: ושפת השאילתות ODLשפת הגדרת המידע לימוד בקריאה עצמית :
OQL.
פרטים על הקורס
/http://webcourse.cs.technion.ac.il/236363 אתר הקורס:
יבשים ואחד רטוב3תרגילים:
הגשה בזוגות
מבחן סופי 80%חישוב הציון: תרגילי בית )מותנה בציון עובר במבחן(,20%
כל תרגיל יבש.4% התרגיל הרטוב ו-8%
כרגיל יהיו שינויים )בעיקר קלים( מהשקפים של הסמסטר הקודם.
5
6
מסדי נתוניםמסד נתונים הינו אוסף )לרוב גדול( של נתונים המתארים פעילות
בתחום כלשהו בארגון או במספר ארגונים קשורים.
דוגמאות: מסד נתונים של בנק, מסד נתונים של ספריות במוסד אקדמי, מסד נתונים של רשת סופרמרקטים.
מערכת ניהול מסדי נתונים (DBMS ─ Database Management System )
תוכנה המיועדת לניהול מאגרי נתונים גדולים.
? האם מערכות הפעלה ומערכות DBMSמדוע יש צורך במערכות הקבצים בהם אינן פתרון מספק?
7
היסטוריה•1960sתחילת פיתוח מערכות ניהול נתונים – •Late 1960s פיתוח המודל ההיררכי )מוטיבציה: מערכות –
לניהול הזמנת מקומות בטיסה((Edgar Codd – הופעת המודל הרלציוני )1970••1980s ,המודל הרלציוני הופך להיות המודל הדומיננטי –
SQLפיתוח שפת השאילתות •1990s התפתחות התמיכה ביכולות אנליזה מגוונות, סוגי –
נתונים שונים, שאילתות מורכבות, מחסני נתונים וכו'.לאחרונה – כיווני התפתחות שונים, כגון:•
-ERPפיתוח שכבת אפליקציה מעל שכבת מסד הנתונים, לדוגמה •Enterprise Resource Planning
שכבת הנתונים באפליקציות אינטרנט•מסדי נתונים לניהול מידע גיאוגרפי, ביולוגי, מידע מרשתות סנסורים, •
וכו'
DBMSמערכת הקבצים מול ה-שימוש במערכת הקבצים דורש מימוש של:
- שמירת הנתונים על הדיסק באופן מובנה
- תוכניות יעילות לשליפת נתונים
- מניעת אי עקביות
(למשל, האם ניתן לייצג שני אנשים שונים בעלי אותו מספר זהות? )
- טיפול בריבוי משתמשים
- הגנה על הנתונים:
- מפני נפילות
- מפני גישה לא מורשית
8
DBMS .היא למעשה מימוש של כל אלו ועוד
9
מערכת ניהול מסדי נתונים מודל נתוניםמערכת לניהול מסדי נתונים עובדת על פי
.שפת שאילתותומאפשרת שליפת מידע בעזרת
: דרך ייצוג הנתונים במערכת.מודל הנתונים•ייצוג המידע נעשה על פי מודל נתונים מופשט, וביצוע
השאילתות נעשה על פי המודל הנתון.
דוגמה: במודל הרלציוני, הנתונים מיוצגים בטבלאות והשאילתות גם הן מחזירות טבלאות
. מאפשרת לשלוף מידע ממסד SQL: למשל שפת שאילתות•הנתונים.
10
מערכת ניהול מסדי נתוניםמערכת לניהול מסדי נתונים מכילה את האלמנטים הבאים:
: מאפשר שמירה יעילה של מידע רכיב לניהול אמצעי האכסון•בדיסק וחיפוש יעיל בקבצים.
: מאפשר שליפה יעילה של מידע מהדיסק.מעבד שאילתות•: רכיב שנועד למנוע כשלים בקרת מקבילות והתאוששות•
הנובעים מריבוי משתמשים או מנפילת המערכת.: רכיב הבודק שכל הנתונים המסד אימות שלמות המידע•
מקיימים תנאים לוגים מסוימים )למשל שת"ז היא מספר ייחודי(.
: רכיב המאפשר ליצור מגבלות על הרשאות בטחון המידע•גישה.
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
אי תלות במודל הנתוניםיתרון חשוב של השימוש במערכת לניהול מסדי נתונים: אי תלות
במודל הנתונים.
מושג על ידי חלוקה לשלוש רמות של הפשטה:
12
רמה פיסית
רמה לוגית
מבטי משתמש (views )
אי תלות באחסון הפיזי מעבר לכאן
אי תלות בארגון הלוגי מעבר לכאן
תאור המידע לפי המודל שלנו )מאורגן
לפי סכימה רלציונית(
13
הרמות העליונות─מסדי נתונים
: לכל משתמש מבט )חלקי( על המסד. רמת משתמש הקצה
משתמשים שונים יכולים לראות מבטים שונים, ואלו לא
בהכרח משקפים את ארגון הנתונים הפיזי במסד.
14
פעולות על המסד )בעקבות ניתוח צורכי היישום(: כוללת את הגדרת מבנה מסד הנתונים
המבנה הלוגי של הנתונים והקשרים ביניהם. מתבצעת בדרך כלל
(.DDL - Data Definition Languageבאמצעות שפת הגדרת נתונים )
להפקת מידע מהמסד )באמצעות התוכנות (Queriesביצוע שאילתות )המורצות מעל המסד(.
: הוספה, מחיקה ועדכון של פרטים. לשפה לביצוע שינוי נתונים DML - Data Manipulationשפת שינוי נתונים ) שאילתות ושינויים קוראים
Language.)
ועוד.הגדרת מבטים, הוספת אינדקסיםפעולות נוספות:
מנהל המערכת
אחראי, (DBA – Database Administrator)מנהל המערכת בין היתר, על:
- תכנון הרמה הלוגית והתאמה לרמה הפיסית
- אבטחת מידע וניהול הרשאות גישה
- טיפול במערכת ההתאוששות מנפילות
(Tuning - כוונון של המערכת )
15
16
אספקטים נוספים─מסדי נתונים ברמות התחתונות: יש לתרגם את הגדרות הנתונים לתכנון הולם
של מבני הקבצים המאוחסנים פיזית על הדיסק. בהינתן שאילתה, יש לתרגם אותה לאלגוריתם יעיל לשליפת הנתונים
מהקבצים.
בנוסף, יש לממש עבור מסד הנתונים בקרת גישה )לפי הרשאות המשתמשים(, בקרת מקביליות )עבור מסדים הנגישים למספר
משתמשים בו זמנית(, אבטחת עמידות המידע בנפילות של המערכת . . .
אספקטים אלו הם מחוץ לתחום של קורס זה.
17
מודלים של נתונים
ישנם מספר מודלים של נתונים:
מודלים הסטורים שלא ילמדו בקורס המודל המדרגי ומודל הרשת:זה. במודלים אלו הקשר בין האובייקטים השונים במסד הנתונים
(. אין הפרדה בין הרמה הלוגית pointersנעשה באמצעות מצביעים )לרמה הפיסית.
האובייקטים מסודרים בטבלאות. המודל הרלציוני )יחסי, טבלאי(:קשר בין רשומות מטבלאות שונות יצוין ע"י ערכים זהים במקומות
מתאימים בטבלאות. הקורס יעסוק בעיקר במסדי נתונים רלציוניים.
כלי חשוב לניתוח דרישות ולתכנון (:ERמודל הישויות והקשרים )סכימה למסד נתונים רלציוני )או אחר(. זהו מודל מופשט ואין לו
מימוש במערכת ניהול מסדי נתונים.
18
מודלים של נתונים – המשך
(:Object Oriented Data Modelמודל הנתונים המכוון עצמים )נתונים מיוצגים על ידי אובייקטים באופן המזכיר רעיונות
(.OOPמתכנות מכוון עצמים )
(:Semistructured Data Modelמודל הנתונים המובנה למחצה )הנתונים מיוצגים במבנה של גרף אך בשונה ממודל הרשת,
ישנה אי תלות ברמה הפיסית.
XML : מקרה פרטי של מודל הנתונים המובנה למחצה שבוהנתונים מיוצגים במבנה של עץ.
19
המודל הרלציונינניח שאנו רוצים לייצג אוסף של אובייקטים מסוג מסוים
)למשל: ברצוננו לאסוף נתונים על שחקני קולנוע(ושבידינו רשימה של תכונות שערכיהן מאפיינות כל אובייקט
)למשל: שם, תאריך לידה, וסרט ראשון(.
אנו נוכל להביט על אוסף האובייקטים כטבלה, שבה כל שורה מתאימה לאובייקט, וכל עמודה מכילה את הערכים של כל
האובייקטים עבור תכונה אחת.
שימו לב: הטבלה לא בהכרח מתארת את אופן כתיבת הנתונים הפיזית על הדיסק, אלא מהווה ייצוג של הנתונים
ברמה הלוגית.
נתגלה בסרט תאריך לידה שם
הכרכרה 26.5.1907 ג'ון ויין
ג'ונגל האספלט 1.6.1926 מרילין מונרו
המודל הרלציוני: טרמינולוגיה
20
נתגלה בסרט תאריך לידה שם
הכרכרה 26.5.1907 ג'ון ויין
ג'ונגל האספלט 1.6.1926 מרילין מונרו
תכונה )אטריביוט, שם עמודה( תבנית )סכמה, כותרת
הטבלה(
יחס )רלציה, טבלה( רשומה )שורה(
הגדרה פורמאלית D1,…, Dn וקבוצה A1,…, An. נתונה קבוצה של שמות תכונות 1
תחומים המתאימים לתכונות )כל תחום הוא קבוצה של שלערכים(.
n את הסכמה הרלציונית המכילה את )R)A1,…, An. נסמן ב- 2A1,…, Anהתכונות
הינו תת קבוצה של מכפלת התחומים:R מעל rיחס
r ⊆ D1× D2 × … × Dn
21
שונה DBMSבמודל הפורמאלי, יחס הוא קבוצה. המימוש במערכות מהמודל הפורמאלי בשתי הנקודות הבאות:
א. במימוש, טבלה תהיה רב קבוצה ולא קבוצה, כלומר, רשומה עשויה להופיע בטבלה יותר מפעם אחת.
ב. יש חשיבות לסדר.
22
ההגדרה הפורמלית – נקודת מבטבמקום להסתכל על כל ישות כשורה בטבלה, מסתכלים עליה
כעל נקודה במרחב כל הערכים האפשריים שניתן להציב בתכונות. הרלציה מתוארת כתת קבוצה סופית של "קבוצת
כל האובייקטים האפשריים".
שם
)מחרוזת(
תאריך לידה
26.5.1907ג'ון ווין,
1.6.1926מרילין מונרו,
מפתחות r הינו קבוצת תכונות המוכלת בסכמה של rשל יחס על-מפתח
כך שהערכים בתכונות אלו מאפשרים לזהות באופן חד ערכי . כלומר, מפתח על מגדיר אילוץ: אין שתי רשומות rרשומות מ-
שלהן ערכים זהים בכל עמודות המפתח.rביחס
מינימאליליחס עשויים להיות מספר מפתחות על. מפתח על הוא אם אין אף תת קבוצה שלו שהיא מפתח על. מפתח כזה יקרא
. מפתח קבילגם
. מפתח ראשיניתן לבחור אחד ממפתחות העל ולהגדיר אותו כהגדרה זו משחקת תפקיד ברמת מימוש המסד.
23
24
מסדי נתונים פשוטיםבמקרה הפשוט ביותר, כל האובייקטים שנרצה לאסוף עליהם
מידע יהיו מאותו "סוג", זאת אומרת שתהיה לכולם אותה רשימת מאפיינים ורק ערכי המאפיינים יבדילו ביניהם.
כל אובייקט יתאפיין דוגמא: רשימת קבצים מוזיקלים להשמעה.( וזמן ...mp3/ogg/wmaע"י שם השיר, שם הקובץ, הפורמט )
הנגינה.
במקרים כאלה אין החלטות קשות ברמת הארגון הכללי של כל הנתונים יאורגנו כטבלה אחת, שתמומש על ─המסד
הדיסק באחד האופנים הנלמדים בקורס "מערכות קבצים".
25
דוגמא─מסדים מורכבים יותר נניח שנרצה לתכנן מסד נתונים עבור מזכירות הפקולטה. במקרה כזה
ניתן לאפיין מספר סוגים של ישויות שעליהן נרצה לשמור מידע:
עבור כל סטודנט נשמור את שמו, מס' הזהות ─ סטודנטיםוכתובת.
עבור כל קורס נרצה לשמור את שם הקורס, מס' הקורס ─ קורסיםושם מרצה.
, נרצה לדעת על כך, וכן אם סטודנט מסוים השתתף בקורס מסויםלדעת את ציונו הסופי של סטודנט בקורס. לכן, לכל השתתפות של
סטודנט בקורס, נשמור קישור המעיד על ההשתתפות )ומכיל גם את הציון הסופי בקורס(.
כיצד נארגן את הישויות והקשרים הנ"ל?
26
אפשרויות ארגוןאפשרות פשטנית: נשמור טבלה אחת גדולה. לכל רישום של סטודנט
לקורס, נחזיק את שם הסטודנט, מס' זהות, כתובת, שם הקורס, מס' הקורס, שם מרצה, וציון סופי. לאפשרות זו חסרונות רבים.
מדוע צריך לאחסן את כתובת הסטודנט מספר רב ─ יתירות רבה מדיכל כך של פעמים?
איך נשמור את נתוני ─ חוסר יכולת לייצג תרחישים מסוימיםהסטודנט עבור סטודנט שלא לקח עדיין אף קורס?
אם הסטודנט משנה כתובת, נצטרך לאתר ולשנות ─ קושי בעדכוןאת כל הרשומות הקשורות בלקיחת קורס על ידו. יהיה קשה
להימנע ממצב שבו נתוני הסטודנט יפסיקו להיות עקביים בין הרשומות.
27
אפשרויות ארגון )המשך(
אפשרות יותר ריאלית: נשמור טבלה אחת לסטודנטים, טבלה
אחת לקורסים וטבלה אחת לרישומים של סטודנטים לקורסים.
אפשר לשמור עבור כל רישום לקורס רק את התכונות המזהות
של הסטודנט )מס' זהות( ושל הקורס )מס' קורס(, בנוסף לציון
הסופי.
─הגדרת קיומו של סטודנט מסוים אינה תלויה ברישומו לקורסים
יש לכל סטודנט מעמד של ישות "עצמאית" במאגר וניתן
לעדכנו ככזה. בדומה לכך נוכל לעדכן רשומה של קורס.
28
החלטות קשותמה יקרה אם עבור סטודנט מסוים נרצה לדעת לא רק אילו
קורסים הוא לקח, אלא נרצה לדעת גם אצל אילו מרצים הוא למד?
אם בטבלה עבור יחסי לקיחת הקורסים נשמור רק את מספרי הקורסים, אז שאילתה מעין זו תיקח זמן רב יותר כי נצטרך
לבצע התאמה גם עם הטבלה עבור ישויות הקורסים.
יתרה מזו, אם בינתיים התחלפו המרצים בקורס, אז השאילתה הנ"ל תחזיר תשובה לא נכונה! איך נתקן זאת?
נוסיף לטבלת היחסים עמודה עבור מרצה הקורס שנלקח?נגדיר סוג חדש של ישויות "מרצה" ויחסים מתאימים?
ההחלטות לגבי ארגון הנתונים במסד אינן טריוויאליות!