מסדי נתונים / מסד הנתונים הראשון שלך / מסד נתונים יחסי (Relational Database)
מסד נתונים יחסי (Relational Database)
הנה ההגדרה:
מסד נתונים יחסי מאחסן מידע בטבלה אחת או יותר, כאשר הטבלאות האלו ניתנות לקישור בדרכים שונות ומשונות על מנת להגיע למידע עצמו.
בהנחה שההסבר הזה משאיר אתכם בפה פעור ועם שאלה אחת או שתיים, תנו לי להדגים. נניח שמסד הנתונים שלי מכיל שתי טבלאות, אחת נקראת 'לקוחות' ואילו השניה נקראת 'מכוניות'.
בהסתמך על המידע שניתן לנו, אנו יכולים ליצור פרופיל לקוח לג'ון דאו ע"י חיבור שתי הטבלאות בשדה carID. הטבלה המשולבת תיראה ככה:
לידיעתכם הכללית, השפה בה אנחנו משתמשים כדי לשלב את שתי הטבלאות נקראת SQL, ואנחנו נלמד עליה בשיעור השלישי.
בסדר. אז עכשיו תשאלו מה בכלל הטעם בשילוב שתי הטבלאות אם אפשר להוסיף את שם המכונית ומחירה לטבלה הראשונה. יש סיבה מצוינת לשילוב הזה, אבל לפני שנסביר אותה, באו ננסה את זה בדרך שלכם:
יש כאן שתי בעיות גדולות. דבר ראשון, בואו נניח שהחלטתי לפתע שהקשיים בהחניית הביואיק הולכים וגלים, אני רוצה להעלות את התעריף ל1.1. מכיוון שהטבלה בנויה כפי שהיא בנויה, יהיה עלי לעדכן גם את רשומה 85 וגם את רשומה 87. נראה לכם משחק ילדים? חכו שתצטרכו לעדכן 25,000 רשומות ולא רק 3. אם הייתי משתמש בשתי טבלאות מקושרות ביניהן, לא הייתי צריך לדאוג. הייתי מעדכן את התעריף הנכון לסוג מכונית מסוים, ושאר הרשומות היו מתעדכנות מעצמן.
בעיה שניה נוצרת אם למשל נניח שלקוח מספר 86 הוא צרה אחת גדולה ואנחנו רוצים למחוק אותו ממאגר הלקוחות שלו. אם נמחק את הרשומה כפי שהיא מופיעה עכשיו, נמחק לא רק את הלקוח, אלא גם את פרטי המכונית, מה שיגרום לנו להמון עבודה כשיגיע הלקוח הבא עם פיאט פינטו. ע"י שימוש בשתי טבלאות הבעיה הייתה נפתרת. נכון, הייתה לנו רשומה של מכונית שעוד אין לאף אחד, אבל זה לא נורא, לפחות אנחנו מוכנים ללקוח הבא עם אותו סוג מכונית.
עכשיו, האם אתם מוכנים ללמוד שפה חדשה שתהמם את כל מי שעוד לא קרא את המאמר הזה? נראה לי שכן.
הבעיה הראשונה - זו שבה המידע צריך להשתנות ביותר מרשומה אחת, נקראת "חריגת עדכון". הבעיה השניה, איך לא, נקראת "חריגת מחיקה".
לסיום, ישנו גם סוג שלישי של חריגה. בואו נניח שאנחנו מוסיפים עוד שורת מידע לטבלה:
88 Greatest Primate simian@wired.com Pinto 1
עכשיו נניח שאנחנו רוצים לשנות את התעריף למכוניות פינטו. אנו נאלץ לשנות שתי רשומות: 86 ו 88, זו בעצם אותה בעיה של "חריגת עדכון" בה כבר נתקלנו, אך שמנו לב אליה רק כשהכנסנו שורת מידע חדשה. סוג כזה של בעיה שמתגלה בעת הכנסת מידע נקראת "חריגת הכנסה".
כאשר אנחנו מכינים את מסד הנתונים שלנו עלינו להימנע משלושת החריגויות הנלוזות הללו. זה נשמע קל, ובדוגמא שנתתי זה אפילו נראה קל, אבל בעולם האמיתי, כאשר עלינו להתמודד עם המון מידע מסובך, זה לא פשוט בכלל. אין לכם מושג איזה כאב חודר זה יכול להיות, כשאתם כבר עמוק בתוך מסד הנתונים שלכם, ופתאום צצה לה מן חריגות שכזו.
עכשיו כאשר הצבנו לנו מטרה בשם "ללא חריגות" שנמצאת לה עמוק בתוכנו, בואו ניגש לעבודה.
עמוד הבא: הגדרת טבלאות וקישורם >>
|
|
|
|