Raw Data – נתונים גולמיים

 

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

 בד"כ תראה נתונים גולמיים בתצורה של שורות מופרדות כך:

   

     id,fname,lname,address,phone
          id,fname,lname,address,phone
          id,fname,lname,address,phone
          id,fname,lname,address,phone
          id,fname,lname,address,phone
          id,fname,lname,address,phone

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

  מסדי נתונים (Databases)

לקוח מתוך What is a Database - August 16, 1998.

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

כנראה (ע"פ נתונים שנאספו בחפירות ארכיאולוגיות) , הצעירים השתמשו במדורות קומזיצים (כמו שורת הפקודה ) ע"מ לגשת למידע המאוחסן במוחותיהם של המבוגרים והמנוסים וכן השתמשו ב API's כגון :

public String TellUsAboutTheTimeWhen(String s);.

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

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

וכפי שאנו יודעים מהר מאוד כבשו הספרים את העולם וקהילות של ספרים החלו להגר ל"בסיסי הנתונים" הראשונים – הספריות.

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

בפרט , ספריות הציגו "סטנדרט" עבור אחסון ואחזור מידע.

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

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

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

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

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

ביום זה העולם השתנה בשנית. ביום זה המחשב נולד.

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

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

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

להלן הדוגמא הבאה: 

First Name Last Name Email Phone
Eric Tachibana erict@eff.org 213-456-0987
Selena Sol selena@eff.org 987-765-4321
Li Hsien Lim hsien@somedomain.com 65-777-9876
Jordan Ramacciato nadroj@otherdomain.com 222-3456-123

 

מערכת ה “flat file" היוותה את ההתחלה. בכל אופן , היא היתה מאוד לא יעילה.

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

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

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

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

-          עודף מידע : אותו מידע היה עלול להיות מאוחסן בשני מקומות שונים.

-          בקרת מידע חלשה: למשל בעיית עדכון מידע כפול – אם גברת ג'ונס משנה את שמה לגברת ג'ונסון אנו עלולים לעדכן את המידע רק במקום אחד בלבד.

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

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

ראה כמה קשה היה לתחזק את קובץ הנתונים הבא:     

Name Address Course Grade
Mr. Eric Tachibana 123 Kensigton Chemistry 102 C+
Mr. Eric Tachibana 123 Kensigton Chinese 3 A
Mr. Eric Tachibana 122 Kensigton Data Structures B
Mr. Eric Tachibana 123 Kensigton English 101 A
Ms. Tonya Lippert 88 West 1st St. Psychology 101 A
Mrs. Tonya Ducovney 100 Capitol Ln. Psychology 102 A
Ms. Tonya Lippert 88 West 1st St. Human Cultures A
Ms. Tonya Lippert 88 West 1st St. European Governments A

 

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

 היכנס למסד הנתונים (database).

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

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

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

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

באופן מסורתי , מסדי נתונים הורצו ע"ג מחשבי mainframes גדולים וחזקים לצורך אפליקציות עסקיות. בוודאי שמעת על חבילות כגון : Oracle 8 או Sybase SQL Server .

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

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

ראה לדוגמא את האתר Amazon.com אשר חייב לאפשר למשתמש לקפוץ במהירות ממחסן ספרים וירטואלי אחד למשנהו.

   

כיצד הצליחו Amazon.com ליצור עמוד WEB עבור כל פריט בודד וכיצד הם הצליחו לשמור את כל העמודים הללו מעודכנים של הזמן? ובכן התשובה לכך היא שעמודי ה WEB שלהם נוצרים בזמן אמת (on-the-fly) באמצעות תוכנית המשתמשת בשאילתות על מסד נתונים המכיל את המידע על הפריטים שלהם ומייצרת דף HTML המבוסס על תוצאות השאילתא.

למידע נוסף , ראה :     

For more information, check out my Introduction to Databases for Web Developers

לראשהדף

מבוא לנתונים - חלק 8

HTML