5. תלויות פונקציונליות שקפים: אלדר פישר

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
Number Theory and Algebra Advisor …………… Dr. Shpilka Amir Presented by …… Cohen Gil..………
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
אביב תשס"ה DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
צורה נורמלית – BCNF Boyce-Codd Normal Form
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
4 July 2007 נרמול מסד הנתונים כאשר מסד הנתונים עובר את שלב התכנון הראשוני יכולים להיווצר מספר בעיות בתכנון הנובעות מיתירות: אחת הבעיות הנפוצות ביותר במסדי.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תחשיב היחסים (הפרדיקטים)
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר.
מערכות בסיסי נתונים הצגה של הסטודנטים את עצמם, הרקע שלהם, ציפיותיהם מהקורס. הצגת ציפיותיי, מדיניות הקורס, מטלות, וכו'.
מערכות מסדי נתונים 1. הקדמה שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
1 גילוי מידע וזיהוי תבניות תרגול מס. 3 התפלגות נורמלית רב - מימדית Kullback-Leibler Divergence - משפט קמירות - נגזרת שנייה משפט Log sum inequality משפט.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
שימוש בשיטה א-פרמטרית להשוואת תוחלות של שתי אוכלוסיות.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
מערכות מסדי נתונים 1. הקדמה.
פרק 3: מודל הנתונים.
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Marina Kogan Sadetsky –
תרגול 11 NP complete.
תיכון בסיס-נתונים יחסי
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
NG Interpolation: Divided Differences
Presentation transcript:

5. תלויות פונקציונליות שקפים: אלדר פישר 236363 מערכות מסדי נתונים 5. תלויות פונקציונליות שקפים: אלדר פישר

תהליך התכנון של מסד נתונים נחזור עתה לרגע לנקודת המוצא של הקורס  איך ניגשים לתכנונו של מסד נתונים ? אם לא נשתמש בתרשימי ER (או בגישה אחרת הנוסבת סביב המודל של ישויות וקשרים, כגון ODL), אז קרוב לוודאי שנשתמש בתהליך הבא לניתוח המערכת הדרושה: ראשית, רושמים את כל התכונות העולות מניתוח הדרישות של המערכת. הכוונה היא לכל היחידות המינימליות של פריטי המידע המופיעים בה (למשל: שם סטודנט, מס' סטודנט, שם קורס,...).

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

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

תזכורת  המשך השיטה העיקרית שלמדנו לתכנון פירוק של הנתונים לטבלאות היא ע"י שימוש בדיאגרמות ER. דיאגרמה זו מתארת את הפירוק ל-3 רלציות: Student[Name,Id,Address], Course[C_Name,Num,L_Name], Takes[Id,Num,Grade] בתחילת הקורס ראינו שגם פירוק זה מסתמך על הנחות פשטניות מדי בקשר לצרכים של מאגר הנתונים הנ"ל, אולם לצורך הדוגמא נשתמש בו. Course C_Name Num L_Name Student Name Id Address Takes Grade

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

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

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

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

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

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

אנומליות בתכנון רלציוני לקוי ניזכר בבעיות שבמימוש מסד הנתונים של סטודנטים וקורסים ברלציה אחת "גדולה" הכוללת את כל התכונות: יתירות  חזרות מיותרות על מידע. למשל, אין טעם לרשום מחדש את כתובת הסטודנט עבור כל קורס שנלקח. קשיים בעדכון  שינוי בפריט מידע בודד (כגון מרצה בקורס) דורש עדכון של שורות רבות ברלציה. קשיים בייצוג (ובמחיקות)  ישנם מצבים בעולם האמיתי שאי אפשר לייצג עבורם את כל המידע כאן. למשל  סטודנט (בעל כתובת וכו') שלא לקח אף קורס. ניתן לפתור מצב כזה ע"י שימוש בערך המיוחד Null, אולם הדבר יגרום לסיבוכים נוספים ונעדיף להימנע ממנו.

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

תלויות פונקציונליות תלויות פונקציונליות (עבור רלציה נתונה) מתגלות מתוך ניתוח דרישות המערכת. עבור רלציה R בעלת התכונות A ו-B, נגיד ש-B תלויה פונקציונלית ב-A, ונסמן AB, אם כל שתי שורות ברלציה המסכימות ביניהן בערכן עבור A, יקבלו ערך זהה גם עבור B. חשוב לציין שאנו לא מעוניינים בתלויות הנראות לעין עבור תוכן (קבוצת אובייקטים) ספציפי של R. אנו מעוניינים בתלויות המתקבלות מניתוח המערכת, ואשר מתקיימות לכל תוכן אפשרי של הרלציה R. הכינוי "תלות פונקציונלית" נובע מכך שכל תוכן אפשרי עבור R יגדיר פונקציה מקבוצת הערכים של A לקבוצת הערכים של B.

תלויות פונקציונליות  המשך כאשר R היא רלציה עם התכונות A1,A2 ו-B, הסימון A1A2B מתאר את התלות הבאה: בכל תוכן אפשרי של R, כל שתי שורות המסכימות ביניהן גם בערכי A1 וגם בערכי A2, יסכימו ביניהן גם בערך של B. גם אם מתקיים A1A2B, יתכן ששתי שורות יסכימו ביניהן רק על A1 (או רק על A2) ולא יסכימו ביניהן על B. משמעות התלות היא שכל תוכן אפשרי של R מגדיר פונקציה מזוגות הערכים של A1A2 לערכים של B. כאשר מתקיימות מספר תלויות באותה קבוצת תכונות, נשתמש בסימון מקוצר: הסימון A1A2B1B2 פירושו שמתקיימת גם התלות A1A2B1 וגם התלות A1A2B2. באופן טבעי נכליל את הסימון A1,…,AkB1,…,Bl עבור קבוצות גדולות יותר של תכונות.

נביעה של תלויות בהינתן קבוצה של תלויות F={ X1Y1 , X2Y2 ,..., XkYk } (כאשר כל Xi ו-Yi הן קבוצות של תכונות של הרלציה R), אנו נגיד שהתלות XY נובעת מ-F, ונסמן F ⊨ XY, אם כל רלציה (מעל התכונות המתאימות) המקיימת את כל התלויות הפונקציונליות ב-F, תקיים בהכרח גם את התלות XY. כאשר אנו מתכננים מסד נתונים, חשוב לנו לדעת את כל התלויות במערכת  גם אלו המתקבלות ישירות מניתוח הדרישות של המערכת וגם אלו הנובעות מהן. עם זאת, לא נוכל לבדוק את הקבוצה האין-סופית של כל התכנים האפשריים של הרלציות. במקום זאת נלמד שיטה למציאת כל התלויות הנובעות מקבוצת התלויות F, אשר אינה כוללת סריקה של קבוצה אין-סופית.

תלויות פונקציונליות טריוויאליות אם A הוא תכונה של רלציה R, אז ללא שום קשר לתוכן הרלציה הנוכחי במאגר הנתונים שלנו, תמיד תתקיים התלות הפונקציונלית AA, שהרי לא יתכנו שני אובייקטים r,sR שעבורם הערכים של A הם גם שונים וגם זהים. באופן כללי יותר, אם X={ A1,...,Ak } היא קבוצה של תכונות של R, אז התלות XAi תתקיים תמיד, לכל 1  i  k. מכאן, שלכל תת-קבוצה Y  X תתקיים גם התלות הפונקציונלית XY. לתופעה זו של התלויות יש שם  רפלקסיביות.

דוגמא לנביעה  כלל ההכללה טענה: אם R היא רלציה שתוכנה מקיים את התלות XY, ו-Z היא קבוצה כל שהיא של תכונות של R, אז תוכן הרלציה מקיים גם את XZYZ. במילים אחרות: התלות XZYZ נובעת מהתלות XY. בספרות בד"כ מסמנים את איחודי קבוצות התכונות באמצעות כתיב מקוצר: "XZYZ". בהרצאה כאן נשמור על סימני האיחוד כדי להדגיש שמדובר בקבוצות ולא במחרוזות.

הוכחה עבור כלל ההכללה נניח בשלילה שקיימת רלציה R וקבוצות של תכונות Z,Y,X, כך שתוכן הרלציה מקיים את XY אך אינו מקיים את XZYZ. אם כך, אז קיימים r,sR בעלי ערכים זהים על כל התכונות ב- XZ, אשר נבדלים בערכם על לפחות תכונה אחת A מתוך YZ. אם AY, אז בפרט r ו-s מסכימים על כל תכונות X אולם אינם מסכימים על תכונה מ-Y, ולכן תוכן הרלציה R אינו מקיים את התלות XY  סתירה. אם AZ, אז לא יתכן ש-r ו-s לא יקבלו ערך זהה על A, מכיוון שהם מקבלים ערכים זהים על כל XZ  סתירה. בזאת כיסינו את כל המקרים האפשריים עבור A, ולכן לא תתכן רלציה R המקיימת את ההנחות  מ.ש.ל.

טרנזיטיביות אם Z,Y,X הן קבוצות של תכונות של R, אז התלות XY נובעת מקיום שתי התלויות XY ו- YZ יחדיו. רעיון ההוכחה: מראים שאם תוכן R מקיים את התלויות XY ו- YZ, אז לכל r,sR בעלות ערכים זהים עבור כל תכונות X, יהיו ערכים זהים גם עבור כל תכונות Z.

אקסיומות ארמסטרונג נסכם את האבחנות שהועלו: רפלקסיביות: אם X קבוצת תכונות של R ו-YX, אז מתקיים XY. הכללה: אם R מקיימת XY לשתי קבוצות Y,X של תכונות של R, אז לכל קבוצת תכונות Z מתקיים גם XZYZ. טרנזיטיביות: אם מתקיים XY וכן YZ, אז מתקיים גם XZ. עבור קבוצה של תלויות F, ותלות נוספת XY, נגיד ש- XY ניתנת להסקה מ-F, ונסמן F ⊢ XY, אם ניתן להגיע מקיום התלויות ב-F לקיום התלות XY תוך כדי שימוש בשלוש אבחנות אלו בלבד. לאבחנות אלו נקרא אקסיומות ארמסטרונג.

הערה עבור הלוגיקאים במינוח מדויק יותר, במערכת של ארמסטרונג יש אקסיומה אחת, רפלקסיביות, ושני כללי היסק, הכללה וטרנזיטיביות. שלושת אלו ביחד מהווים מערכת הוכחה: הוכחה של תלות פונקציונלית XY מתוך קבוצת תלויות F תכיל בכל שלב או ציטוט של אקסיומה, או הפעלה של כלל היסק על איברי F ו/או תוצאות של שלבים קודמים. עלינו עוד להשתכנע שמערכת זו משקפת היטב את המציאות באשר לתלויות האפשריות שתכנים של רלציות יכולים לקיים.

נאותות ושלמות משפט: מערכת האקסיומות של ארמסטרונג היא נאותה ושלמה. נאותה: כל תלות XY אשר ניתנת להסקה מקבוצת תלויות F ע"י סדרה סופית של שימושים באקסיומות היא אכן תלות הנובעת מ-F. להוכחת הנאותות משתמשים בכך שהראינו כבר ששלושת הכללים במערכת אכן נותנים תלויות הנובעות מקבוצת התלויות הקודמת, ואז מבצעים אינדוקציה על אורך סדרת ההיסקים. שלמה: כל תלות XY הנובעת מקבוצת תלויות F, ניתנת גם להסקה (ע"י סדרה סופית של שימושים באקסיומות ארמסטרונג) מ-F. את הוכחת השלמות נראה בהמשך.

דוגמת הוכחה נוכיח עתה את הטענה הבאה באמצעות המערכת של ארמסטרונג: אם מתקיים XY וכן XZ, אז מתקיים גם XYZ. מ- XY נובע ע"פ אקסיומת ההכללה XZYZ. מ- XZ נובע ע"פ אקסיומת ההכללה XXXZ, אולם נשים לב שמתקיים XX=X ולכן נובע מהנ"ל XXZ. מ- XXZ ומ-XZYZ נובע מכלל הטרנזיטיביות XYZ, כנדרש.

סגור של קבוצת תכונות עבור רלציה R, קבוצת תלויות F, וקבוצת תכונות X, נסמן ב-XF+ את הקבוצה המכילה כל תכונה A של R שעבורה מתקיים F⊢(XA). טענה: עבור כל קבוצה Y של תכונות של R, מתקיים F⊢(XY) אם ורק אם מתקיים YXF+. הוכחה: אם YXF+, אז לכל AY מתקיים F⊢(XA) ולכן (ע"י שימוש בטענת האיחוד מהשקף הקודם) מכל אלו נובע F⊢(XY). מצד שני, אם F⊢(XY), אז לכל AY מתקיים F⊢(XA) (ולכן AXF+), מכיוון שניתן לקחת את ההוכחה עבור XY, ולצרף לה שימוש באקסיומת הרפלקסיביות עבור YA ושימוש באקסיומת הטרנזיטיביות לקבלת ההוכחה של XA. כמסקנה מהטענה הקודמת ניתן עתה להוכיח גם את הטענה הבאה: לכל קבוצת תכונות X מתקיים (XF+)+ = XF+.

שלמות האקסיומות של ארמסטרונג להוכחת השלמות, נניח שעבור קבוצת תלויות F מתקיים F ⊬ (XY), ונוכיח שמתקיים F ⊭ (XY) ע"י כך שנבנה תוכן אפשרי לרלציה R המקיים את כל תלויות F ואינו מקיים את XY. לפי הטענה הקודמת, אם F ⊬ (XY) אז לא יתכן שמתקיים YXF+, ולכן קיימת תכונה AY שאינה שייכת ל-XF+. עתה נבנה רלציה בת שני איברים בדיוק: האיבר הראשון יקבל את הערך "0" על כל תכונות הרלציה. האיבר השני יקבל את הערך "0" על כל תכונות XF+ ואת הערך "1" על כל שאר התכונות. זוג האיברים היחידי ברלציה זו מסכימים ביניהם על כל תכונות XF+ (ולכן גם על תכונות X), אולם הם אינם מסכימים ביניהם על A, ולכן R אינה מקיימת את XY. מצד שני, R כן מקיימת את F כי אחרת היינו מקבלים סתירה לטענה (XF+)+ = XF+. מ.ש.ל.

אלגוריתם פשוט לחישוב סגור מושג הסגור של קבוצת תכונות משחק תפקיד חשוב בתכנון של סכמות רלציוניות, ולכן נרצה לחשב אותו באופן אלגוריתמי. האלגוריתם הפשוט הבא יחשב את הסגור XF+ עבור קבוצת תלויות F וקבוצת תכונות X נתונות. משפט: אלגוריתם זה יעצור תמיד ויחזיר את התשובה הנכונה. A_List := X Repeat For every YZF do If YA_List then A_List := A_ListZ Until no change to A_List Return A_List

דוגמת הרצה נחשב את הסגור של X={ A,B } עבור קבוצת התלויות F={ AC, BCA, ACD, CEF } אתחול: A_List = { A,B } מהתלות AC נקבל: A_List = { A,B,C } מהתלות ACD נקבל: A_List = { A,B,C,D } משתי התלויות הנותרות לא נקבל מאומה. התוצאה הסופית: XF+ = { A,B,C,D }

חישוב הסגור  אלגוריתם משופר A_List := X F_List := F Repeat For every YZF_List do Y := Y \ A_List If Y= then A_List := A_ListZ Until no change to A_List Return A_List האלגוריתם הבא ניתן למימוש באופן שבו זמן הריצה יהיה לינארי באורך הקלט, ע"פ משפט של Beer-Bernstein:

סגור של קבוצות תלויות עבור קבוצת תלויות F מעל קבוצת התכונות U של רלציה R[U], נסמן ב-F+ את קבוצת כל התלויות הנובעות מ-F. קבוצה זו תיקרא הסגור של F. מושג הסגור הנ"ל, וכן מושג הסגור של קבוצת תכונות שהוגדר קודם, ישמשו אותנו כאשר ננסח קריטריונים לטיב של פירוק של רלציות. עם זאת, שימו לב שיתכנו מקרים שבהם גודל F+ הוא אקספוננציאלי בגודל הקבוצה המקורית F. אנו נצטרך להתחשב בכך כאשר נתכנן אלגוריתמים הקשורים במציאת פירוק.

השוואת סגור של קבוצות בהינתן קבוצת תלויות F ותלות נוספת XY, ניתן לבדוק האם XYF+ גם ללא חישוב מפורש של הסגור של F: מחשבים את XF+ (את זאת ניתן לעשות בזמן פולינומי), ובודקים האם YXF+. מכאן שבהינתן שתי קבוצות F ו-G של תלויות (מעל אותה קבוצת תכונות), ניתן בזמן פולינומי לבדוק האם מתקיים F+=G+: ראשית בודקים עבור כל תלות ב-G האם היא נובעת מ-F. אם כך הדבר, הרי שמתקיים G+(F+)+=F+. לאחר זאת ניתן לבדוק באופן דומה האם מתקיים F+G+.

כיסויים וכיסויים מינימלים קבוצת תלויות G תיקרא כיסוי של F אם מתקיים G+ = F+. כפי שראינו, בהינתן שתי הקבוצות ניתן לבדוק האם G היא כיסוי של F בזמן פולינומי בגודל הייצוג שלהן. כיסוי G של F יקרא כיסוי מינימלי אם מתקיימים בנוסף התנאים הבאים: כל התלויות ב-G הן מהצורה XA (כאשר A היא תכונה בודדת). אף תלות ב-G אינה ניתנת להסקה מהתלויות אחרות ב-G. לא קיימת ב-G תלות XA שעבורה קיימת תת קבוצה ממש Y של X המקיימת YA  G+ = F+. יתכן שעבור אותו F יהיו מספר כיסויים מינימלים, אולם תמיד קיים לפחות כיסוי מינימלי אחד, וגודלו לא יהיה אקספוננציאלי בגודל F. אלגוריתם למציאת כיסוי כזה יינתן בתרגיל.

סוגי תלויות נוספים בסכימות רלציוניות יתכנו גם אילוצים אחרים מלבד תלויות פונקציונליות. למשל: תלויות רב ערכיות: מצב שבו יתכנו ערכים שונים ל-Y עבור שורות בעלות אותם ערכים ל-X, אולם שבו רק הערכים ל-X קובעים את קבוצת הערכים הקיימים עבור Y. בתלויות אלו ניגע מעט בהמשך. תלויות הכלה: סוג זה של תלויות מקשר בין ערכי תכונות עבור שתי רלציות בסכימה. למשל (בדוגמת מפעיל הרכבות): S_Name (Serves)  S_Name (Station) בקורס זה נתמקד בעיקר בשיקולי תכנון הנובעים אך ורק מהתלויות הפונקציונליות.