FirebirdSQL: Il DataBase open e affidabile

L in u x
Da y
2 00 4
FirebirdSQL: Il DataBase
open e affidabile
Alessandro Carichini
[email protected]
Rimini 27 Novembre
Palazzo della Provincia
Firebird: chi era costui?


L in u x
Da y
2 00 4

25-07-2000: Borland rilascia sotto licenza
open Interbase 6.0
31-07-2000: Nasce il Progetto Firebird
22-11-2000: Primo kit d'installazione per Firebird

18-12-2000: Scoperta backdoor di Borland

14-11-2001: Firebird 1.0

23-02-2004: Firebird 1.5 riscritto in C++

13-07-2004: Firebird 1.5.1
Breve Storia di Interbase

L in u x
Da y
2 00 4


1984: Jim Starkey progetta Interbase per la
Groton Database System (.gdb) rilevata poi da
Ashton-Tate (dBase)
1991: Borland rileva Ashton-Tate ed Interbase3
1991: Jim Starkey lascia Borland e fonda IBPhoenix (tools x DBA e sviluppatori Delphi)

2000: Interbase 6,0 diventa open

2002: Interbase 6,5 ritorna closed

2003: Interbase 7,1 sempre più closed
Mercato dei DB

Open Source
Firebird
 PostgreSQL
 MySQL
 Ingres (da novembre 2004)
Commerciali
L in u x
Da y
2 00 4






Oracle
DB2 IBM
Microsoft SQL
Interbase Borland
Suddivisione del Mercato
Altro 14,90%
IBM DB2 33,80%
L in u x
Da y
2 00 4
Microsoft SQLServer 18,70%
Oracle 32,60%
Fonte Gartner: http://www.01net.it/01NET/HP/0,1254,1_ART_52224,00.html
Altro 14,9 %

Informix IBM 1,9 %

NCR Teradata 2,8 %

Altro 10,2 %
L in u x
Da y
2 00 4

Cosa rappresenta?
 Sybase ?
 Ingres ?
 OpenSource ?
Piattaforma Linux

Default: Configurazione LAMP
Linux
 Apache
 MySQL
 Php/Perl/Python
Variante: PostgreSQL
L in u x
Da y
2 00 4


Quando aumentano i volumi
Outsider: Firebird



Se siete dei “temerari”
Perchè è poco conosciuto?
L in u x
Da y
2 00 4

Integrato in Delphi (Win32) e Kylix (Linux)
non si è imposto come ci si aspettava

Borland non sa valorizzare i propri prodotti

Poca manualistica

Non integrato nelle distro di Linux

Molti tools ma per Windows (Delphi)

Non viene implementato come MySQL

Mozilla ha dovuto cambiare il nome al proprio
browser (FireFox)
Caratteristiche di un RDBMS

Relational Data Base Management System
Motore per la gestione di DB relazionali
 DB come insieme di tabelle con relazioni:
 Campi (colonne) e Records (righe)
Linguaggio SQL

2 00 4

Da y

L in u x
Standard per l'interrogazione dei dati
Architettura Client / Server




Scalabilità
Protezione dei dati
Distribuzione delle funzioni
Caratteristiche di Firebird

Multipiattaforma
Linux, Windows, MacOSX, FreeBSD,
Solaris
Transactions


Architettura Multigenerazionale
 Integrità Referenziale (foreign keys)
 Conforme ACID (Atomicity, Consistency, Isolation, Durability)
Standard SQL-2 (Ansi92 Entry)
L in u x
Da y
2 00 4




Subquery, Inner e Outer Join
Store Procedures, Triggers, Viste, UDF, SavePoints (SQL-3)
Caratteristiche di Firebird

Tanti Linguaggi/AS/Drivers supportati:
Java, Jboss, Tomcat, Php, Python, Perl,
FreePascal, Delphi, .Net, ODBC
FootPrint minimo (1,5 MB)

L in u x
Da y
2 00 4


Query Optimizer

Sicurezza
Accounts, Grant/Revoke e Alias
Facilità di installazione ed Amministrazione



Licenza IDPL (tipo Mozilla)

Initial Developer's Public License
L in u x
Da y
2 00 4
Comparazione con altri DB
Caratteristiche
Firebird
Interbase
MySQL
Oracle
PostgreSQL
MS SQL
Versione
1,5
7,1
4,1
10g
7,4
2000
Licenza
IDPL OpenSource
Commeciale
GPL OpenSouce /
Commerciale
Commerciale
BSD OpenSource
Commerciale
Hardware*
Pentium
Pentium
Pentium
Pentium 166
Pentium
PII / K6
Piattaforma
Linux/Win32/
Solaris/ OsX /
FreeBSD
Linux/Win32/
Solaris
Linux /
Win32
Linux/WinNT/
Solaris/AIX
Unix /
Win32*
WinNT
Linguaggio
SQL92 Entry*
SQL92 Entry*
SQL92
Intermedio
SQL99
SQL92 Full*
SQL99
Store Procedures
SI
SI
NO
SI
SI
SI
Triggers
SI
SI
NO
SI
SI
SI
Views
SI
SI
NO
SI
SI
SI
Transactions
ACID
ACID
SI*
ACID
ACID
ACID
SMP / 64Bit
SI*
SI
NO
SI
SI
SI
* Hardware (S.O. Stabile)
* SQL92 con funzionalità SQL99
*Transactions: solo con Table InnoDB
Firebird è il meglio di tutti?

Sicuramente è meglio di “certi”
MySQL
 MS SQL
Può competere con “qualcuno”

L in u x
Da y
2 00 4

PostgreSQL
Può ambire a rimpiazzare delle applicazioni
commerciali



Oracle
 Progetto Fyracle www.janus-software.com/fb_fyracle.html
Chi sta dietro a Firebird?

Jim Starkey
Creatore della prima versione e massimo
esperto di DBMS
Firebird Foundation


Raccoglie fondi, organizza conferenze e ne
promuove l'utilizzo
IBPhoenix

L in u x
Da y
2 00 4

Software House tools per DBA e DEV
Gruppi di sviluppatori in tutto il mondo


L in u x
Da y
2 00 4
Chi lo usa?

Motorola

Nokia

Boeing

Boston Stock Exchange

NASA

“IO”
L in u x
Da y
2 00 4
Cominciamo ad usarlo!

Installazione

Amministrazione

OpenOffice

Programmazione


Perl
PHP
Installazione

Architettura
ClassicServer (CS)
 1 processo x connessione
 SuperServer (SS)
 Unico processo con + thread
Package
L in u x
Da y
2 00 4


RPM, Tarball, Repository (debian/portage)
Lancio e verifica


firebird start
netstat -an | grep 3050
tcp
0
0 0.0.0.0:3050
0.0.0.0:*
LISTEN
Amministrazione

Tools linea di comando (bin)

2 00 4

L in u x

Da y

Interactive SQL (isql)
 Interazione col DB
Database Backup e Restore (gbak)
 Hot Backup (crontab)
Security DB (gsec)
 Gestione Utenti DB
Manutenzione del DB (gfix)
 Integrità DB, transazioni sospese, alloca
la cache dei client
Tools di Amministrazione

PHP
IbaseAdmin pkedu.fbt.eitn.wau.nl/ibaseadmin/index.html
 IbWebAdmin sourceforge.net/projects/ibwebadmin
GUI LINUX


2 00 4
Da y
L in u x
IBAdmin4Linux www.sqlly.com/download.asp
 IBConsole (Borland)
JAVA


SQuirreL SQL squirrel-sql.sourceforge.net
VARI


www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_admin_tools
Integrazione OpenOffice

Requisiti:
Firebird (locale o server)
 Java2 installato (1.3 o 1.4)
 OpenOffice 1.1.1 con Java2 abilitato
 JayBird, driver JDBC di firebird
Configurazione OpenOffice:
L in u x
Da y
2 00 4




Strumenti-Opzioni-Sicurezza
 Files .jar in ClassPath
Classe Driver JDBC: org.firebirdsql.jdbc.FBDriver
L in u x
Da y
2 00 4
Integrazione OpenOffice
L in u x
Da y
2 00 4
Integrazione OpenOffice
L in u x
Da y
2 00 4
Integrazione OpenOffice
Programming: PERL

Utilizzando driver DBI

Installando il modulo per Interbase
 DBD::Interbase
#!/usr/bin/perl
L in u x
Da y
2 00 4
use DBI;
my
my
my
my
$myHost =
$myFileIB
$myUser =
$myPasswd
“localhost”;
= “prova.fdb”;
“SYSDBA”;
= “masterkey”;
$dbh = DBI->Connect
(“DBI:Interbase:database=$myFileIB;host=$myHost;ib_dialect=3”,$myUser,$myPasswd) or
die(“$DBI::errstr”;
$sth = $dbh->Prepare(“INSERT INTO MYTABLE (NOME) VALUES('ALESSANDRO')”);
if ($sth->Execute() < 0);
{
print “ERROR EXECUTE”;
}
Programming: PHP

Installare il modulo Interbase in PHP

with-interbase=/opt/firebird
$db = ibase_connect(MYDB,USERNAME,PASSWORD) or die("Errore Connessione DataBase!!! ");
$query = "SELECT * FROM USERS";
L in u x
Da y
2 00 4
$result = ibase_query($db,$query);
if (!$result)
{
while ($row = ibase_fetch_row($result))
{
$COD_USER = $row[0];
}
}else
{
printf("Errore %s",ibase_errmsg());
}
Links Utili

Sito Ufficiale
www.firebirdsql.org

Sito Italiano
L in u x
Da y
2 00 4
www.firebirdsql.it

IBPhoenix
www.ibphoenix.com

Tools di migrazione
www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_mig_tools
L in u x
Da y
2 00 4
Domande ?
L in u x
Da y
2 00 4
Grazie per l'attenzione
Alessandro Carichini
[email protected]