InterBaseから第一歩を踏み出したFirebird 2.0の紹介

Firebird日本ユーザー会

加藤 大受

Agenda

Firebirdとは

Firebirdの概要

製品概要

ミドルウェア

Firebird 2.0

Firebird日本ユーザー会について

Firebirdのサポート企業

Firebirdとは

InterBaseとは？

Borland Software Corp.が開発・販売

全世界で累計出荷本数100万本以上

バージョン

1983年 Version 1.0

1986年 Version 2.0

1988年 Version 3.0

1992年 Version 3.3(インターナショナル版)

Version 3.2J(初めての日本語版)

1994年 Version 4.0

1997年 Version 5.0

2000年 オープンソース版InterBase V6.0

2001年 Version 6.5

2003年 Version 7.0

最新版はInterBase 7.1

Firebirdとは

Firebirdとは

2000年7月25日にInprise Corp.(現在のBorland Software Corp.)がＩｎｔｅｒＢａｓｅ 6.0のソースコードをInterBase Public Licenseにて公開され、このソースコードをベースにプロジェクトがスタート

InterBaseは1983年に Version 1.0がリリースされた非常に古いRDBMS

Firebird Foundationがスポンサーになり、Firebird Projectが製品を開発

2002年3月12日 : InterBase 6.0とフルコンパチブルのFirebird 1.0がリリース

2004年2月21日 : Firebird 1.5がリリース

2004年12月26日 : Firebird 1.5.2がリリース

2005年3月21日 : Firebird 2.0 Alpha-01リリース

Firebirdの歴史に関する資料

参考URL

インターベースロードマップ（木村明治翻訳）

http://www.geocities.jp/kimura804/rdb/cvalde/IbRoadmap_j.htm

How InterBase came to be（林 務翻訳）

http://tech.firebird.gr.jp/firebird/index.php?firebird_xsite=34

Firebirdの特徴

Ｆｉｒｅｂｉｒｄの特長(NO DBA)

簡単なインストールと環境設定

データベースの初期サイズの設定が不要

ユーザー領域、ロールバック領域、テンポラリ領域の設定が不要

Virtual I/O

ガーベージコレクション

最低限のチューニングで最適なパフォーマンスを提供

オンラインでデータベースのバックアップ作業が可能

最適なクエリを実現するクエリオプティマイザを搭載

経済的な設計

Ｆｉｒｅｂｉｒｄの特長(No DBA)

インデックスのガーベージコレクション

OS の不安定さをカバーする Guardianプロセス

同一バージョンでのデータベースの完全な互換性

他のプラットフォームからのデータベースファイルのコピーで対応可能

マルチデータベースファイル対応

履歴型エンジンの採用

Firebird のアーキテクチャ

ANSI SQL 1992/1999準拠

拡張 SQL(DSQL)

ストアドプロシージャ

トリガー

Domain 定義

ジェネレータ

InterBase 5.x/6.0との互換性

SQL DIALECT

Firebirdの特徴

安定性

商用製品をベースにしており、非常に安定したアーキテクチャを利用

他のオープンソースRDBMSと異なり、頻繁なリビジョンアップがない

Windowsプラットフォームでの安定稼働

Firebird のアーキテクチャ

イベントアラータ

データの更新をイベントとしてクライアントに伝える Firebird の独自機能

UDF(ユーザー定義関数)

DelphiやC++で簡単に作成が可能

多次元配列

16次元までの配列をサポートするデータ型

Blob フィルタ

サブタイプを変換するライブラリを登録しておくことで JPEG <-> GIF などの変換が可能

Firebirdの特徴

統一されたアーキテクチャ

Firebirdのすべての機能がDLLとして提供されているシングルサーバのEmbedded ServerからServerプラットフォーム版まで統一機能が提供されている

シングルユーザ向けとマルチユーザ向けの製品を同一ソースで開発が可能

Firebird 1.0

2002年３月にリリース

InterBase 6.0と100%の互換性

リリースプラットフォーム：

Windows, Linux, FreeBSD, Solaris, MacOS X, AIX, HP-UX

Linux版は glibc 2.2系(Red Hat 7.3,AS 2.1, SuSE Linux 8)

Firebird 1.5

2004年3月にリリースされ、現在2004年12月にリリースされた1.5.2が最新版

Firebird 1.0からの変更点

ファイル名の変更

メモリ効率の改良

メモリ上でのソート機能を実装

新しいメモリマネージャの実装

SuperServer版でXNEXプロトコルの対応

ローカル共有メモリの利用

Class版でのSMP対応の強化

Firebird 1.5

SQLの改良

「CASE」句、「COALESCE」句、「NULLIF」句をサポート

「GROUP BY」句への以下の機能をサポート

内部関数

サブクエリー

列のエイリアス名

数値（列の位置）

「SELECT FIRST X」と「ORDER BY」をサブクエリーでサポート

SELECT文での明示的ロックのサポート

SELECT ... FOR UPDATE WITH LOCK

EXECUTE STATEMENT文のサポート

トリガー・プロシージャでのSAVE POINTのサポート

Firebird 1.5

仕様改良

1テーブル64インデックスの制限を撤廃

メタデータのコンパイルのタイミングの変更

ソースコードをCからC++へ変更

Firebird対応のミドルウェア

Jaybird

タイプ4のJDBCドライバ

最新バージョンは1.5.5

Firebird .Net Data Provider

.Net対応ドライバ（C#で書かれている）

最新バージョンは1.6.3

IBProvider

OLE DB Provider

最新版は2.4.2

http://www.ibprovider.com/eng/index.html

Firebird ODBC Driver

最新バージョンは1.2

Firebird対応ミドルウェア

Delphi/C++Builder用のコンポーネント

IBObjects

http://www.ibobjects.com/

Jason wharton氏が開発し、有償でソースコード付で販売されている

FIBPlus

http://www.devrace.com/en/fibplus/

ロシアのDevrace社が開発・販売

Firebird対応のミドルウェア

PHP

InterBase関数を利用することで対応可能

Windowsの場合

extension=php_interbase.dll

UNIX／Linuxの場合

configure時に --with-interbase=/opt/firebirdを付けてPHPのコンパイルを行う

その他の言語

Perl, Zope, Rubyなどのスクリプト言語でも利用することが可能

Firebird関連のツール

IBOConsole

フリーのFirebird／InterBase用の管理ツール

http://www.mengoni.it/downloads.html

日本語UI対応

Marathon

フリーのFirebird／InterBase用の管理ツール

http://alanti.net/firebird/marathon/

その他のプロジェクト

Fyracleプロジェクト

Janus Software社が開発しているOracleのPL/SQLをFirebirdに移植するコンパイラとランタイム

コンパイラは有償、ランタイムはフリーライセンス

Janus Software社Fyracleについて(英文)

http://www.janus-software.com/fb_fyracle.html

Firebird 2.0

Firebird 2.0

2005年３月21日にAlpha 01リリース

ODSバージョンが11に変更

レコード番号の対応

40bit (内部は64-bit)のレコード番号に対応し、30GBのサイズ制限を撤廃

Raw Deviceの対応

Raw Deviceにデータベースの格納が可能

ガーベジコレクションの改良

バックグランド処理対応

Firebird 2.0

導出テーブルのサポート

SELECT

<select list>

FROM

<table reference list>

<table reference list> ::= <table reference> [{<comma> <table reference>}...]

<table reference> ::=

<table primary>

| <joined table>

<table primary> ::=

<table> [[AS] <correlation name>]

| <derived table>

<derived table> ::=

<query expression> [[AS] <correlation name>]

[<left paren> <derived column list> <right paren>]

<derived column list> ::= <column name> [{<comma> <column name>}...]

Firebird 2.0

CREATE SEQUENCE構文

SQL:1999のCREATE SEQUENCE構文のサポート

CREATE GENERATORからの移行を推奨

構文

CREATE { SEQUENCE | GENERATOR } <name>

DROP { SEQUENCE | GENERATOR } <name>

SET GENERATOR <name> TO <start_value>

ALTER SEQUENCE RESTART WITH <start_value>

GEN_ID (<name>, <increment_value>)

NEXT VALUE FOR <name>

Firebird 2.0

EXECUTE BLOCK構文

DSQLで使用できる名前のないプロシージャ

構文

EXECUTE BLOCK [ (param datatype = ?, param datatype = ?, ...) ]

[ RETURNS (param datatype, param datatype, ...) }

AS

[DECLARE VARIABLE var datatype; ...]

BEGIN

...

END

Firebird 2.0

その他の構文拡張

CROSS JOIN構文の追加

ROW句の追加

SELECT ...

[ORDER BY <expr_list>]

ROWS <expr1> [TO <expr2>]

CURRENT_TIMESTAMP関数およびNOW関数がミリ秒単位に変更

GROUP BY句で任意の式に対応

GROUP BY

SUBSTRING(CAST((A * B) / 2 AS VARCHAR(15)) FROM 1 FOR 2)

ORDER BY句で列番号に対応

SELECT * FROM RDB$RELATIONS ORDER BY 9

Firebird 2.0

インデックスの拡張

Firebird 1.5までの252バイトのインデックス長を撤廃し、ページサイズまで対応可能

インデックスページへの物理データ格納を廃止し、インデックスはレコード番号を保存

インデックスの再構築問題への対応

セキュリティの強化

ハッシュアルゴリズムをDESからSHA-1に変更

Vulcan Project

Vulcan Project

InterBaseの初代アーキテクトだったJim Starkey氏が開発している新しいアーキテクチャを持ったFirebird

スケラビリティの向上

64ビットCPUの対応

SMPの強化／クラスタリング対応

スレッド対応の強化

SQLの改良

DSQLを外部からエンジン内部に取り込み

FirebirdではSQLはいったんgpreで処理されるGDMLに変換され処理されていたが、VulcanではSQLをネイティブにサポート

詳細資料

http://www.ibphoenix.com/downloads/VulcanOverview.pdf

Firebird日本ユーザー会について

Firebird日本ユーザー会

2004年4月に設立

国内におけるFirebirdのさらなる浸透を促進するための非営利・中立な任意団体

これまでの実績

2004年6月

第１回セミナーの実施

2004年9月

オープンソースカンファレンス2004出展

Project Administratorのニコライ氏を招へいし、テクニカルセミナーを実施

ニコライ氏へのインタビューの実施

http://www.itmedia.co.jp/enterprise/articles/0409/16/news085.html

Firebird日本ユーザー会

現在の活動

Webページでの技術情報の配信

http://www.firebird.gr.jp

メーリングリストの提供

http://groups.yahoo.co.jp/group/Firebird-jp-general/

日本語による技術情報の提供

セミナー企画

［参考］Firebirdの有料サポート

株式会社ヒューメント社が2005年４月１日より、Firebirdの有料サポートを始めるそうです

詳細は03/30のプレスリリースにて

これからもFirebirdおよびFirebird日本ユーザー会を よろしくお願いします。

Firebirdの歴史と概要

dkato

2004-06-17T02:30:42

加藤大受