22
1 236363 םםםםםם םםםם םםםםםם3 . םםםםםם םםםםםםםם םםםםם: םםםם םםםם םםםםם םםםםםםם: םםםם םםםםםם

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

  • View
    248

  • Download
    6

Embed Size (px)

Citation preview

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

1

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

. אלגברה רלציונית3

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

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

2

אלגברה רלציונית

היא שפה המאפשרת לכתוב (Relational algebraאלגברה רלציונית )

שאילתות עבור נתונים המאורגנים בטבלאות )רלציות(.

התחביר מזכיר תחביר של ביטויים אלגברים, רק שכאן הפעולות

הן על טבלאות שלמות, ולא על נתונים בודדים.

התוצאה של הביטוי הרלציוני )השאילתה( היא טבלא )רלציה(

בעצמה.

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

3

רלציה בודדת בודדת היא קבוצה של אובייקטים מטיפוס משותף.רלציה

בדרך כלל נתייחס לרלציה כאל טבלא.

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

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

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

.סכימת הרלציהקבוצת התכונות של הרלציה תיקרא

נתגלה בסרט תאריך לידה שם

הכרכרה 26.5.1907 ג'ון ויין

ג'ונגל האספלט 1.6.1926 מרילין מונרו

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

4

פעולות רלציוניות

פעולות בסיסיות:

(.Selection(, בחירה )Projection הטלה )פעולות אונריות:

מכפלה קרטזית, חיסור, איחוד וחיתוךפעולות בינאריות:

)למעשה ניתן לבטא חיתוך גם במושגים של הפעולות האחרות(.

פעולה טכנית לצורך הרכבת פעולות.שינוי שמות תכונות:

פעולות שניתנות לביטוי באמצאות הפעולות הבסיסיות:

( בגרסאותיו השונות, חילוק, וכו'.Joinצירוף )

לעיתים ברמת המימוש כדאי לממש באופן ישיר גם חלק

מהפעולות המרוכבות, ולא להסתמך על מימושי הפעולות

הבסיסיות בלבד.

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

5

(Projectionהטלה ) היא פעולה של "שיכחה" של חלק מהתכונות המתארות הטלה

קבוצת אובייקטים נתונה.

מוחקים במושגים של טבלאות:את העמודות שאינן מופיעות

באינדקס של הטלה, ואז מסירים כפילויות בשורות

שנוצרות כתוצאה מכך.

הדבר במושגים "גיאומטרים":דומה להטלה אורתוגונלית על

חלק מה"צירים".

T=

no Heb Roman

1 א i

2 ב ii

Heb, RomanT=

Heb Roman

א i

ב ii

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

6

(Selectionבחירה ).A1,...,Am טבלא של אובייקטים עם תכונות T=T[A1, ... ,Am]תהי

המספקים את T תהיה קבוצת האובייקטים ב-, Tעבור ביטוי .התנאי המובע ב-

להכיל ?מה יכול

( בין תכונה לבין , >, <, , השוואות )עם האופרטורים =, קבוע או בין שתי תכונות. עבור תכונות מסוגים מסוימים

" (.)למשל קבוצות( יתכנו גם סימני יחס אחרים )למשל "

.) ” )A3 = “cat ( A1 2) פעולות בוליאניות. למשל:

T=

no Heb Roman

1 א i

2 ב ii

3 ג iiino2T=

no Heb Roman

1 א i

2 ב ii

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

7

איחוד, חיסור וחיתוךפעולות אלו מתבצעות רק בין זוג רלציות בעל אותה סכמה, והן זהות

לפעולות המקבילות מתורת הקבוצות.

.T או ב-S מכיל את כל האובייקטים שנמצאים ב-─ STאיחוד אך לא S מכיל את כל האובייקטים שנמצאים ב-─ S\Tחיסור

.Tנמצאים ב-. T וגם ב-S מכיל את כל הרשומות שנמצאות גם ב-─ STחיתוך

. ) S \ ) S \ Tזהה לתוצאת הביטוי

=Tדוגמא:

צבע חיה

שחור חתול

לבן סוס

S=

צבע חיה

לבן סוס

ורוד פיל

ST= צבע חיה

לבן סוסS\T=

צבע חיה

ורוד פילST=

צבע חיה

שחור חתול

לבן סוס

ורוד פיל

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

8

(Cartesian Productמכפלה קרטזית )עבור שתי קבוצות של אובייקטים ─ ניקח את קבוצת כל הקומבינציות

האפשריות של אובייקט מהקבוצה הראשונה ואובייקט מהקבוצה השניה.

לוקחים את כל ה"שרשורים" במושגים של טבלאות:.T ושורה מ-Sהאפשריים של שורה מ-

המכפלה כאן במושגים "גיאומטרים":מזכירה את המושג של מכפלה ישרה

של מרחבים ווקטורים.

, T ו-Sאם יש תכונות בעלות שם זהה ל-נבדיל ביניהן באמצעות סימון שם הרלציה

"(, T.Num", "S.Numהמקורית )למשל "או באמצעות תוספת של מספר סידורי

"(.Num2", "Num1)למשל "

S

Tגודל צבע חיה

קטן שחור חתול

גדול לבן סוס

S Tגודל צבע חיה

קטן שחור חתול

גדול שחור חתול

קטן לבן סוס

גדול לבן סוס

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

9

שינוי שם תכונותלמעשה זו אינה פעולה באלגברה רלציונית, אלא פעולת עזר

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

בהמשך(.

היא טבלא של אובייקטים עם התכונות T=T[A1, ... ,Am]אם A1,...,Am אז , A1→B1,…, Am→Bm

)T( ,יחזיר את אותה טבלא בדיוק

בהתאמה.B1,…,Bmרק שכאן שמות התכונות יהיו

צבע→Color,חיה→Animal)T( =

Color Animal

שחור חתול

לבן סוס

T=

צבע חיה

שחור חתול

לבן סוס

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

10

-( צירוף-Join)

(:-Joinצירוף לפי ביטוי )

, T[B1,...,Bm] ו- S[A1,...,An]בהינתן רלציות

, A1,...,An,B1,...,Bm במושגים של וביטוי

.) )ST את תוצאת הביטוי האלגברי S ⋈ T נסמן ב-

דוגמה:S

A B

1 2

3 4

S ⋈ B>C T

A B C D

1 2 1 2

3 4 1 2

3 4 2 1

T

C D

1 2

2 1

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

11

(Natural Joinצירוף טבעי )

פעולה נפוצה מאוד במסדי נתונים.

, T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור הרלציות

ואובייקט S את כל הצירופים של אובייקט מ-S ⋈ T נסמן ב-

המסכימים ביניהם על התכונות המשותפות, לאחר הסרת Tמ-

הכפילויות בתכונות.

בניסוח אחר:

S ⋈ T= A1,...,An,S.B1,...,S.Bm,C1,...,Ck)S ⋈)S.B1=T.B1( ... )S.Bm=T.Bm( T(

T

גוון צבע

בהיר כחול

כהה כחול

בהיר ורוד

כהה ורוד

S

צבע חיה

לבן סוס

ורוד פיל

שחור חתול

S ⋈ T

גוון צבע חיה

בהיר ורוד פיל

כהה ורוד פיל

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

12

(Semi-joinחצי צירוף ), T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור

שעבורם קיימים S את כל האובייקטים ב-S ⋉ T נסמן ב-

המסכימים איתם על התכונות המשותפות.Tאובייקטים ב-

)S ⋉ T= A1,...,An,B1,...,Bm )S ⋈ Tבניסוח אחר:

בהרבה מקרים כדאי להשתמש במימוש ישיר של חצי-צירוף,

להקטנת תוצאות הביניים בעת מימוש ביטוי באלגברה רלציונית.

T

גוון צבע

בהיר כחול

כהה כחול

בהיר ורוד

כהה ורוד

S

צבע חיה

לבן סוס

ורוד פיל

שחור חתול

S ⋉ T

צבע חיה

ורוד פיל

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

13

(Quotientחילוק ), T[B1,...,Bm] ו- S[A1,...,An,B1,...,Bm]בהינתן שתי רלציות

את ST(, נסמן ב-S מוכלות בתכונות T)ז"א כאשר תכונות S המכילה כל אובייקט עבורו יש מופעים ב-R[A1,...,An]הרלציה

.Tלכל הקומבינציות האפשריות עם שורות מ-

.TR S היא הקבוצה המקסימלית עבורה Rבמילים אחרות:

הגדרה באמצעות פעולות בסיסיות:

ST= A1,...,AnS \ A1,...,An

)))A1,...,AnS( T( \ S (

T

צבע

לבן

שחורS

צבע חיה

לבן סוס

שחור סוס

שחור חתול

R=STחיה

סוס

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

14

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

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

מה רלציה חסרת תכונות יכולה להכיל?

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

הריקה". אלו הן שתי האפשרויות היחידות.

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

15

הכללת פעולות האלגברה, גם הקבוצה הריקה תחשב כתת-קבוצה R עבור רלציה הטלות:

.πλRשל התכונות שלה, וההטלה המתאימה תסומן ב-

היתה ריקה, ותכיל את Rתוצאת הביטוי תהיה רלציה ריקה אם לא היתה ריקה.Rהשורה הריקה )כשורה יחידה( אם

היא חסרת תכונות?S אם R S איך נגדיר את מכפלה קרטזית:

מכילה את S אם R ריקה, וזהה ל-Sהתוצאה תהיה ריקה אם השורה הריקה.

תכיל את השורה RS אותן תכונות, אז S ול-R אם ל-חלוקה:, ותהיה ריקה אחרת.S⊆Rהריקה אם

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

16

אלגברה רלציונית ─ דוגמא מסכמת עבור מפעיל הרכבות.ERניזכר בתרשים ה-

Arrives

Platform

A_Time D_Time

Station

Height

S_Name

S_Type

ServesKm

Line

Direction

L_Num

L_Type

Train

T_Num

Days

Service

Gives

Food

Class

T_Category

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

17

אלו טבלאות יתקבלו מהתרשים ? ?Servesאלו עמודות יהיו בטבלא עבור טיפוס היחס

(Station )של טיפוס הישות S_Nameהמפתח •(Line )של Direction, L_Numתכונות המפתח •

.Servesשלושת העמודות הנ"ל ישמשו כמפתח של ─.Kmבנוסף תהיה עמודה עבור תכונת היחס, •

?Arrivesאלו עמודות יהיו בטבלא עבור טיפוס היחס .Train של טיפוס הישות T_Numהמפתח • ─ אלו הם Servesתכונות המפתח של היחס )המקובץ( •

Direction, L_Num, S_Name. ,Platform בעצמו ─ Arrivesשלושת התכונות של טיפוס היחס •

D_Time, A_Time.

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

18

דוגמאות לשאילתות-דרום ?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(((

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

19

דוגמא לשימוש בחילוקאלו רכבות )לפי מספר( מגיעות לכל התחנות ?

T_Num,S_Name)Arrives(S_Name)Station(

ומה אם יש תחנות שלא נמצאות על אף קו פעיל ? איך נמנע מלהתחשב בהן ?

T_Num,S_Name)Arrives(S_Name)Serves(

ומה אם יש תחנות הנמצאות על קו פעיל אולם אף רכבת אינה מבצעת עצירה בהן ?

T_Num,S_Name)Arrives(S_Name)Arrives(

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

דוגמא לשאילתא מורכבת יותרנניח עתה שנרצה לדעת את כל זוגות הקווים שיש ביניהן תחנת חילוף, כולל

את סוגי הקווים.

ראשית נבחר צירופי "משרת-קו" שעבורם התחנה היא תחנת חילוף:

R = )Line ⋈ Serves(⋉S_Name)“change”S_Type)Station((

יהיו כל הזוגות האפשריים של צירופי "משרת-קו" RRעתה במכפלה עבורם המדובר בתחנת חילוף ─ נניח שעל מנת להבדיל בין התכונות

, …S_Name1, S_Name2הוספנו להם אינדקסים, למשל

נרצה לבחור מהמכפלה רק זוגות החולקים ביניהם אותה תחנת חילוף:

S = S_Name1=S_Name2)RR(

לבסוף, לקבלת השאילתה השלמה נבצע הטלה על התכונות המעניינות T = L_Type1,L_Num1,Direction1,L_Type2,L_Num2,Direction2 אותנו:

)S(

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

21

אלו שאילתות לא יכולות להישאל באלגברה רלציונית ?

ישנם מספר סוגים של שאילתות טבעיות שאין עבורן ביטויים (.RAמתאימים באלגברה רלציונית )

(: Aggregate functionsקיבוץ )שאילתות מהצורה:

"כמה קווים יש בכיוון צפון ?"-דרום ?"1"מה ממוצע המרחקים בין שתי תחנות על קו "כמה רכבות עוצרות ביום שני בכל תחנה ?"

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

ערכים המתקבלים מהרלציה.

המאפשרות שאילתות מסוג זה, וכן ניתן RAישנן הרחבות של הנלמדת בתרגול.SQLלשאול אותן בשפת

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

22

שאילתות שאי אפשר לשאול )המשך( סגור טרנזיטיבי:

?RAהאם ניתן לשאול את השאילתא הבאה ב-"מאלו לאלו תחנות אפשר להגיע עם מספר סופי כלשהוא של חילופי

רכבת?"

את השאילתא:RA קבוע אפשר לשאול ב-kלכל חילופים או פחות ?",k"מאלו לאלו תחנות אפשר להגיע עם אין ביטוי באלגברה רלציונית.kאבל עבור השאילתה ללא הגבלה על

סטנדרטי )ללא התערבות של השפה המארחת( ANSI SQLגם ב-אי אפשר לשאול שאילתא מעין זו.

מאפשרת את ביצוע השאילתה הנ"ל.Datalogשפת השאילתות הניסיונית