Firebird (server di database) - Firebird (database server)

Firebird
Firebird logo.svg
Turbobird screenshot.png
Autori originali Borland
Sviluppatore/i Fondazione Firebird
Versione iniziale 2000 ( 2000 )
Rilascio stabile
4.0  Modificalo su Wikidata / 1 giugno 2021 ; 60 giorni fa ( 1 giugno 2021 )
Rilascio in anteprima
4.0 Beta 2  Modificalo su Wikidata / 14 maggio 2020 ; 14 mesi fa ( 14 maggio 2020 )
Repository Modificalo su Wikidata
Scritto in C++
Sistema operativo Multipiattaforma
Tipo RDBMS
Licenza IPL , IDPL
Sito web www .firebirdsql .org Modificalo su Wikidata

Firebird è un sistema di gestione di database relazionali SQL open source che "gira su Linux , Microsoft Windows , macOS e diverse piattaforme Unix ". Il database biforcuta da Borland edizione open source 's di InterBase nel 2000, ma il codice è stato in gran parte riscritto dal Firebird 1.5.

Storia

Entro una settimana dal rilascio del sorgente InterBase 6.0 da Borland il 25 luglio 2000, il progetto Firebird è stato creato su SourceForge . Firebird 1.0 è stato rilasciato per Linux, Microsoft Windows e Mac OS X l'11 marzo 2002, con porting su Solaris , FreeBSD 4 , HP-UX nei due mesi successivi.

Il lavoro sul porting del codebase da C a C++ è iniziato nel 2000. Il 23 febbraio 2004 è stato rilasciato Firebird 1.5, che è stato il primo rilascio stabile del nuovo codebase. La versione 1.5 presentava un ottimizzatore di query migliorato , espressioni condizionali SQL-92 , punti di salvataggio SQL:1999 e supporto per il blocco esplicito . Firebird 2.0 è stato rilasciato il 12 novembre 2006, aggiungendo il supporto per architetture a 64 bit , tabelle annidate nelle clausole FROM e timeout di blocco programmabili nelle transazioni di blocco .

La precedente versione stabile era la versione 2.1.6, che aggiungeva nuove funzionalità tra cui trigger procedurali , query ricorsive e supporto per istruzioni SQL:2003 MERGE .

Firebird 2.5 ha introdotto nuove funzionalità come il multithreading migliorato , la sintassi delle espressioni regolari e la capacità di interrogare database remoti.

La versione stabile più recente è Firebird 3.0, rilasciata il 19 aprile 2016, con particolare attenzione alle prestazioni e alla sicurezza. Un'importante riprogettazione del codice ha consentito il supporto totale alle macchine SMP quando si utilizza la versione SuperServer.

Attraverso il Google Summer of Code 2013 è iniziato il lavoro sull'integrazione di Firebird come sostituto di HSQLDB in LibreOffice .

Conflitto di nomi di Mozilla Firefox

Nell'aprile 2003, la Mozilla Organization ha annunciato un cambio di nome del proprio browser web da Phoenix a Firebird dopo una disputa sul marchio con Phoenix Technologies .

Questa decisione ha causato preoccupazione all'interno del progetto di database Firebird a causa del presupposto che utenti e motori di ricerca Internet sarebbero stati confusi da un database e un browser Web che utilizzavano entrambi il nome Firebird. Gli sviluppatori di Mozilla hanno rilasciato una dichiarazione, chiarendo che il loro pacchetto software si chiamava "Mozilla Firebird", non "Firebird". La dichiarazione diceva anche che il nome Mozilla Firebird era un nome in codice del progetto .

La controversia è stata risolta il 9 febbraio 2004, quando Mozilla ha cambiato il nome del suo browser in Mozilla Firefox , ponendo così fine al conflitto.

Caratteristiche principali

  • Supporto completo per stored procedure e trigger
  • Transazioni completamente conformi ad ACID
  • Integrità referenziale
  • Architettura multigenerazionale (a volte chiamata MVCC)
  • Supporto per funzioni esterne ( UDF )
  • L'attività SQL può inviare eventi di notifica asincroni ai client
  • Strumenti di terze parti, inclusi strumenti di amministrazione della GUI e strumenti di replica
  • Scritture accurate: ripristino rapido, nessuna necessità di registri delle transazioni
  • Molti metodi di accesso: nativi/API, driver dbExpress/FireDAC, ODBC, OLE DB, provider .NET, driver JDBC nativo di tipo 4, modulo Python, PHP, Perl
  • Backup incrementali
  • Implementazione completa del cursore in PSQL

Tecnologia di archiviazione e indicizzazione

L'architettura multigenerazionale (MGA)

Firebird ha ereditato l'architettura di archiviazione di Interbase. Per garantire le proprietà ACID delle transazioni, il motore del database mantiene versioni diverse di ciascun record modificate dagli utenti attivi nel database. Quando le transazioni vengono salvate, l'ultima versione di ogni record modificato viene contrassegnata come definitiva. Se si esegue il rollback delle transazioni, il motore del database mantiene il contrassegno sulle versioni del record originale, lasciandole intatte. Di conseguenza, le scritture su disco Firebird sono molto ridotte rispetto ai database che utilizzano l'architettura tradizionale dei log delle transazioni. La scrittura delle transazioni non impedisce la lettura e viceversa, perché ognuna vede la propria versione del database. Il compromesso è che di tanto in tanto è necessaria una certa manutenzione ("pulizia") per ripulire le vecchie versioni dei record e lo spazio libero su disco.

L'architettura multigenerazionale garantisce che le operazioni OLTP e DSS/OLAP possano essere eseguite contemporaneamente senza i ritardi causati dai meccanismi di blocco presenti in altri prodotti.

Indici

Firebird fa sì che tutti gli indici del database si comportino come "indici cluster" ben sintonizzati usati da altre architetture. I bucket di indice Firebird non sono soggetti al blocco a due fasi e le operazioni booleane "and" e "or" possono essere eseguite su bitmap intermedie a un costo trascurabile, eliminando la necessità per l'ottimizzatore di scegliere tra indici alternativi.

varianti

  • Firebird SuperServer ha un singolo demone/server per tutte le connessioni client, multithread con cache condivisa
  • Firebird SuperClassic ha anche un singolo demone/server per tutte le connessioni client, multithread con cache separate
  • Firebird Classic utilizza inetd per eseguire una copia del server per connessione client, consigliato per i sistemi SMP ma potrebbe avere problemi di notifica degli eventi se l'accesso avviene tramite un firewall
  • Firebird Embedded per la creazione di cataloghi su CD-ROM, versioni per utente singolo o di valutazione delle applicazioni

Licenza

Il motore di database Firebird e i suoi moduli sono rilasciati con una licenza open source , la Initial Developer's Public License (IDPL), una variante della Mozilla Public License (MPL) versione 1.1. Non richiede che lo sviluppatore apra i prodotti usando Firebird o anche derivati ​​personalizzati creati dal suo codice sorgente, ma se lo sviluppatore sceglie di farlo, allora alcuni termini e condizioni dovrebbero essere rispettati. L'IDPL consente allo sviluppatore di creare applicazioni proprietarie a codice chiuso che utilizzano Firebird o si basano su di esso.

API di connettività

API Native Firebird di basso livello, API dei servizi e SQL integrato

L'API nativa di Firebird viene utilizzata direttamente o indirettamente da applicazioni o middleware che si connettono a un database Firebird. È implementato nella libreria client, fbclient.dll, sui sistemi Windows e in libfbclient.so su quelli Unix.

L'API dei servizi è una funzione speciale impostata per l'accesso e il controllo delle attività di amministrazione dei servizi come la gestione degli utenti, il backup/ripristino e la raccolta di statistiche.

Embedded SQL è una tecnica che semplifica lo sviluppo di applicazioni C/C++ e COBOL Firebird, utilizzando un preprocessore chiamato gpre, che consente l'incorporamento di istruzioni SQL direttamente nel codice sorgente del linguaggio host.

Premi

  • 2007. SourceForge Community Choice Award: miglior progetto per le imprese, miglior supporto per gli utenti.
  • 2009. Premio SourceForge Community Choice: miglior progetto per le imprese. Finalista miglior progetto e miglior progetto per il governo.

Guarda anche

Riferimenti

link esterno