キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
2024年のFirebird(展望)
0
    本エントリはFirebird Advent Calendar 2023 25日目のエントリです。
    # 実際に書いているのは2024-01-02です orz

    毎年ここにかく2023年のFirebirdについては、1日目のエントリに書きましたので、そちらをご覧ください。

    Firebird 2023年の振り返り

    現在、Firebird 5.0が開発中ですが、Firebird 4.0のレプリケーションような大きな機能追加はなく、
    細やかな改善のように見えます。(それはFirebird 4.0のODSバージョンが13.0に対して、13.1というのにも現れています)

    Firebirdは良くも悪くも現在の大きな流れに対して、既存のユーザー以外には中途半端な立ち位置にあると思います。

    SQLiteのように組み込みに特化して、高機能になる、というわけでもなく、
    かといってPostgreSQLやMySQLが目指す大規模対応、新しい試みのRDBMSのフロントエンドになる、というわけでもなく、
    かといってCloudで扱いやすい、というものでもありません。

    Firebird以外の2023年RDBMS界隈はどうでしたでしょうか?
    2年前にまとめたときから、さらにクラウド化が進んでいる現状です。

    2022年のFirebird

    こばさんのまとめをみると全貌がわかりやすいと思います。

    [個人的]データベースゆく年くる年(2023)

    残念ながらどこにもFirebirdが関連しそうな要素がありません。。。 orz

    2023年は世界五大クラウドからIBMが退場して、Oracleが入れ替わったような印象を受けます。

    2023年の世界におけるSaaS企業のトップ5社(MIICHISOFT)

    DBに固執せず、プラットフォームとしてのクラウドをすすめるために、Microsoft Azueとの連携や、
    PostgreSQLのマネージドサービスを提供したりしています。

    新しい流れとしては、東芝のGridDBからクラウドでFreeプランがでたり、
    ノーチラスのTsurugiがリリースされたり、ということがありました。

    GridDB自体は素晴らしいものだと思うのですが、いかんせん既存のOSSのフロントエンド(PostgreSQLやMySQL)ではなく、
    独自にしてしまったのが、つらいところ。そのため既存の開発者を取り込むところでつまずいている印象を受けます。

    Tsurugiはその点、NECさんにまかせてPostgreSQLをフロントエンドに据えたのは、いい割り切り具合だと思います。
    後はどれだけ開発者がTsurugi独自の文化を活かした実装をするか、その利点をユーザに伝えるか、で、
    Tsurugiを使おうとする人々をどれだけ巻き込んで、どれだけの教育をどれだけの期間でできるのか、にかかっていると思います。

    Firebirdは既存のユーザの要望に応えつつ、JDBCや.Netを使ったオンプレアプリの組み込み(同梱)データベースとして新規ユーザを獲得できるように地道な活動を期待します。

    JUGEMテーマ:コンピュータ



    | meijik | Firebird/InterBase | 23:27 | comments(0) | - | - | - |
    最新版のInterBase 2020 Update 5
    0
      本エントリはFirebird Advent Calendar 2023 24日目のエントリです。
      # 実際に書いているのは2023-12-31です orz

      Firebirdのフォーク元であるInterBaseは2020までは結構活発に開発されていましたが、2020以降は新バージョンは出ず、去年(2022年)12月にUpdate 4
      そして今年(2023年)10月ににUpdate 5が出たのみでした。

      Update4までの詳細は以下のエントリをご参照ください。

      InterBase 2020 リリース ノート

      Update5については、以下をご参照ください。

      Embarcadero InterBase 2020 Update 5 のリリース

      Update5については、ほぼバグ修正メインで、新規の機能追加とかはないようです。

      JUGEMテーマ:コンピュータ



      | meijik | Firebird/InterBase | 11:39 | comments(0) | - | - | - |
      Firebird 5.0 リリースノートを読む:MERGEでの PLAN, ORDER BYのサポート
      0
        本エントリはFirebird Advent Calendar 2023 23日目のエントリです。
        # 実際は2023-12-31に書いています orz

        本エントリに対応するリリースノートは次のエントリです。

        10. Data Manipulation Language (DML):Support PLAN and ORDER BY on MERGE

        MERGE INTO target [[AS] target_alias]
        USING <source> [[AS] source_alias]
        ON <join_condition>
        <merge_when> [<merge_when> ...]
        [PLAN <plan-expr>]
        [ORDER BY <ordering-list>]

        [RETURNING <returning_list> [INTO <variables>]]

        PLANやORDER BYについては、昨日のエントリをご覧ください。

        TsurugiもSQL的にはMERGEだけサポートすればいいと思ったけど、やることに対して構文が大仰すぎるからさけたのかなぁ。(TsurugiはMERGE未サポートです)

        Available SQL features in Tsurugi

        JUGEMテーマ:コンピュータ



        | meijik | Firebird/InterBase | 11:13 | comments(0) | - | - | - |
        Firebird 5.0 リリースノートを読む:「UPDATE OR INSERT」での PLAN, ORDER BY と ROWSのサポート
        0
          本エントリはFirebird Advent Calendar 2023 22日目のエントリです。
          # 実際は2023-12-30に書いてます orz

          本エントリに対応するリリースノートは次のエントリです。

          10. Data Manipulation Language (DML):Support PLAN, ORDER BY and ROWS on UPDATE OR INSERT

          UPDATE OR INSERT INTO
          target [(<column_list>)]
          [<override_opt>]
          VALUES (<value_list>)
          [MATCHING (<column_list>)]
          [PLAN <plan-expr>]
          [ORDER BY <ordering-list>]
          [ROWS <m> [TO <n>]]

          [RETURNING <returning_list> [INTO <variables>]]

          PLANは一般的なRDBMSでいうところのヒント句相当のものです。
          実行計画をPLANで表示して、それをクエリに指定することができますが、それがUPDATE OR INSERT(一般的にと呼ばれるUPSERT)も対応したものです。
          ユーザ指定のPLANの利用については以下のドキュメントが詳しいです。

          Improved PLAN Clause(Firebird 2.1マニュアル)

          オプティマイザが選ぶプランの表示はこちら

          OPTIMIZATION OF SQL QUERIES IN FIREBIRD

          またMySQLで利用できるORDER BYやLIMIT(同様のROWS)も対応しました。

          なお、UPSERTをUPDATE OR INSERTで表現するのは、今のところFirebirdのみ。
          そういえばノーチラスのTSURUGIも似たような表現だったなー、と検索したところ

          INSERT OR REPLACE

          でした。

          Tsurugiのダンプ・ロード機能

          # TsurugiのAdvent Calendarも今年(2023)あったんですねー。

          insert or replaceの例(ひしだま)

          上記のブログにもありますが、Tsurugiではinsert if not existsで存在しないデータだけのインサートもできます。

          しかし、さらに調べると別名でUPDATE OR INSERTも利用できるみたいです。

          update or insertの例(ひしだま)

          INSERT OR REPLACEはSQLiteでも利用できる表記で、さらに短縮したREPLACEも利用できます。

          MySQLでは古い表記でREPLACEを利用することもできます。ただMySQLのREPLACEはUPDATE相当の記述ができますが、SQLiteやTsurugiのINSERT OR REPLACEは、INSERT相当の記述しかできないようです。

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 21:19 | comments(0) | - | - | - |
          Firebird 5.0 リリースノートを読む: OPTIMIZE FOR句
          0
            本エントリはFirebird Advent Calendar 2023 21日目のエントリです。

            本エントリに対応するリリースノートは次のエントリです。

            10. Data Manipulation Language (DML):OPTIMIZE FOR 句

            SELECT
            ...
            [WITH LOCK [SKIP LOCKED]]
            [OPTIMIZE FOR {FIRST | LAST} ROWS]

            この機能により、ユーザーアプリケーションによって最初にサブセット、または行のみがフェッチされる場合 (残りの行はオンデマンドでフェッチされる)、オプティマイザは別の (できればより良い) 計画を検討できるため、応答時間が改善されます。

            # OPTIMIZE FOR 句は、最上位の SELECT でのみ使用できます。

            類似のOPTIMIZE FOR 句はIBM Db2にも用意されておりOPTIMIZE FOR n ROWSで指定します。これはFIRST相当の行数指定になります。LAST相当の指定はありません。

            JUGEMテーマ:コンピュータ



            | meijik | Firebird/InterBase | 06:34 | comments(0) | - | - | - |
            Firebird 5.0 リリースノートを読む: カッコで囲まれたクエリー式
            0
              本エントリはFirebird Advent Calendar 2023 20日目のエントリです。

              本エントリに対応するリリースノートは次のエントリです。

              10. Data Manipulation Language (DML):Allow parenthesized query expressions

              MySQL 8.0.22で実装され、関連して以前以下のエントリでFirebirdでの状況を説明した「カッコで囲まれたクエリー式(parenthesized query expressions)」がFirebird 5.0で実装されました。

              MySQL 8.0.22が来た! カッコで囲まれたクエリー式(Parenthesized Query Expressions)(キムラデービーブログ)

              リリースノートに書かれている以下の効果が期待できます。

              「これにより、特にUNIONステートメントで、より表現力豊かなクエリが可能になりました。
               特定のORMによって生成されたステートメントとの互換性が高まります」

              JUGEMテーマ:コンピュータ



              | meijik | Firebird/InterBase | 08:40 | comments(0) | - | - | - |
              Firebird 5.0 リリースノートを読む: SKIP LOCKED句
              0
                本エントリはFirebird Advent Calendar 2023 19日目のエントリです。

                本エントリに対応するリリースノートは次のエントリです。

                10. Data Manipulation Language (DML):SKIP LOCKED clause

                SKIP LOCKEDはロックを伴うSELECT (MySQL/PostgreSQLではFOR UPDATE, FirebirdではWITH LOCK)で利用でき、これにより他のトランザクションによってロックされたレコードを待機せずにスキップできます。

                これがFirebird 5.0で実装されました。もともとはOracle DBの方言です。

                Oracle  : ○
                SQL Server: ○(PASTREAD)
                Db2 : ○(SKIP LOCKED DATA)
                PostgreSQL: ○(9.5)
                MySQL : ○(8.0)
                Firebird : ○(5.0)
                SQLite : ×(指定しても無視)
                SQL標準 : ×

                用途としては以下のようなシナリオがあります。

                PostgreSQLのSKIP LOCKEDを使ってテーブルをキューとして使用する(Enjoy*Study)

                ロッキングリードのNOWAITとSKIP LOCKEDオプションについて(MySQL道普請便り)

                JUGEMテーマ:コンピュータ



                | meijik | Firebird/InterBase | 22:30 | comments(0) | - | - | - |
                Firebird 5.0 リリースノートを読む: 部分インデックス(Partial indices)
                0
                  本エントリはFirebird Advent Calendar 2023 17日目のエントリです。

                  本エントリに対応するリリースノートは次のエントリです。

                  9. Data Definition Language (DDL):Support for partial indices

                  ここでいう「部分インデックス(Partial indices)」は、WHERE句で指定する以下のインデックスのことです。

                  Microsoft SQL Server:フィルター選択されたインデックス
                  PostgreSQL:部分インデックス

                  これがFirebird 5.0で実装されました。

                  # MySQLでいう長さで指定する(PREFIX的な)インデックスとは違います。

                  JUGEMテーマ:コンピュータ



                  | meijik | Firebird/InterBase | 15:39 | comments(0) | - | - | - |
                  SQL:2023 Firebirdの場合:A new part for PGQ(property graph queries)
                  0
                    本エントリはFirebird Advent Calendar 2023 14日目のエントリです。

                    本エントリの元ネタは以下のエントリです。

                    SQL:2023 is finished: Here is what's new(Peter Eisentraut)

                    さすがにFirebird, MySQL, PostgreSQLでさえも、PGQには未対応です。

                    オラクルからはOracle DBでPGXを使ったガイドが以下のようにありますが、
                    まぁオープンソース関連にまで波及するには、数年〜十数年かかりそうです。

                    プロパティ・グラフ開発者ガイド

                    JUGEMテーマ:コンピュータ



                    | meijik | Firebird/InterBase | 21:13 | comments(0) | - | - | - |
                    SQL:2023 Firebirdの場合:JSON features
                    0
                      本エントリはFirebird Advent Calendar 2023 13日目のエントリです。

                      本エントリの元ネタは以下のエントリです。

                      SQL:2023 is finished: Here is what's new(Peter Eisentraut)

                      Firebirdでは今回のSQL標準でのJSON拡張というより、そもそもネイティブのJSON型をサポートしておりません。
                      一応以下のような機能リクエストは出ていますが、未実装です。

                      Support native JSON datatype for columns as MySQL / PostgreeSql [CORE5148]

                      "as MySQL / PostgreSQL"といっているように、まずPostgreSQL, 次にMySQLでネイティブのJSON型データタイプそして、関連する関数などが現在提供されています。

                      MySQL 5.7以降で対応
                      5.7->8.0で順に拡張され、最新は8.0

                      MySQL 8.0のマニュアル
                      11.5 JSON データ型
                      12.18 JSON 関数

                      PostgreSQL 9.2以降、最新は16
                      PostgreSQL 15の日本語マニュアル
                      8.14. JSONデータ型
                      9.16. JSON関数と演算子

                      以下の技術ドキュメントでPostgreSQL9.2から12まで、どのように拡張されていったのかまとめがあります。

                      【最新版】PostgreSQLのJSONの仕様 – 各バージョンのリリース内容

                      JUGEMテーマ:コンピュータ



                      | meijik | Firebird/InterBase | 06:00 | comments(0) | - | - | - |
                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << March 2024 >>
                      + RECOMMEND
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

                      100人のうちの一人としてミックさんの本を推薦しています。
                      + RECOMMEND
                      MySQL 5.1 Plugin Development
                      MySQL 5.1 Plugin Development (JUGEMレビュー »)
                      Andrew Hutchings,Sergei Golubchik
                      MySQL 5.1 のプラグインを作るならこれ!
                      + RECOMMEND
                      AWKを256倍使うための本 (Ascii 256倍)
                      AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
                      志村 拓,鷲北 賢,西村 克信
                      ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
                      + RECOMMEND
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
                      松信 嘉範
                      Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
                      + RECOMMEND
                      + RECOMMEND
                      超・極める!MySQL
                      超・極める!MySQL (JUGEMレビュー »)
                      坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
                      内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
                      + RECOMMEND
                      The Root of .NET Framework
                      The Root of .NET Framework (JUGEMレビュー »)
                      荒井 省三
                      .NETの根っこをつかむ、か?
                      + RECOMMEND
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
                      奥野 幹也
                      これまでにない構築、そして構築後のMySQLのための本。
                      + RECOMMEND
                      Database Management Systems
                      Database Management Systems (JUGEMレビュー »)
                      Raghu Ramakrishnan,Johannes Gehrke
                      ミックさん連載の参考書籍です。
                      + RECOMMEND
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
                      W. Richard Stevens,Stephen A. Rago
                      必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
                      + RECOMMEND
                      + RECOMMEND
                      + RECOMMEND
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

                      DELL SX260の換装用に購入。今はコチラのほうが安いですね。
                      + RECOMMEND
                      情熱プログラマー ソフトウェア開発者の幸せな生き方
                      情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
                      Chad Fowler
                      OSC2010神戸に出展されたジュンク堂で買いました。
                      + RECOMMEND
                      Software Design 総集編 【2000~2009】(DVD付)
                      Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

                      メガトン級の過去記事。売り切れる前にお店に急げ!
                      + RECOMMEND
                      + RECOMMEND
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

                      Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
                      + RECOMMEND
                      + RECOMMEND
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

                      色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
                      + RECOMMEND
                      Firebird 徹底入門
                      Firebird 徹底入門 (JUGEMレビュー »)
                      木村 明治,はやし つとむ,坂井 恵
                      Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
                      + SELECTED ENTRIES
                      + RECENT COMMENTS
                      • 最新のSQL標準(SQL:2023)とFirebird/MySQL/PostgreSQL
                        kitayama_t (12/24)
                      • オープンセミナー2008@岡山
                        meijik (10/15)
                      • 2022年のFirebird
                        tetsuyat@ac.wakwak.com (01/24)
                      • 内藤 陽哉(ないとうようや)先生を偲んで
                        高村京夏 (11/07)
                      • 「エイリアンズ」から入る人のための極私的「キリンジ/KIRINJI」入門
                        meijik (05/02)
                      • 「エイリアンズ」から入る人のための極私的「キリンジ/KIRINJI」入門
                        k (05/01)
                      • Firebird 4.0のレプリケーション(6) 非同期レプリケーション
                        小林正樹 (12/02)
                      • MySQL ProとMySQL Expertを立ち読みする+α
                        MEIJI KIMURA (09/14)
                      • たまたま「プリントヘッドの種類が違います」エラーから復活@MG6230
                        meijik (11/20)
                      • [ミュージシャンに聴かせたい・弾かせたい!] (4) 山田元気様
                        meijik (07/27)
                      + RECENT TRACKBACK
                      + CATEGORIES
                      + ARCHIVES
                      + MOBILE
                      qrcode
                      + LINKS
                      + PROFILE