3½ . דוגמאות נוספות ל-ERD ואלגברה רלציונית עריכה: אמיר שפילקה

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
מערכות מסדי נתונים 3. אלגברה רלציונית שקפים:אלדר פישר עריכה ותוספות: אמיר שפילקה.
מתמטיקה בדידה תרגול 3.
מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
אביב-תשס"ה DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות כאל קבוצות של רשומות (ללא חזרות וללא.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
תרגול 9 אלגברה רלציונית.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
1 מפרטים פורמאליים תרגול מספר 1 מהות הקורס:כח ביטוי. בעיות מעשיות (ולא הוכחות) מתרגל אחראי:שחר דג מתרגלת:אמיליה כץ אתר:
3. אלגברה רלציונית שקפים: אלדר פישר
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תרגול 5: ביטויים לוגיים ומשפטי תנאי (חזרה והרחבה)
מתמטיקה בדידה תרגול 2.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר.
מערכות בסיסי נתונים הצגה של הסטודנטים את עצמם, הרקע שלהם, ציפיותיהם מהקורס. הצגת ציפיותיי, מדיניות הקורס, מטלות, וכו'.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Formal Specifications for Complex Systems (236368) Tutorial #1
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
עבודה עם נתונים באמצעות ADO.NET
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מערכות מסדי נתונים 1. הקדמה.
פרק 3: מודל הנתונים.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
תכנות מכוון עצמים ושפת JAVA
Based on the lecture notes of Prof. Sagiv
תוכנה 1 תרגול 13 – סיכום.
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
בסיסי נתונים ושפת SQL הרצאה #6
מבוא למערכות מידע בשילוב ACCESS
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

3½ . דוגמאות נוספות ל-ERD ואלגברה רלציונית עריכה: אמיר שפילקה 236363 מערכות מסדי נתונים 3½ . דוגמאות נוספות ל-ERD ואלגברה רלציונית עריכה: אמיר שפילקה

תזכורת ERD תכונות = אליפסות מפתחות = קו תחתי טפוס ישות = מלבן טיפוס קשר = מעוין טיפוס ישות חלש = משולש הקבצה: טיפוס קשר + טיפוסי ישויות ← טיפוס ישות השתתפות מלאה בטיפוס קשר: בטיפוס הישות המחובר יהיו רק ישויות שמופיעות בקשר (למשל סטודנט הוא רק מי שלקח קורס). חד ערכיות: ערכי חלק מהישויות בטיפוס קשר קובעים באופן חד ערכי את הערך של טיפוס הישות הנוסף. תכונה מפתח טיפוס ישות קשר ISA קשר A קשר A B

דוגמא 1 k=m נתונות סכמות ה-ERD הבאות: km k=m=n נתבונן ברלציות המתאימות לטיפוסי הישויות A, B וליחס AB לכל אחת מהדוגמאות. נניח שיש m ישויות מטיפוס A, n ישויות מטיפוס B, ו-k רשומות בטיפוס הקשר AB. מה ניתן לומר על היחס בין n ,m ו-k לכל דוגמא? km k=m=n km·n km,n

האם כל הסכמות מייצגות אותו תוכן? אם לא, תנו דוגמא. דוגמא 2: הסכמות הבאות מנסות לתאר DB המכיל גרמי שמיים (Object), שמשות (Sun) שהן סוג של גרמי שמיים, והימצאות של גרמי שמים במערכות שמש (SolarSys): SolarSys Object Sun BoundTo TypeOf SId OId SolId 2 SolarSys Object Sun BoundTo TypeOf SId OId SolId 1 SolarSys Object Sun BoundTo SId OId SolId 3 האם כל הסכמות מייצגות אותו תוכן? אם לא, תנו דוגמא.

סכמות 1 ו-2 סכמה 2 מוכלת בסכמה אחת. לעומת זאת בסכמה 2 רק שמשות מקושרות למערכות שמש. למשל בסכמה 1 ניתן לבנות את המסד: SolarSys={so1}, Object={o1,o2}, Sun={s1}, TypeOf={(o1,s1)}, BoundTo={(o2,so1)} אך בסכמה 2, אם נרצה ש-o2 יהיה ב-BoundTo, הוא יצטרך להיות בקשר עם שמש כלשהי בגלל ההקבצה.

סכמות 1 ו-3 סכמה 1 לא מוכלת בסכמה שלוש: בסכמה 1 שמש לא חייבת להיות ביחס עם מערכת שמש, אבל בסכמה 3 היא תמיד נמצאת ביחס כנ"ל. סכמה 3 לא מוכלת בסכמה 1: בסכמה 3 שמשות שונות יכולות להיות ביחס עם אותו גרם שמימי, ע"י שינוי מערכת השמש, בסכמה 1 זה לא אפשרי. למשל בסכמה 3: SolarSys={so1}, Object={o1,o2}, Sun={s1,s2}, BoundTo={(o1,s1,so1), (o1,s2,so2)} בסכמה 1, צריך ש: TypeOf = {(o1,s1),(o1,s2)} אך זה מפר את התלות ש- OIdSId

תזכורת: אלגברה רלציונית פעולות בסיסיות: פעולות אונריות: הטלה (Projection), בחירה (Selection). פעולות בינאריות: מכפלה קרטזית, חיסור, איחוד וחיתוך (למעשה ניתן לבטא חיתוך גם במושגים של הפעולות האחרות). שינוי שמות תכונות: פעולה טכנית לצורך הרכבת פעולות. פעולות שניתנות לביטוי באמצאות הפעולות הבסיסיות: צירוף טבעי (natural join), -צירוף (-Join), חצי-צירוף (semi-join), חלוקה.

תזכורת: צירוף צירוף טבעי: עבור S[A1,...,An,B1,...,Bm] ו- T[B1,...,Bm,C1,...,Ck], נסמן ב- S ⋈ T את כל הצירופים של אובייקט מ-S ואובייקט מ-T המסכימים ביניהם על התכונות המשותפות, לאחר הסרת הכפילויות בתכונות. ומה אם אין תכונות משותפות? על הקבוצה הריקה כולם מסכימים ... S ⋈ T = S  T חצי צירוף: עבור S[A1,...,An,B1,...,Bm] ו- T[B1,...,Bm,C1,...,Ck], נסמן ב- S ⋉ T את כל האובייקטים ב-S שעבורם קיימים אובייקטים ב-T המסכימים איתם על התכונות המשותפות. על הקבוצה הריקה כולם מסכימים ... S ⋉ T = S

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

הכללת פעולות האלגברה הטלות: עבור רלציה R, גם הקבוצה הריקה תחשב כתת-קבוצה של התכונות שלה, וההטלה המתאימה תסומן ב-πλR. תוצאת הביטוי תהיה רלציה ריקה אם R היתה ריקה, ותכיל את השורה הריקה (כשורה יחידה) אם R לא היתה ריקה. מכפלה קרטזית: איך נגדיר את R  S אם S היא חסרת תכונות? התוצאה תהיה ריקה אם S ריקה, וזהה ל-R אם S מכילה את השורה הריקה. חלוקה: אם ל-R ול-S אותן תכונות, אז RS תכיל את השורה הריקה אם S⊆R, ותהיה ריקה אחרת.

דוגמא: האם לכל רלציות R,S ו-T מתקיים R ⋈ (S ⋈ T) = (R ⋈ S) ⋈ T אם לא, האם אחד מוכל בשני? +: R=R(A), S=S(B), T=T(B). יתכן ש- S ⋉ T = . *: T=T(A), S=S(B), R=R(A). יתכן כי R ⋉ T = .

אלו שאילתות לא יכולות להישאל באלגברה רלציונית ? ישנם מספר סוגים של שאילתות טבעיות שאין עבורן ביטויים מתאימים באלגברה רלציונית (RA). קיבוץ (Aggregate functions): שאילתות מהצורה: "כמה קווים יש בכיוון צפון ?" "מה ממוצע המרחקים בין שתי תחנות על קו 1-דרום ?" "כמה רכבות עוצרות ביום שני בכל תחנה ?" שאילתות אלו דורשות הפעלה של פונקציות בעלות מספר לא קבוע של משתנים (כגון ספירה, סכום, ממוצע... ) על קבוצת ערכים המתקבלים מהרלציה. ישנן הרחבות של RA המאפשרות שאילתות מסוג זה, וכן ניתן לשאול אותן בשפת SQL הנלמדת בתרגול.

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