Firebird או מסד הנתונים הפתוח השלישי שלכם

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

בגרסה 6.1, חברת בורלנד החליטה לפתוח את מסד הנתונים שלה Interbase בתור קוד פתוח. הגרסה ששוחררה בתור קוד פתוח היתה 6.1. הגרסאות הבאות של בורלנד ל Interbase יחזרו להיות סגורות.

מהגרסה 6.1 יצא פרוייקט קוד פתוח בשם FirebirdSQL. כאשר בשלב כלשהו, יצא גם דפדפן אשר החליף את שמו מ Phoenix לשם Firebird, ואחרי רעש גדול, אותו דפדפן שינה את שמו ל Firefox.

את ההיסטוריה המלאה, אפשר למצוא כאן.

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

מסד הנתונים Firebird, הוא מסד נתונים מאוד מעניין. הוא הציע הרבה לפני Mysql, תמיכה ב Stored procedures כמו כן, הוא מציע גם triggers, event driven development והכי חשוב : האפשרות להרחיב את מסד הנתונים באמצעות UDF – ספריות צד שלישי, מה שאומר שאפשר להכיל הרבה מאוד תוספות אשר בד"כ אינן נתמכות במסד הנתונים.

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

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

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

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

שרת המסד נתונים עצמו, יכול לרוץ במגוון פלטפורומות ומעבדים, כדוגמת לינוקס, BSD, Solaris Windows ו  MacOS X כך שיש לי יכולת בחירה טובה מאוד עבור מגוון רחב של פלטפורמות פיתוח. כמו כן, השרת תומך גם ב32 וגם ב64 ביט, מה שאומר שלא חייבים סביבה ב32 ביט.

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

תמיכה ב Domain – צורת הגדרה לשדה, אשר אפשר באמצעות שאילתא, להגדיר ולהסביר מה הערכים הרצויים, דבר שיכול לעזור לנו למשל ליצור ערך בוליאני לטיפוס כדוגמת Char או Smallint.

אפשרויות גישה שונות למסד הנתונים, באמצעות File API, unix sockets, וכמובן TCP sockets.

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

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

8 מחשבות על “Firebird או מסד הנתונים הפתוח השלישי שלכם

  1. ik_5 מאת

    לדעתי האישית הוא קרוב יותר ל PostgreSQL גם בגישה שלו, ולא רק בביצועים.
    מצאתי כמה benchmarks אשר כולם השתמשו בשאילות כלליות, ולא מותאמות לRDBM זה או אחר, בו Firebird יוצא בד"כ שלישי מבין MySQL innodb ו PostgreSQL (בגרסאות המאוד ישנות שלו).

    הפעם האחרונה שעבדתי על המסד נתונים היה ב2003 (בצורה מקצועית ז"א במקום עבודה), ככה שאני צריך לבדוק את זה בעצמי לפני שאוכל לתת תשובה אמיתית.
    בכל מקרה בבדיקות של osdir שלושת מסדי הנתונים, כולם עוברים ב100% את כל הבדיקות בעוד ששאר מסדי הנתונים השנים (כולל אורקל) נכשלו באי אילו בדיקות.

  2. Meir Kriheli

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

    בבחירה בינו mysql הייתי בוחר בו. למשתמשי דלפי מומלץ מאוד IBObject לעבודה מולו, ישנם גם כלי gui משוכללים ולא יקרים לעבודה מולו (כמו ה-ibexpert). ספריית udf מומלצת היא ה-rfunc:
    http://rfunc.sourceforge.net/

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

    נ.ב.
    אאל"ט החל מגרסה 2 הוא מפותח ב-C++ ולא ב-C.

  3. ik_5 מאת

    במקור המסד נתונים נכתב גם לWindows וגם לSolaris (אני מדבר כמובן על Interbase), אם אני זוכר נכון, רק אחרי שבורלנד קנו את corel Linux, הם שיחררו גם גרסה ללינוקס.

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

    יש לו גם חסרונות, כמו זה שהוא כתוב ב ++C, או ש gbak באמת לפעמים עושה בעיות.🙂

  4. פינגבק: Firebird SQL vs MySQL « לראות שונה

  5. פינגבק: להתחיל לעבוד עם firebird « לראות שונה

  6. פינגבק: הקרב של מריוס « לראות שונה

  7. פינגבק: שדות בוליאניים ב firebird « לראות שונה

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s