אביב-תשס"ה236363- dbms, שפות שאילתה: ra1 שפות שאילתה מתמטיות...

41
ההה"ה- הההה236363- DBMS, :הההה ההההההRA 1 תתתת תתתתתת תתתתתתת תתתתת תתתתתתתת תתתת תתתתתת תתתתתתת : ההההההההההה( ההההההה ההה הההההה הה הההההה.) ההההה הההה הההההה הההה תתתתת תתתתת תתתתת: .1 ( הההההה ההההההההRA .) .2 ( ההההה ההההההה הה ההההההDRC .) .3 ( ההההה ההההההה הה ההההההTRC .)

Post on 20-Dec-2015

242 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 1

שפות שאילתה מתמטיותלמודל הרלציוני

התייחסות לרלציות שפות שאילתה מתמטיות :כאל קבוצות של רשומות )ללא חזרות וללא

משמעות לסדר(.

השפות שנלמד בקורס:(.RAאלגברה רלציונית )1.

(.DRCתחשיב רלציוני על תחומים )2.

(.TRCתחשיב רלציוני על רשומות )3.

Page 2: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 2

מסד שתייני הבירה

drinker)dname, dcity(.שם שתיין ועיר מגוריו - pub)pname, pcity(.שם של פאב והעיר שבה הוא נמצא - beer)bname, btype(. שם של בירה והסוג שלה - frequents)dname, pname(שתיין נוהג לבקר בפאב – serves)pname, bname(.פאב מגיש בירה – likes)dname, bname(.שתיין אוהב בירה -

Page 3: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 3

ERDתיאור המסד על ידי

drinker pubfrequents

serves

beer

likes

dname dcity pcitypname

btypebname

Page 4: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 4

מסד שתייני הבירה - המשך

dnamedcity

MosheHaifa

YossiTelAviv

AviHaifa

LiorNatania

Pnamepcity

HaShmuraHaifa

DartsTelAviv

MartefHaifa

CamelotNatania

bnamebtype

Becklight

Camelotroot

Guinesslager

Tuborgdark

drinker: pub:

beer:

Page 5: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 5

dnamepname

MosheHaShmura

YossiDarts

AviMartef

YossiMartef

pnamebname

HaShmuraTuborg

DartsGuiness

MartefBeck

HashmuraGuiness

dnamebname

MosheGuiness

YossiTuborg

YossiBeck

AviBeck

:frequents

:serveslikes:

מסד שתייני הבירה - המשך

Page 6: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 6

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

-בRA.מוגדרים אופרטורים הפועלים על רלציות ,התוצאה של כל אופרטור היא בעצמה רלציה

שעליה אפשר להפעיל אופרטור נוסף, וכן הלאה...RA( היא שפה פקודתית imperative ולא )

הצהרתית

(declarative.) כלומר בשפה זו אומרים במפורש אלו אופרטורים

יש להפעיל ובאיזה סדר.

Page 7: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 7

RA: set-of-mapping אוset-of-list

-לRA :שתי גרסאות .1Set-of-mapping.עם שמות לעמודות

.2Set-of-list.בלי שמות לעמודות

שתי הרלציות הבאות set-of-mapping: לפי דוגמא1.שוות:

r)a, b( = {)1, 2(, )3, 4(} s)b ,a( = {)2, 1(, )4, 3(} הרלציות הבאות שונות:set-of-listלעומת זאת, לפי

t = {)1, 2(, )3, 4(} u = {)2, 1(, )4, 3(}

בלבדset-of-mappingבהמשך, אנו נתייחס לגרסא של 2.

Page 8: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 8

RAאופרטורים בסיסיים ב-

הן רלציות(:s ו-rאופרטורים מתורת הקבוצות ) 1. - איחודr s - חיתוךr s - חיסורr s - מכפילה קרטזיתr s

אופרטורים נוספים:2.

attrsrבחירת עמודות - 1.

condrבחירת שורות - 2.

ρaa1,bb1 - שינוי שם3.r

Page 9: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 9

– המשךRAאופרטורים ב-

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

חמשת האופרטורים , , , , , ρ הם . אפשר להגדיר RAהאופרטורים הבסיסיים ב-

באמצעותם את כל שאר האופרטורים שנראה. תרגיל: בטאו את האופרטור. :פתרוןr s = r )r s(

Page 10: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 10

– המשךRAאופרטורים ב-

-בset-of-mapping אפשר להפעיל את ( בין האופרטורים מתורת הקבוצות )מלבד

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

:דוגמאשתי הרלציות:

r)a, b( = {)1, 2(, )3, 4(} s)b ,a( = {)2, 1(, )4, 3(}

שוות זו לזו, ולכן

r s = r

Page 11: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 11

RA( בחירה – ( והיטל ))

-התנאי הבוליאני שב:יכול לכלול ,= ,< השוואה בין שתי עמודות ע"י אחד מסימני היחס.'וכו .השוואה בין עמודה לקבוע שילוב של השוואות כאלה ע"י הקשרים הלוגיים, ,

דוגמאות(r=r)a,b():ar יחזיר רלציה שמכילה את העמודה - a-ב r.

a=br-יחזיר רלציה שמכילה את השורות ב - r שמזדהות על .b ו-aהערכים של התכונות

ρaa1,bb1r יחזיר את - r)a1,b1(-שזהה ל r.פרט לשמות התכונות

Page 12: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 12

דוגמאות

אלו בירות יוסי אוהב?1דוגמא :

dname=‘Yossi’likes

BeckYossi

BeckAvi

TuborgYossi

GuinessMoshe

bnamedname

Likes:

BeckYossi

TuborgYossi

bnamedname

התוצאה:•

Page 13: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 13

דוגמאות – המשך

כדי לבחור את שמות הבירות, בלי לחזור עלYossi כל פעם:

dname=‘Yossi’likes

BeckYossi

TuborgYossi

bnamedname

Beck

Tuborg

bname

dname=‘Yossi’likes:

( )bnameהתוצאה:•

Page 14: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 14

דוגמאות - המשך...

אלו בירות יוסי אוהב, או מוגשות ב"השמורה"?2דוגמא : bname)dname=‘Yossi’likes( bname)pname=‘HaShmura’serves(

אלו בירות יוסי אוהב, ואינן מוגשות 3דוגמא :ב"השמורה"?

bname)dname=‘Yossi’likes( bname)pname=‘HaShmura’serves(

Page 15: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 15

דוגמאות - המשך...

.הצלבת מידע: מכפלה קרטזית אלו פאבים נמצאים בעיר שיוסי גר בה?4דוגמא :

pub:

TelAvivYossi

HaifaMoshe

dcitydname

NataniaCamelot

HaifaMartef

TelAvivDarts

HaifaHaShmura

pcitypnamedrinker:

Page 16: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 16

1דוגמא – שלב

dnamedcitypnamepcity

MosheHaifaHaShmuraHaifa

MosheHaifaDartsTelAviv

MosheHaifaMartefHaifa

MosheHaifaCamelotNatania

YossiTelAvivHaShmuraHaifa

YossiTelAvivDartsTelAviv

YossiTelAvivMartefHaifa

YossiTelAvivCamelotNatania

drinker pub:

dname=‘Yossi’p

city=dcity

Page 17: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 17

TelavivDartsTelAvivYossi

pcitypnamedcitydname

dname=‘Yossi’pcity=dcity(drinker pub):

שלב – 2דוגמא

Darts

pname

pname(dname=‘Yossi’pcity=dcity(drinker pub)):

שלב – (3דוגמא תוצאה )

Page 18: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 18

דוגמאות - המשך...

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

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

להוסיף מספר לאחר השם(.

Page 19: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 19

דוגמאות - המשך

lagerGuiness

darkTuborg

roofCamelot

LightBeck

btypebname

Beer:

BeckYossi

TuborgYossi

GuinessMoshe

bnamedname

Likes:

.5דוגמא אוהבים: שהם הבירות וסוגי השתיינים שמות

Page 20: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 20

dnamelikes.bnamebeer.bnamebtype

MosheGuinessBecklight

MosheGuinessCamelotroof

MosheGuinessGuinesslager

MosheGuinessTuborgdark

YossiTuborgBecklight

YossiTuborgCamelotroof

YossiTuborgGuinesslager

YossiTuborgTuborgdark

YossiBeckBecklight

YossiBeckCamelotroof

YossiBeckGuinesslager

YossiBeckTuborgdark

1דוגמא – שלב

likes beer:

likes.bname=beer.bname

Page 21: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 21

dnamelikes.bnamebeer.bname

btype

MosheGuinessGuinesslager

YossiTuborgTuborgdark

YossiBeckBecklight

2דוגמא – שלב

likes.bname=beer.bname(likes beer):

Page 22: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 22

3דוגמא –שלב

dname,btype(likes.bname=beer.bname(likes beer)):

dnamebtype

Moshelager

Yossidark

Yossilight

ע"י שימוש באופרטור שינוי שם: וא

dname,btype(lbname=bname(( bnamelbnamelikes) beer))

Page 23: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 23

Joinצרוף -

מכפלה קרטזית + בחירה = צירוף( Join:)

r s ⋈ condition)r s(

הפאבים: " דוגמא• מהם השאילתה את " גם לכתוב יכולנו בה גר שיוסי בעיר שנמצאים

כך:pname(drinker ⋈ pub)

condition

dname=‘Yossi’ pcity=dcity

Page 24: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 24

natural joinצרוף טבעי -

מקרה מיוחד של צרוף שבו תנאי הבחירה הוא שוויון:s וב-rבין כל העמודות שיש להן אותו שם ב-

r ⋈ sattributes of r and s without duplication)equal values at identically-named attributes)r s((

-כמובן, אופרטור זה מוגדר רק בset-of-mappings ,כאשר יש שמות לעמודות.

למעשה, צרוף טבעי איננו בדיוק צרוף, בגלל פעולתההיטל.

Page 25: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 25

צרוף טבעי - המשך

?אלו פאבים מגישים בירה שיוסי אוהב

pname)dname=‘Yossi’)serves ⋈ likes((:או בצורה יעילה יותר

pname)serves ⋈ dname=‘Yossi’likes( יעילות: השאילתה האחרונה יעילה יותר בגלל

שהצרוף מבוצע בין טבלאות קטנות יותר, שכבר עברו את פעולת הבחירה.

Page 26: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 26

צירוף טבעי – דוגמא

?דוגמא: מה מחזירה השאילתה הבאה

dname)frequents ⋈)serves ⋈ likes((

Page 27: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 27

serves ⋈ likes: 1דוגמא – שלב

BeckMartef

GuinessHashmura

GuinessDarts

TuborgHaShmura

bnamepname

:serves

BeckYossi

BeckAvi

TuborgYossi

GuinessMoshe

bnamedname

likes:

|

pnamebnamedname

HaShmuraTuborgYossi

DartsGuinessMoshe

HashmuraGuinessMoshe

MartefBeckYossi

MartefBeckAvi

serves ⋈ likes:

הביטוי serves ⋈ likes

שלשות נותן , בירה פאב של

כך ושתייןמגיש שהפאב

הבירה אתאוהב והשתיין

אותה

Page 28: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 28

:2שלב frequents ⋈)serves ⋈ likes(

MartefAvi

MartefYossi

DartsYossi

HaShmoraMoshe

pnamedname

:frequents

AviBeckMartef

YossiBeckMartef

MosheGuinessHashmura

MosheGuinessDarts

YossiTuborgHaShmura

dnamebnamepnameserves ⋈ likes:

AviBeckMartef

YossiBeckMartef

MosheGuinessHashmura

dnamebnamepname

frequents ⋈(serves ⋈ likes):עם הצירוף

frequents את רק משאירשבהן השלשותנוהג גם השתיין

בפאב לבקר

Page 29: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 29

)תוצאה(3דוגמא – שלב

:השאילתה

dname)frequents ⋈ )serves ⋈ likes((

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

dname

Moshe

Yossi

Avi

Page 30: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 30

חילוק

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

( "לשאילתות מסוג "לכל יש אופרטור )אחר: מרוכב חילוק.

התוצאה שלr s היא הרשומות כך שכל השלמה .r נותנת רשומה ב-sשלהן עם רשומה מ-

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

Page 31: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 31

חילוק

אםR, S הן הסכמות של הרלציות r, s ,בהתאמה .S Rאז החילוק מוגדר אם

הסכמה של התוצאה היאR\S.:התוכן מוגדר ע"י

r s R\S)r( \ R\S))R\S)r( s( \ r(

Page 32: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 32

חילוק - דוגמא

ABCD

1111

2112

2222

2332

BC

11

22

AD

22

r= s= r s=

Page 33: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 33

חילוק – דוגמא

הפאבים שמגישים בירה בכל: מי מבקר דוגמא "טובורג"?

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

)המבטאת שהשתיין מבקר בפאב frequentsב-זה(.

פתרון:

frequents pname)bname=‘Tuborg’serves(

Page 34: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 34

Semijoinצרוף למחצה -

-מסומן ב( צרוף טבעי למחצהr s⋉ מכיל את כל ) )על s שמסכימות עם רשומה כלשהי מ-rהרשומות מ-

העמודות המשותפות(:

r s ⋉ attributes of r )r ⋈ s( -היתרון: מצמצם, בעוד ש⋈ מרחיב לעיתים ⋊

(. לאחסון תוצאות ביניים של חישוב)יותר יעיל

Page 35: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 35

Semijoinדוגמא -

נגדיר את הרלציות: R)A,B(, S)B,C(, T)A,D(, U)D,E(,V)C,A(

במקום לחשבA)R)A,B( ⋈ S)B,C( ⋈ T)A,D( ⋈ U)D,E((

⋊))R)A,B( S)B,C(( )T)A,D( U)D,E((A )ניתן לחשב ⋉ ⋉

לעומת זאת, אתA)R)A,B( ⋈ S)B,C( ⋈ V)C,A(( לא ניתן לחשב באופן דומה.

Page 36: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 36

⋈מתי אפשר לחשב שאילתת בלבד? ו- ⋊ע"י

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

מתבצע ההיטל.

הוא עץ שבו לכל אטריביוט מקשרהגדרה: עץ A Aהמושרה על הצמתים המכילים את תת העץ

הוא קשיר.

Page 37: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 37

Semijoinהמשך -

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

לכן, לא ניתן לבטא אתA)R)A,B( ⋈ S)B,C( ⋈ V)C,A(( .Semijoinבאמצעות

R(A,B)

S(B,C) V(C,A)

Page 38: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 38

Semijoinדוגמא -

עבורA)R)A,B( ⋈ S)B,C( ⋈ T)A,D( ⋈ U)D,E(( קיים העץ הקשיר הבא:

:ולכן ניתן לבטא אותה ע"י

A))R)A,B( S)B,C(( )T)A,D( U)D,E(((.⋉ ⋉ ⋉

-בתוצאה הוא מלמעלה למטה ואילו הסדר ⋊הערה: כיוון ה הסדר בין אחים איננו משנה..הוא מהעלים לשורש

R(A,B)

S(B,C) T(A,D)

U(D,E)

Page 39: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 39

אלגוריתם לבניית עץ מקשר :⋈עבור שאילתת

⋈רשום את הסכמות של הרלציות המשתתפות ב- 1.

בצע עד שאין יותר שינויים:2. ואינו נמצא אם קיים אטריביוט שמופיע בסכמה בודדתא-

מחק אותו.בהטלה – אם קיימת סכמה שמוכלת בסכמה אחרת – מחק ב-

אותה.

אם נשארה סכמה אחת השווה להטלה - העץ 3.נבנה ע"י מעבר על מחיקות הסכמות, בסדר הפוך:

נמחקה בגלל שהייתה Rj אם Ri Rjקיימת קשת .Riמוכלת ב-

- לא קיים עץ מקשר. אחרת4.

Page 40: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 40

– דוגמאSemijoinבניית עץ

:נתוןR1)A, B, C(, R2)B, C, D(, R3)D, E, F(, R4)A, G( האם .

בלבד?⋊ ע"י ו- )A)R1 ⋈ R2 ⋈ R3 ⋈ R4אפשר לחשב את פתרון: :נתחיל מכל הסכמותR1)A, B, C( R2)B, C, D( R3)D, E, F( R4)A, G(

נמחק אתG-מ R4 : R1)A, B, C( R2)B, C, D( R3)D, E, F( R4)A(

נמחק אתR4 :-כי היא מוכלת בR1 R1)A, B, C( R2)B, C, D( R3)D, E, F(

נמחק אתE, F-מ R3 : R1)A, B, C( R2)B, C, D( R3)D(

נמחק אתR3-כי היא מוכלת ב R2 : R1)A, B, C( R2)B, C, D(

נמחק אתD-מ R2 : R1)A, B, C( R2)B, C(

נמחק אתR2-כי היא מוכלת ב R1 : R1)A, B, C(

נמחק אתB, C-מ R1 : R1)A(

Page 41: אביב-תשס"ה236363- DBMS, שפות שאילתה: RA1 שפות שאילתה מתמטיות למודל הרלציוני שפות שאילתה מתמטיות: התייחסות לרלציות

אביב-תשס"ה 236363- DBMS, שפות שאילתה: RA 41

דוגמא – המשך

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

קשיר:ץולכן קיים ע

לכן, השאילתהA)R1 ⋈ R2 ⋈ R3 ⋈ R4( -שקולה ל A))R1 ⋉ )R2 ⋉ R3(( ⋉ R4(.

R1

R4

R3

R2