キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
Firebird 3 に移行するときに考慮すべき事柄(4) メタデータのチェック
0
    本エントリはFirebird Advent Calendar 2017の5日目です。

    著者のカルロスから許可をいただいて、Things to consider when migrating to Firebirdの日本語訳を
    四回に分けてお知らせいたします。今回が四回目です。四回の予定でしたが、結論は五回目に持ち越しましたorz

    Firebird 3 に移行するときに考慮すべき事柄(4) メタデータのチェック

    メタデータのチェック


    大事なことをひとつ言い残しましたが、既存のメタデータにも注意を払うべきです。
    移行に必要とされるバックアップ/リストアはトリガーとプロシジャのソースをリコンパイルしません。
    そしてバックアップ/リストアがうまくいっても、実際にデータベースを使う段になって、ひどく驚くことになるかもしれません。

    新しい予約語とクエリのプランが変わる可能性をチェックする必要があります。
    Firebird 3.0.2はすでにいくつかのオプティマイザーの問題を修正済みです。
    その問題はいくつかのクエリがFirebird 2.5よりFirebird 3.0のほうがパフォーマンスが悪い、というものです。
    私としては3.0.0, 3.0.1をスキップして3.0.2でFirebird 3.xをスタートすることをお勧めします。

    メタデータのソースがFirebird 3.0上で100%互換性がある、と確認する簡単な方法は、
    メタデータをSQLに抜き出し(isql -x)、そのスクリプトをFirebird 3.0 (isql -i)で実行し、
    新しいデータベースを作る、というものです。
    実行中に中断した場合には、本番環境に移行する前に、問題を修正する必要があります。

    もっともよくある問題は、変数やオブジェクトの名前がFirebird 3.0の予約語(reserved words)になったことに関係するものです。
    もちろん、それらのをダブルクォーテーションで囲めば回避できますが、
    そのように考える前に注意深く考えるべきで、
    囲んでしまうと、名前はケースセンシティブになり、結局既存のクエリの多くをリライトすることになるかもしれませんし、今後新しいコードでそれらの名前を参照する場合、常に正しいケースで書く必要がでてくるのです。永遠に。

    JUGEMテーマ:コンピュータ

    | meijik | Firebird/InterBase | 22:39 | comments(0) | trackbacks(0) | - | - |
    Firebird 3 に移行するときに考慮すべき事柄(3)セキュリティ拡張とワイヤプロトコル
    0
      本エントリはFirebird Advent Calendar 2017の4日目です。

      著者のカルロスから許可をいただいて、Things to consider when migrating to Firebirdの日本語訳を
      四回に分けてお知らせいたします。今回が三回目です。

      Firebird 3 に移行するときに考慮すべき事柄(3)セキュリティ拡張とワイヤプロトコル

      セキュリティ拡張
      Firebird 3はまた、拡張されたセキュリティをもたらします。
      すべてのネットワークトラフィックはデフォルトで暗号化されます)が、
      データベースファイルの暗号化は、デフォルトのプラグインが提供されていないため、オプションとなります。
      ユーザは自分自身で作成するか、サードパーティのもの(たとえばIBSurgeonやIBphoenixから)を購入することができます。

      新しい「ローカルデータベースユーザ」コンセプトが、コピー可能でほかのサーバに持っていかれるかも知れない、
      盗まれたデータを守ってくれるのでは? と考えて、自分を欺くのはやめましょう。そのようなケースではよくできた暗号化
      プラグインのみがあなたを守ってくれます。

      MGTFB3本では、データを守りたいときに、あなたの注意すべき部分について記述しました。
      Firebird 3 デフォルトのインストールでは、C++のサンプルコードdbCryptプラグインが同梱されます。
      これを自身の実装のベースとすることはできますが、「そのまま」提供されたサンプルをコンパイルして、
      実環境に利用しないでください。なぜならこれは実際の防御を提供していないからです。あくまで「サンプル」なのです!

      ワイヤプロトコル
      Firebird 3 の他の改善部分としてワイヤプロトコルがあります。Firebirdのワイヤプロトコルは非常に「おしゃべり」なことで
      知られています。つまり、クライアントとサーバ間で多くのやりとりが発生します。ローカルネットワークでは、このことは
      ほとんど気づかれません。しかしながら、インターネットを介してリモートデータベースにアクセスする純粋なクライアント・
      サーバのアプリケーションであったり、ハイレイテンシのネットワークを介する場合には、もしかしたらあなたはすでに
      「おしゃべり」なプロトコルを強いられ、悪いパフォーマンスに苦しめられていたかもしれません。

      Firebird 2.1でこのエリアのいくつかの改善が行われたのは事実です。しかしながら、Firebird 3 では別次元の改善が行われ、
      BLOBを必要以上に使わず、SELECT文を注意深く書けば、リモートサーバに接続する純粋なクライアント・サーバアプリケーション
      でも、よいパフォーマンスで動作させることが十分に可能なのです。実はFirebird 3のワイヤプロトコル拡張は
      ブラジルで行われたFDD(Firebird Developders Day) 9th で集められた寄付にスポンサーされたものです。

      (四回目に続く)

      JUGEMテーマ:コンピュータ



      | meijik | Firebird/InterBase | 23:58 | comments(0) | trackbacks(0) | - | - |
      MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank)
      0
        MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank)

        本エントリはMySQL Casual Advent Calendar 2017の3日目です。

        MySQL 8.0ではウインドウ関数がサポートされる予定である最新の8.0.3 RCで実際に動作させることが可能です。

        12.19.1 Window Function Descriptions

        高度な使い方の代表例としては、以下のように自己結合の代替する、というものですが、

        津島博士のパフォーマンス講座 第47回 自己結合と分析ファンクションについて
        Window関数(Let's PostgreSQL)

        今回はカジュアル! ということで、誰でも考えなく使えそうなrank, dense_rankを説明します。
        (これまでは、下記のような遅い方法か、これこれのようにユーザ変数を利用した方法しか使えませんでした)

        オープンソースデータベースでの順位(dense_rank, rank)の取得(キムラデービー)

        上記の方法をウインドウ関数を使ってリプレイ!

        create table emp(sal int);
        insert into emp values(800);
        insert into emp values(1600);
        insert into emp values(1250);
        insert into emp values(2975);
        insert into emp values(1250);
        insert into emp values(2850);
        insert into emp values(2450);
        insert into emp values(3000);
        insert into emp values(5000);
        insert into emp values(1500);
        insert into emp values(1100);
        insert into emp values(950);
        insert into emp values(3000);
        insert into emp values(1300);

        -- dense_rank()
        select dense_rank() over(order by sal) rnk, sal from emp;

        +-----+------+
        | rnk | sal |
        +-----+------+
        | 1 | 800 |
        | 2 | 950 |
        | 3 | 1100 |
        | 4 | 1250 |
        | 4 | 1250 |
        | 5 | 1300 |
        | 6 | 1500 |
        | 7 | 1600 |
        | 8 | 2450 |
        | 9 | 2850 |
        | 10 | 2975 |
        | 11 | 3000 |
        | 11 | 3000 |
        | 12 | 5000 |
        +-----+------+
        14 rows in set (0.00 sec)

        -- rank()
        select rank() over(order by sal) rnk, sal from emp;

        +-----+------+
        | rnk | sal |
        +-----+------+
        | 1 | 800 |
        | 2 | 950 |
        | 3 | 1100 |
        | 4 | 1250 |
        | 4 | 1250 |
        | 6 | 1300 |
        | 7 | 1500 |
        | 8 | 1600 |
        | 9 | 2450 |
        | 10 | 2850 |
        | 11 | 2975 |
        | 12 | 3000 |
        | 12 | 3000 |
        | 14 | 5000 |
        +-----+------+
        14 rows in set (0.00 sec)

        MySQL 8.0からはウインドウ関数に加えてCTE(Common Table Expression)も利用できます。
        MySQL 8.0での実装はSQL標準のSELECTのみならず、更新(UPDATE/DELETE)もできますが、
        (MariaDBやFirebirdの実装はSELECTのみ)
        現在ウインドウ関数の実装の制限により、以下のようなケースでは更新不可です。。。。
        (元ネタはMyNAメーリングリストの明智さんの投稿から)

        CTE with window function don't work with update/delete as expected.



        [追伸]
        ググると以下のようなエントリがすでにありましたorz

        MySQL 8.0.2 DMRでウィンドウ関数がサポートされたので、RANK関数を試してみる(Qiita)

        JUGEMテーマ:コンピュータ



        | meijik | MySQL | 11:39 | comments(0) | trackbacks(0) | - | - |
        Firebird 3 に移行するときに考慮すべき事柄(2)ユーザ管理の変更
        0
          本エントリはFirebird Advent Calendar 2017の2日目です。

          著者のカルロスから許可をいただいて、Things to consider when migrating to Firebirdの日本語訳を
          四回に分けてお知らせいたします。

          Firebird 3 に移行するときに考慮すべき事柄(2)ユーザ管理の変更

          ユーザ管理の変更

          Firebird 3 はバックアップ/リストアが必須です、が、それがすべてではありません!
          Firebird 3 の主要な成果は、フルにスケールする一方で
          今までどおり接続間の共有キャッシュも提供する、SuperServerの提供です。
          しかし開発者は(ユーザーが)長い間待っていたほかのいくつかの機能も実装しました。
          そしてそれらの機能のいくつかは、大きな再作業と、(新しい)コンセプトの導入が求められます。
          たとえばFirebird 3では、同じ名前の違うユーザを持つことが可能です。「ん、何だって? どのように??」
          可能なのです。Firebird 3 はユーザ管理プラグイン(User Manager Plugin)のコンセプトが取り入れられ、
          そこで各プラグインはそれぞれ個別のユーザ群をもっています。

          あなたが新しいユーザをFirebird 3で作成するとき、どのプラグインを使いたいか設定することができます。
          つまり、ひとつのプラグインでパスワード'1234'の'JOHN'(ジョン)と、
          他のプラグインでパスワード'5678'の'JOHN'を作成できるのです。
          これは少し混乱しますし、しばしばユーザに不可能なことをしてむだ骨を折らせる方向に導いてしまうかもしれません。
          特にドキュメントを注意深く読まず、ユーザ管理の新しいコンセプトに気づかない場合には。

          また、ユーザ管理における別の変更点には、メインデータベースの中にユーザ(ローカルユーザ)を作成できるようになり、
          他のセキュリティデータベースに作成できるようになり、ユーザ管理(create/delete/updating ussers)は
          SQLステートメントで行えるようになりました。そのため以前のバージョンのセキュリティデータベース(securityx.fdb)から
          Firebird 3へ、既存のユーザを現在のパスワードを保持したままの移行方法がないことを、思い起こさねばなりません。
          しかしながら、Firebird 3では以前のパスワードの最大長(8文字)の制限のかわりに、255-byte長までのパスワードがサポートされました。

          Firebird 3のインストールから提供されているsecurity_database.sqlスクリプトが既存のユーザアカウントの
          Firebird 3での作成に役立つかもしれません。このスクリプトは古いセキュリティデータベースから既存のユーザを読み込み、
          名前と属性を走査し、Firebird 3上で、同じユーザをgen_uuid関数で作成したランダムパスワードとともに作成します。
          実行時には、ユーザの名前と、生成されたパスワードを表示します。

          ユーザ管理の変更については、MGTB3 Bookにおいて、一章全部を使って説明しています。

          (3日目に続く)

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 23:45 | comments(0) | trackbacks(0) | - | - |
          Firebird 3 に移行するときに考慮すべき事柄(1)
          0
            本エントリはFirebird Advent Calendar 2017の1日目です。

            著者のカルロスから許可をいただいて、Things to consider when migrating to Firebirdの日本語訳を
            四回に分けてお知らせいたします。

            Firebird 3 に移行するときに考慮すべき事柄

            カルロス H Cantu (2017年10月) ドキュメントバージョン1.01
            www.firebirdnews.org
            www.firebase.com.br

            バックアップとリストアは必須です!

            かつて新しいFirebirdバージョンへの移行は、常に非常に簡単なプロセスだと考えられていました。
            多くの人々は古いFirebirdのバージョンをアンインストールし、新しいものをインストールしていました。
            そのうちの何人かはデータベースのODSを新しいバージョンにするための、バックアップ/リストアもわずらわしいと考え
            実行しませんでした。しかし、それは「悪いアイデア」です。
            いくつかの新しい機能はODSとクライアントが最新のもののときのみ利用できます。

            Firebirdの新しいバージョンへの移行は、バージョンにかかわらず、常にバックアップとリストアを行い、
            クライアントライブラリ(fblient)をクライアントとサーバ両方の環境でアップデートすることを心に留めてください。
            Firebird 3への移行について、バックアップ/リストアは推奨ではなく、必須です。

            Firebird 3 は古いODS(ODS < 12)への接続はできません。つまり、より古いバージョンで作成されたデータベースへの接続はできません。
            私(カルロス)の書籍Firebird3へのマイグレーションガイド(MGTFB3: Migration Guide to Firebird 3)に記述したとおり
            gbakのバックアップとリストアを実行して、ODSをアップデートする必要があります。
            特にバックアップは古いFirebirdバージョンがまだ動作している間に取得しなければなりません。

            gbakは「普通の」クライアント/サーバアプリケーションだと考えてください。
            つまりgbakは接続するFirebirdに依存して、処理を行います。処理のほとんどは
            すべてのデータベース構造とデータを読み、そして、それらをバックアップファイルにセーブします。
            もし、あなたがすでにFirebird 3を以前のバージョンに上書きしてインストールしていたとしたら、
            gbakはより古いODSのデータベースには接続できず、バックアップを取得することができないでしょう。

            (2日目に続く)

            JUGEMテーマ:コンピュータ



            | meijik | Firebird/InterBase | 01:01 | comments(0) | trackbacks(0) | - | - |
            PostgreSQL9.6以降同期レプリケーションは名前どおりのモード(synchronous_commit=remote_apply)あり!@PGECons勉強会 #1
            0
              OSSDBの世界を漂う木村明治です。

              PostgreSQLエンタープライズ・コンソーシアム(PGECons)が初めての勉強会をする、というので参加してきました!

              PGECons勉強会 #1明日から使えるPostgreSQLレプリケーション

              短時間でいろいろな知見が得られてThanksモニカ、というところですが、
              特に以前以下のブログでdisり気味にとりあげたものを本エントリでアップデートします。

              PostgreSQL9.1の同期レプリケーションはMySQL5.5でいうところの準同期レプリケーション相当ですよ(キムラデービーブログ)

              以下の図は上記勉強会の資料からの引用(p.37)です。(資料自体は上記connpassから辿れます)



              PostgreSQL 9.6以降、synchronous_commitにremote_applyが設定できるようになり、
              これは、まさにユーザが「同期レプリケーション」と聞いて想像するものと一致するようになりました。この図の(1)-(5)までで、MySQLに相当するものは大まかにいうと、

              (1) マスターでsync_binlog=0
              (2) マスターでsync_binlog=1
              (3) 該当なし
              (4) 準同期レプリケーション
              (5) 該当なし

              気になるのはパフォーマンスですけど、とりあえずPGEConで検証した結果は資料を見てみてください!!

              JUGEMテーマ:コンピュータ

              | meijik | PostgreSQL | 23:42 | comments(0) | trackbacks(0) | - | - |
              TECH PLAYのSQL講座(非エンジニア・マーケター向け)にメンター参加&BigQuery補足
              0
                首記の件、TECH PLAYの小沢さんがFBで募集していたので、気軽にメンターに申し込んだ。

                ミックさんと初心者向けの本を書いているので、初心者・非技術者がどこらへんでわからなくなるか興味があったのだ。

                【満席御礼&メンターさんが増えたので増枠20→40名】ワンランク上のマーケターになれる!− データ分析ができるマーケターになろう!SQL講座 −(非エンジニア・マーケター向け講座)

                資料は上記リンクからたどれます。

                開始前に資料を読んでTypo指摘して、あわよくばクエリ自体にも突っ込もうと思ったけど、それは無理で
                本番突入。淡々とハンズオンをこなして、無事終了しました。

                やはりこう、初心者にはGROUP BYとHAVINGが巨大な壁として立ちはだかりましたね。
                ここらへんはやはりミックさんのキリン本がお勧めです。わかりやすいので。

                それ以外はSQLの「方言」今回はGoogle の BigQueryを使ってました。
                おそらくは「レガシーSQL」を利用したもので、特にどんなRDBMSを利用しても、同じクエリが使える、
                というものではないので、本ブログエントリで少し補足しておきます。

                (1) limit
                (2) contains
                (3) strftime_utc_usec
                (4) timestamp関数
                (5) exact_count_distinct

                以下順に説明していきます。

                (1) limit
                クエリの結果行から指定行数を表示する指定です。LIMIT句はSQL標準ではありませんが、
                もともと実装していたMySQLに加えて、その後PostgreSQL、IBMのMySQL互換モードONにて利用できるようになりました。SQL標準ではSQL2008にてFETCH FIRST m ROWSの構文が定められRDBMSの商用御三家で利用できます。詳しくは
                以下のエントリをご参照ください。

                [#ouchidbボツ原稿シリーズ]縦横に長い表を画面表示に収めるには?(キムラデービーブログ)

                (2) contains
                 元々はRDBMSの商用御三家で利用できる自然言語検索拡張です。使い方もBigQueryでは、以下ですが、

                WHERE title contains('ボーカロイド')

                 商用御三家では以下のようになりますし、拡張機能が本体とは別に必要だったり(DB2, Oracle), Express版では使えなかったり(Microsoft SQL Server)します。

                WHERE contains(title, 'ボーカロイド')

                標準SQLでは以下のクエリが同じ結果を返しますが、通常中間一致ではインデックスが利用できないため、遅くなります。

                WHERE title like '%ボーカロイド%';

                (3) strftime_utc_usec
                 timestamp型の列を書式指定して、文字列にします。strftimeは元々Cの関数からきていて、そこからPHPとか
                RDBでいうとSQLiteなどでstrftimeとして使えます。
                 RDBMSの世界ではOracle DBがTO_CHARを利用していたせいで、同様の構文がIBM DB2, PostgreSQLで利用できます。
                なのでBigQueryのこれ、

                STRFTIME_UTC_USEC(upload_time,"%Y-%m")

                書式は大文字小文字の意味が違う以下、つまり2017-11のような形式になります。

                %y西暦の下2桁 (世紀部分を含まない年) (00-99)。
                %Y世紀部分を含めた ( 4 桁の) 西暦年。
                %m月 (10 進数表記)。 (01-12)
                %M分 (10 進数表記) (00-59)

                これは、以下の方法でいけるはず。

                TO_CHAR(upload_time,'YYYY-MM')

                Microsoft SQL Serverはいろいろ難しいけど、2012以降ならFORMAT関数で以下のようにいけるはず

                FORMAT(upload_time, 'YYYY-MM')

                参考: T-SQL 日付をフォーマットされた文字列に変換する(SQL Server入門)

                実は日付指定フォーマットがBigQueryと他のRDBMSでは違うんですよね。%Y -> YYYY, %m -> MM

                ただし、MySQLではdate_formatを使ってBigQuery(strftime)と同じように使えます。

                mysql< select date_format(now(),'%Y-%m');
                +----------------------------+
                | date_format(now(),'%Y-%m') |
                +----------------------------+
                | 2017-11 |
                +----------------------------+
                1 row in set (0.00 sec)

                (4) timestamp関数
                文字列からtimestamp型に変換するために利用しています。TO_CHARがサポートされているRDBMSでは
                その逆となる(?) TO_TIMESTAMPが用意されているのでそれが使えます。
                 またMySQLのように暗黙のキャストがされるばあいは、文字列そのままでもかまいません。
                SQL標準にのってるならCAST関数が使えますが、timestamp型が変換先に用意されているとは限りません。

                 ただ、元々のtimestamp型がみんなが想像するtimestamp型とは違うMicrosoft SQL Serverの例もありますし、

                TIMESTAMP型の位置づけ(HHeLiBeXの日記 正道編)

                MySQLも元々、類似のMicrosoft SQL Server類似の機能をtimestamp型のデフォルトにしていたのに、MySQL 5.6からは
                それから離れて、単にTZ(Time Zone)コンシャスな型によせてきた、とう経緯もあります。

                11.3.5 TIMESTAMP および DATETIME の自動初期化および更新機能(MySQL5.6日本語マニュアル)

                 BigQueryの場合もレガシーSQLと標準SQLでは違いがあり、その違いsafeな、safe_castなるcastがあったりします。

                TIMESTAMPの違い(標準 SQL への移行)

                (5) exact_count_distinct
                これはSQL標準ではcount(distinct カラム名)になります。ただ、BigQueryでは、精度ではなく、速度をとっているので、countには第二引数で精度が指定できますし、内部的な最適化をするため(?) にそれようの関数を用意しています。

                COUNT([DISTINCT] field [, n])(クエリリファレンス)

                この(1)-(5)を意識すると、BigQuery以外のRDBMSでも、同じようなクエリが利用できると思います。

                JUGEMテーマ:コンピュータ



                | meijik | データベース | 23:49 | comments(0) | trackbacks(0) | - | - |
                Effective SQL 日本語版が発売されます
                0
                  評価:
                  John L. Viescas,Douglas J. Steele,Ben G. Clothier
                  翔泳社
                  ¥ 3,780
                  (2017-12-15)
                  コメント:期待しています。邦訳がでるということで、期待しています。

                  おはようございます。朝六時から以下の流れで。。。。

                  (1) 翔泳社からの20%クーポンの案内
                  (2) いろいろザッピング
                  (3) "Effective SQL"を見つける
                  (4) 原著は去年発売
                  (5) kindle版原著が半額で買う
                  (6) Oreilly Safariにあるのを見つけてがっくりorz <-イマココ

                  原著のよさげな日本語レビューがありますので、とりあえずこちらをどうぞ

                  書評:Effective SQL

                  とりあえず日本語版がでたら、購入して読書会でもやりますかね〜

                  JUGEMテーマ:コンピュータ



                  | meijik | クロスデータベース | 08:45 | comments(0) | trackbacks(0) | - | - |
                  漁火アジフライカレー@大手町蜂の家
                  0
                    長崎カレーだそうな。季節限定メニュー
                    | meijik | カレー | 13:07 | comments(0) | trackbacks(0) | - | - |
                    グリーンカレー@六本木一丁目FISH
                    0
                      | meijik | カレー | 13:37 | comments(0) | trackbacks(0) | - | - |
                           12
                      3456789
                      10111213141516
                      17181920212223
                      24252627282930
                      31      
                      << December 2017 >>
                      + 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に潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
                        noname (12/10)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 2015年版 InterBaseの歩み
                        nakagami (12/06)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (11/22)
                      • 分散DB本読書会第46回メモ「STOP AFTER 10」
                        masudahidehiko (09/01)
                      • Windows上でのMySQLビルド方法
                        kinoyasu (03/31)
                      • 気軽に新しいMySQLを試してみる: MySQL Sandboxのススメ
                        MeijiK (09/19)
                      • 伝わらない曲シリーズ: 川島恵「ミスター不思議」
                        96 (07/05)
                      • 気軽に新しいMySQLを試してみる: MySQL Sandboxのススメ
                        MeijiK (02/17)
                      + RECENT TRACKBACK
                      + CATEGORIES
                      + ARCHIVES
                      + MOBILE
                      qrcode
                      + LINKS
                      + PROFILE