stanford-oval/wikipedia huggingface dataset:
רשת פטרי
תכונות מתמטיות של רשתות פטרי

אחד הגורמים לכך שרשתות פטרי הן מעניינות הוא שהן מספקות איזון בין כוח המידול ויכולת ניתוח: ניתן לקבוע באופן אוטומטי דברים רבים על מערכות מקביליות ברשתות פטרי, אף על פי שחלק מהדברים הללו "יקר" מאוד לקביעה במקרה הכללי. מספר תת-קבוצות של רשתות פטרי אשר נחקרו מסוגלות למדל קבוצות מעניינות של מערכות מקביליות, ולהקל על בעיות אלה.
ניתן למצוא סקירה על בעיות החלטה כאלו, עם תוצאות כריעות וסיבוכיות של רשתות פטרי ושל מספר תתי-קבוצות, ניתן למצוא ב־Esparza and Nielsen (1995).
Esparza ונילסן (1995)
תכונות מתמטיות של רשתות פטרי > נגישות

בעיית הנגישות (reachability) של רשתות פטרי היא להכריע, בהינתן רשת הפטרי N והסימון M, האם  M\in R(N), האם ניתן להגיע לסימון M על ידי רצף כלשהו של מעברים.
ברור כי זהו עניין של הליכה בגרף הנגישות המוגדר לעיל, עד שנגיע לסימון המבוקש או עד שנדע כי כבר לא ניתן להגיע אליו, אולם זה יותר קשה ממה שזה נראה בהתחלה: גרף הנגישות הוא בדרך כלל אינסופי, וזה לא קל לקבוע מתי זה ניתן לעצור.
למעשה, בעיה זו הוצגה כבעלת קושי EXSPACE שנים לפני שהיא הוצגה בכלל ככריעה (Mayr, 1981). עדיין מתפרסמים מחקרים על כיצד ניתן לבצע זאת ביעילות.
אמנם נדמה כי נגישות היא כלי טוב למציאת מצבים שגויים, אך בדרך כלל הגרף מכיל יותר מדי מצבים מכדי לחשב. על מנת להקל על בעיה זו, משתמשים בדרך כלל בלוגיקה עיתית ליניארית (Linear Temporal Logic) בשילוב עם שיטת התמונה האנליטית כדי להוכיח שלא ניתן להגיע למצבים כאלו. LTL משתמש בטכניקת ההחלטה למחיצה כדי למצוא האם אכן ניתן להגיע למצב, על ידי מציאת קבוצת תנאים הכרחיים על מנת להגיע אליו, ואז מוכיח כי תנאים אלו אינם מספקים.
תכונות מתמטיות של רשתות פטרי > חיות

ניתן לתאר רשת פטרי כבעלת דרגות חיות שונות של חיות (liveness) L_{1}-L_{4}. רשת פטרי  (N,M_{0}) נקראת בעלת חיות  L_{k} אם ורק אם כל המעברים שלה הם בעלי חיות  L_{k}, כאשר מעבר הוא
מת או קפוא (deadlocked), אם הוא לעולם לא יוכל לפעול, כלומר הוא לא באף רצף הפעלות ב- L(N,M_{0}).
בעל חיות  L_{1} (בעל סיכוי לפעול), אם ורק אם הוא עשוי לפעול, כלומר הוא ברצף הפעלות ב- L(N,M_{0}).
בעל חיות  L_{2} אם ורק אם הוא מסוגל לראות באופן שרירותי, כלומר אם עבור כל מספר שלם וחיובי k, הוא קורה לפחות k פעמים ברצף הפעלות כלשהו ב- L(N,M_{0})
בעל חיות  L_{3} אם ורק אם הוא יכול לפעול אינסוף פעמים, כלומר עבור כל מספר שלם וחיובי k, הוא קורה לפחות k פעמים בV, עבור מספר קבוצות סגורות-קידומת של רצפי הפעלות  {}_{V\subseteq L(N,M_{0})}.
בעל חיות  L_{4} (חי) אם ורק אם הוא תמיד יופעל, כלומר הוא בעל חיות  L_{1} בכל סימון נגיש ב- R(N,M_{0}).
שימו לב כי הדרשות מחמירות בסדר עולה: חיות  L_{j+1} מרמזת חיות  L_{j} עבור  {}_{j\in {1,2,3}}.
הגדרות אלו הן בהתאם לסקירה של Murata, אשר משתמש בחיות  L_{0} כמונח עבור מת.
תכונות מתמטיות של רשתות פטרי > חסימות

מקום ברשת פטרי נקרא חסום-k אם הוא לא מכיל יותר מ-k אסימונים בכל הסימונים הנגישים, כולל הסימון ההתחלתי; הוא נחשב כשמור (safe) אם הוא חסום-1; הוא קבוצה חסומה k אם הוא חסום-k עבור k כלשהו.
ישנן מספר הגדרות חסימות של רשת פטרי
רשת פטרי (מסומנת) נקראת חסומה (bounded) אם מספר האסימונים ברשת לעולם סופי.
רשת פטרי נקראת חסומה-k אם מספר האסימונים חסום על ידי על k.
רשת פטרי (גרף) נקראת חסומה מבנית אם היא חסומה עבור כל סימון התחלתי אפשרי.
רשת פטרי נקראת קונסרבטיבית אם מספר האסימונים ברשת קבוע.
רשת פטרי נקראת שמורה אם מספר האסימונים המרבי ברשת הוא 1.
שים לב כי רשת היא חסומה אם ורק אם גרף הנגישות שלה הוא סופי.
חסימות היא כריעה על ידי בחינת בעיות כיסוי, על ידי בניית עץ קארפ-מילר.
כפיית חסימות באופן מפורש על מקומות ברשת נתונה עשויה להיות שימושית. זה יכול לשמש מידול של משאבים מוגבלים.
הגדרות מסוימות של רשתות פטרי מתירות זאת באופן מפורש כתכונה תחבירית.
באופן רשמי, רשתות פטרי עם קיבולת מקומות יכולות להיות מוגדרות כ-n-יות  (S,T,W,C,M_{0}), כאשר  (S,T,W,M_{0}) היא רשת פטרי,  C:P\rightarrow \!\!\!\shortmid I\!N הקצאה של קיבולות לחלק או כל המקומות, ורלציית המעברים היא זה שבדרך כלל מוגבל לסימונים כאשר כל מקום עם קיבולת יש לכל היות מספר אסימונים כזה.
למשל אם ברשת N, מוקצה הקיבולת 2 לשני מקומות, נקבל רשת פטרי עם קיבולות מקום, נניח N2; גרף הנגישות שלה מוצג בצד ימין.
לחלופין, ניתן לחסום מקומות על ידי הרחבת הרשת. ליתר דיוק, מקום יכול להיות חסום-k על ידי הוספת "מקום-נגד" עם זרימה הפוכה אליו, והוספת אסימונים כך שסך האסימונים במקומות-הנגד יהיה k.
רשתות פטרי בדידות, רציפות והיברידיות

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

במקום להרחיב את הפורמליזם של רשת פטרי, אנו יכולים גם להתבונן על הגבלתו, ולהתבונן בסוגים מסוימים של רשתות פטרי, שהושגו על ידי הגבלת התחביר באופן מסוים. רשתות פטרי רגילות הן הרשתות בהן כל משקולות הקשתות הן 1. בדרך כלל נעשה שימוש ומחקר של הגבלות נוספות של רשתות פטרי רגילות:
באוטומט סופי (SM - state machine), כל מעבר יש קשת נכנסת אחת וקשת יוצאת אחת, וכל הסימונים בעלי אסימון אחד בדיוק. כתוצאה מכך, לא יכולה להיות מקביליות, אך יכול להיוותר קונפליקט (כלומר אי-דטרמיניזם). מתמטית:  \forall t\in T:|t^{\bullet }|=|{}^{\bullet }t|=1
בגרף מסומן (MG - marked graph), לכל מקום יש קשת נכנסת אחת וקשת יוצאת אחת. דהינו, לא יכול להיווצר קונפליקט, אך יכולה להיות מקביליות. מתמטית:  \forall s\in S:|s^{\bullet }|=|{}^{\bullet }s|=1
ברשת בחירה חופשית (FC - free choice), - כל קשת ממקום למעבר היא הקשת היחידה ממקום זה או הקשת היחידה למעבר זה. כלומר יכולים להתקיים הן מקביליות והן קונפליקט, אך לא באותו הזמן. מתמטית:  \forall s\in S:(|s^{\bullet }|\leq 1)\vee ({}^{\bullet }(s^{\bullet })=\{s\})
בחירה חופשית מורחבת (EFC - extended FC) - רשת פטרי שיכולה להפוך ל-FC.
ברשת בחירה אסימטרית (AC - Asymmetric choice), מקביליות וקונפליקט (בסיכום, בלבול) יכולים לקרות, אך לא באופן סימטרי. מתמטית:  \forall s_{1},s_{2}\in S:(s_{1}{}^{\bullet }\cap s_{2}{}^{\bullet }\neq \emptyset )\to [(s_{1}{}^{\bullet }\subseteq s_{2}{}^{\bullet })\vee (s_{2}{}^{\bullet }\subseteq s_{1}{}^{\bullet })]
רשתות זרימה

רשתות זרימה (Workflow nets או בקיצור WF-nets) הן תת-קבוצה של רשתות פטרי שמטרתן למדל את זרימת פעילויות התהליך. המעברים ברשת זרימה מוקצים עבור משימות או פעילויות, ומקומות מוקצים לתנאי קדם או תנאים אוחרים. לרשתות הזרימה ישנן דרישות מבניות ופעולה נוספות, בעיקר התוספת של מקום קלט יחיד (מקור - source) ללא מעברים קודמים, ומקום פלט (בור - sink) ללא מעברים עוקבים. בהתאם לכך, ניתן להגדיר סימוני התחלה וסוף המייצגים את סטטוס התהליך.
רשתות זרימה הן בעלות תכונת הנאותות, המציינת כי תהליך עם סימון התחלתי של k אסימונים במקור, מסוגל להגיע לסימון הסופי שלו עם k אסימונים בבור (מוגדר כרשת זרימה נאותה-K). בנוסף, כל המעברים בתהליך יכולים לפעול (כלומר עבור כל מעבר ישנו מצב נגיש בו המעבר מאופשר). רשת זרימה נאותה-גנרית (נאותה-G) מוגדרת נאותה-K עבור כל k>0.
מסלול מכוון ברשת פטרי מוגדר כרצף צמתים (מקומות ומעברים) המקושרים באמצעות קשתות מכוונות. מסלול אלמנטרי מכיל כל צומת ברצף פעם אחת בלבד.
רשת פטרי מתוחזקת היטב (well-handled) היא רשת שבה אין מסלולים אלמנטריים שונים-לגמרי בין מקום ומעבר (או מעבר ומקום), כלומר אם ישנם שני מסלולים בין זוג הצמתים, אזי המסלולים הללו חולקים צומת. רשת זרימה מתוחזקת-היטב מעגלית היא נאותה (נאותה-G).
רשת זרימה מורחבת היא רשת פטרי המורכבת מרשת זרימה עם מעבר נוסף t (מעבר משוב). מקום הבור מקושר כמקום הקלט של מעבר t והמקור כמקום הפלט שלו. הפעלה של מעבר זה גורמת לאיטרציה של התהליך (שים לב: רשת זרימה מורחבת אינה רשת זרימה).
רשת זרימה מתוחזקת היטב עם איטרציה רגילה (WRI - well-handled with regular iteration) היא רשת זרימה מורחבת לא מעגלית. רשת זרימה WRI יכולה להיבנות כצירוף של רשתות, כלומר החלפת מעבר ברשת זרימה WRI בתת-רשת זרימה WRI. התוצאה תהיה גם רשת רשת זרימה WRI. רשתות זרימה WRI הן גם נאותות-G, לכן על ידי שימוש באבני בניין מסוג רשת זרימה WRI בלבד, ניתן להשיג רשתות זרימה שהן נאותות-G לפי המבנה.
מטריצת מבנה העיצוב (DSM) (ר"ת של design structure matrix) יכולה למדל יחסי תהליך, ולשמש לתכנון תהליכים. רשתות DSM הן מימושן של תוכניות מבוססות DSM לתהליכי זרימה על ידי רשתות פטרי, ושקולות לרשתות WRI-WF. תהליך בניית רשת ה-DSM מבטיח את תכונת הנאותות של הרשת המתקבלת.
מודלים אחרים של מקביליות

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

Business Process Management
ניתוח מידע
סימולציה
עיצוב תוכנה
ראו גם

אוטומט סופי
לקריאה נוספת

Cardoso, Janette; Camargo, Heloisa (1999). Fuzziness in Petri Nets. Physica-Verlag. ISBN 3-7908-1158-0.
Grobelna, Iwona (2011). "Formal verification of embedded logic controller specification with computer deduction in temporal logic". Przeglad Elektrotechniczny. 87 (12a): 47–50.
Jensen, Kurt (1997). Coloured Petri Nets. Springer Verlag. ISBN 3-540-62867-3.
Котов, Вадим (1984). Сети Петри (Petri Nets, in Russian). Наука, Москва.
Pataricza, András (2004). Formális módszerek az informatikában (Formal methods in informatics). TYPOTEX Kiadó. ISBN 963-9548-08-1.
Peterson, James L. (1977). Petri Nets. ACM Computing Surveys. Vol. 9. pp. 223–252. doi:10.1145/356698.356702.
Peterson, James Lyle (1981). Petri Net Theory and the Modeling of Systems. Prentice Hall. ISBN 0-13-661983-5.
Petri, Carl A. (1962). Kommunikation mit Automaten (תיזה). University of Bonn.
Reisig, Wolfgang (1992). A Primer in Petri Net Design. Springer-Verlag. ISBN 3-540-52044-9.
Riemann, Robert-Christoph (1999). Modelling of Concurrent Systems: Structural and Semantical Methods in the High Level Petri Net Calculus. Herbert Utz Verlag. ISBN 3-89675-629-X.
Zhou, Mengchu; Dicesare, Frank (1993). Petri Net Synthesis for Discrete Event Control of Manufacturing Systems. Kluwer Academic Publishers. ISBN 0-7923-9289-2.
Zhou, Mengchu; Venkatesh, Kurapati (1998). Modeling, Simulation, & Control of Flexible Manufacturing Systems: A Petri Net Approach. World Scientific Publishing. ISBN 981-02-3029-X.
1227

שנת 1227 היא השנה ה-27 במאה ה-13. זוהי שנה רגילה, שאורכה 365 ימים. באותה תקופה הלוח הגרגוריאני עוד לא היה קיים, ולכן שנה זו קיימת בלוח היוליאני בלבד.
כל התאריכים שלהלן הם לפי הלוח היוליאני.
אירועים

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

30 בספטמבר – ניקולאוס הרביעי, אפיפיור (נפטר ב-1292)
נפטרו

18 במרץ – האפיפיור הונוריוס השלישי (נולד ב-1148)
18 באוגוסט – ג'ינגיס חאן, ייסד את האימפריה המונגולית (נולד ב-1162)
ראו גם

ילידי 1227‎
נפטרים ב-1227‎
Invisible Touch

Invisible Touch הוא האלבום השלושה עשר של להקת ג'נסיס. האלבום יצא לאור ביוני 1986. האלבום הופק על ידי הלהקה ויוג' פדגהאם שהפיק גם את האלבום הקודם של הלהקה. האלבום כולל את הלהיט Invisible Touch שהגיע למקום הראשון במצעד הסינגלים בארצות הברית. האלבום כלל גם את הלהיטים Tonight, Tonight, Tonight, Land of Confusion ועוד. Land of Confusion נחשב לאחד הטובים של הלהקה ועטיפת הסינגל, היא בעצם פרודיה לעטיפת האלבום השני של הביטלס, With the Beatles אך בסינגל מראים בובות בדמות חברי הלהקה. גם בקליפ כולל את דמויות הבובות של חברי הלהקה, וכן של מפורסמים כגון: מיק ג'אגר, פול מקרטני, רינגו סטאר ועוד. האלבום גם כולל את הסוויטה המתקדמת Domino אשר נמשכת 10 דקות. עטיפת האלבום עוצבה על ידי חברת Assorted Images. עד היום, האלבום נחשב למצליח ביותר של הלהקה מבחינה מסחרית. האלבום הצליח עד כדי כך שצבר קהל מעריצים צעיר וכך החלה עלייה בפופולריות הלהקה. אך מצד שני, מעריצי התקופה "המתקדמת" של ג'נסיס התאכזבו מן האלבום ואמרו שג'נסיס כבר לא הלהקה אשר הכירו ואהבו.
רשימת השירים

Invisible Touch - 3:29
Tonight, Tonight, Tonight - 8:53
Land of Confusion - 4:45
In Too Deep - 5:02
Anything She Does - 4:09
Domino - 10:44
Throwing It All Away - 3:51
The Brazilian - 4:50
המשתתפים באלבום

פיל קולינס - שירה, תופים, כלי הקשה אלקטרונים
טוני באנקס - קלידים
מייקל ראת'רפורד - גיטרה בס, גיטרה, דוושות בס, מוג טאורוס, קולות
224

שנת 224 היא השנה ה-24 במאה ה-3. זוהי שנה מעוברת, שאורכה 366 ימים. באותה תקופה הלוח הגרגוריאני עוד לא היה קיים, ולכן שנה זו קיימת בלוח היוליאני בלבד. ספירת הנוצרים, המקובלת כיום, החלה בשנת 525, ולכן המספר הסודר של שנת 224 ניתן לה בדיעבד.
כל התאריכים שלהלן הם לפי הלוח היוליאני.
אירועים

28 באפריל – קרב הורמוזדגן הסאסאנים בראשות ארדשיר הראשון מנצחים את הפרתים ומביאים לנפילתה
ראו גם

ילידי 224‎
נפטרים ב-224‎
Ace Attorney

| --- | --- |

 כללי
 סוגה:  רומן חזותי, משחק הרפתקה ממוחשב
 פיתוח:  קפקום
 הוצאה לאור:  קפקום
 ארץ מקור:  יפן 
 סדרה:  הראשון: Pheonix Wright: Ace Attorney  האחרון: Dai Gyakuten Saiban 2: Naruhodō Ryūnosuke no Kakugo
 דרישות תוכנה
 פלטפורמות:  גיים בוי אדוונס, נינטנדו DS, ווינדוס, Wii, iOS, אנדרואיד, נינטנדו 3DS, נינטנדו סוויץ', פלייסטיישן 4, Xbox One
 www.ace-attorney.com
 
Ace Attorney (בתרגום חופשי: סנגור אלוף, ביפנית: 逆転裁判: משפט הפכפך) היא סדרת רומנים חזותיים שפותחה על ידי קאפקום. המשחק הראשון בסדרה יצא בשנת 2001, ומאז, עוד 9 משחקים בסדרה פותחו. בנוסף, נוצרו סדרת אנימה, סדרת מנגה, סרט, מחזמר, מחזה ועוד מסביב לסדרת הרומנים.
במהלך הסדרה המרכזית, השחקן לוקח את תפקידם של הסנגורים פיניקס רייט, אפולו ג'סטיס ואת'ינה סייקס. בסדרה המרכזית השחקן חוקר תעלומות רצח ומגן על מואשמים בבית משפט. בנוסף, במשחקי הספין-אוף "Miles Edgeworth: Investigations", השחקן לוקח את תפקידו של עורך הדין מיילס אדג'וורת' ובמשחק "Dai Gyakuten Saiban" השחקן לוקח את תפקידו של אחד מאבותיו של פיניקס רייט, ריונוסקה נארוהודו.
הסדרה נוצרה על ידי הכותב ובמאי שו טאקומי. אחרי המשחק הרביעי בסדרה התחיל לכתוב אותה טאקשי יאמאזאקי. מאז, טאקומי חזר לכתוב כמה משחקי ספין-אוף.
משחקיות

המשחקים בסדרה הראשית הם בעיקר משחקי הרפתקה, אם כי הם דורשים משחקן לאסוף ראיות ולהציג אותם לעדים כאשר הם נמצאים בבית המשפט. כל משחק מורכב מארבעה או חמישה תיקים, אשר מקושרים במידה מסוימת, עם דמויות חוזרות ופשעים דומים. המשחק ניתן לשמירה מכל נקודה.
ישנם שני שלבים לכל מקרה ומקרה, חקירה והמשפט עצמו. חקירה כוללת את היכולת לבקר בכמה מקומות מרכזיים בתיק ולדבר עם אנשים שהיה מעורבים בו, בעת החיפוש אחר ראיות. המשחקים השני והשלישי גם הציגו את "Psyche-Lock", מערכת שבאמצעותו הסנגור יכול לשבור מחסומים נפשיים כדי ללמוד את האמת מעדים שאינם משתפים פעולה בחקירה, על ידי הצגת ראיות ופרופילים של אנשים אשר קשורים לתיק.
המשפטים בדרך כלל מורכבים מעדויות הכוללות הצהרות על ידי עדים. לאחר מכן מבצאת חקירה נגדית. החקירה מתבצעת על ידי הצגת ראיות הקשורות להצהרות העד. השחקן יכול גם ללחוץ על העד בנקודות מסוימות, או לשאול את העד על ההצהרה. לפעמים לחיצה והצגת ראיות תוביל להצהרות שנוספו לעדות. הצגת ראיות בהצלחה עשויה גם להוביל לעדות חדשה לגמרי, וזו כמעט תמיד הדרך היחידה להתקדם במשחק. לפעמים השחקן יצטרך להוכיח טענות ספציפיות שלהם, בין אם באמצעות הצגת ראיות נוספות, או בחינה מדוקדקת יותר של ראיות קיימות. במשחק הרביעי, המשחק מציג את מערכת ה-"Perceive", הפועלת במספר חקירות נגדיות. במהלך עדות, השחקן יכול להפעיל את המערכת כדי להסתכל מקרוב על שפת גופו על העד, במטרה לאתר טיקים המופעלים כאשר הוא מצהיר על דבר שקרי, ובכך לאלץ את העדים להגיב בכנות. בנוסף לכך, המשחק החמישי מציג את מערכת ה-"Mood Matrix", המאפשרת להגנה לנתח את רגשותיו של העד במהלך עדותו, ולמצוא רגשות סותרים במהלך עדותו. השימוש במערכת מאפשר לעד להשתלט על הרגשות שלו ומאפשר לו להעיד באופן ברור ובכנות. המשחק החמישי גם כן מציג את מערכת ה-"revisualization", שבה השחקן בוחן עובדות חיוניות וקשרים בין ראיות כדי להגיע למסקנות חדשות. המשחק השישי מציג את מערכת ה-"divination séance", שבה לשחקן מוצגים הזכרונות האחרונים של הנהרג, הכוללים את כל מה שקלט עם חמשת חושיו לפני מותו, השחקן אז חייב למצוא את הסתירות בין חמשת החושים המוצגים.
כהגנה, המטרה של השחקן היא בדרך כלל להשיג את פסק הדין "לא אשם" ללקוחו. רוב המשפטים במשחק נמשכים יומיים, כאשר המקסימום המותר בחוקי המשפט המקומי הוא שלושה ימים. בין ימי המשפט השחקן יכול לבקר באזורים רלוונטיים למשפט כדי להשיג עוד ראיות או מידע. לאורך כל תהליך המשפט השחקן חייב לקבוע דרך המידע שהושג מי העבריין האמיתי כדי לפטור את הלקוח שלו מכל אשמה.
הצגת ראיות מלווה בסנגור המצביע, וצועק "התנגדות!" (!Objection), ביחד עם בועת טקסט שבתוכה המילה, שהפכה לסמל של הסדרה. אם השחקן מציג את העדות הלא נכונה, מנסה להציג בזמן הלא נכון, או לא מצליח בחלקים אחרים של החקירה, השופט מאבד חלק מאמונו בו, המיוצג על ידי סימני קריאה במשחק הראשון ובר חיים במשחקים שלאחר מכן. אם השחקן טועה כמות רבה מדי של פעמים, הוא מקבל פסק דין של "אשם" וחייב להתחיל מחדש מנקודת השמירה האחרונה.
Firebird

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


דף הבית של Firebird
 מפתח:  פרויקט Firebird
 מחזור חיים:  22 בנובמבר 2000 – הווה (23 שנים) 
 גרסה אחרונה:  5.0.1 (2 באוגוסט 2024) 
 מערכת הפעלה:  חוצה פלטפורמות
 נכתבה בשפות:  C++ 
 סוג רישיון:  IPL, IDPL (מבוסס MPL)
 קוד מקור:  https://github.com/FirebirdSQL/firebird 
 קטגוריה:  מסד נתונים
 www.firebirdsql.org
 
Firebird (או - FirebirdSQL, בתרגום מילולי - ציפור אש), הוא מסד נתונים יחסי בקוד פתוח שיצא לראשונה ב־2002 על בסיס הקוד של תוכנת InterBase 6.0 של חברת בורלנד, שיצא לציבור באוגוסט 2000. הוא זמין למגוון מערכות הפעלה ותואם לתקן SQL92 ומימוש חלקי ל־SQL2003.
מסד הנתונים בנוי בגישה בה הוא יכול לשמש כשרת, וכן כמסד נתונים משובץ. מי שמחובר ל־Firebird תמיד ישתמש בתצורת שרת-לקוח, גם כאשר הוא משובץ, אך ההבדלים ביניהם הוא מנהל ההתקן אשר נעשה בו שימוש. אופן הפעולה של Firebird הוא תמיכה מלאה בגישת העבודה של ACID.
מסד הנתונים כולל שפה לפרוצדורות מאוחסנות ולטריגרים (אנ'), עם שימת דגש על ניפוי באגים. לשפות תכנות רבות יש התממשקות איתו, לדוגמה C#‎, C‏, C++‎, Java‏, Object Pascal (כדוגמת Delphi וFree Pascal), Ruby, פייתון, PHP ועוד. בנוסף ישנו חיבור לODBC.
ל־Firebird יש מספר כלי ניהול גרפיים, אשר רובם מסחריים. כלי ניהול קוד פתוח נפוץ מאוד נקרא Flamerobin.
היסטוריה > Interbase

תוכנת Interbase החלה כרעיון של ג'ים סטארקי (Jim Starkey), אשר עבד באותו הזמן בחברת דיגיטל (DEC) על מנוע SQL (שעוד לא נקראה אז בשם זה) עבור מסד נתונים רשתי עבור החברה. לג'ים צץ רעיוןלפתח מערכת שתוכל לעבוד עם מספר משתמשים בו זמנית בלי לנעול את שאר המשתמשים כאשר מישהו מושך/יוצר/מעדכן מידע (דבר שכיח במסדי נתונים טבלאיים עם יחסי שדות [Foreign keys]). הוא החל לעבוד על הרעיון עבור חברת DEC, אבל מלחמות פנימיות על הפיתוח של Rdb/VMS (אשר כיום מוכר בתור Oracle) גרמו לו לעזוב את החברה.
לאחר עזיבתו את החברה, הגיע לחברת Apollo Computers, אשר חיפשה אנשי מסדי נתונים לפתח מסד נתונים עבור גרסת ה UNIX שלה לתחנות עבודה, והסכימה לממן פיתוח. בעזרת Apollo, ג'ים פיתח את מסד הנתונים Groton Database Systems (על שם המקום בו מסד הנתונים פותח). ב-1984 החלה העבודה על מסד הנתונים, אשר ב-1986 קיבל את השם Interbase.
אף ש־Interbase הכניס כסף לחברה, החברה התמודדה עם קשיים כספיים במכירת תוכנה, והחליטה לצאת מהשוק. החברה התחילה ב-1986 להעביר בהדרגה את מסד הנתונים שלה לחברת Ashton-Tate אשר יצרו בין היתר את מסד הנתונים dBASE. היא רכשה מספר חברות המתעסקות במסדי נתונים. לאט לאט החלה גם חברת Ashton-Tate להיכנס לבעיות, וחברת בורלנד רכשה מהם את Interbase.
היסטוריה > Firebird

בשנת 2000 חברת בורלנד הוציאה לקוד הפתוח גרסה של מסד נתונים Interbase. הגרסה שיצאה הייתה 6.1. הגרסאות הבאות בתור, חזרו להיות קוד סגור. הסיבה ליציאת הקוד של Interbase הייתה בגלל שבורלנד רצתה חברה נפרדת עבור פיתוח מסד הנתונים, אך בגלל קשיים למצוא חברה שתסכים לתנאים הם הוציאו את Interbase בתור קוד פתוח, אבל חזרו מהר מאוד בגרסה 6.5 להחזיק בקוד ללא יציאת התיקונים חזרה.
בעקבות יציאת הקוד של Interbase יצאו כמה פרויקטים אשר המשיכו את הפיתוח של מסד הנתונים בתור קוד פתוח. הפרויקט שקיבל את תשומת לב הרבה ביותר היה פרויקט בשם Firebird. לפני מספר שנים, חלק מהפרויקטים הנוספים איחדו כוחות והקוד שלהם נכנס אף הוא ל-Firebird, מה שהוליד את גרסה 2 של מסד הנתונים עם תוספות ושינויים, כאשר הבסיס של בורלנד (כלומר הצורה שמבנה מסד הנתונים עובדה בה) נשאר זהה, ולכן גם מנוע של Interbase מסוגל לעבוד עם קובצי מסד הנתונים של Firebird עד גבול מסוים. שימו גרסה 3 תכיל שילוב קוד נוסף בפרויקט, כדוגמת תמיכה ב SMP ועוד אשר עוד לא נכנס בגרסה 2.
גישת עבודה

Firebird מכיל גישת עבודה אשר שונה מאוד ממרבית מסדי הנתונים הקיימים בקוד הפתוח כדוגמת MySQL ו־PostgreSQL, כאשר Firebird מכיל מעט מאוד תכונות יחסית, ומשאיר למשתמשים להרחיב את יכולותיו במספר דרכים.
ל-Firebird שלוש תצורות בגרסת השרת:
תצורת שרת קלאסי, בו נוצרים מספר תהליכים, אשר מתרבים על פני כל בקשה שאותה צריך לשרת.
תצורת סופר שרת, בו נוצר תהליכונים לכל בקשה אשר אותה צריך לשרת.
תצורת סופר שרת קלאסי, השרת מנסה כאן לנצל את כמות המעבדים והמשאבים שעל המערכת בצורה טובה יותר על ידי חלוקה של מספר תהליכים ומספר תהליכונים.
החל מגרסה 3.0 של Firebird, יהיה שרת אחד אשר יהיה ניתן לכוון לו את התצורה בזמן ריצה, בעוד שכיום בגרסה 2.5 ניתן לקבל 3 שרתים שונים בהתאם לתצורה הרצויה.
Firebird תומך ביצירת פרוצדורות מאוחסנות, יצירת הדק (trigger), יצירת view (הגבלת צפייה בטבלאות), יצירת sequence (שמירה אטומית של אינדקס), יצירת domain (טיפוס נתונים חדש), ועבודה עם UDF. כל אלו, הם כמובן מעבר לתמיכה ביצירת טבלאות.
גישת עבודה > טבלאות פנימיות

כל מסד נתונים ב Firebird שומר את המידע והפעולות השונות על ידי שימוש בטבלאות פנימיות. חלק מטבלאות אלו משמשות לשם ניטור הפעולות השונות שנעשו במסד הנתונים, וחלקן האחר שומרות מידע על טבלאות השונות, על הדקים, פרוצדורות מאוחסנות ולמעשה כל אספקט הקיים ומגודר במסד הנתונים.
הטבלאות המשמשות לניטור מקבלות את השם המקדים של MON$ - כלומר Monitor, בעוד שהמידע על מסד הנתונים עצמו מקבל שם מקדים של RDB$.
הטבלאות הפנימיות ניתנות לצפייה כמו כל טבלה אחרת, וכן ניתן לבצע עליה פעולות כדוגמת select ואפילו insert, delete ו update.
גישת עבודה > שפת SQL

שפת ה-SQL של Firebird אינה תלויה ברישיות, כלומר אין הבדל בין אות קטנה לגדולה. חוסר התלות ברישיות קיים גם בשמות של השדות עצמם. במידה ורוצים שדה שהוא בעל תלות ברישיות, יש לשים את שם השדה עם גרש כפול (הסימן "). תחביר ה-SQL של Firebird נקרא DSQL, ומכיל את הפעולות הרגילות שיש ב־SQL. התמיכה של Firebird בפרוצדורות מאוחסנות קיבלה שפה משל עצמה בשם PSQL. שפת PSQL אינה מוגבלת אך ורק לפרוצדורות, אלא מדברת גם על כתיבת trigger במסד הנתונים. כאשר Firebird זקוק להרצת שאילתות SQL, הוא מתרגם את השפה לשפה בינארית (BLR) אשר אותה הוא מריץ בפועל, ולמעשה כך הוא גם יודע מתי יש בעיה או שגיאה עם מה שנכתב עוד לפני הרצת השאילתה עצמה.
בזכות היותו של Firebird מסד נתונים ACID מלא, כל פעולת SQL, נשמרת כטרנזקציה ויש צורך לבצע commit על מנת שהפעולות יתקבלו מעבר לחיבור הנוכחי של המשתמש. בזכות גישה זו, ניתן במידה ונעשתה טעות גם לעשות rollback עבור הטרנזקציה. במידה ולא תתבצע פעולת commit, ברגע שהחיבור יתנתק ממסד הנתונים, או חיבור אחר ינסה לצפות במידע אשר נוסף או שונה, לא יהיה זכר לפעולות שבוצעו.
כל ההגדרות, כדוגמת יצירת טבלה, יצירת פרוצדורה, הדק, view, domain וכו', נשמרות כ-DDL (ראו SQL). ל-Firebird יש תמיכה ב-DML (ראו SQL), אשר מאפשרת לבצע מניפולציה על מידע עוד בהגדרת השדות עצמם. למשל ניתן ליצור שדה שהוא מחושב (נקרא Computed By) מנתונים אשר הוזנו כבר על ידי המשתמש. למשל במידה ונשמר שם פרטי ושם משפחה, ניתן ליצור שדה שיכיל שם מלא, על ידי שימוש בשדה שהוא Computed By. בנוסף, ניתן להגדיר ב-Firebird כי שדה מסוים יכיל ערכים מורשים בלבד, כדוגמת טווח בין 1 ל-9, או מחרוזת באורך מסוים, או אשר מכילה רק תווים מסוימים, והרשימה עוד ארוכה.
במידה ומגדירים Domain ב-Firebird, ניתן מראש גם להגדיר את מבנה המידע שרוצים, ולא חובה לשים אותו כאשר יוצרים את הטבלה או מוסיפים שדה מסוים. כל אלו הם חלק מה-DML של Firebird.
גישת עבודה > ניבים

Firebird מכיל 3 ניבים (dialect) שונים של שפת SQL, אשר כל אחת מהן מוסיפה עוד יכולות עבור השפה. הניבים נוצרו כאמצעי המרה בין גרסאות ישנות מאוד של Interbase, כאשר כיום יש להשתמש בניב מספר 3.
משמעות הניבים הם:
ניב מס' 1
הניב שומר את התאריכים והשעות בטיפוס מסוג DATE ומכיל טיפוס זהה בשם TIMESTAMP.
גרש כפול משמש לציון מחרוזות.
הטיפוסים NUMERIC ו DECIMAL נשמרים כ DOUBLE PRECISION ורמת הדיוק אינה יכולה לעלות מעל 9 ספרות אחרי הנקודה.
אין טיפוס מסוג Int64.
ניב מס' 2 - הניב יכול להתקיים רק בלקוח המתחבר לשרת, ולא בשרת עצמו. והוא נועד לסייע בניפוי שגיאות של הניב הראשון ומסד נתונים ישן.
ניב מס' 3
הניב מאפשר לטיפוסים NUMERIC ו DECIMAL להישמר כ Int64 כאשר רמת הדיוק הנדרשת עולה על 9 ספרות אחרי הנקודה.
הטיפוס TIME שומר רק מידע על הזמן ללא תאריך.
הטיפוס DATE שומר מידע רק על התאריך ללא הזמן.
גרש כפול משמש לזיהוי שדות אשר צריכים להיות נבדלים ברישיות של השמות.
השימוש במחרוזת מתבצע על ידי גרש בודד.
גישת עבודה > אבטחה

Interbase עבר הרבה מאוד מהפכות בנושא האבטחה, ו-Firebird ממשיך לשנות גישות כיצד ניתן לנהל משתמשים וגישה למידע. Firebird ו-Interbase עובדים עם קובץ ייעודי עבור ניהול משתמשים. בגרסה 2 של Firebird הקובץ נקרא security2.fdb. מסד הנתונים מכיל משתמש ברירת מחדל בשם SYSDBA עם הסיסמה masterkey. המשתמש לרוב מקבל ייחס של משתמש על, אך ניהול הרשאות המשתמשים ממומשות בתוך מסד הנתונים הספציפי, ולא בצורה גלובלית בשרת.
Firebird מאפשר ליצור בתוך מסד נתונים קבוצות של הרשאות אשר נקראות Role, ובעצם ניתן להכיל אותן למשתמשים השונים בהתאם לצורך ולרצון, ובכך ליצור סוג של ACL (פירושה הוא Access Control List). השפה המשמשת לעבודה ותחזוקת role נקראת Data Control Language או DCL בקיצור. ניהול המשתמשים והאבטחה נעשה באמצעות כלי ייעודי בשם gsec. הכלי מאפשר ליצור משתמשים וסיסמאות עבורם.
בגרסה 2.5, נוספו טבלאות ה MON$ גם עבור ביצוע Audit Trail ו Trace אשר משמשות עבור דו"ח וניטור פעולות אשר נעשו במסד הנתונים כולל מי עשה את הפעולות.