fbpx

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

אפיון בסיס נתונים

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

יש לך שאלה? התייעצ/י איתנו, נשמח לעזור!

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

    איך מתכננים דאטה בייס (DB) לאתר או אפליקציה?

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

    • SQL – Structured Query Language
      בתרגום לעברית: שפת שאילתות מובנית (שפה לתקשורת עם מסד הנתונים).
    • סוגי מסדי נתונים מובילים לדוגמה:
    • מסדי נתונים יכולים לעבוד על שלל מערכות אחסון.

    לאחר הקדמה קצרה זו, בואו נצא לדרך..

    איך בעצם מתכננים בסיס נתונים?

    כדי לתכנן בסיס נתונים, עלינו לענות על כמה שאלות:

    • מה בדיוק אנו רוצים להשיג?
    • אלו פרטי מידע ברצוננו לאחסן בבסיס הנתונים?
    • כמה משתמשים צפויים לעשות שימוש באתר/אפליקציה?

    עלינו לבחון את הנושאים הבאים:

    • האם יש רישום משתמשים באתר/אפליקציה?
      • האם יש תקשורת בין משתמשים באתר/אפליקציה?
      • האם לכל משתמש יש פרמטרים ייחודיים לו?
        • שם פרטי ושם משפחה.
        • מספר מזהה/כתובת דוא"ל.
        • כתובת מגורים.
    • האם יש אחסון מידע באתר/אפליקציה?
      • האם פרטי מידע משויכים לקטגוריות או תגיות?
      • האם ניתן להעביר מידע ממקום למקום?
    • ועוד…

    בעצם, עלינו לחלק את מערכת האתר להיגדים שונים. בכל מאפיין עלינו להגדיר את הישויות הפועלות בו ומתחת לכל יישות נגדיר את המאפיינים השונים. זה יראה כך:

    • היגד (לדוגמה: חברה)
      • יישות (לדוגמה: עובדים)
        • מאפיין (לדוגמה: פרטי עובדים)

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

    • מפתחות (מזהה עמודה בטבלה)
    • מזהים חד ערכיים (מזהה שורה בטבלה)

    כאשר המערכת מחפשת משתמש מסוים, ביכולתה של המערכת לאתר עמודה ורק בה לחפש את המזהה הייחודי שמבדיל משתמש זה מרעהו.

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

    מה קורה כאשר מדובר במערכת מורכבת במיוחד?

    במערכות מורכבות כדוגמת מערכות ניהול תוכן (CMS), מסדי הנתונים בנויים בחלוקה לטבלאות רבות במקום טבלה בודדת..

    ניקח את מערכת וורדפרס כדוגמה:

    • טבלה ייחודית למשתמשים.
    • טבלה ייחודית להגדרות מערכת.
    • טבלה ייחודית לתכנים.
    • טבלה ייחודית לתגובות.
    • טבלה ייחודית לקישורים.
    • טבלה ייחודית לכל תוסף ותוסף.

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

    למה חשוב מאוד לאפיין בסיס נתונים?

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

    בדיוק כך עליכם לאפיין את המערכת המתוכננת כדי שהיא תתפקד כמו שצריך..

    התכנון של בסיס נתונים מאפשר לנו יציבות ויכולות עתידיות:

    1. המערכת תוכל לתפקד תחת לחץ גדול במיוחד בשעות עומס.
    2. המערכת תיבנה ביעילות רבה יותר ומתוך סדר כרונולוגי נכון.
    3. המערכת תיבנה בצורה נכונה וחכמה יותר (תעבוד מהר יותר).
    4. המערכת תיבנה ללא כפילות נתונים והעמסת מידע מיותר פעמיים.
    5. המערכת תיבנה בצורה שתאפשר הרחבות עתידיות בקלות רבה.

    נוסף על יתרונות אלו, יש להתייחס למרכיבי אבטחת מידע:

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

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

    לסיכום,

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

    2 thoughts on “אפיון בסיס נתונים – איך מתכננים דאטה בייס (DB) לאתר או אפליקציה?

    1. אמיר says:

      היי,
      אני עובד עם צוות פיתוח מרוסיה והם מפתחים לי אתר, אתר SAAS, אתר B2C.
      אנחנו בשלבי פיתוח התחלתיים.
      רציתי לשאול:
      1. איך בעצם אני בונה את הדטה בייס של האתר. האם צריך לקנות דטה בייס מאיזה חברה כלשהי ולחבר לאתר?
      2. הם אמרו שהם ידאגו לבנות את הדטה בייס באופן חינמי עם כלי OPEN SOURCE חינמי שקיים בשוק, האם ניתן לסמוך על כלי כזה בהתחלה?
      3. האם לאחר מכן בשלב מתקדם ניתן לעבור מדטה בייס אחד לדטה בייס אחר? כלומר, להעביר את כל הנתונים מהישן לחדש?
      4. האם זה בסדר לתת להם לבנות את הדטה בייס בצד שלהם (מבחינת סיכון של גניבת נתונים) או עדיף לקנות דטה בייס שיהיה בבעלותי ולתת להם גישה שיעבדו שם?

      • ישראל בוכוולד says:

        הכל מאוד מאוד תלוי למה בדיוק משמש המסד נתונים + אילו תכנים יהיו בו.
        אכן עושים שימוש לרוב בכלים בקוד פתוח ובחינם, התוכן הוא שקובע מה הערך של המסד נתונים.

    כתיבת תגובה

    האימייל לא יוצג באתר. שדות החובה מסומנים *

    התייעץ איתנו חינם!
    1
    צריך עזרה?
    שלום,
    איך אפשר לעזור לך היום?
    לחצ/י להתייעצות חינם! דילוג לתוכן