מה הם תלות מסד נתונים?

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

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

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

האמירה כי קיימת תלות בין תכונות בטבלה זהה לאמירה שיש תלות תפקודית בין תכונות אלה. אם קיימת תלות במסד נתונים, כך שתכונה B תלויה במאפיין A, היית כותב זאת כ- "A -> B".

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

תלות פונקציונלית טריוויאלית

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

תלות פונקציונלית מלאה

תלות תפקודית מלאה מתרחשת כאשר אתה כבר עומד בדרישות התלות הפונקציונלית ואת קבוצת תכונות בצד שמאל של הצהרת התלות הפונקציונלית לא ניתן לצמצם עוד יותר. לדוגמה, "{SSN, age} -> name" הוא תלות פונקציונלית, אך היא אינה תלות תפקודית מלאה, מכיוון שניתן להסיר גיל משמאל להצהרה מבלי להשפיע על יחסי התלות.

תלות טרנזיטיבית

תלות טרנזיטיבית מתרחשת כאשר קיים קשר עקיף הגורם לתלות תפקודית. לדוגמה, "A - C" היא תלות טרנזיטיבית כאשר היא נכונה רק משום ששניהם "A - B" ו - "B - C" נכונים.

תלות רב-תכליתית

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

חשיבותה של תלות

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