33
1 236363 םםםםםם םםםם םםםםםם4 . םםםםם םםםםםם)םםםםם םם םםםםםם םם םםםם םםםם(

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

  • Upload
    teague

  • View
    93

  • Download
    3

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

. תחשיב היחסים4

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

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

2

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

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

)DRC )Domain Relational Calculus בשפת תחשיב היחסים, התנאים )TRC )Tuple Relational Calculusובגרסה שלה

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

)בניגוד לאופי ה"אלגוריתמי" של אלגברת היחסים(.

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

3

(DRCתחשיב היחסים מבוסס התחומים )

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

4

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

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

יתאר ))x1,...,xnאליהם ייבדק ערך האמת של הביטוי. הסימון בהתאמה. ביטוי x1,...,xn שמשתניו החופשיים הם ביטוי

כנ"ל נקרא גם נוסחה.

מתארים תכונות של רשומה. לכל המשתנים החופשיים של , x1,...,xn עבור המשתנים 1,...,nסדרת ערכים אפשרית

מתקיים", או ))1,..., n או " מחזיר ערך אמת הביטוי ")1,..., n(."אינו מתקיים

R[A1,...,An] = {<x1,...,xn> : )x1,...,xn(} הסימון-יות( אשר nמסמן את היחס המכיל בדיוק את כל הרשומות )

מתקיים.))x1,...,xnעבורן

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

5

DRCנוסחאות אטומיות ב- כל הנוסחאות הבאות הן הנוסחאות הפשוטות ביותר בשפה

מורכבת מביטוי לוגי המשתמש בנוסחאות אלו.DRCנוסחת

יחס השמור במסד הנתונים, R[A1,...,An] אם נוסחאות שייכות: משתנים n" היא נוסחה אטומית עם )R)x1,...,xnאז הנוסחה "

מתקיימת )R)1,...,n של ערכים, 1,...,nחופשיים. לכל סדרה אם ורק אם ישנה רשומה ביחס שאלו הן התכונות שלה.

)R)1,...,nבמקום 1 ,..., n>R<מותר לכתוב

נעשית באמצעות השוואה בין משתנים או בין קבועים ומשתנים:". המשתנים z = 2" או "x < yסימני ההשוואה הרגילים. למשל "

החופשיים של נוסחה כזו הם אלו המופעים בהשוואה.

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

6

פעולות בוליאניותהרכבת ביטויים הוא ביטוי חוקי עם המשתנים החופשים ))x1,...,xn אם שלילה:

x1,...,xn אז גם הביטוי , המוגדר ע"י )x1,...,xn(=)x1,...,xn( הוא ביטוי חוקי עם אותם משתנים חופשיים.

מתקיים אם ))1,..., nמשמעותו: לכל סדרת ערכים אפשרית, אינו מתקיים.))1,..., nורק אם

הם ביטויים )x1,...,xn(2 ו- )1)x1,...,xn אם (:disjunctionאיחוד ) הוא ביטוי ))x1,...,xn(=1)x1,...,xn(2)x1,...,xnחוקיים, אז

מתקיים 2 מתקיים או 1המתקיים לכל סדרת ערכים שעבורה )או שניהם מתקיימים(.

הם משתנים חופשיים בו. x1,...,xn רק חלק מ-2 או 1יתכן שעבור ניתן "להצהיר" עבור ביטוי על משתנים חופשיים שאינם מופיעים

בו במפורש, כך שדבר זה אינו מהווה בעיה עבור האיחוד.

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

7

פעולות בוליאניות נוספות מתקיים )1)x1,...,xn(2)x1,...,xn הביטוי (:conjunctionחיתוך )

אם ורק אם גם x1,...,xnעבור סדרת ערכים של המשתנים 1)x1,...,xn( וגם 2)x1,...,xn(.מתקיימים עבורה

)))))1)x1,...,xn(()2)x1,...,xnשקול לביטוי: הסוגריים בביטוי מתארים את סדר הרכבת הביטוי כאשר זה

אינו ברור מראש.

. שקול לביטוי)1)x1,...,xn(2)x1,...,xn הביטוי גרירה:((1)x1,...,xn())2)x1,...,xn(().

. שקול לביטוי)1)x1,...,xn(2)x1,...,xn הביטוי שקילות: )2)x1,...,xn(1)x1,...,xn(())1)x1,...,xn(2)x1,...,xn(.

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

8

(existential הכמת הקיומי )כמתים המוגדר ע"י הוא ביטוי חוקי, אז הביטוי ))x1,...,xnאם

)x2,...,xn(=x1 )x1,...,xn( הוא ביטוי חוקי בעל המשתנים . x2,...,xnהחופשיים

x1 אינו משתנה חופשי של למופעים אפשריים של .x1 מחוץ .))x1,...,xn בתוך x1 אין קשר עם המופע של ל-

מתקיים אם ורק אם קיים ערך ))2,...,nמשמעות הביטוי: 1 עבור המשתנה x1כך ש ,- )1,...,n( .מתקיים

דוגמה: עבור תכונות שתחומיהן הן מספרים טבעיים, הביטוי )x2,x3(=x1 ))x2 > x1( )x1 > x3( יתקיים אם ורק אם x2,x3

הם זוג יורד של מספרים לא-עוקבים.

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

9

הכמת האוניברסלי כמתים (universal)

המוגדר ע"י, הביטוי ))x1,...,xnעבור ביטוי )x2,...,xn(=x1 )x1,...,xn( הוא בעל המשמעות הבאה: לכל

מתקיים אם ורק אם ))2,...,n, הביטוי 2,...,nסדרת ערכים .))1,...,n, יתקיים x1 אפשרי עבור המשתנה 1לכל ערך

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

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

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

נצטרך לציין אותו במפורש.

, בגלל האפשרות בעיה דומה מתקיימת גם עבור הכמת הקיומי שקול )x1 )x1,...,xnלשימוש בסימני שלילה. למעשה הביטוי

.)x1 )x1,...,xnלביטוי

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

10

דוגמהמשתנים חופשים ומכומתים )))y,z(=)x 1)x,y(()x 2)x,zנסתכל בנוסחה הבאה:

.z ו-yהמשתנים החופשיים של הנוסחה הם ?xמה המעמד של

מופיע פעמיים, מופע אחד שלו מוגבל לאיבר משמאל xהמשתנה . ומכומת שם, ומופע שני מוגבל לאיבר מימין ל- לסימן ה-

מהי משמעות הנוסחה ?

, ולמעשה xאין קשר בין הערכים של שני המופעים של המשתנה .))1)y,z(=)x1 1)x1,y(()x2 2)x2,zהנוסחה שקולה לנוסחה

היחס המוגדר ע"י R2[A,C], ו-1 היחס המוגדר ע"י R1[A,B]אם 2 :אז הביטוי ניתן לתרגום לאלגברה של יחסים באופן הבא ,

(BR1))CR2( .

, יש לבצע משני צידי סימן ה- xעל מנת לאכוף "תיאום" בין ערכי . ביטוי זה ))1)y,z(=x )1)x,y( 2)x,zאת הכימות באופן הבא:

.)B,C ) R1 ⋈ R2שקול לביטוי האלגברי

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

11

הפעולות הבסיסיות האונריות DRCמימוש ב-

.T[A1,...,An] הוא הביטוי המייצג של ))x1,...,xnנניח ש-

A1,...,Amהיחס T[A1,...,An] עבור( m < n:יתקבל באופן הבא )

{ <x1,...,xm> : xm+1,...,xn )x1,...,xm,xm+1,...,xn( }

מתאים, ראשית עבור ביטוי T[A1,...,An]על מנת לקבל את

ע"י החלפת את הביטוי המתקבל מ- ))x1,...,xnנסמן ב-

. עתה נשים לב i n 1 לכל xi במשתנה Aiמזהה השדה

שהביטוי המתקבל כך הוא ביטוי בלוגיקה מסדר ראשון,

ושמתקיים:

T = { <x1,...,xn> : )x1,...,xn( )x1,...,xn( }

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

12

DRCמימוש מכפלה קרטזית ב-

, T1[A1,...,An] הוא הביטוי המייצג של )1)x1,...,xnאם

, T2[B1,...,Bm] הוא הביטוי המייצג של )2)x1,...,xmו-

באופן הבא:DRC ב-T1T2אז אפשר לייצג את

T1T2= { <x1,...,xn,xn+1,...,xn+m> : 1)x1,...,xn(2)xn+1,...,xn+m( }

. 2 ו-1שימו לב שיש להשתמש בקבוצות משתנים זרות עבור

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

13

DRC מימוש ב-חיסור, איחוד וחיתוך

, T1[A1,...,An] הוא הביטוי המייצג של )1)x1,...,xnאם

, T2[A1,...,An] הביטוי המייצג של )2)x1,...,xnו-

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

הבא:

T1 \ T2 = { <x1,...,xn> : 1)x1,...,xn( 2)x1,...,xn( }

T1T2 = { <x1,...,xn> : 1)x1,...,xn( 2)x1,...,xn( }

T1T2 = { <x1,...,xn> : 1)x1,...,xn( 2)x1,...,xn( }

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

14

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

התרגום של שאילתות טבעיות יש גם ביטויים פשוטים יחסית . לדוגמה:DRCב-

, T1[A1,...,An,B1,...,Bm] הביטוי המייצג של )1)x1,...,xn,y1,...,ymאם , T2[B1,...,Bm,C1,...,Ck] הביטוי המייצג של )2)y1,...,ym,z1,...,zkו-

באופן הבא:T2 ו-T1אז ניתן לייצג את הצירוף הטבעי של

T1 ⋈ T2 = { <x1,...,xn,y1,...,ym,z1,...,zk> : 1)x1,...,xn,y1,...,ym( 2)y1,...,ym,z1,...,zk( }

תחת אותן הנחות, את חצי-הצירוף ניתן להציג באופן זה:

T1 ⋉ T2 = { <x1,...,xn,y1,...,ym> : z1,...,zk ) 1)x1,...,xn,y1,...,ym( 2)y1,...,ym,z1,...,zk( ( }

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

15

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

T2 ו-)1)x1,...,xn,y1,...,ym היחס המתאים ל- T1מתבצעת(, שאם

, )2)y1,...,ym,z1,...,zkהיחס המתאים ל- אז אכן עבור הביטוי

)x1,...,xn,y1,...,ym,z1,...,zk( =1)x1,...,xn,y1,...,ym( 2)y1,...,ym,z1,...,zk(

T1 ⋈ T2 = { <x1,...,zk> : )x1,...,zk( }מתקיים השוויון :

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

t = )1,...,n,1,...,m,1,...,k(

.) ) t אז בהכרח מתקיים t T1 ⋈ T2אם –

.t T1 ⋈ T2 אז בהכרח ) ) tאם מתקיים –

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

16

כיוון ראשון

t = )1,...,n,1,...,m,1,...,k( T1 ⋈ T2אם

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

(1,...,n,1,...,m ) T1 ולכן מתקיים ,1)1,...,n,1,...,m(.

, T2( 1,...,m,1,...,k)כמו כן, מתקיים גם

מתקיים. )2)1,...,m,1,...,kולכן גם

מאלו נובע שמתקיים :

1)1,...,n,1,...,m( 2)1,...,m,1,...,k( =

)1,...,n,1,...,m,1,...,k(

כנדרש.

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

17

כיוון שני ))t(=1)1,...,n,1,...,m(2)1,...,m,1,...,kאם מתקיים

)1)1,...,n,1,...,m( מתקיים לפי הגדרת סימן ה- (אז

. T1( 1,...,n,1,...,m)ולכן

) 2)1,...,m,1,...,kבדומה לכך מתקיים

. T2( 1,...,m,1,...,k)ולכן

T1 ⋈ T2מקיום השיוכים הנ"ל נובע לפי הגדרת הצירוף הטבעי

שמתקיים

t = )1,...,n,1,...,m,1,...,k( T1 ⋈ T2

כנדרש.

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

18

שאילתות בוליאניות ללא משתנים חופשיים כלל )אבל DRC הוא ביטוי אם

{ <> : שמשתמש ביחסים של מסד הנתונים(, אז לשאילתה "" יש עדיין משמעות.}

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

מתקיימת.הריקה )כשורה יחידה( אם

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

האם S ו-R השאילתה הבאה בודקת עבור היחסים דוגמה::R⊆Sמתקיים

{ <> : x1,...,xn ) R)x1,...,xn( → S)x1,...,xn( ( }

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

19

ביטויים בעיתיים בתחשיב היחסים, נסתכל על הביטוי הבא:R[A]עבור יחס נתון

{ <x> : R)x( }

?RAהאם ניתן לכתוב אותו ב-

האם ניתן בכלל לממש אותו כטבלה במסד נתונים?

ומה ניתן לעשות עם הביטוי הבא?

{ <x,y> : x=y }

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

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

20

תחשיב היחסים הבטוח

נועד להבטיח (Safe-DRCהתחשיב מבוסס התחומים הבטוח )

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

תחומים אין-סופיים )לצורך כתיבת הקלט או לצורך חישוב

תוצאה של ביטוי עם כמת(.

אם המבנה שלו מקיים תנאים נוספים בטוח יקרא DRCביטוי

אשר מבטיחים שתוצאתו תהיה תלויה אך ורק בתוכן היחסים

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

השקול לו. Safe-DRC קיים ביטוי DRCלכל ביטוי

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

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

21

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

המקבילות להן באלגברת היחסים.

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

22

היחסים המשתתפים

מכיוון שבצורת הכתיבה של שאילתות בתחשיב היחסים, סדר

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

את סדר התכונות לכל יחס:

Station[S_Name, Height] Station_Type[S_Name,S_Type]

Line[L_Num,Direction,L_Type]

Serves[S_Name,L_Num,Direction,Km]

Train[T_Num,Days] Service[T_Category,Class,Food]

Gives[T_Num,T_Category,Class]

Arrives[T_Num,S_Name,L_Num,Direction,A_Time,D_Time,Platform]

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

23

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

, נוציא את המידע הנ"ל מתוך היחס RAגם כאן, בדומה ל-Serves:השאילתה .

{ <x> : y,z,w ) Serves)x,y,z,w( y=1 z=“south” ( }

לא קשה לראות שבמקרה פשוט זה הביטוי זהה למה שהיה ,RAמתקבל מתרגום ישיר של ביטוי ה-

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

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

{ <x> : w Serves)x,1,“south”,w( }

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

24

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

המהווים זיהוי קו y,zעבור כל זוג ערכים למשתנים (L_Num,Direction שקיימות עבורו תחנות, נדע את זהויות )

כך שמתקיים w עבורם קיים xהתחנות לפי ערכי המשתנה Serves)x,y,z,w(לכן הביטוי המבוקש הוא מהצורה .

{ <y,z> : x,w )Serves)x,y,z,w( )x(( } הוא זיהוי של x הוא הביטוי המתקיים אם ורק אם ))xכאשר

תחנה הנמצאת מתחת לפני הים.

בעל התכונה הנ"ל עבור ערכי האמת שלו הוא:))xביטוי )x( = u )Station)x,u( )u < 0 ((

ביטוי השאילתה המלא:{ <y,z> : x,w)Serves)x,y,z,w( u )Station)x,u()u<0((( }

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

25

דוגמה בכיוון ההפוךמהי משמעות השאילתה הבאה ?

{ <x> : y1,y2 ) Station)y1,y2( z1,z2,z3,z4,z5 )Arrives)x,y1,z1,z2,z3,z4,z5(( ( }

מציין שהרכבת ))z1,z2,z3,z4,z5 )Arrives)x,y1,z1,z2,z3,z4,z5תת הביטוי , במסגרת קו, שעות, ... כלשהם.y1 עוצרת בתחנה ששמה xשמספרה

( מציין שאם y1,y2" )ללא הכמתים על תת הביטוי סביב סימן ה-"y1,y2 מציינים תחנה כל שהיא, אז x.היא רכבת העוצרת בה

הביטוי המלא ייתן את מספרי הרכבות העוצרות בכל התחנות. )תמיד? כיצד נתקן אותו?(

איך נכתוב את הביטוי כך שיתחשב רק בתחנות תרגיל למחשבה שיש רכבות העוצרות בהן ?

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

26

דוגמה מורכבת יותרמהם זוגות הקווים שיש ביניהם תחנת חילוף ?

ראשית נכתוב ביטוי עבור שמות תחנות החילוף:

1)x( = y )Station)x,y( Station_Type)x,“change”((

עם אותה תחנת ”Serves“עתה נתאר זוגות של קווים המופיעים ב-חילוף:

2)u1,v1,u2,v2( = x,w1,w2 )1)x( Serves)x,u1,v1,w1( Serves)x,u2,v2,w2( (

אם נרצה גם לדעת את סוגי הקווים, אז השאילתה המלאה נראית כך:

{ <u1,v1,t1,u2,v2,t2> : Line)u1,v1,t1( Line)u2,v2,t2( 2)u1,v1,u2,v2( }

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

27

(TRCתחשיב מבוסס שורות )

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

28

(TRCתחשיב מבוסס שורות ) (Tuple Relational Calculusתחשיב היחסים מבוסס השורות )

( בכך שהמשתנים DRCשונה מהתחשיב מבוסס התחומים )כאן מקבלים רשומה שלמה כערך, ולא רק ערך של תכונה

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

)t( אשר יש לו משתנה חופשי אחד בדיוק )אם כי יכולים להיות משתנים חופשיים נוספים לתתי-ביטויים של

המכומתים מחוץ לתת הביטוי(.

. })t[A1,...,An] : )t{ המבנה הכללי של שאילתה:

, המכיל את כל A1,...,Anשאילתה זו מחזירה יחס עם התכונות

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

?TRC או ל- DRC דומה ל-SQL של WHEREהאם תנאי ב-

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

29

TRCנוסחאות אטומיות ב-עקב ההבדל בהתייחסות למשתנים, הגדרת הנוסחאות האטומיות

.DRC שונה מזו של TRCשל

מהטיפוס של היחס, t ומשתנה R[A1,...,An] עבור יחס שייכות:

היא נוסחה המתקיימת אם ורק אם ”tR“הנוסחה האטומית .R היא רשומה השייכת ליחס tערכו של

באופן כללי נשתמש השוואות וסימני יחס אחרים בין תכונות: עבור הרשומה A על מנת לציין את ערך התכונה ”t[A]“בסימון

t של A מתקיים אם ערך התכונה ”t[A]=2“. למשל: tהמוצבת ב- מתקיים אם מתקיים היחס המתאים בין ”r[B]<s[C]“. 2הוא

התכונות המתאימות של ערכי שני המשתנים.

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

30

TRCנוסחאות מרוכבות ב- TRC )שלילה, חיתוך, גרירה, וכו'( נכתבות ב-הפעולות הבוליאניות

, ויש להן אותו פירוש. לדוגמה, הביטוי DRCבאופן זהה לזה של

1)t1,...,tk( 2)t1,...,tk( מתקיים אם ורק אם גם 1 וגם 2

.t1,...,tkמתקיימים ביחס ל-

)t1 )t1,...,tkגם הם נכתבים באופן הצפוי. למשל, כמתים ה

)בלי קשר לשאלת t1מתקיים אם ורק אם קיימת רשומה אפשרית

))t1,...,tkקיומה באחת מטבלאות המסד( כך שמתקיים עבורה

הם המשתנים החופשיים של הביטוי(. עם זאת, יש t2,...,tk)כאשר

לזכור שכאן הכימות הוא על רשומות, "שורות שלמות ביחס", ולא

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

)t1[A1,…,An] )t1,...,tkתכונות המשתנה המכומת:

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

31

TRCדוגמאות לשאילתות ב- השאילתה TRCעבור דוגמת מפעיל הרכבות, כיצד תיראה ב-

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

{ t[S_Name] : s[S_Name,L_Num,Direction,Km] ) sServes t[S_Name]=s[S_Name] s[L_Num]=1 s[Direction]=“south” ( }

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

{ t[L_Num,Direction] : r,s )rStation sServes s[L_Num]=t[L_Num] s[Direction]=t[Direction] r[S_Name]=s[S_Name] r[Height]<0 ( }

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

32

TRC ו-DRCיכולת הביטוי של

, TRC יכולה להיכתב גם ב-DRCכל שאילתה שיכולה להיכתב ב-

קיימת הבעיה של קיום שאילתות TRCולהיפך. בפרט, גם ב-

שלא ניתן לממשן במסד נתונים.

, שאת Safe-TRC יש גרסה מוגבלת, TRC, גם ל-DRCכמו ב-

-Safeהשאילתות שלה מובטח שניתן לממש במסד נתונים. ל-

DRC-ול Safe-TRC אותה יכולת ביטוי כל שאילתה שניתנת

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

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

33

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

)והדבר נכון גם עבור DRCהיחסים, מכיוון שכפי שראינו עבור TRC ניתן לתרגם כל ביטוי באלגברת היחסים לביטוי ,)

בתחשיב היחסים.

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

שאין יכולת לממשם במסד נתונים.

( הנלמדים Safe-TRC ,Safe-DRCתחשיבי היחסים הבטוחים )בתרגול הם בעלי יכולת ביטוי זהה לזו של אלגברת היחסים.

גם בתחשיבי היחסים )בטוחים או לא(, לא ניתן לכתוב שאילתות של סגור טרנזיטיבי, כגון "לאלו תחנות רכבת ניתן

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