3. אלגברה רלציונית שקפים: אלדר פישר

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.
3½ . דוגמאות נוספות ל-ERD ואלגברה רלציונית עריכה: אמיר שפילקה
מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג 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.
משטר סטטי שערים לוגיים Wired Drives – © Dima Elenbogen 2009, Moshe Malka :29.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית 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) הגדרה: נוסחה השקולה לנוסחה.
DBMS , שפות שאילתה: SQL (ב')
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
5. תלויות פונקציונליות שקפים: אלדר פישר
תרגול 9 אלגברה רלציונית.
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
מערכות מסדי נתונים 8. שפת החיפוש XPath שקפים:אלדר פישר.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תרגול 5: ביטויים לוגיים ומשפטי תנאי (חזרה והרחבה)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
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.
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
תכנות מכוון עצמים ושפת JAVA
Static and enum קרן כליף.
עבודה עם נתונים באמצעות ADO.NET
מודל היחסים (Relational Model)
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
מערכות מסדי נתונים 1. הקדמה.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
Based on the lecture notes of Prof. Sagiv
תוכנה 1 תרגול 13 – סיכום.
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
Presentation transcript:

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

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

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

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

הטלה (Projection) הטלה היא פעולה של "שיכחה" של חלק מהתכונות המתארות קבוצת אובייקטים נתונה. במושגים של טבלאות: מוחקים את העמודות שאינן מופיעות באינדקס של הטלה, ואז מסירים כפילויות בשורות שנוצרות כתוצאה מכך. במושגים "גיאומטרים": הדבר דומה להטלה אורתוגונלית על חלק מה"צירים". T = no Heb Roman 1 א i 2 ב ii Heb, RomanT = Heb Roman א i ב ii

בחירה (Selection) תהי T=T[A1, ... ,Am] טבלא של אובייקטים עם תכונות A1,...,Am. עבור ביטוי , T תהיה קבוצת האובייקטים ב-T המספקים את התנאי המובע ב-. מה יכול  להכיל ? השוואות (עם האופרטורים =, , >, <, ,  ) בין תכונה לבין קבוע או בין שתי תכונות. עבור תכונות מסוגים מסוימים (למשל קבוצות) יתכנו גם סימני יחס אחרים (למשל "" ). פעולות בוליאניות. למשל: ( A1  2 )  (A3 = “cat” ). T = no Heb Roman 1 א i 2 ב ii 3 ג iii no2T = no Heb Roman 1 א i 2 ב ii

מכפלה קרטזית (Cartesian Product) עבור שתי קבוצות של אובייקטים ─ ניקח את קבוצת כל הקומבינציות האפשריות של אובייקט מהקבוצה הראשונה ואוביקט מהקבוצה השניה. במושגים של טבלאות: לוקחים את כל ה"שרשורים" האפשריים של שורה מ-S ושורה מ-T. במושגים "גיאומטרים": המכפלה כאן מזכירה את המושג של מכפלה ישרה של מרחבים ווקטורים. אם יש תכונות בעלות שם זהה ל-S ו-T, נבדיל ביניהן באמצעות סימון שם הרלציה המקורית (למשל "T.Num", "S.Num"), או באמצעות תוספת של מספר סידורי (למשל "Num2", "Num1"). S  T גודל צבע חיה קטן שחור חתול גדול לבן סוס S  T גודל צבע חיה קטן שחור חתול גדול לבן סוס

איחוד, חיסור וחיתוך פעולות אלו מתבצעות רק בין זוג רלציות בעל אותה סכמה, והן זהות לפעולות המקבילות מתורת הקבוצות. איחוד ST ─ מכיל את כל האובייקטים שנמצאים ב-S או ב-T. חיסור S\T ─ מכיל את כל האובייקטים שנמצאים ב-S אך לא נמצאים ב-T. חיתוך ST ─ מכיל את כל הרשומות שנמצאות גם ב-S וגם ב-T. זהה לתוצאת הביטויS \ ( S \ T ) . דוגמא: S = צבע חיה לבן סוס ורוד פיל T = צבע חיה שחור חתול לבן סוס ST = צבע חיה שחור חתול לבן סוס ורוד פיל S\T = צבע חיה ורוד פיל ST = צבע חיה לבן סוס

צבע→Color,חיה→Animal(T) = שינוי שם תכונות למעשה זו אינה פעולה באלגברה רלציונית, אלא פעולת עזר שנועדה לאפשר כתיבת ביטויים מורכבים (בעיקר אלו המערבים צירופים טבעיים – ראו בהמשך). אם T=T[A1, ... ,Am] היא טבלא של אובייקטים עם התכונות A1,...,Am, אז  A1→B1,…, Am→Bm(T) יחזיר את אותה טבלא בדיוק, רק שכאן שמות התכונות יהיו B1,…,Bm בהתאמה. T = צבע חיה שחור חתול לבן סוס צבע→Color,חיה→Animal(T) = Color Animal שחור חתול לבן סוס

צירוף (Join) צירוף לפי ביטוי (-Join): בהינתן רלציות S[A1,...,An] ו- T[B1,...,Bm], וביטוי  במושגים של A1,...,An,B1,...,Bm, נסמן ב- S ⋈ T את תוצאת הביטוי האלגברי  (ST) . דוגמה: S A B 1 2 3 4 T C D 1 2 S ⋈ B>C T A B C D 1 2 3 4

צירוף טבעי (Natural Join) פעולה נפוצה מאוד במסדי נתונים. עבור הרלציות S[A1,...,An,B1,...,Bm] ו- T[B1,...,Bm,C1,...,Ck], נסמן ב- S ⋈ T את כל הצירופים של אובייקט מ-S ואובייקט מ-T המסכימים ביניהם על התכונות המשותפות, לאחר הסרת הכפילויות בתכונות. בניסוח אחר: S ⋈ T= A1,...,An,S.B1,...,S.Bm,C1,...,Ck(S ⋈(S.B1=T.B1) ... (S.Bm=T.Bm) T) S צבע חיה לבן סוס ורוד פיל שחור חתול T גוון צבע בהיר כחול כהה ורוד S ⋈ T גוון צבע חיה בהיר ורוד פיל כהה

חצי צירוף (Semi-join) עבור S[A1,...,An,B1,...,Bm] ו- T[B1,...,Bm,C1,...,Ck], נסמן ב- S ⋉ T את כל האובייקטים ב-S שעבורם קיימים אובייקטים ב-T המסכימים איתם על התכונות המשותפות. בניסוח אחר: S ⋉ T= A1,...,An,B1,...,Bm (S ⋈ T) בהרבה מקרים כדאי להשתמש במימוש ישיר של חצי-צירוף, להקטנת תוצאות הביניים בעת מימוש ביטוי באלגברה רלציונית. S צבע חיה לבן סוס ורוד פיל שחור חתול T גוון צבע בהיר כחול כהה ורוד S ⋉ T צבע חיה ורוד פיל

חילוק (Quotient) בהינתן שתי רלציות S[A1,...,An,B1,...,Bm] ו- T[B1,...,Bm], (ז"א כאשר תכונות T מוכלות בתכונות S), נסמן ב-ST את הרלציה R[A1,...,An] המכילה כל אובייקט עבורו יש מופעים ב-S לכל הקומבינציות האפשריות עם שורות מ-T. במילים אחרות: R היא הקבוצה המקסימלית עבורה TR  S. הגדרה באמצעות פעולות בסיסיות: ST= A1,...,AnS \ A1,...,An (((A1,...,AnS)  T) \ S ) S צבע חיה לבן סוס שחור חתול T צבע לבן שחור R=ST חיה סוס

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

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

אלגברה רלציונית ─ דוגמא מסכמת ניזכר בתרשים ה-ER עבור מפעיל הרכבות. Arrives Platform A_Time D_Time Station Height S_Name S_Type Serves Km Line Direction L_Num L_Type Train T_Num Days Service Gives Food Class T_Category

אלו טבלאות יתקבלו מהתרשים ? אלו עמודות יהיו בטבלא עבור טיפוס היחס Serves ? המפתח S_Name (של טיפוס הישות Station) המפתחות Direction, L_Num (של Line) שלושת העמודות הנ"ל ישמשו כמפתח של Serves. בנוסף תהיה עמודה עבור תכונת היחס, Km. אלו עמודות יהיו בטבלא עבור טיפוס היחס Arrives ? המפתח T_Num של טיפוס הישות Train. המפתחות של היחס (המקובץ) Serves ─ אלו הם Direction, L_Num, S_Name. שלושת התכונות של טיפוס היחס Arrives בעצמו ─ Platform, D_Time, A_Time.

דוגמאות לשאילתות אלו תחנות נמצאות על הקו 1-דרום ? המידע הנ"ל נמצא כולו בטבלת הרלציה של Serves. השאילתה: S_Name((L_Num=1)(Direction=“south”)(Serves)) לאלו קווים יש תחנות מתחת לפני הים ? כאן אי אפשר לדעת אלו שורות מהטבלא של "Serves" אנו צריכים, ולכן נצרף אותה לטבלא עבור טיפוס הישות של Station. השאילתה המלאה: L_Num,Direction(Height<0(Station⋈Serves)) או (תוך שימוש בחצי צירוף): L_Num,Direction(Serves⋉S_Name(Height<0(Station)))

דוגמא לשימוש בחילוק אלו רכבות (לפי מספר) מגיעות לכל התחנות ? T_Num,S_Name(Arrives)S_Name(Station) ומה אם יש תחנות שלא נמצאות על אף קו פעיל ? איך נמנע מלהתחשב בהן ? T_Num,S_Name(Arrives)S_Name(Serves) ומה אם יש תחנות הנמצאות על קו פעיל אולם אף רכבת אינה מבצעת עצירה בהן ? T_Num,S_Name(Arrives)S_Name(Arrives)

דוגמא לשאילתא מורכבת יותר נניח עתה שנרצה לדעת את כל זוגות הקווים שיש ביניהן תחנת חילוף, כולל את סוגי הקווים. ראשית נבחר צירופי "משרת-קו" שעבורם התחנה היא תחנת חילוף: R = (Line ⋈ Serves)⋉S_Name(“change”S_Type(Station)) עתה במכפלה RR יהיו כל הזוגות האפשריים של צירופי "משרת-קו" עבורם המדובר בתחנת חילוף ─ נניח שעל מנת להבדיל בין התכונות הוספנו להם אינדקסים, למשל S_Name1, S_Name2, … נרצה לבחור מהמכפלה רק זוגות החולקים ביניהם אותה תחנת חילוף: S = S_Name1=S_Name2(RR) לבסוף, לקבלת השאילתה השלמה נבצע הטלה על התכונות המעניינות אותנו: T = L_Type1,L_Num1,Direction1,L_Type2,L_Num2,Direction2(S)

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

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