236363
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

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


  • 100 Views
  • Uploaded on
  • Presentation posted in: General

236363 מערכות מסדי נתונים. 1. הקדמה. ברוכים הבאים !. מרצה: אלדר פישר חדר 625 טלפון 4936 דוא"ל: [email protected] שעת קבלה: יום רביעי, 13:30 מתרגלת ראשית: נעמה טפר חדר 403, טלפון 3429 דוא"ל: [email protected]

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


236363

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

1. הקדמה


236363

ברוכים הבאים !

  • מרצה:אלדר פישרחדר 625 טלפון 4936דוא"ל: [email protected]

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

  • מתרגלת ראשית: נעמה טפרחדר 403, טלפון 3429דוא"ל: [email protected]

  • בודק תרגילים: סקורוב ארטיוםחדר 412דוא"ל: [email protected]


236363

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

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

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

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

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


236363

נושאי הקורס

  • א. הקדמה

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

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

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

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

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

    • תלויות פונקציונאליות

    • פירוק סכמות וצורות נורמאליות

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

  • תילמד בתרגול: שפת השאילתות SQL

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


236363

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

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

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

  • הגשה בזוגות

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

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

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


236363

מסדי נתונים

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

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

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

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


236363

היסטוריה

  • 1960s – תחילת פיתוח מערכות ניהול נתונים

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

  • 1970 – הופעת המודל הרלציוני (Edgar Codd)

  • 1980s – המודל הרלציוני הופך להיות המודל הדומיננטי, פיתוח שפת השאילתות SQL

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

  • לאחרונה – כיווני התפתחות שונים, כגון:

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

    • שכבת הנתונים באפליקציות אינטרנט

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


236363

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

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

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

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

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

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

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

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

  • - מפני נפילות

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

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


236363

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

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

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

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

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


236363

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

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

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

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

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

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

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


236363

SQLinterface

Query evaluation engine:

Parser

Optimizer

Operator Evaluator

Plan executor

Transaction manager

Recovery manager

File and access methods

Buffer manager

Lock manager

Disk space manager

Disk

Data files

Index files

System catalog


236363

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

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

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

רמה פיסית

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

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

רמה לוגית

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

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


236363

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

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


236363

פעולות על המסד

  • הגדרת מבנה מסד הנתונים (בעקבות ניתוח צורכי היישום): כוללת את המבנה הלוגי של הנתונים והקשרים ביניהם. מתבצעת בדרך כלל באמצעות שפת הגדרת נתונים (DDL - Data Definition Language).

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

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

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


236363

מנהל המערכת

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

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

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

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

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


236363

מסדי נתונים ─ אספקטים נוספים

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

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

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


236363

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

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

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

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

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


236363

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

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

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

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


236363

המודל הרלציוני

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

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

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


236363

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

תבנית (סכמה, כותרת הטבלה)

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

רשומה (שורה)

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


236363

הגדרה פורמאלית

  • 1. נתונה קבוצה של שמות תכונות A1,…, An וקבוצה D1,…, Dnשלתחומים המתאימים לתכונות (כל תחום הוא קבוצה של ערכים).

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

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

  • r ⊆ D1×D2× … × Dn

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

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

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


236363

ההגדרה הפורמלית – נקודת מבט

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

ג'ון ווין, 26.5.1907

שם

(מחרוזת)

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

תאריך לידה


236363

מפתחות

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

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

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


236363

מסדי נתונים פשוטים

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

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

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


236363

מסדים מורכבים יותר ─ דוגמא

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

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

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

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

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


236363

אפשרויות ארגון

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

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

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

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


236363

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

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

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

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


236363

החלטות קשות

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

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

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

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

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


  • Login