26
1 236363 םםםםםם םםםם םםםםםם10 - . םםםםם םםםם םDatalog םםםםם: םםםם םםםם

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

Datalog. תכנות לוגי ב-10

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

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

2

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

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

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

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

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

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

נאפשר גם הטלה ו/או תנאי בחירה נוסף בשלב זה(.

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

3

Datalogמושגי יסוד ב- ע"י מילים המתחילות באות Datalogהרלציות המשתתפות ייוצגו ב-

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

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

.)human)X(, parent)X, Yדוגמאות:

ייוצגו ע"י מילים המתחילות באות גדולה.Datalog ב-משתנים

פרדיקטים המתאימים לרלציות שתוכנן שמור במסד הנתונים . )EDB )Extensional DataBase, או פרדיקטים מפורשיםיקראו

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

.)IDB )Intensional DataBaseאו

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

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

4

Datalogתחביר בסיסי – בתחביר הבסיסי )בהמשך גם נראה אפשרות להכללה( סוג התנאי

כאשר:pred)X1,…,Xk(φ1,…,φnהמותר היחידי הוא מהצורה

pred.הוא פרדיקט סתום X1,…,Xk.הם סמלי משתנים כל שהם

,X1 הוא נוסחא אטומית אשר יכולה להשתמש במשתנים φiכל …,Xk ובמשתנים נוספים, שנסמנם Z1,…,Zm.

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

(, השוואות DRCלנוסחאות האטומיות המתאימות לרלציות ב-בין משתנים )עם אחד מסימני ההשוואה הרגילים(, והשוואות

בין משתנים לקבועים.

”human)Nm( ancestor)F,Nm(, F=“Adamביטוי לדוגמא:

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

5

תחביר בסיסי – המשך

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

,…,φ1, אם מתקיימים כל התנאים X1,…,Xk,Z1,..,Zmבמשתנים

φn-אז התוכן המתאים ל pred חייב להכיל גם את ההצבה הנ"ל

.X1,…,Xkל-

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

X1,..,Xk,Z1,…,Zm ) )φ1φ2…φn( pred)X1,…,Xk( (

.Hornשימו לב שבמובן מסוים זוהי למעשה נוסחת

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

6

סימונים מקוצריםניתן "להציב" ישירות קבוע במקומו של משתנה, במקום הוספה

של תנאי הקובע שהמשתנה חייב להיות זהה לאותו קבוע.

למשל:)human)X( ancestor)“Adam”,Xהביטוי –

”human)X( ancestor)Y,X(, Y=“Adamשקול לביטוי human)“Adam”( trueהביטוי –

”human)X( X=“Adamשקול לביטוי

" עבור משתנה המופיע פעם _בנוסף, ניתן להשתמש ב-" )_,busy)X( parent)Xאחת בלבד באחד התנאים. למשל:

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

7

פתרונות מינימלים הוא טוב Datalogלא כל פיתרון עבור תוכנית לוגית הכתובה ב-

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

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

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

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

בלבד שיקיים את תנאי התוכנית, אלא שבנוסף לכך לא תהיה אף תת קבוצה )ממש( שלו אשר גם היא תקיים את התנאים.

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

8

נקודות שבת עבור התוכנית.נקודת שבתפיתרון מינימלי כזה יהיה בפרט

הווה אומר: זה יהיה פיתרון עבור הרלציות הסתומות, כך שבנוסף לכך לכל שורה ברלציה סתומה קיים תנאי אשר "מצדיק" אותה:

מתקיים, יהיה לפחות תנאי )pred)α1,…,αk כך ש-α1,…,αk לכל

,β1 בתוכנית הלוגית, והצבה pred)x1,…,xk(φ1,…,φnאחד

…,βm-עבור המשתנים הנוספים בתנאי זה, כך ש φ1,…,φn

α1,…,αk,β1,…,βmכולם מתקיימים עבור הצבת הערכים

בהתאמה.

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

9

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

סידרה α1,…,αk )כאשר )pred)α1,…,αk – עובדה יכיחותבעובדות ,α1 אם ניתן להסיק את קיום השורה יכיחהשל קבועים( תיקרא

…,αk-ב pred מתוך תוכן הרלציות המתאימות לפרדיקטים המפורשים, ע"י סדרה סופית של הפעלות של תנאים מתוך

התוכנית הלוגית בהצבות מתאימות במשתנים.

הוא פרדיקט מפורש ושהמאגר שלנו )parent)X,Yדוגמא: נניח ש- )”parent)“Avraham”, “Itzchakכולל עבורו את העובדות:

parent)“Itzchak”, “Yaakov”(

הוא פרדיקט סתום, ושכתבנו עבורו )grandparent)X,Yנניח גם ש-.)grandparent)X,Y(parent)X,Z(,parent)Z,Yאת התנאי

ניתן להסיק )”grandparent)“Avraham”,”Yaakovאת העובדה .”Z=“Itzchak”, Y=“Yaakov”, X=“Avrahamמהתנאי ע"י ההצבה

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

10

המשפט המרכזי

, יחידה קיימת נקודת שבת מינימלית Datalogעבור כל תוכנית

וזוהי נתונה בדיוק ע"י קבוצת כל העובדות היכיחות ע"י סדרה

סופית של היסקים.

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

למצוא אותה בספרות.

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

11

Datalogביטויים בטוחים ב-, ”X(true(anything“, או אף ”X=Y)equal)X,Y“ביטויים כגון

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

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

.בטוחים

,Z1 עם משתנים נוספים pred)X1,…,Xk(φ1,…,φnביטוי

…,Zm אם כל המשתנים בטוח, יקרא X1,…,Xk,Z1,…,Zm הם

שהוא φi אם הוא מופיע ב-מתוחם יקרא X. משתנה מתוחמים

”X=α“פרדיקט )סתום או מפורש(, או בהשוואה מהטיפוס הוא Y כאשר ”X=Y“ קבוע, או בהשוואה מהטיפוס αכאשר

משתנה מתוחם.

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

12

אפשרות חישובהאלגוריתם הבא יחשב, אם כי באיטיות, את נקודת השבת

בטוחה.Datalogהמינימלית עבור תוכנית

)לקבוצה ריקה(.Rp אפס את pIDBעבור כל •

חזור על התהליך הבא כל עוד ניתן להוסיף באמצעותו שורות:•

עם משתנים נוספיםp(X1,…,Xk)φ1,…,φn– עבור תנאי

Z1,…,Zm ועבור הצבה ,α1,…,αk,β1,…,βmבמשתנים

X1,…,Xk,Z1,…,Zm אשר מקיימת את φ1,…,φn

.Rp ל-α1,…,αk הנוכחיות(, הוסף את השורה Rq )ביחס ל-

,Rpכאשר אין יותר אפשרות להוסיף אף שורה לאף רלציה •

פלוט את הרלציות.

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

13

RAמימוש של מספר פעולות של )ביחס לפירוש נקודת השבת Datalogניתן לממש הטלות ב-

המינימלית( באופן הבא:

proj )X1,…,Xk(pred )X1,…,Xk,Xk+1,…,Xm(

איחודים וחיתוכים ניתן לממש כך:

intersect)X1,…,Xk( pred1)X1,…,Xk(,pred2)X1,…,Xk(

union)X1,…,Xk( pred1)X1,…,Xk(

union)X1,…,Xk( pred2)X1,…,Xk(

איך נממש צירופים טבעיים ?

join)X1,…,Xk,Y1,…,Ym,Z1,…,Zn(pred1)X1,…,Xk,Y1,…,Ym(,pred2)Y1,…,Ym,Z1,…,Zn(

?( לפי ביטוי selectionתרגיל למחשבה: איך נממש בחירה ).Disjunctive Normal Form ל-רמז – ראשית כדאי להעביר את

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

14

גרף תלויות. התלויות גרף ניתן להתאים גרף מכוון, שיקרא Datalogלתוכנית

בגרף זה יהיה צומת לכל פרדיקט המשתתף בתוכנית. קשת מופיע בלפחות אחד pred1 אם ורק אם pred2ל- pred1תהיה מ-

.pred2התנאים של לפחות אחת הפסוקיות המגדירות את

האם יתכנו קשתות נכנסות לצמתים המתאימים לפרדיקטים המפורשים ?

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

15

גרף תלויות – דוגמאעבור התוכנית

sibling)X,Y( XY, parent)Z,X(, parent)Z,Y(

cousin)X,Y( parent)Xp,X(, parent)Yp,Y(, sibling)Xp,Yp(

cousin)X,Y( parent)Xp,X(, parent)Yp,Y(, cousin)Xp,Yp(

יתקבל הגרףsibling

parent

cousin

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

16

של קטע תוכנית לוגיתRAמימוש ב- תלוי אך ורק בפרדיקטים שאת תוכנם predאם פרדיקט סתום

אנו יודעים מראש )למשל, פרדיקטים מפורשים(, אז ניתן -Safe, או ב-RA כביטוי רלציוני )ב-predלחשב את ערכו של

DRC-השקול בכוחו ל RA.המשתמש ברלציות המתאימות )

הוא פרדיקט מפורש המתאים )parent)X,Yדוגמא: נניח ש- השמורה במאגר הנתונים, Parent[Father,Son]לרלציה מוגדר ע"י )grandparent)X,Yונניח ש-

grandparent)X,Y(parent)X,Z(,parent)Z,Y( . grandparentאז ניתן לחשב את הרלציה המתאימה ל-

באמצעות הביטוי: Father1,Son2

)Son1=Father2)ParentParent( (

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

17

RAתוכניות לא-רקורסיביות וחישוב ב- בעלת מעגלים )מכוונים( בגרף התלויות תיקרא Datalogתוכנית

.לא-רקורסיבית. תוכנית ללא מעגלים כאלה תיקרא רקורסיבית

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

באופן הבא:RAבאמצעות מספר קבוע של פעולות

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

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

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

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

18

RAתוכניות רקורסיביות וחישוב ב- רקורסיביות שפתרונן מניב רלציות שאין Datalogקיימות תוכניות

קבועה מראש.RAאפשרות לחשבן ע"י נוסחת , נגדיר את )parent)X,Yלדוגמא: עבור הפרדיקט המפורש

באופן הבא:)ancestor)X,Yהפרדיקט הסתום ancestor)X,Y(parent)X,Y(ancestor)X,Y(ancestor)X,Z(,parent)Z,Y(

הסגור את ancestorנקודת השבת המינימלית תיתן ל- תתקיים אם )ancestor)α,β: העובדה parent של הטרנזיטיבי

, כך α = 1,2,3,…,k = β כל שהוא קיימים kורק אם עבור .)parent)i,i+1 מתקיימת העובדה i < k 1שלכל

כזכור מדוגמת קווי הרכבות ותחנות החילוף, אין אפשרות , אם כי ניתן RAלחשב את הסגור הטרנזיטיבי ע"י נוסחת

לחשבו כ"גבול" של סדרה של נוסחאות כאלו.

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

19

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

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

, כך שלכל זוג מספרים )mult)X,Y,Z(, add)X,Y,Zמראש .)mult)i,j,ij(, add)i,j,i+jאלו יכילו את העובדות i,jטבעיים

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

positive)1(true

positive)I(positive)J(,add)J,1,I(

פרטים ודוגמאות נוספות יינתנו בתרגיל.

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

20

Datalogוחישוב הפרשים הם פרדיקטים מפורשים המתאימים pred2 ו-pred1נניח ש-

בהתאמה, הנמצאות במסד הנתונים. T2ו- T1לרלציות

.T1\T2 אשר מחשבת את Datalogטענה: לא קיימת תוכנית

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

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

, כך שלא נוכל לייצר באמצעות תוכנית T1\T2גורעת שורות מ-

Datalog-פרדיקט שערכו יובטח להיות זהה ל T1\T2.

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

21

Datalogתוספת של שלילות ל-על מנת לאפשר את כתיבתן של שאילתות שאינן מונוטוניות, אנו

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

עם שלילות היא פסוקית Datalogבאופן פורמלי: פסוקית ב- הוא או φi, כאשר כל pred)X1,…,Xk(φ1,…,φnמהצורה

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

לכל הצבה במשתנים.

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

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

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

22

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

לנו נקודות שבת כלל. לדוגמא:

lier)X(human)X(,¬lier)X(

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

לדוגמא:

naysayer)X(human)X(,¬yeahsayer)X(

yeahsayer)X(human)X(,¬naysayer)X(

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

23

(Stratified מרובדות )Datalogתוכניות עם שלילות הוא Datalog עבור תוכנית (stratificationריבוד )

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

אינו pred2, אז ערך הריבוד הניתן ל-pred2תלוי ב- pred1אם –.pred1עולה על זה של

באמצעות שלילה, ז"א שהשלילה pred2תלוי ב- pred1אם –, pred1מופיעה באחת הפסוקיות המגדירות את pred2של

.pred1 מזה של קטן ממש pred2אז הריבוד הניתן ל-

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

כולל מעגל עם קשתות הנובעות משלילות.

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

24

ריבוד ונקודות שבת מרובדות קיימות דוגמאות עם מספר Datalogגם עבור תוכניות

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

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

IDB, חשב פיתרון מינימלי עבור כל פסוקיות ה-i – בשלב ה-

, תוך שימוש בערכים שחושבו עבור הרמות i מהרמה ה-הקודמות.

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

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

.Perfect Fixed Pointנקודת השבת המושלמת –

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

25

– סיכום Datalogהחוזק התיאורי של קצר

ללא ההרחבות Datalogכל הטענות הבאות נכונות ל-האריתמטיות.

בטוחים וחסרי שלילה פעולות Datalogניתן לבטא בביטויי • ניתן לבטא RA. עם זאת, לא כל ביטוי RAשלא ניתן לבטאן ב-

.Datalogבביטוי בטוחים, חסרי שלילה, ולא Datalogהחוזק התיאורי של ביטויי •

, המשתמשים בפעולות RAרקורסיביים, זהה לזה של ביטויי , , , .בלבד

בטוחים ולא רקורסיביים Datalogהחוזק התיאורי של ביטויי • כלליים.RAעם שלילות זהה לזה של ביטויי

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

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

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

26

מספר מילים על המודל הלוגי

נעוצה בכך ששפה זו Datalogהסיבה לחוזק התיאורי של

מתייחסת לתחביר לוגי המהווה הרחבה של הלוגיקה מסדר

.DRCראשון אשר שמשה אותנו עבור

, ונחקרה ע"י הלוגיקאים Fixed Point Logicהרחבה זו קרויה

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

טרנזיטיבי בלוגיקה מסדר ראשון.