האם עלי לנרמל את מסד הנתונים שלי?

נורמליזציה בעולם האמיתי

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

הגיע הזמן לאתגר את האמת הזאת. לפעמים זה בסדר כדי denormalize באתר שלך!

מתי עליך לנרמל?

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

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

כמה סיבות טובות לא לנרמל

עם זאת, יש כמה סיבות טובות לא לנרמל את מסד הנתונים. בואו נסתכל על כמה:

  1. מצטרף יקר . מנרמל את מסד הנתונים שלך לעתים קרובות כרוך ביצירת המון טבלאות. למעשה, אתה יכול בקלות בסופו של דבר עם מה שאתה חושב צריך להיות שאילתה פשוטה כי משתרע על חמישה או 10 שולחנות. אם אי פעם ניסית לעשות חמישה טבלאות להצטרף, אתה יודע שזה עובד באופן עקרוני, אבל האיטי שלה בקפידה בפועל. אם אתה בונה יישום אינטרנט שמסתמך על שאילתות מרובות להצטרף לשולחנות גדולים, אתה עלול למצוא את עצמך חושב, "אם רק מסד הנתונים לא היו מנורמל!" כאשר אתה שומע את המחשבה הזאת בראש שלך, זה זמן טוב לשקול denormalizing. אם אתה יכול לתקוע את כל הנתונים המשמשים את השאילתה לתוך טבלה אחת מבלי באמת לסכן את שלמות הנתונים, לכו על זה! להיות מורדים ו denormalize את מסד הנתונים. אתה לא מסתכל אחורה!
  2. עיצוב מנורמל קשה . אם אתה עובד עם סכמת מסד נתונים מורכבת, אתה בטח תמצא את עצמך מכה את הראש שלך על השולחן על המורכבות של הנורמליזציה. ככלל אצבע פשוט, אם אתה מבלה את כל היום מנסה להבין איך לעבור הצורה הנורמלית הרביעית, אתה יכול לקחת נורמליזציה רחוק מדי. צעד אחורה ושאל את עצמך אם זה באמת שווה להמשיך.
  1. מהיר ומלוכלך צריך להיות מהיר ומלוכלך . אם אתה רק בפיתוח אב טיפוס, פשוט לעשות מה עובד במהירות. בֶּאֱמֶת. זה בסדר. פיתוח יישומים מהיר לפעמים חשוב יותר עיצוב אלגנטי. רק תזכור לחזור ולהסתכל זהיר על העיצוב שלך ברגע שאתה מוכן לעבור מעבר בשלב prototyping. המחיר שאתה משלם עבור עיצוב מסד נתונים מהיר ומלוכלך הוא כי ייתכן שיהיה עליך לזרוק אותו ולהתחיל מחדש כאשר הגיע הזמן לבנות עבור הייצור.
  2. אם אתה משתמש במסד הנתונים NoSQL , נורמליזציה מסורתית לא רצוי. במקום זאת, עיצוב מסד הנתונים שלך באמצעות מודל BASE שהוא הרבה יותר סלחני. אפשרות זו שימושית כאשר אתה מאחסן נתונים לא מובנים כגון הודעות דוא"ל, תמונות או סרטונים.

כמה מלות זהירות

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

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