שדות בוליאניים ב firebird

גרסה 3 של Firebird הולכת בין היתר להכיל שדות מסוג Boolean בתוכם. זה הפיטצ'ר שהיה במקום השלישי מבחינת הקולות בבקשות לפיתוח Firebird – כאמור בגרסה 3 הוא מתקיים.

המפתח של התמיכה, השקיע המון מחשבה בנושא ולא יישם את התמיכה "על רגל אחת". ובכך הוא הכיר לנו טיפוס מסוג BOOLEAN, אשר יכול להכיל ערכים של TRUE, FALSE ו UNKNOWN/NULL (שניהם זהים בהתנהגות שלהם).

בנוסף, שדה מסוג BOOLEAN יכול להיות מפתח וכך אפשר לחפש לפיו, לחתוך לפיו, לסדר לפיו וכיוב'…

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

field IS FALSE
field IS TRUE
field IS UNKNOWN

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

"field1 OR field2" and "NOT field1"

הוא חוקי לגמרי.

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

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

4 מחשבות על “שדות בוליאניים ב firebird

  1. ארתיום

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

    – תמיכה ב־Full Text Index
    – תמיכה ברפליקציה
    – תמיכה ב־OpenGIS.

    האם באמת כל אלה לא קיימים? במיוחד הראשון השני.

  2. ik_5 מאת

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

    יש לך תמיכה ב Full Text Search אבל בכלים חיצוניים:
    http://www.firebirdfaq.org/faq328/

    לגבי רפליקציה של מספר מסדי נתונים אחד לשני (אישית אני מאמין שזה ישתנה, כלמור יהיה חלק ממסד הנתונים):
    http://www.firebirdfaq.org/faq249/

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

    לגבי OpenGIS, יש דיון מעניין בנושא:
    http://tracker.firebirdsql.org/browse/CORE-659

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

    1. ik_5 מאת

      אמר משתמש mysql שצריך ליישם את כל הלוגיקה של המידע מחוץ למסד הנתונים ולקוות בכלל שמה שנשמר תקין… (ד"א אין לך ב MySQL משתה בוליאני, בעוד שב Fb יכולתי ליצור אחד גם לפני שזה נתמך רשמית, תכונה שבכלל לא קיימת ב MySQL -> כלומר להגדיר טיפוסים חדשים של מידע).

להשאיר תגובה

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

הלוגו של WordPress.com

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

תמונת Twitter

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

תמונת Facebook

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

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

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

מתחבר ל-%s