ההבדל בין 3NF ל- BCNF

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 16 מאי 2024
Anonim
Difference between 3NF and BCNF, De-normalization
וִידֵאוֹ: Difference between 3NF and BCNF, De-normalization

תוֹכֶן


נורמליזציה היא שיטה שמסלקת יתירות מקשר ובכך ממזער את ההכנסה, המחיקה והעדכון של חריגות המשפילות את הביצועים של מסדי נתונים. במאמר זה נבדיל בין שתי צורות נורמליות גבוהות יותר, כלומר 3NF ו- BCNF. ההבדל הבסיסי בין 3NF ל- BCNF הוא זה 3NF מבטל את התלות הטרנזיטיבית מקשר וטבלה להיות ב- BCNF, התלות הפונקציונאלית הטריוויאלית X-> Y בקשר חייבת להחזיק, רק אם X הוא המפתח העל.

בוא נדון בהבדלים בין 3NF ל- BCNF בעזרת תרשים השוואה המוצג להלן.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואה3NFBCNF
קונספטשום תכונה שאינה ראשית חייבת להיות תלויה באופן חולף במפתח המועמד.לגבי כל תלות טריוויאלית ביחס R נניח X-> Y, X צריך להיות מפתח סופר של יחס R.
תלותניתן להשיג 3NF מבלי להקריב את כל התלות.ייתכן שלא יישמרו תלות ב- BCNF.
פירוקניתן להשיג פירוק ללא הפסד ב- 3NF.קשה להשיג פירוק ללא הפסד ב- BCNF.


הגדרה של 3NF

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

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

עכשיו אם יש לנו קשר R (A, B, C, D, E, F) ויש לנו תלות פונקציונלית הבאה ביחס R.

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


הטבלה נמצאת ב- 2NF מכיוון שאף תכונה שאינה ראשונה תלויה בחלקה במפתח המועמד

עם זאת, נצפתה תלות טרנזיטיבית בין התלות התפקודית המסופקת, כתכונה ו אינו תלוי ישירות במפתח המועמד א.ב.. במקום זאת, תכונה ו פועל עזר לגוף שני במעברים תלוי במפתח המועמד א.ב. באמצעות תכונה ד. עד לתכונה D יש ערך כלשהו אליו אנו יכולים להגיע לערך התכונה של F, ממפתח המועמד AB. אם הערך של תכונה D הוא NULL, לעולם לא נוכל למצוא / לחפש את הערך של F בעזרת מפתח מועמד AB. זו הסיבה מדוע 3NF דורשת להסיר את התלות הטרנזיטיבית מהיחסים.

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

כעת, הטבלאות R1 ו- R2 נמצאות ב- 3NF מכיוון שלא נותרו תלות חלקית וטרנזיטאלית. יחס R1 (A, B, C, D, E) יש מפתח מועמד א.ב. ואילו יחס R2 (D, E) יש ל ד כמפתח המועמד שלה.

הגדרה של BCNF

BCNF נחשב לחזק יותר מ- 3NF. הקשר R להיות ב- BCNF חייב להיות 3NF. ובכל מקום א תלות תפקודית לא טריוויאלית A -> B מחזיק ביחס R, אם כן א חייב להיות מפתח-על ביחס ר 'כידוע, מפתח מפתח הוא מפתח שיש בו תכונה יחידה או מערך תכונות שקובע, את כל התכונות של יחס.

כעת, נעבור לדוגמה להבנת BCNF בצורה טובה יותר. הבה, נניח שיש לנו קשר R (A, B, C, D, F)שיש להם תלות פונקציונאלית בעקבות.

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

אבל תלות פונקציונאלית אחת, כלומר D -> F מפר את ההגדרה של BCNF, לפיה, אם D -> F קיימים אז ד צריך להיות מפתח מפתח וזה לא המקרה כאן. אז נחלק את הקשר ר.

כעת, הטבלאות R1 and R2 הן ב- BCNF. יחס R1 יש שניים מועמד מפתחות א ו ב, התלות הפונקציונלית הטריוויאלית של R1, כלומר A-> BCD ו- B -> ACD, החזק עבור BCNF כ- A ו- B הם מפתחות העל לקשר. יחס R2 יש ל ד כשלה מפתח המועמד והתלות התפקודית D -> F מחזיקה גם ב- BCNF שכן D הוא מפתח מפתח.

  1. 3NF קובע כי שום תכונה שאינה ראשית חייבת להיות תלויה באופן חולף במפתח המועמד של הקשר. מצד שני, BCNF קובע כי אם תלות פונקציונאלית טריוויאלית X -> Y מתקיימים למערכת יחסים; אז X חייב להיות מפתח סופר.
  2. ניתן להשיג 3NF מבלי להקריב את תלות הקשר. עם זאת, יתכן שלא תישמר התלות בזמן קבלת BCNF.
  3. ניתן להשיג 3NF מבלי לאבד מידע כלשהו מהטבלה הישנה ואילו תוך השגת BCNF אנו עשויים לאבד מידע כלשהו מהטבלה הישנה.

סיכום:

BCNF מגביל הרבה יותר מ- 3NF המסייעים לנרמל את הטבלה יותר. לקשר ב- 3NF נותרו יתירות מינימלית שמוסרת עוד יותר על ידי ה- BCNF.