פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקססמבוא לבסיסי נתוניםכדי ליצור דרך לטיפול בכמויות גדולות של מידע אנו זקוקים לבסיסי נתונים. בסיס הנתונים הפשוט ביותר מורכב מקטגוריה אחת בלבד, ה"שדה", של מידע, כמו לדוגמה רשימה של שמות הלקוחות. אבל רשימה של שמות בפני עצמה אינה שימושית, אלא אם כן אתם נהנים לראות ערימת שמות. אנו זקוקים לאינפורמציה נוספת כדי לקשר לשמות אלו. לדוגמה, הסכום הכולל של החשבונית האחרונה. כעת יש לנו בסיס נתונים עם שני שדות - המקושרים זה לזה:
אם קראת מאמר כלשהו בנושא של בסיסי נתונים, ללא ספק נתקלת במונח "מודל יחסי" ("relational database") שהוא בדיוק מה שבנינו למעלה. בסיסי נתונים יחסיים הם הנפוצים ביותר והצפויים ביותר שתרצה לאחזר מתוך עמוד רשת. כל חבילות התוכנה העיקריות העוסקות בבסיסי נתונים, כולל Microsoft Access, FileMaker Pro, Oracle, Informix, וכו' מותאמים ליצירה וניהול של בסיסי נתונים יחסיים. בחיים, סביר שבסיס הנתונים שלמעלה יכלול עוד שדות ועוד אינפורמציה שנוכל לקשר, כדי להעשיר את בסיס הנתונים. לדוגמה, יכול להיות הגיוני לאכסן את הדואר האלקטרוני של הלקוח, את מספר החשבונית, והאם הלקוח שילם או לא שילם. למעשה, נוכל לייצג ויזואלית את בסיס הנתונים שלנו כטבלה, כמו:
מה שראינו למעלה זו טבלה, הן על המסך והן בשפת בסיס הנתונים. כל רשומה בבסיס הנתונים קרויה שורה, שזה מאד הגיוני. וכן, כמובן, כל שורה מורכבת משדות, שהם בדרך כלשהי (מתמטית, תוכנית, פילוסופית) קשורים זה לזה. נוכל לראות במהירות כיצד נוכל לתכנן בקשות מידע מתוך בסיס הנתונים, לדוגמה: "בבקשה ציין את שמות כל הלקוחות וכתובת הדואר האלקטרוני שלהם" "בבקשה ציין את שמות כל הלקוחות שחויבו בלפחות 500$" "בבקשה ציין את שמות כל הלקוחות וכתובת הדואר האלקטרוני שלהם, שלא שילמו" די פשוט עד כה, בוודאי, ככל שיש יותר שדות בכל שורה, כך הבקשות נעשות יותר מסובכות. זה לא יהיה קשה לדמיין מימוש של הדוגמה הזו להרבה סוגים של בסיסי נתונים, כמו רשימת מלאי, או יומי הולדת, וכו'. עד כאן יצרנו בסיס נתונים פשוט עם טבלה אחת למעשה, בסיס נתונים יחיד עשוי להכיל מספר טבלאות. בגלל שזהו מודל יחסי, הטבלאות אמורות להיות קשורות זו לזו בדרך כלשהי. מבחינה טכנית, הטבלאות אמורות להיות מקושרות זו לזו דרך שדה משותף ייחודי. תארו לעצמם טבלה שניה שנוכל להוסיף לבסיס הנתונים שלנו:
הטבלה הראשונה, billing, הכילה מספר חשבונית ייחודי עבור כל שורה, שמקשרת את שם הלקוח, כתובתו, הסכום הכולל, ומצב התשלום של כל חשבונית. עדיין, בטבלה invoices, איכסנו מידע מפורט יותר על כל חשבונית... כלומר, מס' שעות העבודה והמס לתשלום. נוכל לקשר לא רק שדות מידע בתוך הטבלה, אלא גם לקשר מידע בין שתי טבלאות בשל העובדה שהם חולקים את אותו מפתח ייחודי ( מס' החשבונית). כעת נוכל לתכנן בקשות כמו: "בבקשה ציין את כל החשבוניות שבהם עבדתי לפחות 10 שעות" "בבקשה ציין את כל החשבוניות שבהם גביתי לפחות 50$ לשעה" "בבקשה ציין את שמות כל הלקוחות שלא שילמו שבשבילם עבדתי לפחות 10 שעות" "בבקשה ציין את השמות והדואר האלקטרוני של כל הלקוחות שעבורם גביתי לפחות 70$ לשעה" הנה לך, הבסיס של בסיס נתונים יחסי. דוגמת בסיס הנתונים שלנו, שנוכל לקרוא לו clients, מכיל שתי טבלאות, billing ו invoices. ראינו את סוגי הבקשות שתוכל להוציא מתוכו, אבל איך נוציא אותם? בסופו שלדבר, אנו הולכים להשתמש ב Perl לכריית המידע מתוך בסיס הנתונים, ואפילו לעיצובו בתוך עמוד הרשת. בכל אופן כדי לעשות זאת אנו צריכים להבין איך בקשות כלליות מבוטאות על בסיס נתונים, בלי קשר ל Perl. שאתם
צריכים לדעת: פרק 6 להשתעשע עם
בסיסי נתונים מקוונים: אקסס Perl ה
|