dicembre 08, 2009

Firebird SQL database potente, semplice da amministrare e leggero.

| No comment
firebirdsql_logo Firebird è uno tra i database meno considerati dai siti di news eppure è potente, semplice da amministrare e leggero.
Ecco perchè colgo l’occasione per segnalare le caratteristiche della nuova versione 2.1.2. fatta apposta per far testare la potenza di Firebird anche ai neofiti.
Firebird SQL è un database management system relazionale (RDBMS) open source distribuito sotto licenza IPL (Interbase Public License) o IDPL (simile alla Mozilla Public License).
Supporta numerosi sistemi operativi tra i quali: GNU/Linux, Windows, FreeBSD, Mac OS X e alcuni sistemi Unix.
Le principali caratteristiche di questo RDBMS sono l'alto livello di conformità con gli standard SQL, la completa integrazione con molti linguaggi di programmazione e la facile installazione e manutenzione del software.
Le ultime versioni rilasciate portano grandi miglioramenti riguardo alla resistenza del software ai crash esterni, la velocità d'esecuzione dei comandi SQL e la gestione e l'accesso ai dati del computer.
­Firebird nasce dal codice sorgente di InterBase 6.0 e quindi ne acquista tutte le sue caratteristiche principali. È necessario, quindi, parlando di Firebird raccontare un po' la storia di Interbase (il suo antenato). Già quando era un prodotto commerciale e chiuso (prima della versione 6.0) l'antenato di Firebird era molto stimato e vantava una numerosa utenza, tra cui grossi nomi come NASA, National Bank di Chicago, Nokia, Ericsson, Boeing, Boston Stock Exchange e molti altri.
La bassa occupazione di memoria, sia RAM che su disco (richiede ancora oggi poco più di 4 MB di RAM e meno di 10 MB su disco per una completa installazione), la facilità d’installazione, d’utilizzo e di gestione erano (e sono) molto competitivi verso altri RDBMS con uguali ed anche inferiori qualità e funzionalità. InterBase, dal principio, fu concepito, progettato e realizzato per un’utenza professionale ed aziendale pagante, con tutte le implicazioni del caso. InterBase fu sviluppato (nell'ultima fase della sua vita) da un'azienda leader a livello mondiale nello sviluppo di software per programmatori professionisti: la Borland International.
La prima versione di Firebird fu null'altro che un InterBase riveduto e migliorato dopo che la Borland l'aveva reso opensource (la pubblicazione del codice sorgente di Interbase 6.0 avvenuta nel 2000). Firebird 1.0 infatti non rappresenta una rivoluzione rispetto ad InterBase 6.0, ma elimina alcuni seri problemi di sicurezza e qualche bug con l’aggiunta di poche migliorie.
Firebird 1.5, pur essendo una versione di transizione verso la nuova 2.0, rappresenta un notevole passo avanti rispetto alla versione precedente. L'intero motore del database server è stato riscritto in C++, mentre la versione precedente era scritta in C. Il vantaggio di questa riscrittura è una maggior chiarezza e leggibilità del codice. Grazie a questa decisione, a lungo termine, le prossime versioni saranno più facili da estendere e da gestire.

Firebird 2.0 conferma tutte le precedenti funzionalità e qualità e ne aggiunge molte altre a tutti i livelli. Le più interessanti sono quelle relative alle estensioni del linguaggio SQL derivate dall'SQL 200X e spianare la strada per Vulcano che sarà Firebird della prossima generazione.
Le tappe del progetto
* 1984 Jim Starkey progetta Interbase per la Groton Database System (.gdb)
* 25/07/2000 Borland rilascia sotto licenza open "Initial Developer’s Public License (IDPL)" Interbase 6.0.
* 31/07/2000 Nasce il Progetto Firebird
* 22/11/2000 Primo kit d'installazione per Firebird
* 14/11/2001 Firebird 1.0.
* 23/02/2004 Firebird 1.5 scritto in C++
* 13/02/2004 Firebird 1.5.1
* 10/11/2004 Firebird 2.0 Alpha
* 19/05/2006 Firebird 2.0 Release Candidate 2
* 17/04/2008 Firebird 2.1
* 10/09/2008 Firebird 2.5 Alpha
Funzionalità incluse nella versione 2.0
* Accurata revisione dei meccanismi di indicizzazione per incrementare le prestazioni e minimizzare i colli di bottiglia durante le ricerche e le selezioni.
* Varie limitazioni ereditate dal codice originario sono state rimosse, per es. il limite di 252-byte sulla lunghezza degli indici e il limite di 30Gb sulla dimensione delle tabelle.
* Una nuova interfaccia per agganciare set di caratteri internazionali, che include il supporto per Unicode.
* Supporto per le piattaforme a 64-bit grazie ai binari rilasciati per AMD64 e Intel EM64T. I binari per Windows 64-bit sono in fase di testing e verranno rilasciati in seguito.
* Un'intensa attività di verifica della sicurezza del server, che include una più robusta cifratura delle password ed una protezione integrata contro gli attacchi a forza bruta.
* Supporto per le tabelle derivate in SQL200x, che include l'annidamento a più livelli e il joning di subquery.
* Sintassi EXECUTE BLOCK per il supporto di blocchi di SQL procedurale (PSQL), che può essere eseguito in statement SQL.
* Cursori espliciti in PSQL, disponibili anche in statement EXECUTE BLOCK.
* Timeout opzionale WAIT per la risoluzione dei conflitti di locking, disponibile come argomento di una SET TRANSACTION oppure come parametro di una transazione via API.
* Funzionalità di backup incrementale completamente rinnovate.
* Ridefinizione dell'architettura in modalità "serverless" (per connessioni locali) su Windows, per eliminare l'intrinseca instabilità del protocollo IPServer originario.
* Implementazione delle Services API completata su tutte le piattaforme.

Caratteristiche tecniche
* È conforme allo SQL-92 Entry Level. Si può usare lo standard ANSI SQL per scrivere delle query portabili tra piattaforme diverse. In più Firebird ha delle estensioni che anticipano l'SQL3 come le stored procedure e i trigger e anche altre dell'SQL200X. È possibile accedere contemporaneamente ad un database Firebird da più applicazioni permettendo a più client di lavorare con gli stessi dati in conformità al modello client/server.
* Implementa le specifiche A.C.I.D.; cioè il concetto di atomicità, consistenza, isolamento e durabilità.
* Integrità referenziale dei dati con possibilità di riferire una chiave primaria con una o più chiavi esterne mantenendo collegamenti tra attributi di diverse relazioni.
* Architettura multigenerazionale. Il server, in base alle esigenze, mantiene una copia dei vecchi record da ripristinare nel caso in cui una transazione fallisca.
* Supporta le transazioni. Una funzionalità indispensabile per garantire la correttezza e il buon esito di operazioni di inserimento, aggiornamento o cancellazione di dati.
* Gestione dei lock a livello del singolo record anziché dell'intera pagina. In questo modo gli altri record sono manipolabili liberamente da altri client.
* Supporta il protocollo di rete TCP/IP su tutte le piattaforme garantendo l'utilizzo di Firebird come SQL server sia nelle applicazioni client/server sia in quelle web con completa trasparenza.
* Protocollo XNET usato per accedere ai dati in maniere locale.
* Tre architetture diverse a seconda del tipo della macchina e di come si vuole utilizzare il DBMS.
* OSD (On-Disk Structure) 10.1 per Firebird 1.5 e OSD 11 per Firebird 2.0
* Ottimizzazione delle query a livello di server o manualmente dall’utente. Quando viene scritto del codice SQL, Firebird, prima di eseguirlo, cerca di ottimizzarlo grazie al suo optimizer interno.
* Viste aggiornabili in seguito ad eventi stabiliti.
* Stored procedure. Sono delle applicazioni SQL che vengono memorizzate all'interno del database e vengono eseguite a livello di server. Offrono una grande flessibilità e potenza per svolgere i compiti più impensabili e bilanciare il carico di lavoro tra il client ed il server.
* Trigger. Sono simili alle stored procedure ma non vengono mai eseguiti esplicitamente; svolgono le loro azioni in seguito a modifiche apportate alle tabelle (inserimento, modifica o eliminazione di un dato). Sono utili quando si cerca di ottenere un determinato risultato in seguito ad una azione specifica.
* Un'applicazione può accedere contemporaneamente a più database.
* Gestione del tipo di dato BLOB con possibilità di memorizzare dati di qualsiasi genere (immagini, suoni, animazioni, testi…).
* Messaggi di allerta che informano un'applicazione delle modifiche avvenute nel database ed in seguito alle quali l'applicazione è chiamata a svolgere delle specifiche azioni.
* UDF (User Defined Functions), ossia, funzioni definite dall’utente che permettono di scrivere programmi esterni che possono essere eseguite da codice SQL dall'interno del database.
* Collegamento tra diverse relazioni con possibilità di eseguire su di esse delle query anche molto complesse. La lettura dei dati non è bloccante. Tutti i client possono leggere contemporaneamente gli stessi record.
* Possibilità di richiamare le API di Firebird tramite codice SQL/DSQL (Dynamic SQL) in modo del tutto trasparente.
* Possibilità di gestione di Firebird tramite l'applicazione grafica windows IBOConsole. Sono garantite l'esecuzione delle query e le operazioni di backup, restore, manutenzione e gestione della sicurezza.
* isql, ossia Interactive SQL, è un'applicazione a linea di comando, multipiattaforma e serve per una totale gestione di Firebird.
* gpre, è un preprocessore per convertire codice embedded SQL/DSQL in formati leggibili da linguaggi esterni. Ciò ci permette di scrivere applicazioni esterne in altri linguaggi, in C in modo particolare, all'interno delle quali possiamo inserire del codice SQL. In questo modo possiamo ottenere un’elevata efficienza ed aggiungere alle nostre applicazioni qualsiasi altra funzionalità.
* Database di sola lettura. È possibile rendere un database accessibile solo per la lettura da impedire eventuali modifiche ai dati. Questa caratteristica è molto utile quando si distribuiscono programmi in CD-ROM con la versione embedded di Firebird.
* Oltre a queste caratteristiche native di Firebird ce ne sono altre realizzate grazie al contributo di programmi esterni che permettono a Firebird di avere altre significativi vantaggi ad esempio la ricerca full text, la possibilità di gestire la replica oppure il salvataggio dei database automatica, e il supporto per il clustering.
Download
Links:
Aggiornamenti:

Ultima versione stabile rilasciata: 2.50 (04/20/2010):

The primary goal for Firebird 2.5 was to establish the basics for a new threading architecture that is almost entirely common to the Superserver, Classic and Embedded models, taking in lower level synchronization and thread safety generally.
Although SQL enhancements are not a primary objective of this release, for the first time, user management becomes accessible through SQL CREATE/ALTER/DROP USER statements and syntaxes for ALTER VIEW and CREATE OR ALTER VIEW are implemented. PSQL improvements include the introduction of autonomous transactions and ability to query another database via EXECUTE STATEMENT.

Engine Enhancements

The refactoring Firebird's threading architecture in this release takes advantage of the symmetric multiprocessing (SMP) capabilities of multiprocessor hardware. This has a noticeable effect on the scaleability of Superserver when multiple databases are being accessed simultaneously but its major effect is the emergence of the architectural "Superclassic" model that will underpin the fine-grained multi-threading under development for Firebird 3.
The embedded libraries—-libfbembed.so on POSIX and fbembed.dll on Windows-—are now multi-thread-capable and thread-safe, so they can be used in multi-threaded applications.

Other New Features

Other new features and improvements in this release include:

Administrative Enhancements

  • System audit tracing and user trace sessions via the Services API, making it possible to monitor and analyse everything going on in a database in real time

  • New system role RDB$ADMIN in the ODS 11.2 database allows SYSDBA to transfer its privileges to another user on a per-database basis

  • More information in the monitoring tables

  • Asynchronous cancellation of connections

  • Capability for ordinary users to monitor any of their own attachments as well as CURRENT_CONNECTION

More SQL Language Additions and Enhancements

  • Regular expression support using the SIMILAR TO predicate

  • ALTER COLUMN for computed columns

  • Autonomous transactions within a PSQL module (stored procedure, trigger or dynamically executable PSQL block)

  • Enhanced access to stored procedures in view definitions

  • Optional GRANTED BY or GRANTED AS for GRANT and REVOKE statements, enabling the grantor to be a user other than the CURRENT_USER (the default).

  • REVOKE ALL syntax to dispose of all privileges for a user or role at once

  • Support for WHERE SOME_COL = ? OR ? IS NULL predications

  • Removal of "reserved" status for all but a handful of keywords that are not reserved in the SQL standard

Data-handling Enhancements

  • New built-in functions for converting UUID CHAR(16) OCTETS strings to RFC4122-compliant format and vice versa

  • Ability to pass 32-bit and 64-bit integers as hexadecimal in numeric literal and X-prefixed binary string literal formats

API Additions

  • Statements now return an SQL-2003 standard 5-alphanumeric SQLSTATE completion code

  • New constant DSQL_unprepare available for use with isc_dsql_free_statement for efficient unpreparing of statements


Read/download release notes (800 Kb, right-click on PDF link to save to disk)
Go to the Firebird 2.5 Downloads page



Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
, , , , , ,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari