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

Slides:



Advertisements
Similar presentations
Object Oriented 33 MCSD DORON AMIR
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
עיבוד תמונות ואותות בעזרת מחשב
אקסס מבוא למערכות מידע.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
תוכנית דעת, שנה"ל תשס"ז, מרצה יהודה הופמן מערכות מידע ארגוניות מערכות מידע ארגוניות הרצאה מס' 10: מסדי נתונים.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
אתר הקורס: צוות הקורס: מרצה: אמיר שפילקה, טאוב
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
השוואה בין מערכות למסדי נתונים בשקפים אלו נשווה בין מסד הנתונים של רכבת ישראל למסד של רכבת גרמניה. בהרבה מקרים, המסד של מערכת הרכבות הישראלית לא יכול למצוא.
5. תלויות פונקציונליות שקפים: אלדר פישר
אתר הקורס: צוות הקורס: מרצה: עודד סודרסקי, טאוב מתרגל אחראי: אלכס גליקסון, טאוב.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
רישום חומרי למידה והסטנדרט הישראלי: ISRACORE יהודית בר אילן, אוניברסיטת בר-אילן אלי שמואלי, מיט"ל.
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
אתר הקורס: צוות הקורס: פרופ' עודד שמואלי-
מערכות בסיסי נתונים הצגה של הסטודנטים את עצמם, הרקע שלהם, ציפיותיהם מהקורס. הצגת ציפיותיי, מדיניות הקורס, מטלות, וכו'.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
אתר הקורס: צוות הקורס: מרצה : פרופ' עודד שמואלי,
ASP Partners © 2000 – 2014 ASP Partners c/o Dr. Abraham “Abe” Gill (( נ. ה. ל התיחסות ללקוחות ניהול CRM – Customer Relationship Management הרצאה מס ' 2.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
. Sequence Alignment Tutorial #3 © Ydo Wexler & Dan Geiger.
שימוש בעצם ממחלקה אחרת כמאפיין במחלקה הנוכחית
Structured Query Language
Formal Specifications for Complex Systems (236368) Tutorial #1
אינדקסינג והשינג (indexing & hashing)
SQL בסיסי – הגדרה אינדוקטיבית
מערכות בסיסי נתונים ספרות Database System Concepts/ Korth, Siberschatz
עבודה עם נתונים באמצעות ADO.NET
בסיסי נתונים ושפת SQL הרצאה #2
השוואת נתונים למודל הסתברותי - כללית
סיכום השיעור הקודם חומרה – קלט/פלט, יחידות אחסון, CPU
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מערכות מסדי נתונים 1. הקדמה.
פרק 3: מודל הנתונים.
בחירת חומר גלם כתב: עמרי שרון.
תכנות מכוון עצמים ושפת JAVA
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
מבוא למערכות מידע פרק 1.
מבוא למערכות מידע בשילוב ACCESS
Presentation transcript:

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

ברוכים הבאים ! מרצה: אלדר פישר חדר 625, טלפון 3967 דוא"ל: eldar@cs.technion.ac.il שעות קבלה: יום רביעי 14:30 מתרגל מוביל: נדב שרגאי חדר 214, טלפון 3821 דוא"ל: shnadav@cs.technion.ac.il שעות קבלה: יום שלישי 15:30 מתרגלת: אירינה לווה חדר 415, טלפון 2977 דוא"ל: lavva@cs.technion.ac.il שעות קבלה: יום חמישי 13:30 חישוב הציון: 80% מבחן סופי (בחומר פתוח) 20% תרגילי בית

נושאי הקורס א. הקדמה ב. תרשימי ER ג. אלגברה רלציונית כשפת שאילתה א. הקדמה ב. תרשימי ER ג. אלגברה רלציונית כשפת שאילתה ד. תחשיב רלציוני כשפת שאילתה ה. שיקולי תלויות פונקציונאליות בתכנון מסד הנתונים ו. צורות נורמאליות בהינתן תלויות פונקציונאליות ז. שפת XML ושפות השאילתה XPath ו-XQuery ח. שפת המודל הלוגי Datalog תילמד בתרגול: שפת השאילתות SQL לימוד בקריאה עצמית (לא חומר חובה בסמסטר זה): שפת הגדרת המידע ODL ושפת השאילתות OQL.

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

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

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

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

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

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

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

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

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

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

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

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