Firebird 5.0 のインストール,データベース作成,テーブル定義とレコード挿入(Ubuntu 上)

Firebird はリレーショナルデータベース管理システムである.Firebird 5.0 は,バックアップ・リストア・スイープの並列実行,SQL 文のプロファイリング,コンパイル済み文のキャッシュなど,性能とスケーラビリティに関する機能を備える.

目次

  1. Firebird のインストール(Ubuntu 上)
  2. ISQL の起動と終了
  3. データベースの作成
  4. テーブル定義とレコード挿入

関連する外部ページ

利用条件は,公式ページで確認すること.Firebird は IPL および IDPL のもとで配布され,商用利用も可能である.

Firebird のインストール(Ubuntu 上)

このページでは 5.0 系列の最新版である 5.0.4(2026年4月リリース)を用いる.Firebird 5.0 は Firebird 4.0 のデータベース(ODS 13.0)を開いて ODS 13.1 に更新できるが,Firebird 3.0 以前のデータベースは開けない.旧バージョンから移行するときは,事前に gbak でバックアップを取得する.

ダウンロード

  1. Firebird の Web ページを開く https://firebirdsql.org/
  2. ダウンロードページへジャンプ

    DOWNLOADS」をクリック

  3. Firebird 5.0」をクリック
  4. ファイルの選択

    64 ビット版の Ubuntu を使用しているときは, 「Linux x64」の tar.gz ファイル(Firebird-5.0.4.1812-0-linux-x64.tar.gz)を選択する.

インストール

  1. 前提ソフトウエアのインストール

    Firebird のサーバは libtommath,ISQL は libncurses を使用する.

    sudo apt update
    sudo apt -y install libtommath-dev libtommath1 libncurses-dev
    
  2. ディレクトリを作る
    sudo mkdir -p /usr/local/firebird
    sudo chown $USER /usr/local/firebird
    
  3. ダウンロードしたファイルを /usr/local/firebird にコピーする
  4. ダウンロードしたファイルを展開し,install.sh を実行する.
    cd /usr/local/firebird
    tar -xvzf Firebird-5.0.4.1812-0-linux-x64.tar.gz
    cd Firebird-5.0.4.1812-0-linux-x64
    sudo bash install.sh
    
  5. 続行するので,Enter キー
  6. データベース管理者(SYSDBA)のパスワードの設定
    HOGE$#34hoge5 のような英大文字・小文字・数字・記号を含む文字列を設定する.

    パスワードは,必ず独自に設定すること.設定したパスワードは /opt/firebird/SYSDBA.password に記録される.認証プラグイン Srp の仕様により,パスワードの有効長は約 20 バイトである.

  7. インストール終了の確認

    Firebird は /opt/firebird にインストールされ,firebird ユーザの権限でサービスとして動作する.

    sudo systemctl status firebird-superserver
    

ISQL の起動と終了

ISQL は Firebird に付属する対話型の SQL 実行ツールである.

データベースの作成

データベースを作成するために,SQL の create database コマンドを使用する.

  1. ISQL の起動

    データベース管理者の権限で起動する.

    cd /var/lib/firebird
    sudo /opt/firebird/bin/isql -u sysdba
    
  2. データベース生成

    データベースファイル名を相対パスで指定した場合,ISQL を起動したディレクトリにファイルが作成される.

    utf8 の場合

    create database 'testdb' default character set utf8;
    

    シフト JIS の場合.Firebird での文字セット名は SJIS_0208 である.

    create database 'testdb' default character set SJIS_0208;
    
  3. show database;」で,データベースが生成されたことを確認
    show database;
    
  4. exit;」で終了.
    exit;
    

テーブル定義とレコード挿入

  1. ISQL の起動

    データベースファイルのあるディレクトリで,データベース管理者の権限で起動する.

    cd /var/lib/firebird
    sudo /opt/firebird/bin/isql -u sysdba
    
  2. connect 'testdb';」で,データベースを開く.
    connect 'testdb';
    
  3. SQL を用いたテーブル定義

    CHECK 制約により,値の範囲を制限している.

    create table order_records (
        id            integer primary key not null,
        yy            integer not null CHECK ( yy > 2008 ),
        mm            integer not null CHECK ( mm >= 1 AND mm <= 12 ),
        dd            integer not null CHECK ( dd >= 1 AND dd <= 31 ),
        customer_name varchar(32) not null,
        product_name  varchar(32) not null,
        unit_price    numeric(10,2) not null check ( unit_price > 0 ),
        qty           integer not null check ( qty > 0 ),
        created_at    timestamp not null,
        updated_at    timestamp,
        check ( ( unit_price * qty ) < 200000 ) );
    
  4. SQL を用いたレコード挿入
    insert into order_records values( 1, 2020, 7, 26,  'kaneko', 'orange A', 1.2, 10, current_timestamp, NULL );
    insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 2, 2020, 7, 26,  'miyamoto', 'Apple M',  2.5, 2, current_timestamp );
    insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 3, 2020, 7, 27,  'kaneko',   'orange B', 1.2, 8, current_timestamp );
    insert into order_records (id, yy, mm, dd, customer_name, product_name, unit_price, qty, created_at) values( 4, 2020, 7, 28,  'miyamoto',   'Apple L', 3, 1, current_timestamp );
    
  5. 確認表示
    select * from order_records;
    
  6. 更新し確認表示
    update order_records set unit_price = 11.2 where id = 1;
    select * from order_records;
    
  7. コミット

    ISQL では既定でトランザクションが使用される.変更を確定するために commit を実行する.

    commit;
    
  8. テーブル一覧の表示
    show tables;
    
  9. exit;」で終了.
    exit;