キムラデービーブログ

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

    近年、また活気を取り戻してきたFirebird Conference. 今年開催のFirebird Conference 2016の資料は以下のURLにて公開されています。

    Firebird Conference 2016 papers

    来年はここらへんをネタに勉強会やりたいと思います。

    カンファレンス参加は。。。。なんとか再来年を目標に。。。。

    JUGEMテーマ:コンピュータ



    | meijik | Firebird/InterBase | 23:43 | comments(0) | trackbacks(0) | - | - |
    Firebird 3.0の書籍(Migration Guide to Firebird 3)
    0
      本エントリはFirebird Adventcalendar 2016の21日目です。

      現在Firebird 3.0用に出ている書籍はブラジルのカルロスが書いた以下の本のみです。

      Migration Guide to Firebird 3 (Firebird News)

      英語版とポルトガル語があります。

      英語版を出版直後に購入したのに、まだ読めてません。年末年始の宿題にするかな。。。。

      JUGEMテーマ:コンピュータ



      | meijik | Firebird/InterBase | 23:07 | comments(0) | trackbacks(0) | - | - |
      使い慣れたSQLに潜む実装依存(PostgreSQLの場合)とSQL標準の参照方法
      0
        使い慣れたSQLに潜む実装依存(PostgreSQLの場合)とSQL標準の参照方法

        本ブログエントリはPostgreSQL Advent Calendar 2016の20日目です。

        Firebirdの場合、はこの記事をはじめとしてAdvent Calendarで11回にわたり解説したので、PostgreSQLについては
        それをコンパクトに一回でまとめます :)

        PostgreSQLの場合、他のRDBMSやSQL標準と比較して違った動作は以下のところです。

        (1) GREATEST(1,2,NULL)で、NULLではなく2を返す
        (2) CURRENT_TIMESTAMPで、ステートメントの開始時刻(==現在時刻)ではなく、トランザクション開始時刻を返す
        (3) SELLECT NULL || 'ABC'はNULLを返すのに(SQL標準ぽい動作), SELECT CONCAT(NULL, 'ABC')は'ABCを返す(Oracleぽい動作)
        (4) UPDATE文による主キー値の入れ替えで、エラー(SQL標準っぽくない動作), DEFERRABLE指定で回避できる。

        (2) について、ステートメントの開始時刻を得るにはstatement_timestamp()、関数が評価された時間を得るには
        clock_timestamp()を利用します(OracleやMySQLでいうところのsysdate)。
        transaction_timestamp()とnow()はPostgreSQLのcurrent_timestamp, つまりトランザクション開始時の日付時刻の別名です。

        PostgreSQLはかなりSQL標準を意識したつくりになっているので、上記のように違和感を感じる動作は少ないです。

        さて、他のRDBMSとの比較、は比較的簡単にできますが、SQL標準はこれまで参照するのはなかなか難しい状態でした。基本的に規格書は有料で、ひとつのパートについて数万円くらいしたからです。(私は以前Club DB2でストアドやトリガーの話をするために規格書の一部分を購入しましたが、値段がそのくらいしました)

        現状ではISOをベースとしたJISの規格書(X3005, X3006)がオンラインの閲覧は無料でできるようになっているので、ぜひ参照してみてください。ただ私の環境ではWindowsでIEを使って閲覧しないとうまく閲覧できませんでした。
        以下は「日本工業標準調査会ウェブサイト」へのリンクです。

        JISX3005-1
        JISX3005-2
        JISX3005-13
        JISX3005-14
        JISX3006-1

        これらのなりたちと原規格書との対応・相違は以下のpdfに詳しいです。

        データベース言語(SQL)に関するJIS原案作成委員会 成果報告書

        JUGEMテーマ:コンピュータ



        | meijik | PostgreSQL | 23:18 | comments(0) | trackbacks(0) | - | - |
        使い慣れたSQLに潜む実装依存: Firebirdの場合(12) UPDATE文による主キーの入れ替え
        0
          本エントリはFirebird Adventcalendar 2016の17日目です。

          使い慣れたSQLに潜む実装依存:3.構文とトランザクション UPDATE文による主キーの入れ替え

          まぁMySQLと同じでだめな感じですorz 素朴な実装なので。。。。

          SQL> create table table1(c1 int primary key);
          SQL> insert into table1 values(1);
          SQL> insert into table1 values(2);
          SQL> update table1 set c1 = case c1 when 1 then 2 when 2 then 1 end;
          Statement failed, SQLSTATE = 23000
          violation of PRIMARY or UNIQUE KEY constraint "INTEG_15" on table "TABLE1"
          -Problematic key value is ("C1" = 2)

          これはできるのが正しくて、できないMySQLやFirebirdは仮の数字をワーク変数として
          ひとつのトランザクションでやるしかないですねぇ。

          CASE式を使用して、主キーを入れ替える方法 SQL(開発チームのブログ)

          まぁそもそも「主キーの入れ替えすんな」と思っちゃいますがね :)

          さて、しのはらさんのLTに頼りきりの今回の連載(?) 今回で終了です。次回までにネタを探します。

          ありがとうございましたm(_ _)m しのはらさん

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 00:18 | comments(0) | trackbacks(0) | - | - |
          使い慣れたSQLに潜む実装依存: Firebirdの場合(10) ORDER BY でのNULLの扱い
          0
            本エントリはFirebird Adventcalendar 2016の17日目です。

            使い慣れたSQLに潜む実装依存:3.構文とトランザクション ORDER BY

            最新のFirebird 3.xでは、MySQL, SQL serverと同様にNULLは最小として扱われます。

            SQL> create table table_name(column_name int);
            SQL> insert into table_name values(1);
            SQL> insert into table_name values(2);
            SQL> insert into table_name values(3);
            SQL> insert into table_name values(null);
            SQL> insert into table_name values(null);
            SQL> comiit;

            SQL> select * from table_name order by 1;

            COLUMN_NAME
            ============
            <null>
            <null>
            1
            2
            3

            SQL> select * from table_name order by 1 desc;

            COLUMN_NAME
            ============
            3
            2
            1
            <null>
            <null>

            またNULLS FIRST, NULLS LASTもサポートされています(Firebird 1.5以降)

            SQL> select * from table_name order by 1 asc nulls last;

            COLUMN_NAME
            ============
            1
            2
            3
            <null>
            <null>

            SQL> select * from table_name order by 1 desc nulls first;

            COLUMN_NAME
            ============
            <null>
            <null>
            3
            2
            1

            Firebird 特有の仕様として、Firebird 1.xではNULLは必ずSORT結果の最後にくる、
            というものがありました。これは2.0で現在の仕様(最小)に変更されました。詳細は
            次のドキュメントをご参照ください。

            Sorts

            ミックさんが翻訳した「プログラマのためのSQL 第4版」でも7.3.2 ORDER BY句にて
            同様のトピックがあがっています。しかしNULLS FIRST, NULLS LASTを「これはもともと、DB2と
            Oracleに実装されていた機能だ。」というのは誤りでは? というのも、LUW版DB2で
            NULLS FIRST, NULLS LASTがサポートされたのは9.x (おそらくは9.5)ですから。

            SQL ServerのようにNULLS FIRST, NULLS LASTをサポートしてない環境にて
            ORDER BY時のNULLの出現位置をコントロールしたい場合は、以下のブログエントリを参考にしてください。

            FirebirdSQLパズル: 2-1-18 nulls Firstとnulls Last(キムラデービーブログ)

            この方法はDBFluteでも利用されたようです :)

            MySQLではVal IS NULLを使うこともできます。

            JUGEMテーマ:コンピュータ

            | meijik | Firebird/InterBase | 00:17 | comments(0) | trackbacks(0) | - | - |
            使い慣れたSQLに潜む実装依存: Firebirdの場合(9) 予約語
            0
              本エントリはFirebird Adventcalendar 2016の12日目です。

              使い慣れたSQLに潜む実装依存:3.構文とトランザクション 予約語

              Firebirdは2.5の時点のものですが、以下にまとめられています。

              Appendix B: Reserved words and keywords – full lists

              予約語が167, 予約語を含む「キーワード」というくくりが364語です。(予約語すべてと記号20個含む)

              Firebirdで特徴的なのはデータベースのミラーを作成するシャドウデータベース機能に使うSHADOWとか、

              SHADOW

              InterBaseのオリジナルのエラーコードGDSCODEとかですかね。

              GDSCODE

              もともとInterBaseは米国マサチューセッツ州ゴートンで開発され、
              そのときの社名はゴートン・データベース・システム(GDS)だったので、
              ソースのそこかしこにGDSとか、そのときの開発に使われたコードネーム
              (ダッドリー、バープ、アリス)とか散らばっています。来歴は以下。

              How InterBase came to be−InterBaseはどのようにして生まれたか−

              As Jim Starkey remembers it−Jim Starkeyによる回想−

              JUGEMテーマ:コンピュータ



              | meijik | Firebird/InterBase | 09:36 | comments(0) | trackbacks(0) | - | - |
              使い慣れたSQLに潜む実装依存: Firebirdの場合(8) 暗黙の型変換
              0
                本エントリはFirebird Adventcalendar 2016の11日目です。

                使い慣れたSQLに潜む実装依存:2.データ型と演算子 暗黙の型変換

                最近のFirebirdではPostgreSQLのように厳密になっており、どちらもエラーになります。

                SQL> select '123' + '456' from rdb$database;
                Statement failed, SQLSTATE = 42000
                Dynamic SQL Error
                -expression evaluation not supported
                -Strings cannot be added or subtracted in dialect 3

                SQL> select '123' + 'XYZ' from rdb$database;
                Statement failed, SQLSTATE = 42000
                Dynamic SQL Error
                -expression evaluation not supported
                -Strings cannot be added or subtracted in dialect 3

                ここでInterBase/Firebirdで特有の概念dialectがあります。
                dialectについては次のブログエントリをご参照ください。

                Firebirdでの数値の扱い方を知る(キムラデービーブログ)

                一時的にdialectを当該セッションのみ1に変更することが可能です。

                これを設定すると、動作がInterBase 6.0より前のものにすることができます。
                この場合の動作は、OracleとDB2と同じです。

                SQL> set sql dialect 1;
                WARNING: Client SQL dialect has been set to 1 when connecting to Database SQL dialect 3 database.
                SQL> select '123' + '456' from rdb$database;

                ADD
                =======================
                579.0000000000000

                SQL> select '123' + 'XYZ' from rdb$database;

                ADD
                =======================
                Statement failed, SQLSTATE = 22018
                conversion error from string "XYZ"

                Oracle, DB2, Firebirdではコンバートエラーになった+ 'XYZ'をそのまま全体のエラーしてあげますが、MySQLでは + 'XYZ'を無視して、'123'だけ返す、という仕様です。ちゃんとWarningはでてます。

                mysql> select '123' + 'XYZ';
                +---------------+
                | '123' + 'XYZ' |
                +---------------+
                | 123 |
                +---------------+
                1 row in set, 1 warning (0.02 sec)

                mysql> show warnings;
                +---------+------+-----------------------------------------+
                | Level | Code | Message |
                +---------+------+-----------------------------------------+
                | Warning | 1292 | Truncated incorrect DOUBLE value: 'XYZ' |
                +---------+------+-----------------------------------------+
                1 row in set (0.00 sec)

                SQL Serverの場合は 文字列に対する + は文字列連結記号なので、
                この動作はしかたないですね。。。

                JUGEMテーマ:コンピュータ



                | meijik | Firebird/InterBase | 10:38 | comments(0) | trackbacks(0) | - | - |
                使い慣れたSQLに潜む実装依存: Firebirdの場合(7) INSERT時のスペース
                0
                  本エントリはFirebird Adventcalendar 2016の10日目です。

                  使い慣れたSQLに潜む実装依存:2.データ型と演算子 INSERT時のスペース

                  ここでもFirebirdは多数側、つまりOracleとVertica以外のRDBMSと同じ結果を返します。

                  SQL> create table table1(c1 char(3),c2 varchar(3));
                  SQL> insert into table1 values('ABC ','AB ');
                  SQL> select * from table1;

                  C1 C2
                  ====== ======
                  ABC AB

                  ちょっとわかりにくいので、c2にちゃんと後続のスペースがついているかどうか確認すると。。。

                  SQL> select octet_length(c1),octet_length(c2) from table1;

                  OCTET_LENGTH OCTET_LENGTH
                  ============ ============
                  3 3

                  まぁOracleではきっとchar型でも後続のスペースをとらずに入れようとして
                  カラム定義長にひっかかっているのでしょうか?

                  ただ、VARCHARにちゃんと後続の空白付で入ったからといって、油断をしてはなりません。

                  Firebirdは(そしてMySQLも)文字列比較セマンティクスは「空白埋め」だからです。
                  そのため、たとえばc2にユニーク制約をつけると、'AB 'が入っているカラムに
                  'AB'はインサートできません。ユニーク制約違反になります。詳細はMySQL用に書いた
                  以下のブログをご参照ください。

                  MySQLの文字列比較セマンティクスは「空白埋め」

                  JUGEMテーマ:コンピュータ



                  | meijik | Firebird/InterBase | 20:58 | comments(0) | trackbacks(0) | - | - |
                  MySQL 8.0 Lab版でCTE(Common Table Expression)
                  0
                    本エントリはMySQL Casual Advent Calendar の9日目です。

                    MySQL Lab坂の8.0 (Optimizer)では、CTEが実装されています。詳しくは次のエントリをどうぞ。

                    MySQL 8.0 Lab版: MySQLの (再帰)共通テーブル式(CTE)

                    まあじっくり攻めるなら上記エントリでいいのですが、ここは簡単にざっくり動かしてみます。

                    まずlab坂の当該パッケージはRHEL7のtarballとソースしか配布されていません。
                    このtarballをCentOS7のmysql sandboxで動かします。

                    [2016-12-27 追記] MySQL Sandboxは3.2.xからMySQL 8.0に対応しており、現時点での最新3.2.04では
                    8.0.0としてインストールもユーザテーブル作成も大丈夫です。私が試したのは3.1.xでその際には
                    以下の代替作業が必要でした。

                    //->ここから代替作業
                    解凍して8.0.0にディレクトリ名を8.0.0とすると動きませんので、まぁ一番近い5.7の、
                    まぁ使わないバージョンとして5.7.1としてインストールして、make_sandbox 5.7.1とします。

                    ユーザテーブルがうまく作成されないみたいなので、my.sandbox.cnfを以下のようにします。

                    [client]
                    #user = msandbox
                    user = root
                    #password = msandbox

                    ./start
                    ./use

                    で起動、ログイン可能です。データベースtestをつくり、

                    create database test;
                    //<-ここまで代替作業

                    ここ十年くらい使っている以下のサンプルを作成します。

                    階層構造を隣接リストで表現

                    こんな感じで、テーブル、データをつくり、

                    use test;
                    CREATE TABLE shain(empid INT PRIMARY KEY, name VARCHAR(20), mgrid INTEGER) charset=utf8;
                    INSERT INTO shain VALUES ( 1, 'みやはら', NULL);
                    INSERT INTO shain VALUES ( 2, 'きむら', 1);
                    INSERT INTO shain VALUES ( 3, 'かまたき', 1);
                    INSERT INTO shain VALUES ( 4, '加藤', 2);
                    INSERT INTO shain VALUES ( 5, '林', 2);
                    INSERT INTO shain VALUES ( 6, '三浦', 5);

                    以下のクエリを実行します。

                    mysql > WITH RECURSIVE n AS
                    -> (
                    -> SELECT empid, name FROM shain WHERE name = 'きむら'
                    -> UNION ALL
                    -> SELECT nnext.empid, nnext.name FROM shain as nnext, n WHERE n.empid= nnext.mgrid
                    -> )
                    -> SELECT * FROM n;
                    +-------+-----------+
                    | empid | name |
                    +-------+-----------+
                    | 2 | きむら |
                    | 4 | 加藤 |
                    | 5 | 林 |
                    | 6 | 三浦 |
                    +-------+-----------+
                    4 rows in set (0.00 sec)

                    キモは上記のように初期集合を求めるSELECTと再帰集合を求めるSELECTをUNION ALLし、
                    それに共通表名をつけ、SELECTするところです。

                    WITH RECURSIVE 共通表名 AS
                    (
                    初期集合を求めるSELECT
                    UNION ALL
                    再帰集合を求めるSELECT
                    )
                    SELECT * FROM 共通表名

                    ではでは。
                    | meijik | MySQL | 20:59 | comments(0) | trackbacks(0) | - | - |
                    使い慣れたSQLに潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
                    0
                      本エントリはFirebird Adventcalendar 2016の8日目です。

                      使い慣れたSQLに潜む実装依存:2.データ型と演算子 文字列の結合演算子

                      Firebirdの場合、ここでの多数を占めるように結果はNULLとなります。
                      またCONCAT関数はありません。

                      SQL> select null || 'ABC' from rdb$database;

                      CONCATENATION
                      =============
                      <null>

                      SQL> select concat(null,'ABC') from rdb$database;
                      Statement failed, SQLSTATE = 39000
                      Dynamic SQL Error
                      -SQL error code = -804
                      -Function unknown
                      -CONCAT

                      文字列の結合で片方がNULLの場合に、結果がNULLになるのは当然の結果で、
                      NULLにならないOracle DBとSQL Serverが「おかしい」のですが、
                      これはNULLを特別視する両者の歴史的な理由によるものだと思います。

                      NULLとの戦いRDBMS実装編

                      なお、しのださんの資料でMySQLの||は論理和ということですが、

                      mysql> select null || 'abc';
                      +---------------+
                      | null || 'abc' |
                      +---------------+
                      | NULL |
                      +---------------+
                      1 row in set, 1 warning (0.00 sec)

                      mysql> show warnings;
                      +---------+------+-----------------------------------------+
                      | Level | Code | Message |
                      +---------+------+-----------------------------------------+
                      | Warning | 1292 | Truncated incorrect DOUBLE value: 'abc' |
                      +---------+------+-----------------------------------------+
                      1 row in set (0.00 sec)

                      sql_modeにpipes_as_concatを設定すれば、||をconcatとして利用できます。
                      まぁ結果は同じくNULLなんですけどね。

                      mysql> set sql_mode='pipes_as_concat';
                      Query OK, 0 rows affected (0.00 sec)

                      mysql> select null || 'abc';
                      +---------------+
                      | null || 'abc' |
                      +---------------+
                      | NULL |
                      +---------------+
                      1 row in set (0.00 sec)

                      文字列結合、後は結合結果がどの型で戻るか、オーバーフローエラーが
                      あるか、というのは各RDBMSとバージョンにより違うと思います。
                      みなさんお使いのもので確認してみてください。ちなみにFirebirdは以下です。

                      || (string concatenator)

                      JUGEMテーマ:コンピュータ



                      | meijik | Firebird/InterBase | 20:07 | comments(1) | trackbacks(0) | - | - |
                          123
                      45678910
                      11121314151617
                      18192021222324
                      252627282930 
                      << June 2017 >>
                      + RECOMMEND
                      + RECOMMEND
                      IS <インフィニット・ストラトス> アンコール『恋に焦がれる六重奏』 [Blu-ray]
                      IS <インフィニット・ストラトス> アンコール『恋に焦がれる六重奏』 [Blu-ray] (JUGEMレビュー »)

                      原作第四巻の映像化(らしい)この売れ具合で二期の制作可否が決まる??
                      + RECOMMEND
                      プロのための Linuxシステム構築・運用技術 (Software Design plus)
                      プロのための Linuxシステム構築・運用技術 (Software Design plus) (JUGEMレビュー »)
                      中井 悦司
                      Linuxの構築・システム運用について非常にコンパクトにうまくまとまった本。
                      + RECOMMEND
                      + RECOMMEND
                       (JUGEMレビュー »)

                      インターネットラジオ。これ以外は全滅か。。。
                      + RECOMMEND
                      + 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
                      実践ハイパフォーマンスMySQL 第2版
                      実践ハイパフォーマンスMySQL 第2版 (JUGEMレビュー »)
                      Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling
                      待望の日本語版登場!英語版には日々お世話になっていますm(_ _)m
                      + RECOMMEND
                      High Availability MySQL Cookbook
                      High Availability MySQL Cookbook (JUGEMレビュー »)
                      Alex Davies
                      MySQL Clusteringを書いたAlexの新作。
                      + RECOMMEND
                      MySQL High Availability: Tools for Robust Data Centers
                      MySQL High Availability: Tools for Robust Data Centers (JUGEMレビュー »)
                      Charles Bell,Mats Kindahl,Lars Thalmann
                      Expert MySQLの著者とMySQLのエンジニアが書いたHAの本。
                      + 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
                      + RECOMMEND
                      間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus)
                      間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus) (JUGEMレビュー »)
                      Tom Engelberg
                      技術評論社から献本されました。ありがとうございました。
                      + RECOMMEND
                      プログラマーのためのソースコードを読む技術
                      プログラマーのためのソースコードを読む技術 (JUGEMレビュー »)
                      高木 信尚
                      技術評論社から献本されました。ありがとうございました。
                      + RECOMMEND
                      カレーの心得 (エイムック 1979)
                      カレーの心得 (エイムック 1979) (JUGEMレビュー »)

                      カレー特集。レシピも多々ありよい感じです。
                      + RECOMMEND
                      おとなの週末 2010年 07月号 [雑誌]
                      おとなの週末 2010年 07月号 [雑誌] (JUGEMレビュー »)

                      カレー特集。新しいお店も多くはいっていてグッド!!
                      + RECOMMEND
                      SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers)
                      SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers) (JUGEMレビュー »)
                      Bill Karwin
                      俗にいう「落とし穴(Pitfalls)」本のSQL版。チト期待。
                      + RECOMMEND
                      + RECOMMEND
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
                      奥野 幹也
                      これまでにない構築、そして構築後のMySQLのための本。
                      + RECOMMEND
                      12ステップで作る組込みOS自作入門
                      12ステップで作る組込みOS自作入門 (JUGEMレビュー »)
                      坂井 弘亮
                      KOZOSプロジェクト坂井さん渾身の一冊。この一冊が組み込み開発の明日を作るといっても過言ではありません!!
                      + RECOMMEND
                      シンクロニシティーン
                      シンクロニシティーン (JUGEMレビュー »)
                      相対性理論
                      ねらわずさわがず、まさかのVocal回帰のアルバム。ここが相対性理論の分水嶺か?!
                      + RECOMMEND
                      Oh!
                      Oh! (JUGEMレビュー »)
                      少女時代
                      K-POP最前線。かわいいだけではない韓国アイドルの底力が見えます!
                      + RECOMMEND
                      「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
                      「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか (JUGEMレビュー »)
                      小森 裕介
                      技術評論社から献本されました。ありがとうございました。
                      + RECOMMEND
                      Database Management Systems
                      Database Management Systems (JUGEMレビュー »)
                      Raghu Ramakrishnan,Johannes Gehrke
                      ミックさん連載の参考書籍です。
                      + RECOMMEND
                      WEB+DB PRESS Vol.56
                      WEB+DB PRESS Vol.56 (JUGEMレビュー »)
                      WEB+DB PRESS編集部
                      ミックさんの新連載はじまりました。
                      + 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
                      ゼロから学ぶ!最新データベース (日経BPパソコンベストムック)
                      ゼロから学ぶ!最新データベース (日経BPパソコンベストムック) (JUGEMレビュー »)

                      最新のデータベース勉強ムック。付録はMS SQL Server Express Edition.
                      + RECOMMEND
                      Kaspersky Internet Security 2010 1年版 鷹の爪コラボパック
                      Kaspersky Internet Security 2010 1年版 鷹の爪コラボパック (JUGEMレビュー »)

                      た〜か〜の〜つ〜め〜。
                      ファンにうれしいコラボパック。
                      + RECOMMEND
                      Software Design ( ソフトウェアデザイン ) 2010年 02月号 [雑誌]
                      Software Design ( ソフトウェアデザイン ) 2010年 02月号 [雑誌] (JUGEMレビュー »)

                      Key-valueストアのまとめ(memcached除く)と松信さんのMySQL短期連載1回目(4回予定)が掲載されています。
                      + RECOMMEND
                      日経ソフトウエア 2010年 01月号 [雑誌]
                      日経ソフトウエア 2010年 01月号 [雑誌] (JUGEMレビュー »)

                      やはりビギナーには日経ソフトウエアかな。
                      + RECOMMEND
                      Linuxで作るアドバンストシステム構築ガイド (18Network Server Construction Guide)
                      Linuxで作るアドバンストシステム構築ガイド (18Network Server Construction Guide) (JUGEMレビュー »)
                      デージーネット
                      名著といわれた「Linuxアドバンストネットワークサーバ構築ガイド〜HAサーバ構築編」の改訂版です。要チェック!
                      + 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
                      WEB+DB PRESS Vol.54
                      WEB+DB PRESS Vol.54 (JUGEMレビュー »)
                      WEB+DB PRESS編集部
                      ミックさんの連載、いつも見てます。
                      + RECOMMEND
                      SoftwareDesign(ソフトウェアデザイン) 2010年 01月号 [雑誌]
                      SoftwareDesign(ソフトウェアデザイン) 2010年 01月号 [雑誌] (JUGEMレビュー »)

                      特集「LLとオープンソースに学ぶコードを読む技術」に寄稿いたしました。
                      + RECOMMEND
                      厳選!旨い焼鳥焼きとん130店 完全保存版 (Town Mook)
                      厳選!旨い焼鳥焼きとん130店 完全保存版 (Town Mook) (JUGEMレビュー »)

                      Firebirdといえばこれでしょう、というのは嘘ですが、おいしい焼き鳥、焼き豚のお店で満杯です。
                      + RECOMMEND
                      Firebird 徹底入門
                      Firebird 徹底入門 (JUGEMレビュー »)
                      木村 明治,はやし つとむ,坂井 恵
                      Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
                      + RECOMMEND
                      MySQLデータベース構築バイブル
                      MySQLデータベース構築バイブル (JUGEMレビュー »)
                      志村 和彦,松信 嘉範,池田 徹郎
                      志村さん、松信さん、池田さん、ととにかく濃いこの一冊。構築バイブルというよりHackに近いです。
                      + RECOMMEND
                      MySQL全機能バイブル ~現場で役立つAtoZ~
                      MySQL全機能バイブル ~現場で役立つAtoZ~ (JUGEMレビュー »)
                      鈴木 啓修
                      名著「
                      MySQL全機能リファレンス」はバージョン4.xまでの対応でしたが、今回装いも新たに5.1まで対応しての発売です。
                      + 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