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

31
1 236363 םםםםםם םםםם םםםםםם4 . םםםםםם םםםםםםםם םםםםם: םםםם םםםם

Post on 20-Dec-2015

250 views

Category:

Documents


7 download

TRANSCRIPT

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

1

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

. התחשיב הרלציוני4

אלדר פישרשקפים:

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

2

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

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

DRC )Domain Relational בשפת התחשיב הרלציוניCalculus( ובווריאנט שלה TRC )Tuple Relational Calculus( תנאי השאילתה ניתנים כביטוי בלוגיקה מסדר ,

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

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

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

3

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

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

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

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

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

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

)x1,...,xn(.

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

4

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

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

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

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

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

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

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

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

5

פעולות בוליאניותהרכבת ביטויים הוא ביטוי חוקי עם המשתנים החופשים ))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 6: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

6

פעולות בוליאניות נוספות מתקיים )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 7: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

7

(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 8: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

8

הכמת האוניברסלי כמתים (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 9: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

9

דוגמאמשתנים חופשים ומכומתים )))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המוגדרת ע"י . ))CR2(BR1)באופן הבא:

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

.)B,C ) R1 ⋈ R2מניב את הרלציה

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

10

הפעולות הבסיסיות האונריות 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 11: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

11

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 12: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

12

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 13: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

13

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 14: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

14

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

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

אז אכן עבור הביטוי

)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 15: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

15

כיוון ראשון

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 16: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

16

כיוון שני ))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 17: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

17

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

" יש }{ <> : שמשתמש ברלציות המאגר(, אז לשאילתה "עדיין משמעות.

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

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

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

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

x1,...,xn ) R)x1,...,xn( → S)x1,...,xn( (

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

18

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

{ <x> : R)x( }

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

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

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

{ <x,y> : x=y }

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

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

19

התחשיב הרלציוני הבטוח

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

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

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

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

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

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

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

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

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

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

20

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

המקבילות להן באלגברה הרלציונית.

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 21: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

21

הרלציות המשתתפות

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

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

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

Station[S_Name,S_Type,Height] 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 22: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

22

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 23: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

23

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

המהווים זיהוי קו 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,v )Station)x,u,v( )v < 0 ((

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

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

24

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

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

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

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

בה.

הביטוי המלא ייתן את מספרי הרכבות העוצרות בכל התחנות.

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

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

25

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

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

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

עם אותה תחנת ”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 26: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

26

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

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

ביטוי באלגברה רלציונית לביטוי בתחשיב הרלציוני.

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

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

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

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

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

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

27

תחשיב מבוסס שורות – חומר רשות (Tuple Relational Calculusהתחשיב הרלציוני מבוסס השורות )

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

בפרט על מנת להגדיר שאילתה המחזירה רלציה, דרוש לנו ביטוי )t( אשר יש לו משתנה חופשי אחד בדיוק )לתתי-ביטויים של

יכולים להיות עוד משתנים חופשיים המכומתים מחוץ לתת הביטוי(.

תחשיב זה הינו חומר רשות בסמסטר זה.

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

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

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

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

28

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

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

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

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

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

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

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

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

29

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

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

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

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

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

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

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

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

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

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

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

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

30

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 31: 1 236363 מערכות מסדי נתונים 4. התחשיב הרלציוני שקפים:אלדר פישר

31

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

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

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

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

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

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

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

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