בכל DBMS (מערכות ניהול מסדי נתונים)ישנם כמה סוגים של קשרים בין טבלאות. ביניהם מערכות יחסים בין אחד לאחד, אחד לרבים, רבים לאחד (יש הנוטים לזהות את שני הסוגים הללו לאחד) ויחסים רבים-לרבים. דוגמא לאחרון, הסברו ויישומם ב- DBMSs שונים, כגון Access או SQL, ייחשבו במאמר זה.
מערכת יחסים רבים-רבים מוגדרת כהתאמה לכל אחד מהמקרים של אחת מהישויות של כל המקרים של האחר. במילים אחרות, כל שדה מהטבלה הראשונה (השנייה) משויך לכל השדות מהשני (הראשון).
התרשים המוצג משקף בבירור את מהות הקשר הזה.
דוגמה ליחסים רבים-רבים היא סטודנטקבוצה וקבוצת מורים. כל אחד מהסטודנטים לומד עם כמה פרופסורים בבת אחת, אשר בתורם מרצים בפני מספר סטודנטים. התמונה מראה את ההבדל בין יחסים בין רבים לרבים.
לעתים קרובות יש צורך בתקשורת בין רבים לרבים כאשרבהרכבת מאגרי מידע בקנה מידה גדול, דוגמאות המחשה קטנות משמשות בדרך כלל רק למטרות חינוכיות, בפועל אמיתי מתברר שככל שיש יותר גופים במאגר וככל שיותר קשרים ביניהם, כך יש סיכוי רב יותר להתייחס לקשרים רבים-רבים.
דוגמאות למערכת היחסים המדוברת עדיין יהיונוסף במהלך המאמר, אך חשוב לא רק להבין מהו, אלא גם כיצד ניתן ליישם אותו. הפרטים של תהליך זה תלויים ישירות ב- DBMS שנבחר לעבודה, בעוד שהעקרון נשאר זהה עבור כולם.
מוצר תוכנת אופיס ממיקרוסופטידוע בשוק התוכנה כבר די הרבה זמן. זה מגיע עם עורך הטקסטים של Worfd, מעבד הגיליונות האלקטרוניים של Excel ואחרים בשורת "המשרד". ניתן לרכוש גישה (הנקראת "גישה", תרגום מילולי - "גישה") בנפרד מ"עמיתיה ". מומלץ לקנות, כמובן, תוכנות מורשות, אך אין זה סוד לאף אחד כמה רפידות פיראטיות ניתן למצוא באינטרנט, בצורה של קבצים רגילים או הפצות סיקור. Microsoft Access זמין אפילו במבנה נייד. היא, שאינה דורשת התקנה וכישורים מיוחדים בעבודה עם מחשב אישי, מתאימה ביותר לבחירה אם התוכנה לא תשמש במשך זמן רב ולעתים קרובות.
ברור מההקשר כי Microsoft Access הואמערכת ניהול מסדי נתונים. ואחד הפופולריים ביותר. זה יחסי, כלומר מבוסס על מודל נתונים לוגי, אשר במהלך עבודתו מתייחס לתורת הקבוצות ולוגיקה מסדר ראשון. תקשורת רבים-רבים ב- Access (דוגמאות יובאו במהלך ההסבר) מאוד מאוד פשוט ליישום. שקול את זה.
כדי לא להמציא שום דבר חדש, בואו ניקח כברשניתנו על מנת להבהיר את היחסים בין רבים לרבים, הדוגמא על גוף הסטודנטים. עליכם ליצור טבלה "תלמידים" ושולחן "מורים". גם הראשון וגם השני מקשים ראשוניים. כדי לשלב מופעים של שתי ישויות אלה, נדרש גם טבלה נוספת, שהשדות שלה הם המפתחות של הטבלה הראשונה והשנייה.
בהתחשב בדוגמה אחרת: נניח שחקנים וקבוצות (אם לוקחים בחשבון שלפחות אחד מהשחקנים שיחק בקבוצות שונות, ובכל קבוצה יש אחד עשר שחקנים), המהות של בניית קשר לא תשתנה. יהיה צורך גם בשלושה שולחנות. מתוכם, "כדורגלנים" ו"קבוצות "כעיקריים, ובינוני אחד.
קשרים בין טבלאות ב- Microsoft Access DBMSמיושמים באמצעות הכרטיסייה Scheme Data. כל הישויות הדרושות (במקרה שלנו, כל שלוש הטבלאות) מתווספות לפאנל שמופיע. מערכת היחסים בין רבים לרבים תיווצר תוך שימוש בשני יחסים אחד לרבים בין הראשי ("תלמידים" ו"מורים ") לבין טבלת ביניים. לשם כך יש לקשר את המפתחות הראשיים המתאימים.
האיור שלמעלה מראה כיצד נראית הכרטיסייה Relathionships. מספר הטבלאות שנוספו לפאנל אינו מוגבל. המיקום מתכוונן לחלוטין למשתמש.
תכנון מסדי נתונים של SQL הוא אתגרקשה יותר מאשר ב- "Access". אם מוצר של מיקרוסופט מותאם במלואו לסביבת משרד, יש לו פונקציונליות ענקית ובכל מהדורה ועדכון, הכל יכול להרחבה, אך יחד עם זאת, ממשק נוח למשתמש פשוט, אזי SQL היא שפת תכנות נפרדת שאינה פרוצדורלית בעזרתה בפלטפורמות שונות. אתה יכול לעבוד עם מסדי נתונים. תוכנה ידועה למשימה זו: Oracle MySQL ו- DB2 (פופולריות, אך לא ייחודיות). למרות העובדה שלכל אחד מהם יש דקויות וניואנסים משלו, שפת SQL "מאחדת" אותם. לאחר שלמדנו לעבוד עם לפחות אחד מהם, יהיה הרבה יותר קל להתמודד עם האחר.
יצירה, מילוי ופעולות ישירותעל בסיס נתונים קיים ב- SQL שאתה צריך באמצעות קודים או סקריפטים מיוחדים. עם זאת, מי שכבר הגיע למדור "קשר רבים-רבים", דוגמה לכך בשפת תכנות זו יובא להלן, צריך לדעת לפחות את הפקודות והעקרונות הבסיסיים של שימוש בשפת SQL.
הקדמה ארוכה עשויה להיות מבלבלת משהו"לטשטש", אך למעשה עקרון יישום החיבור נשאר זהה. על מנת שניתן יהיה ליישם את סוג היחסים בין רבים לרבים בפועל, לא רק ב- Access, אלא גם ב- SQL, נדרש ליצור בתחילה שתי טבלאות בסיס ואחת אחת בינונית. המצב דומה למפתחות: לישויות הראשיות יש שדות עיקריים, שכל אחד מהם נרשם בטבלת צומת. מה שאומר שהקשר בין רבים לרבים של SQL אינו שונה מהותית מ"הגישה ".
ליישום תקשורת רבים-רבים בתסריטיםSQL משתמש ב- KEY FOREIGN בדומה למפתחות המקוריים בטבלאות הראשיות. הם מוקלטים יחד עם כל השדות כאשר הם נוצרים ו / או נערכים.
בדרך כלל מערכות יחסים בין ישויות בבסיסי נתוניםמשמש לשלמות המידע המאוחסן בהם. רק בסיס נתונים מעוצב היטב עם כל החיבורים הדרושים מבטיח בטיחות אחסון, קלות שימוש ומהווה מבנה עמיד בפני השפעות ושינויים חיצוניים. בדרך כלל, אם מסד נתונים מכיל נתונים על ארגון, חברה או חברה שלמה, הוא מכיל ישויות רבות עם מופעים שונים.
פירוש הדבר שכאשר מתכננים סכימת נתונים (ב-"גישה") או סקריפטים (ב"אורקל "או" DiBiTu ") יהיו לפחות יחסים רבים-רבים. דוגמה ל- SQl המשמשת לעתים קרובות בקורס ארגון מסדי נתונים היא מסד הנתונים של קינג.
מאגר נתונים לדוגמה זה מספק מידע על תאגיד קינג. בין השולחנות:
טבלאות קטנות עם לא יותר משניים או שלושה שדות משויכות לכל היותר לטבלה אחת ביחסי אחד לאחד או אחד לרבים.
טבלאות קנה מידה, כגון "עובדיםחברות "," חברות קנייה "," חוזי מכר "ו"מעשי מכירה" קשורות למספר גופים בבת אחת, ועם חלקן - בעזרת "מתווכים" מערכת יחסים רבים-רבים. הטבלה "חברות-קונים" היא עצמה מתווך , ככזה, מכיוון שהוא מכיל שדות רבים המושאלים מטבלאות אחרות ומהווים מפתחות זרים. בנוסף, קנה המידה והקישוריות הדדית של מאגר התאגיד של קינג הם כאלה שכל הקשרים קשורים זה בזה באורח בלתי נפרד ומשפיעים זה על זה. אחד מהם יוביל להרס שלמות המאגר כולו.
כשמיישמים מערכת יחסים רבים-רבים, בחוץתלוי באיזה DBMS משתמשים, חשוב מאוד לקבוע נכון את המפתחות איתם יחובר הקשר. חיבור מיושם באופן שגוי לא ימלא את מטרתו העיקרית, דהיינו להבטיח את שלמות הטבלה, וכתוצאה מכך, במקום הנוחות הצפויה, המשתמש יקבל, להיפך, אי נוחות ובעיות נוספות, במיוחד בעת מילוי טבלאות ועריכת נתונים בהן.