הופעתה של טכנולוגיית המחשב שלנוהמודרניות סימנה מהפכת מידע בכל תחומי הפעילות האנושית. אבל כדי למנוע מכל המידע להפוך לזבל מיותר באינטרנט העולמי, הומצאה מערכת מסד נתונים, שבה חומרים ממוינים, שיטתיים, וכתוצאה מכך ניתן למצוא אותם בקלות ולהציג אותם לעיבוד אחר כך. ישנם שלושה סוגים עיקריים - מסדי נתונים יחסיים, היררכיים, רשתות.
אם נחזור למקורות של מסדי נתונים, זה שווהלומר שהתהליך הזה היה מורכב למדי, מקורו בפיתוח של ציוד לעיבוד מידע שניתן לתכנות. לכן, אין זה מפתיע שמספר הדגמים שלהם כרגע מגיע ליותר מ-50, אבל העיקריים שבהם נחשבים להיררכיים, יחסיים ורשתיים, שעדיין נמצאים בשימוש נרחב בפועל. מה הם?
למסד הנתונים ההיררכי יש עץ דמוי עץמבנה ומורכב מנתונים מרמות שונות, שביניהם יש קשרים. מודל הרשת של DB הוא דפוס מורכב יותר. המבנה שלו דומה למבנה היררכי, והתכנית מורחבת ומשופרת. ההבדל ביניהם הוא שלנתונים התורשתיים של המודל ההיררכי יכולים להיות קשר עם אב קדמון אחד בלבד, בעוד שלנתונים ברשת יכולים להיות כמה. המבנה של מסד נתונים יחסי הוא הרבה יותר מורכב. לכן, יש לנתח אותו ביתר פירוט.
דגם זה פותח בשנות ה-70.מאת Edgar Codd, Ph.D. זוהי טבלה בעלת מבנה הגיוני ובה שדות המתארים את הנתונים, את היחסים ביניהם, את הפעולות שבוצעו בהם, והכי חשוב, את הכללים המבטיחים את שלמותם. מדוע המודל נקרא יחסי? הוא מבוסס על קשרים (מ-lat. Relatio) בין נתונים. ישנן הגדרות רבות לסוג זה של מסד נתונים. טבלאות יחסים עם מידע הרבה יותר קלות לארגון ולעיבוד מאשר ברשת או במודל היררכי. כיצד ניתן לעשות זאת? מספיק להכיר את התכונות, את מבנה המודל ואת המאפיינים של טבלאות יחסיות.
כדי ליצור DBMS משלך, עליךהשתמש באחד מכלי המידול, תחשוב על איזה מידע אתה צריך לעבוד איתו, עצב טבלאות וקשרים בודדים ומרובים בין נתונים, מלא תאי ישות והגדר מפתחות זרים ראשיים.
דוגמנות שולחן ועיצוב יחסימסדי נתונים מופקים באמצעות כלים חינמיים כגון Workbench, PhpMyAdmin, Case Studio, dbForge Studio. לאחר עיצוב מפורט, עליך לשמור את המודל הרלוציוני המוכן גרפית ולתרגם אותו לקוד SQL מוכן. בשלב זה ניתן להתחיל לעבוד עם מיון, עיבוד וסיסטמטיזציה של נתונים.
כל מקור מתאר את המרכיבים שלו בדרכו שלו, אז בשביל פחות בלבול אני רוצה לתת רמז קטן:
כדי להגיע למאפיינים של מסד נתונים יחסי, צריך לדעת מאילו רכיבים בסיסיים הוא מורכב ולמה הם מיועדים.
כעת, כאשר אתה מכיר את המרכיבים המרכיבים את הטבלה, אתה יכול ללכת למאפיינים של המודל היחסי של מסד הנתונים:
בהתבסס על המאפיינים של DBMS יחסי, ברור שערכי התכונה חייבים להיות מאותו סוג ואורך. הבה נבחן את התכונות של ערכי התכונה.
שמות שדות חייבים להיות ייחודיים בתוךישות אחת. תכונת מסד נתונים יחסי או סוגי שדות מתארים אילו נתוני קטגוריה מאוחסנים בשדות ישויות. שדה של מסד נתונים יחסי חייב להיות בעל גודל קבוע בתווים. הפרמטרים והפורמט של ערכי התכונה קובעים כיצד הנתונים יתוקנו בהם. יש גם דבר כזה "מסכה", או "תבנית קלט". הוא נועד להגדיר את התצורה של הזנת נתונים לערך התכונה. זה הכרחי שתופיע הודעת שגיאה בעת כתיבת סוג נתונים שגוי לשדה. כמו כן, מוטלות הגבלות מסוימות על מרכיבי השדות - התנאים לבדיקת הדיוק והזנת נתונים ללא שגיאות. יש ערך תכונה נדרש שחייב להיות מאוכלס באופן חד משמעי בנתונים. ניתן למלא כמה מחרוזות תכונות בערכי NULL. מותר להזין נתונים ריקים למאפייני שדה. כמו הודעת השגיאה, ישנם ערכים שמולאים אוטומטית על ידי המערכת - אלו הם נתוני ברירת המחדל. שדה באינדקס נועד להאיץ את החיפוש אחר כל נתונים.
שם תכונה 1 | שם תכונה 2 | שם תכונה 3 | שם תכונה 4 | שם תכונה 5 |
פריט_1_1 | פריט_1_2 | פריט_1_3 | פריט_1_4 | פריט_1_5 |
פריט_2_1 | פריט_2_2 | פריט_2_3 | פריט_2_4 | פריט_2_5 |
פריט_3_1 | פריט_3_2 | פריט_3_3 | פריט_3_4 | פריט_3_5 |
להבנה מפורטת של מערכת הבקרהמודלים עם SQL הדרך הטובה ביותר להסתכל על סכימה היא באמצעות דוגמה. אנחנו כבר יודעים מה זה מסד נתונים יחסי. רשומה בכל טבלה היא פריט נתונים אחד. כדי למנוע יתירות נתונים, יש צורך לבצע פעולות נורמליזציה.
1. הערך של שם השדה עבור טבלה רלציונית חייב להיות ייחודי, יחיד במינו (הצורה הנורמלית הראשונה היא 1NF).
2. עבור טבלה שכבר הצטמצמה ל-1NF, השם של כל עמודה שאינה מזהה חייב להיות תלוי במזהה הייחודי של הטבלה (2NF).
3. עבור כל הטבלה שכבר נמצאת ב-2NF, כל שדה שאינו מזהה אינו יכול להיות תלוי ברכיב של ערך אחר שאינו מוכר (ישות 3NF).
ישנם 2 סוגים עיקריים של קשרי טבלה יחסיים:
מפתחות ראשיים ומשניים מגדיריםקשרי מסד נתונים פוטנציאליים. לקישורים יחסיים של מודל נתונים יכולים להיות רק מפתח פוטנציאלי אחד, זה יהיה המפתח העיקרי. איך הוא? מפתח ראשי הוא עמודת ישות או קבוצה של תכונות שדרכן ניתן לגשת לנתונים של שורה מסוימת. הוא חייב להיות ייחודי, ייחודי, והשדות שלו אינם יכולים להכיל ערכים ריקים. אם המפתח הראשי מורכב מתכונה אחת בלבד, הוא נקרא פשוט, אחרת הוא יהיה רכיב.
בנוסף למפתח הראשי, יש גם חיצוני(מפתח זר). רבים אינם מבינים מה ההבדל ביניהם. בואו נסתכל עליהם ביתר פירוט באמצעות דוגמה. אז, יש 2 שולחנות: "משרד הדיקן" ו"סטודנטים". ישות "משרד הדיקן" מכילה את השדות: "זיהוי סטודנט", "שם מלא" ו"קבוצה". לטבלת "סטודנטים" יש ערכי תכונות כגון "שם", "קבוצה" ו"ממוצע". מכיוון שתעודת סטודנט לא יכולה להיות זהה עבור מספר תלמידים, שדה זה יהיה המפתח הראשי. "שם מלא" ו"קבוצה" מטבלת "סטודנטים" יכולים להיות זהים עבור מספר אנשים, הם מתייחסים למספר תעודת הסטודנט מהישות "משרד הדיקן", ולכן הם יכולים לשמש כמפתח זר.
לשם הבהירות, ניתן דוגמה פשוטה של מודל מסד נתונים יחסי המורכב משתי ישויות. יש שולחן שנקרא "דיקן".
מהות "דיקנאי" | ||
תעודת סטודנט | שם מלא | הקבוצה |
111 | איבנוב אולג פטרוביץ' | IN-41 |
222 | איליה לזרב | IN-72 |
333 | קונופלב פטר וסיליביץ' | IN-41 |
444 | קושנרבה נטליה איגורבנה | IN-72 |
אתה צריך ליצור קשרים כדי להשיגמסד נתונים יחסי מלא. הרשומה "IN-41", כמו "IN-72", עשויה להופיע יותר מפעם אחת בלוחית "משרד הדיקן", ושם המשפחה, השם הפרטי והפטרונות של הסטודנטים במקרים נדירים עשויים להתאים, כך שדות אלה לא יכולים להיות עשה את המפתח הראשי. בואו נראה את הישות "סטודנטים".
שולחן "סטודנטים". | |||
שם מלא | הקבוצה | ממוצע נקודות ציון | מספר טלפון |
איבנוב אולג פטרוביץ' | IN-41 | 3,0 | 2-27-36 |
איליה לזרב | IN-72 | 3,8 | 2-36-82 |
קונופלב פטר וסיליביץ' | IN-41 | 3,9 | 2-54-78 |
קושנרבה נטליה איגורבנה | IN-72 | 4,7 | 2-65-25 |
כפי שאנו יכולים לראות, סוגי השדות במסדי נתונים יחסייםשונה לחלוטין. ישנם ערכים דיגיטליים וסמליים כאחד. לכן, יש לציין את הערכים של מספר שלם, char, vachar, תאריך ואחרים בהגדרות התכונה. בטבלת "משרד הדיקן" רק תעודת הסטודנט מהווה ערך ייחודי. ניתן לקחת שדה זה כמפתח ראשי. ניתן לקחת שם מלא, קבוצה ומספר טלפון מהישות "סטודנטים" כמפתח זר המתייחס לתעודת הסטודנט. החיבור נוצר. זוהי דוגמה למודל של מערכת יחסים של אחד לאחד. באופן היפותטי, אחד השולחנות מיותר, ניתן לשלב אותם בקלות לישות אחת. כדי למנוע ממספרי תעודת זהות סטודנטים להיות ידועים באופן כללי, קיומם של שתי טבלאות הוא די ריאלי.