שווה לנסות!
מסדי נתונים ואפליקציות אינטרנט יכולים לניב יתרונות עסקיים גדולים. עיצוב מסד נתונים הוא קריטי להשגת היעדים שלך, בין אם ברצונך לנהל פרטי עובדים, לספק דוחות שבועיים כנגד נתונים או לעקוב אחר הזמנות של לקוחות. השקעה של הזמן להבנה של עיצוב מסדי נתונים תעזור לך לבנות מסדי נתונים שיפעלו כהלכה בפעם הראשונה ושיפעלו בהתאם לצרכים המשתנים.
חשוב: יישומי אינטרנט של Access שונים ממסדי נתונים שולחניים. מאמר זה אינו דן בעיצוב יישום אינטרנט.
מושגים ומונחים
נתחיל בלמידת כמה מונחים ומושגים בסיסיים. כדי לעצב מסד נתונים שימושי, עליך ליצור טבלאות שמתמקדות בנושא אחד. בטבלאות, אתה לוכד את כל הנתונים הדרושים עבור נושא זה בשדות, המכילים את יחידת הנתונים הקטנה ביותר האפשרית.
מסדי נתונים יחסיים |
מסד נתונים שבו נתונים מחולקים לטבלאות, שהם בערך כמו גליונות אלקטרוניים. לכל טבלה יש נושא אחד בלבד, כגון לקוחות (טבלה אחת) או מוצרים (טבלה אחרת). |
רשומות ושדות |
אחסון עבור הנתונים הדיסקרטיים בטבלה. שורות (או רשומות) מאחסנים כל נקודת נתונים ייחודית, כגון שם של לקוח. עמודות (או שדות) מבודדות את המידע הנלכד אודות כל נקודת נתונים ליחידה הקטנה ביותר האפשרית - השם הפרטי עשוי להיות עמודה אחת ושם משפחה יכול להיות עמודה אחרת. |
מפתח ראשי |
ערך שמבטיח שכל רשומה היא ייחודית. לדוגמה, ייתכן שישנם שני לקוחות בעלי שם זהה, אליזבת אנדרסן. אבל לאחת מהרשומות של אליזבת אנדרסן יש את המספר 12 כמפתח הראשי שלה, ולרשומות האחרות יש מפתח ראשי של 58. |
קשרי גומלין בין אב-צאצא |
קשרי גומלין נפוצים בין טבלאות. לדוגמה, לקוח יחיד עשוי לקבל הזמנות מרובות. טבלאות אב כוללות מפתחות ראשיים. טבלאות צאצא כוללות מפתחות זרים, שהם ערכים מהמפתח הראשי שמציגים כיצד רשומות טבלת הצאצא מקושרות לטבלת האב. מקשים אלה מקושרים על-ידי קשר גומלין. |
מהו עיצוב מסד נתונים טוב?
שני עקרונות הם מהותיים לעיצוב טוב של מסדי נתונים:
-
הימנע ממידע כפול (נקרא גם נתונים מיותרים). היא מבזבזת שטח ומגדילה את הסבירות לשגיאות.
-
ודא שהנתונים נכונים והושלם. מידע לא מלא או שגוי זורמים דרך בשאילתות ובדוחות, ובסופו של דבר עלול להוביל להחלטות שגויות.
כדי לעזור בבעיות אלה:
-
חלק את מידע מסד הנתונים לטבלאות מבוססות נושא במוקד צר. הימנע משכפול מידע בטבלאות מרובות. (לדוגמה, שמות לקוחות צריכים להופיע בטבלה אחת בלבד.)
-
צרף את הטבלאות יחד באמצעות מקשים במקום שכפול נתונים.
-
כלול תהליכים התומכים ולהבטיח את הדיוק והתקינות של מידע מסד הנתונים.
-
עצב את מסד הנתונים שלך במחשבה על צרכי עיבוד הנתונים והדיווח.
כדי לשפר את השימושיות לטווח הארוך של מסדי הנתונים שלך, בצע חמישה שלבי עיצוב אלה:
שלב 1: קביעת מטרת מסד הנתונים
לפני שתתחיל, יש לך מטרה עבור מסד הנתונים.
כדי לשמור על העיצוב ממוקד, סכם את מטרת מסד הנתונים והפנה לסיכום לעתים קרובות. אם אתה מעוניין במסד נתונים קטן עבור עסק ביתי, לדוגמה, תוכל לכתוב משהו פשוט, כגון "מסד הנתונים של הלקוחות שומר רשימה של פרטי לקוחות למטרת הפקת דברי דואר ודוחות". עבור מסד נתונים ארגוני, ייתכן שתידרש פיסקאות מרובות כדי לתאר מתי וכיצד אנשים בתפקידים שונים ישתמשו במסד הנתונים ובנתונים שלו. Create הצהרת משימה מפורטת וספציפית לעיין בה לאורך תהליך העיצוב.
שלב 2: חיפוש וארגון של המידע הנדרש
אסוף את כל סוגי המידע שברצונך לתעד, כגון שמות המוצרים ומספרי ההזמנות שלך.
התחל עם המידע הקיים ושיטות המעקב שלך. לדוגמה, ייתכן שאתה מקליט כעת הזמנות רכש בספר ראשי או שומר פרטי לקוחות בטפסים על נייר. השתמש במקורות אלה כדי להציג ברשימה את המידע שאתה לוכד כעת (לדוגמה, כל התיבות בטפסים שלך). כאשר אינך לוכד כעת מידע חשוב, חשוב על המידע הדיסקרטי הדרוש לך. כל סוג נתונים בודד הופך לשדה במסד הנתונים שלך.
אל תדאג לגבי הפיכת הרשימה הראשונה שלך ל מושלמת - תוכל לכוונן אותה לאורך זמן. אך יש לשקול את כל האנשים המשתמשים במידע זה, ובקש את הרעיונות שלהם.
לאחר מכן, חשוב מה אתה רוצה מתוך מסד הנתונים ועל סוגי הדוחות או דברי הדיוור שברצונך להפיק. לאחר מכן, ודא שאתה לוקט את המידע הנדרש כדי לעמוד ביעדים אלה. לדוגמה, אם אתה מעוניין בדוח המציג מכירות לפי אזור, עליך ללכוד את נתוני המכירות ברמה האזורית. נסה לשרטט את הדוח עם המידע הממשי כפי שתרצה לראות אותו. לאחר מכן, רשימת הנתונים הדרושים ליצירת הדוח. בצע את אותה פעולה עבור דברי דואר או פלטים אחרים שברצונך לקבל ממסד הנתונים.
דוגמה
נניח שאתה מעניק ללקוחות הזדמנות להצטרף (או לצאת) מעדכונים תקופתיים של דואר אלקטרוני, וברצונך להדפיס רשימה של האנשים שההצטרפות להצטרף. אתה זקוק לעמודה 'שלח דואר אלקטרוני' בטבלה 'לקוח', עם ערכים מאפשרים של 'כן' ו'לא'.
למי שמוכן לקבל הודעות דואר אלקטרוני, דרושה לך כתובת דואר אלקטרוני, הדורשת גם שדה. אם ברצונך לכלול פתיחה נכונה (כגון מר, גב' או גב'), כלול שדה פתיחה. אם ברצונך לטפל ללקוחות לפי השם הפרטי שלהם בהודעות דואר אלקטרוני, הוסף שדה 'שם פרטי'.
עצה: זכור לחלק כל פיסת מידע לחלק השימושי הקטן ביותר, כגון שם פרטי ושם משפחה עבור טבלת לקוחות. באופן כללי, אם ברצונך למיין, לחפש, לחשב או לדווח בהתבסס על פריט מידע (כגון שם משפחה של לקוח), עליך למקם פריט זה בשדה משלו.
שלב 3: חלוקת מידע לטבלאות
חלק את פריטי המידע שלך לישויות או לנושאים ראשיים, כגון מוצרים, לקוחות והזמנות. כל נושא הופך לטבלה.
לאחר יצירת רשימת המידע הנדרש, קבע אילו ישויות (או נושאים) עיקריים עליך לארגן את הנתונים שלך. הימנע משכפול נתונים בין ישויות. לדוגמה, הרשימה הראשונית עבור מסד נתונים של מכירות מוצרים עשויה להיראות כך:
הישויות העיקריות הן: לקוחות, ספקים, מוצרים והזמנות. אז התחל בארבע הטבלאות הללו: אחת לעובדות על לקוחות, אחת לעובדות על ספקים וכן הלאה. ייתכן שזה לא יהיה העיצוב הסופי שלך, אך זוהי נקודת התחלה טובה.
הערה: מסדי הנתונים הטובים ביותר מכילים טבלאות מרובות. הימנע מהפיתוי למקם את כל המידע שלך טבלת יחיד. התוצאה היא מידע כפול, גודל מסד נתונים גדול יותר ושגיאות מוגברות. עצב כדי להקליט כל עובדה פעם אחת בלבד. אם אתה מוצא את עצמך חוזר על מידע, כגון כתובת ספק, שנה את מבנה מסד הנתונים כדי למקם מידע זה בטבלה נפרדת.
כדי להבין מדוע יותר טבלאות טובות מפחות, שקול את הטבלה המוצגת כאן:
כל שורה מכילה מידע אודות המוצר והספק שלו. מאחר שייתכן שיש לך מוצרים רבים מאותו ספק, יש לחזור על פרטי שם הספק והכתובת פעמים רבות. פעולה זו מבזבזת שטח דיסק. במקום זאת, תעד את פרטי הספק פעם אחת בלבד בטבלה 'ספקים' נפרדת ולאחר מכן קשר טבלה זו לטבלה Products.
בעיה נוספת בעיצוב זה ניכרת כאשר עליך לשנות מידע אודות הספק. נניח שעליך לשנות את כתובת הספק. מאחר שהיא מופיעה במקומות רבים, אתה עשוי לשנות בטעות את הכתובת במקום אחד, אך שכחת לשנות אותה במקומות אחרים. רישום כתובת הספק במקום אחד בלבד פותר את הבעיה.
לבסוף, נניח שיש מוצר אחד בלבד שסופק על-ידי יקב Coho, וברצונך למחוק את המוצר אך לשמור את שם הספק ואת פרטי הכתובת. עם עיצוב זה, כיצד תמחק את רשומת המוצר מבלי לאבד גם את פרטי הספק? אתה לא יכול .אתה לא יכול לעשות את זה. מאחר שכל רשומה מכילה עובדות על מוצר בנוסף לעובדות אודות ספק, אין אפשרות למחוק רשומה מבלי למחוק את השניה. כדי להפריד בין עובדות אלה, פצל טבלה זו לשתיים: הראשונה עבור פרטי מוצר והטבלה השניה עבור פרטי ספק. לאחר מכן, בעת מחיקת רשומת מוצר, אתה מוחק רק את העובדות אודות המוצר - ולא את העובדות אודות הספק.
שלב 4: הפיכת פריטי מידע לעמודות
החלט איזה מידע עליך לאחסן בכל טבלה. פיסות נתונים נפרדים אלה הופכות לשדות בטבלה. לדוגמה, הטבלה 'עובדים' עשויה לכלול שדות כגון 'שם משפחה', 'שם פרטי' ו'תאריך העסקה'.
לאחר שבחרת את הנושא עבור טבלת מסד נתונים, העמודות בטבלה זו אמורות לאחסן עובדות אודות נושא יחיד זה בלבד. לדוגמה, טבלת מוצרים צריכה לאחסן עובדות רק על מוצרים - ולא על הספקים שלהם.
כדי להחליט אחרי איזה מידע לעקוב בטבלה, השתמש ברשימה שיצרת קודם לכן. לדוגמה, הטבלה 'לקוחות' עשויה לכלול: 'שם פרטי', 'שם משפחה', 'כתובת', 'שלח דואר אלקטרוני', 'ברכה' ו'כתובת דואר אלקטרוני'. כל רשומה (לקוח) בטבלה מכילה את אותה קבוצת עמודות, כך שאתה מאחסן בדיוק את אותו מידע עבור כל לקוח.
Create את הרשימה הראשונה ולאחר מכן סקור ומקד אותה. זכור לפיצול מידע לשדות הקטן ביותר האפשריים. לדוגמה, אם הרשימה ההתחלתית שלך כוללת כתובת כשדה, רשום אותה ל'כתובת רחוב', 'עיר', 'מדינה' ו'מיקוד' - או, אם הלקוחות שלך גלובליים, לשדות נוספים. כך, לדוגמה, באפשרותך לבצע דברי דואר בתבנית או בדוח המתאימים על הזמנות לפי מדינה.
לאחר שתמקד את עמודות הנתונים בכל טבלה, תהיה מוכן לבחור את המפתח הראשי של כל טבלה.
שלב 5: ציון מפתחות ראשיים
בחר את המפתח הראשי של כל טבלה. המפתח הראשי, כגון Product ID או Order ID, מזהה באופן ייחודי כל רשומה. אם אין לך מזהה ייחודי ברור, השתמש ב- Access כדי ליצור מזהה כזה עבורך.
דרושה לך דרך לזיהוי ייחודי של כל שורה בכל טבלה. זוכר את הדוגמה הקודמת שבה לשני לקוחות יש שם זהה? מכיוון שהם משתפים שם, דרושה לך דרך לזהות כל אחד מהם בנפרד.
לכן, על כל טבלה לכלול עמודה (או קבוצת עמודות) שמזהה באופן ייחודי כל שורה. מפתח זה נקרא מפתח ראשי והוא לרוב מספר ייחודי, כגון מספר מזהה עובד או מספר סידורי. Access משתמש במפתחות ראשיים כדי לשייך במהירות נתונים מטבלאות מרובות ול לאחד את הנתונים עבורך.
לפעמים המפתח הראשי מורכב משני שדות או יותר. לדוגמה, טבלת פרטי הזמנה המאחסנים פריטי שורה עבור הזמנות עשויה להשתמש בשתי עמודות במפתח הראשי שלה: מזהה הזמנה ומזהה מוצר. כאשר מפתח ראשי משתמש ביותר מעמודה אחת, הוא נקרא גם מפתח מורכב.
אם כבר יש לך מזהה ייחודי עבור המידע בטבלה, כגון מספרי מוצרים המזהים באופן ייחודי כל מוצר בקטלוג שלך, השתמש בו, אך רק אם הערכים עומדים בכללים אלה עבור מפתחות ראשיים:
-
המזהה יהיה תמיד שונה עבור כל רשומה. ערכים כפולים אינם מותרים במפתח ראשי.
-
תמיד קיים ערך עבור הפריט. לכל רשומה בטבלה חייב להיות מפתח ראשי. אם אתה משתמש בעמודות מרובות כדי ליצור את המפתח (כגון 'משפחה בחלק' ו'מספר חלק'), שני הערכים חייבים תמיד להיות קיימים.
-
המפתח הראשי הוא ערך שאינו משתנה. מאחר שטבלאות אחרות מפנה למפתחות אחרים, כל שינוי במפתח ראשי בטבלה אחת פירושו שינוי בכל מקום שאליו מתבצעת הפניה. שינויים תכופים מגדילים את הסיכון לשגיאות.
אם אין לך מזהה ברור, השתמש במספר שרירותי וייחודי כמפתח הראשי. לדוגמה, באפשרותך להקצות לכל הזמנה מספר הזמנה ייחודי למטרה הבלעדית של זיהוי ההזמנה.
עצה: כדי ליצור מספר ייחודי כמפתח הראשי, הוסף עמודה באמצעות סוג הנתונים 'מספור אוטומטי'. סוג הנתונים 'מספור אוטומטי' מקצה באופן אוטומטי ערך מספרי ייחודי לכל רשומה. סוג זה של מזהה אינו מכיל מידע עובדתי המתאר את השורה שהוא מייצג. הוא אידיאלי לשימוש כמפתח ראשי מכיוון שהמספרים אינם משתנים - בשונה ממפתח ראשי המכיל עובדות אודות שורה, כגון מספר טלפון או שם לקוח.