בסיסי נתונים או Databases הם מרכיב חיוני באיסוף מידע שיכול לשמש לצרכים שונים. אתרי אינטרנט רבים, אפליקציות ומערכות ניתוח פיננסי הם חלק מהדוגמאות בהן נגלה שימוש רב בבסיסי נתונים. במאמר זה ננסה לגלות את אבני הבניין המרכיבים את בסיסי הנתונים, כיצד אפשר להשתמש בהם ויתכן שתגלו כי כבר היום אתם משתמשים במסד נתונים בתוכנת "אופיס" מבלי שידעתם.
איך בנויים בסיסי נתונים?
בסיסי נתונים בנויים מטבלאות המחולקות לרשומות שונות. בסיס נתונים שרובנו מכירים הוא למשל תוכנת האקסל המאפשרת לנו לבנות טבלה אחת בכל לשונית הכוללת מידע. כל אחת מהשורות בטבלה מייצגת רשומה אחת וכל אחד מהנתונים בכל "קוביה" באקסל מייצג ערך של שדה מסוים. אם לדוגמה אנו מעוניינים למלא טבלה עם רשימת התלמידים בבית הספר נוכל ליצור טבלה לכל כיתה ובה שם התלמיד, כתובתו ומספר הטלפון שלו. כאשר אנו רוצים ליצור מערכת מורכבת יותר של נתונים – לדוגמה לקשר בצורה יעילה בין מורים בכיתות לכל כתה נעדיף להשתמש במסד נתונים מקצועי ומורכב יתר.
מסדי נתונים מורכבים יותר בנויים בצורה דינמית היכולה להתעדכן באמצעות קוד. העיקרון של מסד הנתונים הזה דומה לתוכנת אקסל אך גם כולל אפשרויות רבות יותר הקשורות לקשרים בין הטבלאות. נחזור לדוגמה של שמות התלמידים בכיתה. באמצעות מסד נתונים הבנוי בSQL אנו יכולים ליצור טבלה אחת של מורים וטבלה של תלמידים. לכל אחת מהרשומות – השורות בטלה נוסיף גם שדה מסויים המשמש כמזהה – לדוגמה תעודת זהות או מספר רגיל. לדוגמה המורה עליזה חכמוני תקבל את המספר 1, המורה אבי כהן יקבל את המספר 2 וכן הלאה.
קישור בין הרשומות בטבלה
כעת אנו מעוניינים ליצור קשר בין הרשומות השונות בטבלה על מנת שנוכל לגלות נתונים כמו – על כמה תלמידים בסך הכל אחראי כל מורה בסוף היום. לטבלה של התלמידים נוסיף נתון "מפתח זר" – המספר או תעודת הזהות שקיבל המורה. לאחר מכן נוכל לקשר לכל התלמידים בכיתה ח' את המורה עליזה חכמוני באמצעות הוספת הנתון "1". תלמידי כתה ט' יקושרו למורה אבי כהן באמצעות הגדרת הנתון "2" בשדה מפתח זר. בשלב מאוחר יותר, בו נרצה לפתח אתר אינטרנט או אפליקציה נוכל להשתמש במסד הנתונים על מנת לעדכן את כל המורים, את כל התלמידים ואת הקשר ביניהם בכל שנה.
אילו פעולות אפשר לבצע על מסדי נתונים?
מסדי נתונים עובדים על בסיס של ארבע פעולות עיקריות
- הוספה של רשומה חדשה – לאחר שבסיס הנתונים מוכן ניתן להתחיל להוסיף נתונים רשומה. כל אחד מהנתונים נכנס לתוך שדה מוגדר מראש. בבסיסי נתונים חכמים או מורכבים יותר ניתן לבחור להזין רק חלק מהשדות או למשוך את הנתונים בצורה אוטומטית (דינמית) מבסיסי נתונים אחרים.
- עריכה של רשומה – רשומות שכבר הוזנו למסד הנתונים ניתנות לשינוי פעמים רבות. שינוי זה יכול להתבצע לכל השדות מלבד השדה המשמש כ-ID או מזהה של הרשומה. אם נחזור לדוגמה הקודמת שציינו העוסקת בטבלת המורים בבית הספר. מורה שעברה דירה תצריך עריכה של הרשומה שלה במסד הנתונים על מנת לעדכן את הכתובת החדשה. השדות האחרים ישארו כפי שהיו ולכן מדובר בפעולה של עריכה או עדכון ולא של הוספת רשומה חדשה לבסיס הנתונים.
- מחיקה של רשומה – על מנת לשמור על מסד הנתונים מעודכן כל העת ולשמור על נפחו (שכן כל רשומה גורמת לשימוש בזיכרון המחשב או השרת עליו מותקן בסיס הנתונים) נהוג לאפשר מחיקת רשומה. לדוגמה, אם אחד התלמידים עזב את בית הספר ניתן יהיה למחוק אותו מטבלת התלמידים הפעילים. בדרך כלל נרצה לשמור במקום כלשהו ארכיון ובו הנתונים הישנים. ניתן ליצור מסד נתונים גדול יותר שיכלול גם רשומות המוגדרות כ"לא פעילות". לפעולה זו, כפי שציינו, יש השפעה על הזיכרון שיתפוס מסד הנתונים ולכן כדאי ליצור הפרדה בין נתונים פעילים לנתוני עבר לא פעילים.
- קריאת הנתונים – לאחר שהנתונים הוזמנו למאגר ניתן לבצע פעולה של קריאת הנתונים והצגתם. פעולה זו תתבצע לרב באמצעות שאילתה בשפת SQL המיועדת לעבודה עם בסיסי נתונים. לדוגמה, אם נרצה להציג בצורה חזותית את רשימת המורים והתלמידים באתר האינטרנט של בית הספר נשתמש בשאילתה לקריאת הנתונים בשפת SQL ובעיצוב הנתונים על הדף באמצעות שפת תכנות אחרת היוצרת את דף האינטרנט.