อ่าน 7 นาที
ไฟร์เบิร์ด (เซิร์ฟเวอร์ฐานข้อมูล)
Firebird เป็น ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ SQL แบบโอเพนซอร์ส ที่รองรับ Linux , Microsoft Windows , macOS และแพลตฟอร์ม Unix อื่นๆ [ 2 ] ฐานข้อมูลนี้ แยกมา จาก InterBase...
ไฟร์เบิร์ด (เซิร์ฟเวอร์ฐานข้อมูล)
| นกไฟ | |
|---|---|
| ผู้เขียนต้นฉบับ | บอร์แลนด์ |
| นักพัฒนา | มูลนิธิไฟร์เบิร์ด |
| ปล่อย | 2000 |
| เวอร์ชันเสถียร | 5.0.4 [ 1 ] |
| รุ่นทดลองใช้งาน | Firebird 5.0 รุ่นทดสอบก่อนวางจำหน่าย 1 / 26 กันยายน 2023 |
| เขียนเป็น | ซี++ , ซี |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| แพลตฟอร์ม | IA-32 , x86-64 |
| พิมพ์ | ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) |
| ใบอนุญาต | ไอพีแอล , ไอดีพีแอล |
| เว็บไซต์ | firebirdsql.org |
| ที่เก็บข้อมูล |
|
Firebirdเป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์SQL แบบโอเพนซอร์ส ที่รองรับLinux , Microsoft Windows , macOSและแพลตฟอร์มUnix อื่นๆ [ 2 ]ฐานข้อมูลนี้แยกมาจากInterBaseเวอร์ชันโอเพนซอร์สของBorlandในปี 2000 แต่โค้ดส่วนใหญ่ได้รับการเขียนใหม่ตั้งแต่ Firebird 1.5 [ 3 ]
ประวัติศาสตร์
ภายในหนึ่งสัปดาห์หลังจากที่Borlandเผยแพร่ซอร์สโค้ดInterBase 6.0 เมื่อวันที่ 25 กรกฎาคม พ.ศ. 2543 [ 4 ] [ 5 ]โครงการ Firebird ก็ถูกสร้างขึ้นบนSourceForge [ 6 ] [ 7 ] Firebird 1.0 ได้รับการเผยแพร่สำหรับ Linux, Microsoft Windows และMac OS Xเมื่อวันที่ 11 มีนาคม พ.ศ. 2545 [ 8 ]โดยมีการพอร์ตไปยังSolaris , FreeBSD 4และHP-UXในอีกสองเดือนต่อมา[ 9 ]
งานในการย้ายโค้ดเบสจากCไปเป็นC++เริ่มขึ้นในปี 2000 เมื่อวันที่ 23 กุมภาพันธ์ 2004 Firebird 1.5 ได้รับการเผยแพร่[ 10 ]ซึ่งเป็นเวอร์ชันเสถียรแรกของโค้ดเบสใหม่ เวอร์ชัน 1.5 มีคุณสมบัติปรับปรุงตัวเพิ่มประสิทธิภาพการสืบค้นนิพจน์เงื่อนไขSQL-92 จุดบันทึกSQL:1999 และการสนับสนุนการล็อกแบบชัดเจน[ 11 ] Firebird 2.0ได้รับการเผยแพร่เมื่อวันที่ 12 พฤศจิกายน 2006 [ 12 ]โดยเพิ่มการสนับสนุน สถาปัตยกรรม 64 บิตตารางที่ซ้อนกันในข้อความ FROMและ การหมดเวลา การล็อก ที่ตั้งโปรแกรมได้ ในธุรกรรมแบบบล็อก[ 13 ]
เวอร์ชัน 2.1.6 เพิ่มคุณสมบัติใหม่ ได้แก่ทริกเกอร์เชิงกระบวนการแบบสอบถามแบบเรียกซ้ำและการสนับสนุนคำสั่งMERGE ของ SQL:2003 [ 14 ]
Firebird 2.5 ได้นำเสนอคุณสมบัติใหม่ๆ เช่น การทำงาน แบบมัลติเธรด ที่ดีขึ้น ไวยากรณ์นิพจน์ปกติและความสามารถในการสืบค้นฐานข้อมูลระยะไกล[ 15 ]
Firebird 3.0 เปิดตัวเมื่อวันที่ 19 เมษายน 2559 โดยเน้นที่ประสิทธิภาพและความปลอดภัย การปรับโครงสร้างโค้ดครั้งใหญ่ทำให้สามารถรองรับ เครื่อง SMP ได้อย่างสมบูรณ์ เมื่อใช้เวอร์ชัน SuperServer [ 16 ]
ผ่านโครงการGoogle Summer of Code 2013 งานได้เริ่มต้นขึ้นในการบูร ณาการ Firebird เพื่อใช้แทนHSQLDBในLibreOffice Base [ 17 ] [ 18 ]
ความขัดแย้งชื่อ Mozilla Firefox
ในเดือนเมษายน พ.ศ. 2546 องค์กร Mozillaประกาศเปลี่ยนชื่อเว็บเบราว์เซอร์จากPhoenixเป็นFirebirdหลังจากข้อพิพาทเรื่องเครื่องหมายการค้ากับPhoenix Technologies [ 19 ]
การตัดสินใจนี้ทำให้เกิดความกังวลภายในโครงการฐานข้อมูล Firebird เนื่องจากสมมติฐานที่ว่าผู้ใช้และเครื่องมือค้นหาอินเทอร์เน็ตจะสับสนหากทั้งฐานข้อมูลและเว็บเบราว์เซอร์ใช้ชื่อ Firebird เหมือนกัน[ 20 ] [ 21 ]นักพัฒนา Mozilla ได้ออกแถลงการณ์[ 22 ]โดยชี้แจงให้ชัดเจนว่าแพ็กเกจซอฟต์แวร์ของพวกเขาเรียกว่า "Mozilla Firebird" ไม่ใช่ "Firebird" [ 23 ] [ 24 ]แถลงการณ์ยังระบุด้วยว่าชื่อ Mozilla Firebird เป็น ชื่อ รหัส โครงการ
ข้อพิพาทได้รับการแก้ไขเมื่อวันที่ 9 กุมภาพันธ์ พ.ศ. 2547 เมื่อ Mozilla เปลี่ยนชื่อเบราว์เซอร์เป็นMozilla Firefoxจึงยุติความขัดแย้ง[ 25 ] [ 26 ] [ 27 ]
คุณสมบัติหลัก
- รองรับขั้นตอนการจัดเก็บและทริกเกอร์ อย่างเต็มรูปแบบ [ 28 ]
- ธุรกรรมที่สอดคล้องกับACIDอย่างสมบูรณ์
- ความสมบูรณ์ของการอ้างอิง
- สถาปัตยกรรมหลายรุ่น (บางครั้งเรียกว่า MVCC) [ 29 ]
- รองรับฟังก์ชันภายนอก ( UDFs )
- การทำงานของ SQL สามารถส่งเหตุการณ์แจ้งเตือนแบบอะซิงโครนัสไปยังไคลเอ็นต์ได้
- เครื่องมือจากผู้พัฒนาภายนอก รวมถึงเครื่องมือบริหารจัดการแบบ GUI และเครื่องมือจำลองข้อมูล
- การเขียนข้อมูลอย่างระมัดระวัง - กู้คืนได้รวดเร็ว ไม่จำเป็นต้องใช้บันทึกธุรกรรม
- วิธีการเข้าถึงหลายวิธี: เนทีฟ/API, ไดรเวอร์ dbExpress/FireDAC [ 30 ] , ODBC, OLE DB, ผู้ให้บริการ .NET, ไดรเวอร์ JDBC เนทีฟประเภท 4, โมดูล Python, [ 31 ] PHP, Perl
- การสำรองข้อมูลแบบเพิ่มทีละส่วน
- การใช้งานเคอร์เซอร์แบบเต็มรูปแบบในPSQL
เทคโนโลยีการจัดเก็บและจัดทำดัชนี
สถาปัตยกรรมหลายรุ่น (MGA)
Firebird สืบทอดสถาปัตยกรรมจัดเก็บข้อมูลจาก Interbase เพื่อให้มั่นใจถึง คุณสมบัติ ACIDของธุรกรรม เอ็นจินฐานข้อมูลจะเก็บเวอร์ชันต่างๆ ของแต่ละเรคอร์ดที่เปลี่ยนแปลงโดยผู้ใช้ที่ใช้งานอยู่ในฐานข้อมูล เมื่อธุรกรรมได้รับการยืนยัน เวอร์ชันสุดท้ายของทุกเรคอร์ดที่เปลี่ยนแปลงจะถูกทำเครื่องหมายว่าเป็นเวอร์ชันสุดท้าย หากธุรกรรมถูกยกเลิก เอ็นจินฐานข้อมูลจะเก็บเครื่องหมายไว้ในเวอร์ชันเรคอร์ดดั้งเดิม โดยไม่แตะต้อง[ 32 ]ด้วยเหตุนี้ การเขียนลงดิสก์ของ Firebird จึงลดลงอย่างมากเมื่อเทียบกับฐานข้อมูลที่ใช้สถาปัตยกรรมบันทึกธุรกรรมแบบดั้งเดิม[ 33 ]การเขียนธุรกรรมไม่ได้ขัดขวางการอ่าน และในทางกลับกัน เนื่องจากแต่ละธุรกรรมจะเห็นเวอร์ชันของฐานข้อมูลของตนเอง[ 34 ]ข้อแลกเปลี่ยนคือ จำเป็นต้องมีการบำรุงรักษา ("การกวาดล้าง") เป็นระยะๆ เพื่อล้างเวอร์ชันเรคอร์ดเก่าและเพิ่มพื้นที่ว่างในดิสก์[ 35 ]
สถาปัตยกรรมหลายรุ่นช่วยให้การดำเนินการ OLTP และ DSS/OLAP สามารถทำงานพร้อมกันได้โดยไม่มีความล่าช้าที่เกิดจากกลไกการล็อกที่พบในผลิตภัณฑ์อื่นๆ[ 36 ]
ดัชนี
Firebird ทำให้ดัชนีทั้งหมดของฐานข้อมูลทำงานเหมือน "ดัชนีคลัสเตอร์" ที่ได้รับการปรับแต่งมาอย่างดีซึ่งใช้โดยสถาปัตยกรรมอื่นๆ บัคเก็ตดัชนีของ Firebird ไม่ต้องอยู่ภายใต้การล็อกสองเฟส และสามารถดำเนินการบูลีน "และ" และ "หรือ" บนบิตแมประดับกลางได้โดยมีต้นทุนน้อยมาก ทำให้ไม่จำเป็นต้องให้ตัวเพิ่มประสิทธิภาพเลือกระหว่างดัชนีทางเลือก[ 37 ]
ตัวแปร
- Firebird SuperServer มี daemon/เซิร์ฟเวอร์เพียงตัวเดียวสำหรับจัดการการเชื่อมต่อของไคลเอ็นต์ทั้งหมด โดยทำงานแบบมัลติเธรดและใช้แคชร่วมกัน
- Firebird SuperClassic ยังมี daemon/server ตัวเดียวสำหรับจัดการการเชื่อมต่อไคลเอ็นต์ทั้งหมด โดยทำงานแบบมัลติเธรดและมีแคชแยกต่างหาก
- Firebird Classic ใช้inetdในการรันเซิร์ฟเวอร์หนึ่งชุดต่อการเชื่อมต่อไคลเอ็นต์หนึ่งราย ซึ่งแนะนำสำหรับระบบ SMP แต่Hอาจมีปัญหาเกี่ยวกับการแจ้งเตือนเหตุการณ์หากการเข้าถึงผ่านไฟร์วอลล์
- Firebird Embedded เหมาะสำหรับการสร้างแคตตาล็อก CD-ROM, แอปพลิเคชันเวอร์ชันผู้ใช้คนเดียว หรือเวอร์ชันทดลองใช้งาน
การออกใบอนุญาต
เอ็นจิ้นฐานข้อมูล Firebird และโมดูลต่างๆ ได้รับการเผยแพร่ภายใต้ใบอนุญาตโอเพนซอร์ส Initial Developer's Public License (IDPL) ซึ่งเป็นรูปแบบหนึ่งของMozilla Public License (MPL) เวอร์ชัน 1.1 ใบอนุญาตนี้ไม่บังคับให้นักพัฒนาต้องเปิดเผยผลิตภัณฑ์ที่ใช้ Firebird หรือแม้แต่ผลิตภัณฑ์ที่สร้างขึ้นเองจากซอร์สโค้ด แต่หากนักพัฒนาเลือกที่จะทำเช่นนั้น ก็ต้องปฏิบัติตามข้อกำหนดและเงื่อนไขบางประการ IDPL อนุญาตให้นักพัฒนาสร้างแอปพลิเคชันที่เป็นกรรมสิทธิ์และปิดแหล่งที่มาซึ่งใช้ Firebird หรือมีพื้นฐานมาจาก Firebird [ 38 ]
API การเชื่อมต่อ
API ดั้งเดิมระดับต่ำของ Firebird, API บริการ และ SQL แบบฝังตัว
API ดั้งเดิมของ Firebird ถูกใช้โดยตรงหรือโดยอ้อมโดยแอปพลิเคชันหรือมิดเดิลแวร์ที่เชื่อมต่อกับฐานข้อมูล Firebird โดยจะถูกนำไปใช้ในไลบรารีไคลเอ็นต์ fbclient.dll บนระบบ Windows และใน libfbclient.so บนระบบ Unix [ 39 ]
Services API คือชุดฟังก์ชันพิเศษสำหรับเข้าถึงและควบคุมงานบริหารจัดการบริการ เช่น การจัดการผู้ใช้ การสำรองข้อมูล/กู้คืน และการรวบรวมสถิติ
Embedded SQLเป็นเทคนิคที่ช่วยลดความซับซ้อนในการพัฒนาแอปพลิเคชัน C/C++ และ COBOL Firebird โดยใช้พรีโปรเซสเซอร์ที่เรียกว่า gpre ซึ่งช่วยให้สามารถฝังคำสั่ง SQL ลงในซอร์สโค้ดของภาษาโฮสต์ได้โดยตรง[ 40 ]
รางวัล
- รางวัล SourceForge Community Choice Award ปี 2007: โครงการที่ดีที่สุดสำหรับองค์กร การสนับสนุนผู้ใช้ที่ดีที่สุด[ 41 ]
- 2009. รางวัล SourceForge Community Choice Award: โครงการที่ดีที่สุดสำหรับองค์กรธุรกิจ เข้ารอบสุดท้ายในสาขาโครงการที่ดีที่สุดและโครงการที่ดีที่สุดสำหรับภาครัฐ[ 42 ]
ดูเพิ่มเติม
- การเปรียบเทียบระบบจัดการฐานข้อมูลเชิงสัมพันธ์
- รายชื่อระบบจัดการฐานข้อมูลเชิงสัมพันธ์
- การควบคุมการทำงานพร้อมกันแบบหลายเวอร์ชัน
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ

- Firebird - พอร์ทัลสำหรับนักพัฒนา
- การรวบรวมข้อมูล และแผนภูมิของ Firebird
- เอกสารประกอบการใช้งาน Firebird โดย IBProvider
- คำถามที่พบบ่อยเกี่ยวกับ Firebird
- FirebirdNews - ข่าวสารเกี่ยวกับ Firebird และโครงการที่เกี่ยวข้อง
- คู่มือการย้ายข้อมูลไปยัง Firebird 3 - eBook
- ไดรเวอร์ Firebird Ole Db (ทางเลือกแทน ODBC)
- Jaybird – ไดรเวอร์ JDBC สำหรับ Firebird (บน github.com)
- Jaybird – ไดรเวอร์ JDBC สำหรับ Firebird (ดูได้ที่ firebirdsql.org)