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

Preview:

DESCRIPTION

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

Citation preview

1

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

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

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

2

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

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

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

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

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

3

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

4

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

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

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

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

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

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

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

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

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סימני ההשוואה הרגילים. למשל "

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

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יתכן שעבור ניתן "להצהיר" עבור ביטוי על משתנים חופשיים שאינם מופיעים

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

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(.

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

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

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לביטוי

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שקול לביטוי האלגברי

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( }

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שימו לב שיש להשתמש בקבוצות משתנים זרות עבור

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( }

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( ( }

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אם מתקיים –

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(

כנדרש.

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

כנדרש.

18

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

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

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

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

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

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

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

19

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

{ <x> : R)x( }

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

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

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

{ <x,y> : x=y }

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

20

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

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

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

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

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

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

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

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

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

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

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

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]

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( }

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((( }

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.היא רכבת העוצרת בה

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

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

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( }

27

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

28

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

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

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

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

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

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

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

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

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

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הוא

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

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תכונות המשתנה המכומת:

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 ( }

32

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

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

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

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

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

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

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

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

33

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

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

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

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

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

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

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

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