34
1 תתתתתתתת תתתתת תתתתת תתתתת תתתתתת תתתתתת תתת5 Design Theory for Relational Databases Part 5

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5

  • Upload
    moanna

  • View
    56

  • Download
    3

Embed Size (px)

DESCRIPTION

תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5. Design Theory for Relational Databases Part 5. מגבלות התיאוריה לתכנון סכמות למסדי נתונים יחסיים. תזכורת: סכמה בעייתית: הסכמה גורמת לשכפול מידע. היחס הסכמה היא SCT ומתקיימת הת"פ C → T מפרקים לשתי סכמות: SC ו- CT. Student Course - PowerPoint PPT Presentation

Citation preview

Page 1: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

1

תיאוריית תכנון סכמות למסדי נתונים יחסיים

5חלק Design Theory for

Relational DatabasesPart 5

Page 2: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

2

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

Page 3: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

3

: בעייתית: סכמה תזכורתמידע לשכפול גורמת הסכמה

היחס

C → T ומתקיימת הת"פ SCTהסכמה היא CT ו- SCמפרקים לשתי סכמות:

SCT

CohenDBSmith

LevyOSJones

LevyDBSmith

StudentCourseTeacher

Page 4: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

4

וגם מידע שכפול מונע הפירוק

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

שלוקח קורס גם אם המורה של הקורס טרם נקבע

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

היינו צריכים SCTבסכמה המקורית כדי לשמור מידע NULLלהשתמש בערכי

חלקי

Page 5: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

5

הבעיות של שימוש בערכי NULL בסכמה המקוריתSCT

ניסוח שאילתות עשוי להשתנות כאשר יש NULLערכי

מקשה על המשתמש

במפתחNULLאי אפשר לשמור ערך S הוא חלק ממפתח של הסכמה SCT ולפיכך

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

Page 6: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

6

לסיכום

יש שני יתרונות בהשוואה CT ו- SCלפירוק SCTלסכמה המקורית

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

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

מעל הסכמה המקורית

Page 7: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

7

. לכן,OSדוגמה: אין עדיין מורה ל- , כך SCT עבור NULLS ללא rאין יחס

הם הטלות CT ו- SCשהיחסים עבור rשל

SC

CohenDB

LevyOS

LevyDB

CT

DBSmith

SCT

Cohen

DBSmith

LevyOSNULL

LevyDBSmith

Page 8: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

8

השימוש בת"פ מגבלות

לכל הגזירות של אותה ת"פ חייבת להיות אותה משמעות

#E# → Eאי אפשר לקבוע שהת"פ מתקיימת במובן שמספר עובד קובע

את מספר העובד של המנהל שלו, כי → #Eכבר קיימת הת"פ הטריוויאלית

E#)קרי, מספר עובד קובע את עצמו(

Page 9: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

9

נוספת דוגמה

R=EDPM-ו F = {E → D, E → P, D → M, P → M}

מהת“פE → Mאפשר לגזור את E → D -ו D → M

המשמעות היא "מנהל המחלקה של העובד"

מהת“פE → Mאפשר לגזור את E → P -ו P → M

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

Employee, Department, Project, Manager

Page 10: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

10

מסקנה

R=EDPM-ו F = {E → D, E → P, D → M, P → M}

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

Mשם של האטריביוט

Page 11: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

11

שם שינוי

בשני אטריביוטים חדשיםMנחליף את MDמנהל מחלקה

MPמנהל פרויקט

R=EDPMDMP -ו

F = {E → D, E → P, D → MD, P → MP}

Page 12: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

12

E → Mאיך מקיימים את כשאין צורך לשנות שם?

R=EDPM-ו F = {E → D, E → P, D → M, P → M}

מקבלים את הפירוקR1=ED -ו F1 = {E → D}

R2=EP -ו F2 = {E → P}

R3=DM -ו F3 = {D → M}

R4=PM -ו F4 = {P → M}

זהו פירוק שמשמר את הת"פ )וגם ללא אובדן(

Page 13: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

13

אינה E → Mדוגמה שבה הת"פ מתקיימת

בין חלקי מידע המצויים ביחסים שונים

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

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

הסותרים את הת"פ נעלמים כשלוקחים את הצירוף

ED

LevyCS

DM

CSDolev

EP

LevyOSPM

OSBarak

Page 14: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

14

צירוף מינימלי ללא אובדן הכולל קבוצת אטריביוטים נתונה

של כל היחסים הנו ללא אובדן הצירוף ED ⋈ DM ⋈ EP ⋈ PM

נתבונן בצירופים הבאיםED ⋈ DM

EP ⋈ PM

EMאלה צירופים ללא אובדן שמכילים את במובן שאי מינימליכ"א מהצירופים האלה הנו

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

Page 15: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

15

איך נקבל את כל המידע על EM?

ניקח את כל הצירופים המינימליים ללא אובדן EMשכוללים את האטריביוטים

EMנטיל כל אחד על וניקח את האיחוד, כלומר

⋃ EM)ED ⋈ DM()EP ⋈ PM(EM

בתוצאה הנ"ל נבדוק אם אין הפרה של הת"פM ו- Eכך גם נענה על שאילתה לגבי

Page 16: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

16

לדוגמה נחזורקודמת

עםR=ABCנתונה הסכמה F = {AB → C, C → A}

נייצר את הסכמות:F1 = {AB → C} עם R1=ABCסכמה

F2 = {C → A} עם R2=ACסכמה

אבל C → A מתקיימת גם הת"פ R1למעשה ב- היא לא ניתנת באופן מפורש ע"י האלגוריתם, ואין

צורך לדעת זאת כדי להראות שימור הת"פ

Fi מציין את הת"פ

שממנה נוצר Ri אבל אינו ,

בהכרח כיסוי של כל הת"פ

המתקיימים Riב-

Page 17: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

17

הסכמות שתי את לשמור טעם איןלסכמה– אותן לשלב עדיף

אחרתנניח ששומרים את שתי סכמות

F1 = {AB → C} עם R1=ABCסכמה

F2 = {C → A} עם R2=ACסכמה

R1 מתקיימת ב- C → Aעדיין צריך לוודא שהתלות

עדיף לחזור לסכמה המקוריתR=ABC -ו F = {AB → C, C → A}

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

הסכמות

Page 18: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

18

שבו במקרה שוב נדוןשם שינוי לבצע צריך

בשני אטריביוטים חדשיםMנחליף את MDמנהל מחלקה

MPמנהל פרויקט

R=EDPMDMP -ו

F = {E → D, E → P, D → MD, P → MP}

Page 19: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

19

?ISAאבל מה עם ה-

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

isa M MD

MP isa M

R=EDPMDMPM -ו

F = {E → D, E → P, D → MD, P → MP,

MD → M, MP → M{

שוב יש שתי גזירות E → Mשונות של

והבעיה לא נפתרה

Page 20: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

20

אפשרי פתרון

, ISAנתעלם מהת"פ הנובעות מקשרי MP → M ו- MD → Mכלומר מהת"פ

ניתן להתעלם מהת"פ האלה, כי אין ל- Mצורך ביחס מיוחד המקשר בין

MD או בין M -ל MP

ערכים מאותו התחום MP ו- M, MDל- )למשל, מספר עובד(

Page 21: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

21

פירוט ביתר הדוגמה

R=EDPMDMPMSS מציין מזכיר של המנהל

הת"פ הנןF = {E → D, E → P, D → MD, P → MP, M → S}

F -איננה כוללת את הת"פ הנובעות מקשרי הISAisa M MD

isa M MP

isa E MS isa E

Page 22: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

22

נפעיל את האלגוריתם למציאת 3NFפירוק ב-

מקבלים את הפירוקR1=ED -ו F1 = {E → D}

R2=EP -ו F2 = {E → P}

R3=DMD -ו F3 = {D → MD}

R4=PMP -ו F4 = {P → MP}

R4=MS -ו F5 = {M → S}

, כי הערכים ISAאין צורך ביחסים עבור קשרי ה- באים כולם מהתחום E ו- MD, MP, M, Sבעמודות

הם קשרי ISAשל מספרי עובדים – לכן קשרי ה- הזהות

Page 23: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

23

- ערכיות רב תלויותצירוף ותלויות

Multivalued Dependenciesand Join Dependencies

Page 24: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

24

לפירוק שניתנת לסכמה דוגמהאובדן ללא

היחס

C → T ומתקיימת הת"פ SCTהסכמה היא CT ול- SCניתן לפרק ל-

SCT

CohenDBSmith

LevyOSJones

LevyDBSmith

StudentCourseTeacher

Page 25: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

25

ניתנת שהסכמה ייתכן האם? " פ ת אף אין אם גם לפירוק

בין קורסים לסטודנטים קיים יחס של רבים לרבים

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

לקורס יש תמיד יש מורה יחיד, כלומר ויש פירוק ללא אובדןC → Tמתקיימת הת"פ

לקורס יש מספר מורים – נדון במקרה הזה בשקפים הבאים

Page 26: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

26

:' לומד תלמיד כל א אפשרותהמורים כל אצל

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

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

CT ו- SCקל יותר לראות מה הייצוג הנכון ב-

SC

CohenDB

LevyDB

CT

DBJones

DBSmith

Page 27: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

27

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

CT ו- SCהנתונים הוא בדיוק הצירוף של

SC

CohenDB

LevyDB

CT

DBJones

DBSmith

SCT

Cohen

DBSmith

Cohen

DBJones

LevyDBJones

LevyDBSmith

⋈ =

Page 28: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

28

במקרה שתיארנו מתקיימת C →→ Tהתלות הרב-ערכית

פירושה C →→ Tהתלות הרב-ערכית שלכל קורס יש קבוצת מורים שאינה תלויה

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

בכל יחס שמקיים ⋈ CT)r( = r)r(SC

לכן אם היא מתקיימת )קרי, היחסים האפשריים הם רק אלה שמקיימים אותה(, אז הפירוק של

SCT-ל SC -ול CTהנו ללא אובדן

Page 29: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

29

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

ST ו- SC, CT ל- SCTהאם יתכן שהפירוק של הנו ללא אובדן?

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

)וכמובן שהוא לומד גם בקורסים OSלוי לומד ב- אחרים(

OSמשה הוא אחד המורים של

משלושת העובדות האלה לא בהכרח נובע OSשמשה הוא מורה של לוי ב- SCTלכן, אין אפשרות לפרק את

Page 30: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

30

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

אטריביוט

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

מורה יחיד שמציין קבוצהGצריך להוסיף אטריביוט

F = {G → C, G → T} ו- R=SGCTלכן

Page 31: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

31

היא ישות חלשהGסביר יותר ש- )המפתח שלה מורכב ממספר קבוצה וממספר

קורס(

והתלויות הןR=SGCTבמקרה זה F = {SC → G, CG → T}

נותן3NFפירוק ל- R1=SCG -ו F1 = {SC → G}

R2=CGT -ו F2 = {CG → T}

Page 32: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

32

צירוף תלויות

אפשר להכליל את המושג של תלות רב-ערכית באופן הבא

Rאם אפשר לפרק ללא אובדן את , אז )Rn,…,R2 R1, )n≥1למספר סכמות

, Rn אומרים שמתקיימת תלות הצירוף ]… ,R2 R1,⋈ ]

מתי הדבר שימושי?

Page 33: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

33

3NFבאלגוריתם לפירוק ל-

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

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

תלות רב-ערכית או תלות צירוף

Page 34: תיאוריית תכנון סכמות  למסדי נתונים יחסיים חלק 5

34

לדוגמה

הם חלק מהאטריביוטים, שכל T, ו- S, Cנניח ש- אחד מייצג ישות אחרת ואין ביניהם ת"פ

יש אטריביוטים נוספים שמתארים את התכונות S → Nameשל ישויות אלה, לדוגמה

תהיינה שלוש סכמות, עבור 3NFלכן, בפירוק ל- , שהיא SCTשלושת הישויות, ובנוסף הסכמה

מפתח SC לפי תלות רב-ערכית ל- SCTניתן לפרק את

CTו-