תלות היא אילוצים החלים על או מגדירים את היחס בין תכונות. הוא מתרחש במסד נתונים כאשר המידע המאוחסן באותו טבלאות מסד נתונים קובע באופן ייחודי מידע אחר המאוחסן באותו טבלה. ניתן גם לתאר זאת כמערכת יחסים שבה מספיק לדעת את הערך של תכונה אחת (או קבוצה של תכונות) כדי לציין את הערך של תכונה אחרת (או קבוצת תכונות) באותו טבלה.
תלות במסד נתונים לעיתים קרובות מבלבלת בין תלמידים ובין אנשי מקצוע במסד הנתונים. למרבה המזל, הם לא מסובכים כפי שהם נראים. הם יכולים להיות מוסברים בצורה הטובה ביותר באמצעות כמה דוגמאות. כאן, נבחן סוגים נפוצים של תלות במסד הנתונים.
תלות במסד נתונים ותלות פונקציונלית
האמירה כי קיימת תלות בין תכונות בטבלה זהה לאמירה שיש תלות תפקודית בין תכונות אלה. אם קיימת תלות במסד נתונים כך שתכונה B תלויה בתכונות A, תכתוב זאת כך:
א -> ב
לדוגמה, בטבלה המופיעה במאפייני עובדים, כולל מספר תעודת זהות (SSN) ושם, ניתן לומר כי השם תלוי ב- SSN (או SSN -> name), מכיוון ששמו של עובד יכול להיות מוגדר באופן ייחודי מ- SSN. עם זאת, ההצהרה ההפוכה (name -> SSN) אינה נכונה, שכן יותר מעובד אחד יכול להיות בעל שם זהה, אך תמיד יש לו SSN שונים. תלות פונקציונלית טריוויאלית מתרחשת כאשר אתה מתאר תלות תפקודית של תכונה על אוסף של תכונות הכוללות את התכונה המקורית. לדוגמה, {A, B} -> B היא תלות תפקודית טריוויאלית, כמו גם {name, SSN} -> SSN. סוג זה של תלות פונקציונלית נקרא טריוויאלי כי זה יכול להיגזר מן השכל הישר. ברור כי אם אתה כבר יודע את הערך של B, אז את הערך של B ניתן לקבוע באופן ייחודי על ידי ידע זה. תלות תפקודית מלאה מתרחשת כאשר אתה כבר עומד בדרישות התלות הפונקציונלית ואת קבוצת תכונות בצד שמאל של הצהרת התלות הפונקציונלית לא ניתן לצמצם עוד יותר. לדוגמה, {SSN, age} -> שם הוא תלות פונקציונלית, אך היא אינה תלות תפקודית מלאה, מכיוון שניתן להסיר גיל משמאל להצהרה מבלי להשפיע על יחסי התלות. תלות טרנזיטיבית מתרחשת כאשר קיים קשר עקיף הגורם לתלות תפקודית. לדוגמה, A -> C היא תלות טרנזיטיבית כאשר היא נכונה רק משום ש- A -> B ו- B -> C נכונים. תלות רב-שכבתית מתרחשת כאשר נוכחות שורה אחת או יותר בטבלה מרמזת על נוכחות של שורה אחת או יותר באותה טבלה. לדוגמה, דמיינו חברת רכב המייצרת דגמים רבים של המכונית, אבל תמיד עושה גם בצבעי אדום וכחול של כל דגם. אם יש לך טבלה שמכילה את שם הדגם, הצבע והשנה של כל מכונית שמייצרת החברה, קיימת תלות רב-תכליתית בטבלה זו. אם יש שורה עבור שם דגם מסוים ושנה בכחול, חייבת להיות גם שורה דומה המתאימה לגרסה האדומה של אותה מכונית. תלות במסדי נתונים חשובים להבנה משום שהם מספקים את אבני הבניין הבסיסיות המשמשות לנורמליזציה של מסד הנתונים, תהליך של ארגון יעיל של נתונים במסד נתונים. לדוגמה: תלות פונקציונלית טריוויאלית
תלות פונקציונלית מלאה
תלות טרנזיטיבית
תלות רב-תכליתית
חשיבותה של תלות