בסיס נתונים

מתוך הנקודאי

בסיס נתונים או מסד מידע ועוד שמות (באנגלית: Database ובקצרה DB) אני מגדיר כמבנה נתונים מאורגן היטב אשר המידע בו סדור לפי קבוצות ולכן ניתן לשנותו בקלות (להוסיף לו מידע, למחוק ממנו מידע וכדומה).
רבים מבסיסי הנתונים נוצרים ונעבדים בעזרת מערכת מחשב.
קיימים בסיסי נתונים שמאורגנים בצורות שונות כגון יחסי-טבלאי, היררכי ועוד אך סדרת מאמרים זו תתן הכרות עם המונח בכללותו מבלי להתמקד בצורות ארגון שונות.

בסיסי נתונים פשוטים הם למשל תרשים מידע או טבלה.
טבלה היא מבנה נתונים בעמודה אחת לפחות עם שתי שורות לפחות (שורה אחת לכותרת\כותרות וכל שורה אחרת, למידע הקשור בכל כותרת).

מטרת פיתוח בסיסי נתונים

מטרת השימוש בבסיס נתונים ממוחשב היא לשמור נתונים שהוזנו כקלט אל מבנה אחד או יותר בתוכנה וכן בכדי לשמור לפחות מצב נתונים אחד של נתונים בתוכנה.

הטקסט של כל דף באתר זה מורכב מנתונים (תוים) שנשמרו באופן סדור בבסיס הנתונים של האתר ובכל פעם שהדף נערך ונשמר נוצרת גרסה חדשה שלו (מצב חדש שלו); המידע נשמר בבסיס נתונים שהוא חלק מתוכנת שרת בסיס נתונים שהיא בעצמה חלק מסביבת שרתים עליה רץ האתר. בכל פעם שגולש טוען דף ווב באתר ווב, הטקסט התואם לכתובת העמוד (URL) נטען מבסיס הנתונים, כמצב אפשרי ושמור של הדף באתר (או לחלופין, של האתר עצמו). גם אם הטקסט ישתנה - ככלל המצב החדש יישמר וייטען לפי בקשה.

באפליקציית הכרויות למשל כאשר משתמש טוען פרופיל של אדם שברצונו להכיר, הטקסט והתמונות נשלפים מבסיס נתונים אל תוך המבנה והעיצוב שנבנו מתוך קבצי קוד. בסיסי נתונים ממוחשבים יכולים להיות רכיב קטן יחסית בתוכנה מסוימת (כגון מערך קובצי לוג של תוכנה או שמירה אוטומטית או ידנית של מצב נתונים במשחק מחשב (Save) שניתן אחר כך לשלוף מבסיס הנתונים בטעינה (Load) של תוכנה ועד לרכיבים עיקריים של תוכנת שרת בסיס נתונים (כגון MySQL).

חשיבות השימוש בבסיסי נתונים

חשיבות השימוש בבסיסי נתונים היא תחזוקה נוחה יותר של תוכנה על ידי חלוקתה לחלקים שונים (מודולריות) כאשר כל חלק מטפל במאפיין אחר של התוכנה (שרת בסיס נתונים מטפל במידע גולמי ושימור מצבים דינאמיים).

תשאול בסיסי נתונים

שליטה בבסיס נתונים ממוחשב נקראת באופן נפוץ "תשאול" (querying) במסגרתה אנו מגישים שאילתא לתוכנה המאפשרת לנו להקים בסיסי נתונים. מטרת השאילתא לבצע פעולה מסוימת וככלל תוכנה בסיס הנתונים תמיד תשיב לנו תשובה חיובית ותבצע את הפעולה שביקשנו לבצע בשאילתא.

פעולות של שליטה בבסיס נתונים ממוחשב הן למשל ליצור בתוכו מידע, לקרוא מידע שיש בו, לעדכן אותו (להוסיף לו מידע) ולצמצמו (למחוק ממנו מידע) ונקראות פעולות CRUD.

שפת תשאול

רבים מבסיסי הנתונים הממוחשבים נוצרים ומותשאלים בתוכנות בסיס נתונים (כגון MySQL) אשר פקודותיה הן בשפת SQL). תוכנות אלה כוללות בתוכן שפת תשאול שהיא סוג של שפת מחשב המשמשת לתשאול בסיסי נתונים וכוללות תחביר לוגי ופקודות מובנות. חלק משפות התשאול כוללות "ניבים" הכוללים תחביר כמעט זהה לשל ניבים אחרים.

תשאול עקיף (תוכנת שליטה בבסיס נתונים)

יש המעדיפים לשלוט על בסיס נתונים דרך תוכנה עם ממשק משתמש איקוני ולא דרך הרצת פקודות בשפת תשאול. תוכנות שונות כאלה "מתלבשות" על בסיס נתונים (כגון MySQL) ומאפשרות לתשאל אותו דרך אייקונים כאשר לחיצה על כל אייקון גורמת למעשה לפעולה או כתיבה והרצה של פקודה ברקע.

אבטחת בסיסי נתונים

בסיסי נתונים שאינם מוגנים מפני פריצה פגיעים לפגיעה מסוג "הזרקת DB" במסגרתה מזריקים לבסיס נתונים נתונים שלא אמורים להיות בו וגורמים לריצה של קוד אוטומטי שיכול להשמיד חלקים מסוימים בתוכנה או לאחזר מידע שגוי. גורם נפוץ לפגיעה זו הוא טפסי יצירת קשר שאינם מוגנים ממידע זדוני שלא אמור להישלח בהם (השדות מאפשרים הכנסת טקסט ארוך באופו קיצוני, טקסט ג'יבריש, טקסט פקודות בשפת התשאול בה נעשה שימוש בסביבת שרתים עליה יושב האתר ועוד.

ראו גם