בסיס נתונים או מסד מידע ועוד שמות (באנגלית: Database ובקצרה DB) אני מגדיר כמבנה נתונים מאורגן היטב אשר המידע בו סדור לפי קבוצות ולכן ניתן לשנותו בקלות (להוסיף לו מידע, למחוק ממנו מידע וכדומה).
רבים מבסיסי הנתונים נוצרים ונעבדים בעזרת מערכת מחשב.
קיימים בסיסי נתונים שמאורגנים בצורות שונות כגון יחסי-טבלאי, היררכי ועוד אך סדרת מאמרים זו תתן הכרות עם המונח בכללותו מבלי להתמקד בצורות ארגון שונות.
בסיסי נתונים פשוטים הם למשל תרשים מידע או טבלה.
טבלה היא מבנה נתונים בעמודה אחת לפחות עם שתי שורות לפחות (שורה אחת לכותרת\כותרות וכל שורה אחרת, למידע הקשור בכל כותרת).
מטרת פיתוח בסיסי נתונים
מטרת השימוש בבסיס נתונים ממוחשב היא לשמור נתונים שהוזנו כקלט אל מבנה אחד או יותר בתוכנה וכן בכדי לשמור לפחות מצב נתונים אחד של נתונים בתוכנה.
חשיבות השימוש בבסיסי נתונים היא תחזוקה נוחה יותר של תוכנה על ידי חלוקתה לחלקים שונים (מודולריות) כאשר כל חלק מטפל במאפיין אחר של התוכנה. בסיס נתונים או לחלופין שרת בסיס נתונים, מטפל במידע גולמי ושימור מצבים ספציפיים של שימוש בתוכנה.
הטקסט של כל דף באתר זה מורכב מנתונים (תוים, תמונות וכו') שנשמרו באופן סדור בבסיס הנתונים של האתר שהוא חלק מתוכנת שרת בסיס נתונים שהיא בעצמה חלק מסביבת שרתים עליה רץ האתר. בכל פעם שגולש טוען דף ווב באתר ווב, הטקסט התואם לכתובת העמוד (URL) נטען מבסיס הנתונים, כמצב אפשרי ושמור של הדף באתר (או לחלופין, של האתר עצמו). גם אם הטקסט ישתנה - ככלל המצב החדש יישמר וייטען לפי בקשה.
באפליקציית הכרויות למשל כאשר משתמש טוען פרופיל של אדם שברצונו להכיר, הטקסט והתמונות נשלפים מבסיס נתונים אל תוך המבנה והעיצוב שנבנו מתוך קבצי קוד. בסיסי נתונים ממוחשבים יכולים להיות רכיב קטן יחסית בתוכנה מסוימת (כגון מערך קובצי לוג של תוכנה או שמירה אוטומטית או ידנית של מצב נתונים במשחק מחשב (Save) שניתן אחר כך לשלוף מבסיס הנתונים בטעינה (Load) של תוכנה ועד לרכיבים עיקריים של תוכנת שרת בסיס נתונים (כגון MySQL).
אבטחת בסיסי נתונים
בסיסי נתונים שאינם מוגנים מפני פריצה פגיעים לפגיעה מסוג "הזרקת DB" במסגרתה מזריקים לבסיס נתונים נתונים שלא אמורים להיות בו וגורמים לריצה של קוד אוטומטי שיכול להשמיד חלקים מסוימים בתוכנה או לאחזר מידע שגוי. גורם נפוץ לפגיעה זו הוא טפסי יצירת קשר שאינם מוגנים ממידע זדוני שלא אמור להישלח בהם (השדות מאפשרים הכנסת טקסט ארוך באופו קיצוני, טקסט ג'יבריש, טקסט פקודות בשפת התשאול בה נעשה שימוש בסביבת שרתים עליה יושב האתר ועוד.
תשאול בסיסי נתונים
שליטה בבסיס נתונים ממוחשב נקראת באופן נפוץ "תשאול" (querying) במסגרתה אנו מגישים שאילתא לתוכנה המאפשרת לנו להקים בסיסי נתונים. מטרת השאילתא לבצע פעולה מסוימת וככלל תוכנה בסיס הנתונים תמיד תשיב לנו תשובה חיובית ותבצע את הפעולה שביקשנו לבצע בשאילתא.
פעולות של שליטה בבסיס נתונים ממוחשב הן למשל ליצור בתוכו מידע, לקרוא מידע שיש בו, לעדכן אותו (להוסיף לו מידע) ולצמצמו (למחוק ממנו מידע) ונקראות פעולות CRUD.
פעולות CRUD
המונח CRUD משמש כראשי תיבות של Create, Read, Update and Delete; ארבע פעולות שנפוץ מאד לבצע על מידע ממוחשב הזמין בבסיס נתונים שיכול להיות קובץ יחיד או מערך של שניים או יותר קבצים אשר יש בינהם קשר כל שהוא.ניתן לבצע פעולות אלה בהקשר בסיס נתונים נתון דרך שפת תשאול התואמת את תוכנת בסיס הנתונים עימו עובדים.
שפת תשאול
רבים מבסיסי הנתונים הממוחשבים נוצרים ומותשאלים בתוכנות בסיס נתונים (כגון MySQL) אשר פקודותיה הן בשפת SQL). תוכנות אלה כוללות בתוכן שפת תשאול שהיא סוג של שפת מחשב המשמשת לתשאול בסיסי נתונים וכוללות תחביר לוגי ופקודות מובנות. חלק משפות התשאול כוללות "ניבים" הכוללים תחביר כמעט זהה לשל ניבים אחרים.
תשאול עקיף (תוכנת שליטה בבסיס נתונים)
יש המעדיפים לשלוט על בסיס נתונים דרך תוכנה עם ממשק משתמש איקוני ולא דרך הרצת פקודות בשפת תשאול. תוכנות שונות כאלה "מתלבשות" על בסיס נתונים (כגון MySQL) ומאפשרות לתשאל אותו דרך אייקונים כאשר לחיצה על כל אייקון גורמת למעשה לפעולה או כתיבה והרצה של פקודה ברקע.
שרת בסיס נתונים
המונח שרת בסיס נתונים משמש לתאר תוכנת שפת תשאול מסוימת כמו שפת SQL (כתוכנה, המותקנת על שכבת מערכת הפעלה) במובן של היותה גם תוכנת שרת המבצעת פעולות "שירות" טיפול במידע (בקשה-תגובה).
שרת בסיס נתונים מאפשר לשרת אחר, כגון שרת PHP, לגשת לבסיס נתונים ולקחת ממנו מידע עימו השרת האחר הזה (כגון שרת PHP) בונה פלט דוגמת מקור HTML.
במקרה של שרת PHP זה נעשה דרך אובייקט המידע (PDO).
חשיבות בסיסי נתונים בקידום אתרים
בסיסי נתונים מכילים את כלל התוכן המספק הן חוויית משתמש והן סריקה מצד תוכנות סריקה של מנועי חיפוש ; לפיכך יש להשתמש בתוכנת בסיס נתונים (שרת בסיס נתונים) יציבה ומהירה ומאורגנת היטב אשר התכנים בה מאורגנים למשל לפי סוגים (סוגי תוכן) ולפי קטגוריות.
דרכו של מקדם אתרים להשפיע על בסיס נתונים היא בדרך כלל דרך מערכת ניהול תוכן כמו וורדפרס או דרופל.