תלות פונקציונלית במסד נתונים

תלות פונקציונלית עזרה הימנע שכפול נתונים

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

במערכת יחסים זו, A קובע את הערך של B, ואילו B תלוי ב- A.

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

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

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

SSN -> שם, תאריך לידה, כתובת

לכן, שם, תאריך לידה וכתובת הם פונקציונלית תלויים SSN. עם זאת, ההצהרה ההופכת (שם -> SSN) אינה נכונה, שכן יותר מעובד אחד יכול לקבל את אותו שם, אך לעולם לא יהיה אותו SSN. במילים אחרות, אם אנו יודעים את הערך של המאפיין SSN, אנו יכולים למצוא את הערך של שם, תאריך לידה וכתובת. אבל אם במקום זאת נדע את הערך של תכונה name בלבד, לא נוכל לזהות את ה- SSN.

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

העובד קובע את המיקום שבו הוא עובד, כך שיש תלות:

עובד -> מיקום

אבל למיקום יש יותר ממנהל אחד, כך שעובדים ומחלקה יחדיו יקבעו את המנהל:

עובד, מנהל -> מנהל

תלות פונקציונלית ונורמליזציה

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