40
1 236363 םםםםםם םםםם םםםםםם3 )םםםםםםםם( . םםםםםם םםםםם)םםםםם םם םםםםםם םם םםםם םםםם(

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

Embed Size (px)

DESCRIPTION

236363 מערכות מסדי נתונים. 3. אלגברה יחסית (רלציונית) (מבוסס על השקפים של אלדר פישר). שפת שאילתות. שאילתה – ביטוי המאפשר שליפת מידע ממסד הנתונים שפת שאילתות – שפה לניסוח שאילתות. התנאים בביטוי WHERE בשפת SQL מנוסחים בצורה לוגית. שפה למשתמש אנושי. שפות לוגיות. תרגום. - PowerPoint PPT Presentation

Citation preview

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

1

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

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

)מבוסס על השקפים של אלדר פישר(

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

שפת שאילתותשאילתה – ביטוי המאפשר שליפת מידע ממסד הנתונים

שפת שאילתות – שפה לניסוח שאילתות

2

שפה למשתמש אנושי

שפה לניסוח ביטויים פשוטים לחישוב מעל

מסד הנתונים

תרגום

שפות לוגיות

אופרטורים )אלגברה(

התנאים בביטוי

WHERE SQLבשפת

מנוסחים בצורה לוגית

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

3

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

היא שפה המאפשרת (Relational Algebraאלגברה של יחסים )

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

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

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

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

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

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

4

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

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

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

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

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

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

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

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

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

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

5

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

היחס.

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

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

T=

no Heb Roman

1 א i

2 ב ii

Heb, RomanT=

Heb Roman

א i

ב ii

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

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: 236363 מערכות מסדי נתונים

7

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

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

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

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

S \ ) S \ Tחיתוך אינו אופרטור בסיסי - ניתן לבטא אותו בעזרת הפרש ( .

דוגמא:

T=

צבע חיה

שחור חתול

לבן סוס

S=

צבע חיה

לבן סוס

ורוד פיל

ST= צבע חיה

לבן סוסS\T=

צבע חיה

ורוד פילST=

צבע חיה

שחור חתול

לבן סוס

ורוד פיל

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

8

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

מהיחס הראשון ורשומה מהיחס השני.

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

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

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

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

S

Tגודל צבע חיה

קטן שחור חתול

גדול לבן סוס

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

קטן שחור חתול

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

קטן לבן סוס

גדול לבן סוס

מה תהיה התוצאה אם אחד ?היחסים יהיה ריק

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

9

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

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

בהמשך(.

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

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

בהתאמה.B1,…,Bmלאחר החלפת שמות התכונות ל-

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

Color Animal

שחור חתול

לבן סוס

T=

צבע חיה

שחור חתול

לבן סוס

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

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

מוגדרות כפעולות בסיסיות:

לא ניתן לבטא אף אחת מהן בעזרת הארבע האחרות.1.

ניתן לבטא פעולות לא בסיסיות )כגון חיתוך, צירוף, חילוק( 2.

בעזרתן )לעיתים תוך שימוש בשינוי שם תכונות(.

כיצד מראים כי פעולה בסיסית היא אכן בסיסית?

מוצאים תכונה שהיא מקיימת ושלא מתקיימת באף צירוף של

הארבע האחרות.

10

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

כיצד להראות כי פעולות הן בסיסיות

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

הפרש ואיחוד.

. R[A1,...,An] עמודות: n>1 יחס בעל R יהי הוכחה )קווי מתאר(:

A1בהטלה R-מתקבל יחס בעל פחות מ n.עמודות

)אפשר עם יחסים נוספים( Rכעת ניתן להראות כי כל ביטוי המכיל את

ומורכב מהפעולות בחירה, מכפלה קרטזית, הפרש ואיחוד, יוצר יחס

עמודות. nבעל לכל הפחות

ניתן להראות זאת באינדוקציה על מספר האופרטורים בביטוי.

כיצד נשנה את ההוכחה כדי להראות שמכפלה קרטזית היא פעולה

בסיסית?

11

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

12

-( צירוף-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 13: 236363 מערכות מסדי נתונים

13

(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 14: 236363 מערכות מסדי נתונים

14

(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 15: 236363 מערכות מסדי נתונים

15

(Divisionחילוק ), 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 16: 236363 מערכות מסדי נתונים

16

Aדוגמא נוספת לחילוק

sno

=S1S2S3S4

המספקיםAנרצה לקבל את רשימת הספקים מ-

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

P2

pno

B

sno pno

S1

S1

S1

S1

S2

S2

S3

S4

S4

P1

P2

P3

P4

P1

P2

P2

P2

P4

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

17

Aדוגמא נוספת לחילוק

sno

=S1S4

המספקיםAנרצה לקבל את רשימת הספקים מ-

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

P2

P4

pno

B

sno pno

S1

S1

S1

S1

S2

S2

S3

S4

S4

P1

P2

P3

P4

P1

P2

P2

P2

P4

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

18

Aדוגמא נוספת לחילוק

sno

=S1

המספקיםAנרצה לקבל את רשימת הספקים מ-

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

P1

P2

P4

pno

B

מה תהיה התוצאה אם אחד ?היחסים יהיה ריק

sno pno

S1

S1

S1

S1

S2

S2

S3

S4

S4

P1

P2

P3

P4

P1

P2

P2

P2

P4

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

19

דוגמא מסכמת─אלגברה יחסית עבור מפעיל הרכבות.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 20: 236363 מערכות מסדי נתונים

20

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

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

שלוש העמודות הנ"ל ישמשו כמפתח שלServesKmבנוסף תהיה עמודה עבור התכונה •

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

Direction, L_Num, S_Nameהן ,Arrives ─ Platformשלוש התכונות של טיפוס הקשרים •

D_Time, A_Time

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

הסכמותמהשקף הקודם )קווים תחתיים מציינים את המפתח הראשי(:

Serves)S_Name, L_Num, Direction, Km(

Arrives)T_Num, S_Name, L_Num, Direction, Platform,

D_Time, A_Time(

עבור הדוגמאות כאן נהפוך את התכונה הרב-ערכית לרלציה נפרדת:

Station)S_Name, Height(

Station_Type)S_Name, S_Type( 21

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

22

דוגמאות לשאילתות-דרום ?1אלו תחנות נמצאות על הקו

. השאילתה:Servesהמידע הנ"ל נמצא כולו בטבלת

S_Name))L_Num=1()Direction=“south”()Serves((

לאלו קווים יש תחנות מתחת לפני הים ?

. השאילתה המלאה:Station ל-Servesכאן נדרש לצרף את

L_Num,Direction)Height<0)Station⋈Serves((

או )תוך שימוש בחצי צירוף(:

L_Num,Direction)Serves⋉S_Name)Height<0)Station(((

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

23

דוגמאות לשאילתותתחנות שמשרתות יותר מקו אחד?

בו זמנית. השאילתה:Servesנרצה לבחון שתי שורות מטבלת

S_Name))S_Name=S())L_NumL()DirectionD(() S_Name→S, L_Num→L, Direction→D,

Km→K )Serves( Serves((

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

S_Name))S_Name=S()L_NumL() S_Name→S, L_Num→L, Direction→D, Km→K

)Serves( Serves((

כיצד נמצא תחנות המשרתות קו אחד )במספר כיוונים( בדיוק?

S_Name)Serves( \ S_Name))S_Name=S()L_NumL() S_Name→S, L_Num→L,

Direction→D, Km→K )Serves( Serves((

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

דוגמאות לשאילתותמהו שם התחנה הגבוהה ביותר?

יותר קל למצוא את התחנות שאינן הגבוהות ביותר:

R = S_Name))Height<H()Station S_Name→N, Height→HStation((

עתה קל להשלים את השאילתה:

S_Name )Station( \ R

24

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

25

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

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 26: 236363 מערכות מסדי נתונים

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

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

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

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

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

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

S = )S_Name1=S_Name2( )L_Num1L_Num2( )RR(

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

)S(

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

27

אלו שאילתות לא ניתן לבטא באלגברה יחסית?

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

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

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

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

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

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

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

28

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

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

חילופי רכבת?"

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

לא ניתן לבטא באלגברה רלציונית.kאבל את השאילתה ללא הגבלה על

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

מאפשרת את ניסוח שאילתות Datalogלהשוואה, שפת השאילתות המכילות רקורסיה ובפרט את ניסוח השאילתה הנ"ל.

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

29

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

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

מה יחס חסר תכונות יכול להכיל?יחס כזה יכול להיות ריק. •היחס יכול להכיל שורה אחת בדיוק שהיא "שורה ריקה" •

)לעיתים מתייחסים אל השורה הריקה כאל ערך אמת "true "או כמייצג מצב "קיים", בניגוד למצב "לא קיים "

המיוצג ביחס ריק(.

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

30

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

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

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

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

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

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

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

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

הנתונים הם מחזירים אותה תוצאה.

מדוע חשוב לדעת אם ביטויים הם שקולים?אופטימיזציה – עבור ביטוי נתון, נרצה להפוך אותו לביטוי •

שקול יעיל יותר לחישוב.

הביטויים הבאים שקולים:)R)A,B,Cדוגמה: עבור היחס

A )R( A )A,B) R(( A )A,C) R((

מי יותר יעיל לחישוב?31

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

דוגמה A R A S , ונרצה להראות ש-)R)A,B(, S)A,Bנתונים היחסים

.)A )R Sשקול ל-

.)A R A S A )R Sא. נראה ש-

. )A R A S A )R Sב. נראה ש-

32

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

דוגמה.)A R A S A )R Sא. נראה ש-

מהגדרת AS או ל-AR שייך או ל-t, אז tAR ASאם האיחוד.

.u[A]=t[A] כך ש-uS, או קיים u[A]=t[A] כך ש-uRלכן, קיים

.u[A]=t[A] כך ש-uRSלכן, קיים

.)tA)RSאו במילים אחרות,

33

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

דוגמה. )A R A S A )R Sב. נראה ש-

.u[A]=t[A] כך ש-uRS אז קיים ,)tA )R Sאם

.u[A]=t[A] כך ש-uS, או קיים u[A]=t[A] כך ש-uRלכן, קיים

.tA S או ש-tA R לכן, או ש-

.t A R A Sאו במילים אחרות,

34

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

חשיבות השקילות טיפוסיתSQLשאילתת

35

SELECT DISTINCT AFROM R,SWHERE R.B=S.B AND C=5;

תרגום ישיר

A ))R.B=S.B()C=5()R S((

אופטימיזציה

A )R ⋉ B ) C=5 S(((

חשוב לוודא שהאופטימיזציה לא גורמת לחישוב שגוי

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

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

( מרפדים את הערכים outerjoinיופיעו בתוצאה. בצירוף חיצוני ) וכך לא זורקים תוצאות:nullהחסרים בערכי

, T[B1,...,Bm,C1,...,Ck] ו- S[A1,...,An,B1,...,Bm]עבור היחסים

כשכל T ו-S את היחס הבא: הצירוף הטבעי של S ⋈outer T נסמן ב-

null שניתן לצרף לה מרפדים בערכי T שאין רשומה מ-Sרשומה מ-

.S שאין להן צירוף ב-Tומוסיפים לתוצאה, וכנ"ל לגבי רשומות

בניסוח אחר:

S ⋈outer T= )S ⋈ T( ))S \ )S ⋉ T(( C1,...,CkTnull( )A1,...,An

Snull

)T \ )T ⋉ S(((

null והמכיל שורה של ערכי Tיחס בעל סכמה זהה לזו של Tnullכאשר

.null והמכיל שורה של ערכי Sיחס בעל סכמה זהה לזו של Snullו- 36

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

דוגמהT ו-Sצירוף חיצוני של

37

T

גוון צבע

בהיר כחול

כהה כחול

בהיר ורוד

כהה ורוד

S

צבע חיה

לבן סוס

ורוד פיל

שחור חתול

S ⋈outer T=

גוון צבע חיה

בהיר ורוד פיל

כהה ורוד פיל

null לבן סוס

null שחור חתול

בהיר כחול null

כהה כחול null

מה תהיה התוצאה אם אחד ?היחסים יהיה ריק

קיימים צירוף חיצוני ( right outer joinימני )

וצירוף חיצוני שמאלי (left outer join )

שבהם מרפדים רק את היחס nullב-

הימני או השמאלי, בהתאמה

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

nullערכי " אשר nullלמעשה, ברגע שאנו מאפשרים את הערך המיוחד "

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

מופיעים בקלטים )למשל, איך מבצעים צירוף טבעי כאשר יש בחלק מהתכונות המשותפות?(nullרשומות עם

הכללה זו קשה להגדרה והיא מחוץ למסגרת הקורס.

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

(Bag, multi-setסמנטיקת שקים )עד כה, הנחנו כי יחסים הם קבוצות.

נדרש לאפשר SQLבפועל, עבור חישוב שאילתות כמו שאילתות

כפילויות )מדוע?(

בסמנטיקת שקים )רבי-קבוצה(, יחס עשוי להכיל כפילויות, כלומר

אותה רשומה עשויה להופיע ביחס יותר מפעם אחת.

יש לשנות את האופרטורים האלגברים בהתאם.

39

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

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

– משאירים את השורות המקיימות את התנאי, כולל בחירהכפילויות.

R פעמים ב-n מופיעה t – אם רשומה R Sמכפלה קרטזית יופיע u ו-t אזי השרשור של S פעמים ב-m מופיעה uורשומה

mn-פעמים ב R S.

פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R Sאיחוד פעמים באיחוד.m+n תופיע t אזי Sב-

פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R \ Sהפרש פעמים בהפרש.max{0,n-m} תופיע t אזי Sב-

פעמים m ו-R פעמים ב-n מופיעה t – אם רשומה R Sחיתוך פעמים בחיתוך.min{n,m} תופיע t אזי Sב-

– אופרטור חדש להסרה מפורשת של כפילויות.δאופרטור 40

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