キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
使い慣れた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) | - | - |
        使い慣れたSQLに潜む実装依存: Firebirdの場合(5) CURRENT_TIMESTAMP
        0
          本エントリはFirebird Adventcalendar 2016の7日目です。

          使い慣れたSQLに潜む実装依存:1.関数 CURRENT_TIMESTAMP

          Firebirdの場合 バージョン2.0からCURRENT_TIMESTAMPが実装され、
          戻り値としては、ここで多数を占める「現在時刻」を返します。

          ここでいう「現在時刻」とは、CURRENT_TIMESTAMPを評価するステートメントの開始時刻です。

          そのため、ステートメント内で複数回評価されても、同じ値を返すことになります。

          またCURRENT_TIMESTAMP(n)という形で精度を指定することもできます。

          Firebirdの場合はn=0〜3で、(n)を指定しないときは(3)を指定したものと同じ精度を戻します。
          (MySQLではn=0〜6で、(n)を指定しないときは(0)を指定したものと同じ精度を戻します。
           これは秒以下をサポートしたのが最近(MySQL 5.6)だったため、5.5以前との互換性のためです)

          もうひとつ「現在時刻」には、その関数を評価するごとに、その評価の瞬間を返すものがあります。
          (OracleやMySQLでいうsysdateと同等のもの)

          Firebirdの場合 バージョン2.1から実装された'now'がそれで、以下のように利用します。

          SQL> select cast('now' as timestamp) as now from rdb$database;

          NOW
          =========================
          2016-12-07 22:54:31.1550

          または同じくバージョン2.1でドキュメント化されたShorthand castsにて以下のようにも表記できます。(このShorthand casts自体はInterBase 6から存在していましたが、ドキュメント化されてませんでした)

          SQL> select timestamp 'now' from rdb$database;

          CONSTANT
          =========================
          2016-12-07 23:26:52.3170

          ただし、CURRENT_TIMESTAMPのように精度指定はできません。常に精度は(3)で戻ります。

          MySQLのようにsleep()があると、CURRENT_TIMESTAMPと'now'を比較しやすいのですが、
          Firebirdにはありません。fb_sleep()というUDFがパブリックドメインで公開されていますが、
          ソースだけで、自分でコンパイルする必要があります。

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 23:11 | comments(0) | trackbacks(0) | - | - |
          使い慣れたSQLに潜む実装依存: Firebirdの場合(4) CHAR型に対するLENGTH
          0
            本エントリはFirebird Adventcalendar 2016の5日目です。

            使い慣れたSQLに潜む実装依存:1.CHAR型に対するLENGTH


            OracleとDB2が10を返していますが、基本的にCHAR型の性質を考えると
            こちらのほうが正しい挙動にみえます。Firebirdもこれらと同じ動作です。

            SQL> create table t1(c1 char(10));
            SQL> insert into t1 values('ABC');
            SQL> select char_length(c1) from t1;

            CHAR_LENGTH
            ============
            10

            ただ、このような仕様だとchar(10)にデータとして何をいれてもchar_lengthが10であるため
            そもそも意味がない、ということで、3を戻す実装が多くあるのだと思います。

            Firebirdで意味のある値を戻すにはtrim関数を使います。

            SQL> select char_length(trim(trailing from c1)) from t1;

            CHAR_LENGTH
            ============
            3

            なお、MySQLの場合は、そもそもCHAR型であっても、取り出したときにはVARCHAR型と同じように
            データのみしか返さず、定義長の空白パディングがされない動作がデフォルトですので、これを
            通常のRDBMSのように空白をつけて返すようにすれば、lengthの値は3ではなく10を戻します。

            mysql> create table t1(c1 char(10));
            Query OK, 0 rows affected (0.18 sec)

            mysql> insert into t1 values('ABC');
            Query OK, 1 row affected (0.03 sec)

            mysql> select length(c1) from t1;
            +------------+
            | length(c1) |
            +------------+
            | 3 |
            +------------+
            1 row in set (0.00 sec)

            mysql> set sql_mode=PAD_CHAR_TO_FULL_LENGTH;
            Query OK, 0 rows affected, 1 warning (0.00 sec)

            mysql> select length(c1) from t1;
            +------------+
            | length(c1) |
            +------------+
            | 10 |
            +------------+
            1 row in set (0.00 sec)

            JUGEMテーマ:コンピュータ



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

              使い慣れたSQLに潜む実装依存:1.関数LENGTH

              ここでの違いはlength()でバイト数を戻すか、文字数を戻すか、の違いです。

              MySQLとDB2はlength()はバイト数を返すので、1ではなくなっていますが、
              その場合はcharacter_lengthを利用すれば(そして文字コードを正しくセットしていれば)1になります。

              大元の問題はlength()がバイト数、文字数どちらを返すかがRDBMSによりまちまちなところです。

              しかしFirebirdの場合は、length()がなく、バイナリ長を戻すoctet_lengsh()と
              文字長を戻すcharacter_length()しかないので、ある意味曖昧さが軽減されています。

              SQL> set names sjis_0208;
              SQL> select char_length('あ') from rdb$database;

              CHAR_LENGTH
              ============
              1

              SQL> select octet_length('あ') from rdb$database;

              OCTET_LENGTH
              ============
              2

              SQL> select length('あ') from rdb$database;
              Statement failed, SQLSTATE = 42000
              Dynamic SQL Error
              -SQL error code = -104
              -Token unknown - line 1, column 14
              -(

              SQL標準では文字数はchar_length, バイト数はoctet_lengthですので、
              それを使うと間違いがありません。なおoctet_lengthのようにバイト数を戻すには
              Oracleではlengthb, SQL Serverではdatalength(SQL Server 2008以降)を使います。

              ここでのトピックはMicrosoft SQL Serverで文字数を返すlenの仕様(実装)が以下であることです。

              (1) BMP外のUTF8(つまり俗にいう4-byte UTF8)の1文字に対して、文字数2を返すところですね。
                これは大変わかりにくいし、対処どうしよう、という困ったものです。
              (2) 「指定された文字列式の、末尾の空白を除いた文字数を返します」という仕様。。。

              JUGEMテーマ:コンピュータ



              | meijik | Firebird/InterBase | 23:17 | comments(0) | trackbacks(0) | - | - |
              使い慣れたSQLに潜む実装依存: Firebirdの場合(2) GREATEST(1,2,NULL)
              0
                本エントリはFirebird Adventcalendar 2016の3日目です。

                使い慣れたSQLに潜む実装依存:1.関数GREATEST

                FirebirdにはGREATEST(とLEAST)はありませんが、相当する関数であるMAXVALUE/MINVALUE
                Firebird 2.1以降で利用できます。

                これらの関数のNULLの扱いは、当該ページのほとんどのRDBMSの実装と同じ
                NULLを特別視するものですので、例えば他のRDBMSからの以降の際には問題にならないと思います。

                SQL> select maxvalue(1,2,null) from rdb$database;

                MAXVALUE
                ============
                <null>

                SQL> select minvalue(1,2,null) from rdb$database;

                MINVALUE
                ============
                <null>

                ここではPostgreSQLがGREATEST(1,2,null)で2を返すことが目を引きますが、
                例えば内部的にmax()/min()を使っていれば、リーズナブルな処理結果です。

                またMicrosoft SQL ServerではGREATESTはありませんが、検索して見つかるものは内部で
                max()/min()を使ってますので、それを使うとPostgreSQLと同様な結果が戻ると思いますので
                その点注意です。

                JUGEMテーマ:コンピュータ



                | meijik | Firebird/InterBase | 21:57 | comments(0) | trackbacks(0) | - | - |
                使い慣れたSQLに潜む実装依存: Firebirdの場合(1)
                0
                  本ブログエントリはFirebird Advent Calendar 2016の一日目です。

                  先日Database Lounge Tokyo #3で、しのださんによる以下の発表がありました。



                  いろいろまだAdvent Calendar の準備ができてないので、しばらくこのネタにのっかります。

                  MOD(3,0)の結果ですが、Firebirdではめでたく(?) Div/0 Errorになります。

                  SQL> select mod(3,0) from rdb$database;

                  MOD
                  ============
                  Statement failed, SQLSTATE = 22012
                  arithmetic exception, numeric overflow, or string truncation
                  -Integer divide by zero. The code attempted to divide an integer value by an integer divisor of zero.

                  ちなみにMySQLではNULLになっていますが、同時にWarningがおこっており、そのエラーはDiv/0になります。

                  mysql> select mod(3,0);
                  +----------+
                  | mod(3,0) |
                  +----------+
                  | NULL |
                  +----------+
                  1 row in set, 1 warning (0.00 sec)

                  mysql> show warnings;
                  +---------+------+---------------+
                  | Level | Code | Message |
                  +---------+------+---------------+
                  | Warning | 1365 | Division by 0 |
                  +---------+------+---------------+
                  1 row in set (0.00 sec)

                  JUGEMテーマ:コンピュータ



                  | meijik | Firebird/InterBase | 14:15 | comments(0) | trackbacks(0) | - | - |
                  「おうちで学べるデータベースのきほん」韓国語発売!
                  0
                    .temp.jpg

                    原著は3刷まででた「おうちで学べるデータベースのきほん」一応版権がとられていた韓国語版発売になりました。

                    まぁ私は韓国語の素養がないので、読んでもちんぷんかんぷんなのですが、実際に本になると感慨深いですね。
                    判形も大きくなり図は読みやすいです。

                    韓国人のお友達がいたらぜひ、ご紹介ください :)

                    | meijik | データベース | 10:07 | comments(0) | trackbacks(0) | - | - |
                    翔泳社で2016/10/02(sun)まで電子書籍40%割引セール! DB界隈の人はこれを買え!読め!!
                    0
                      電子書籍セール特設サイト
                      http://www.shoeisha.co.jp/campaign/fes/20160926

                      ということで、本日含めても、もう六日しかないセールで
                      DB界隈の人が買うべき本をチェーック!!

                      # 木村はkindle派なので、リンクはkindleです

                      ■まずはDB界のオトコ、奥野さんの新刊だよ。

                      詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド

                      爆発的に機能が増えた5.7について、詳しく説明した良書。
                      私も査読しましたけど、査読というより、単純に勉強させていただきましたm(_ _)m

                      ■次にDB界のセルキアン(!) ミックさんの新刊2冊と、既刊3冊だよ。

                      プログラマのためのSQLグラフ原論 リレーショナルデータベースで木と階層構造を扱うために

                      『Joe Celko's Trees and Hierarchies in SQL for Smarties, 2nd Edition』の邦訳です。
                      数あるセルコ本からこれを選ぶとはミックさんの趣味と興味がうかがえます。
                      #これも査読させていただきました。

                      SQL 第2版 ゼロからはじめるデータベース操作

                      好評「キリン本」の第二版。対象とするデータベースのバージョンがあがったのと、あらたにJDBCによる接続の章が追加され、さらにパワーアップ。初心者にオススメです。

                      既刊の三冊は「達人シリーズ」と歴史的名著「プログラマのためのSQL」

                      達人に学ぶ SQL徹底指南書
                      達人に学ぶDB設計 徹底指南書
                      プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに

                      ■そしてそのほかチェックすべきものは次の本だよ。

                      グラス片手にデータベース設計 販売管理システム編 第2版

                      今は亡き、DB Magazineの好評連載をまとめた三部作、そのうちのひとつが第二版となって復活!

                      SAP SQL Anywhere 17 自己管理型RDBMS入門ガイド
                      SQL Anywhere本、久しぶりの登場。

                      Oracleデータベースセキュリティ セキュアなデータベース構築・運用の原則
                      小田さんが監修した、Oracleのセキュリティ本。詳しくはこちら

                      ちなみに上記で紹介した本のうち、もってないのはSAP SQL Anywhere本だけです。。。。。

                      その他、DB資格関連の本もセールだけど、そこらへんは疎いから紹介はしないよ!!
                      では、また、DBの世界で会いましょう。

                      JUGEMテーマ:コンピュータ




                      | meijik | データベース | 23:41 | comments(0) | trackbacks(0) | - | - |
                         1234
                      567891011
                      12131415161718
                      19202122232425
                      262728293031 
                      << March 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