(Translated by https://www.hiragana.jp/)
リレーショナル・データベースの世界

ホーム

序文じょぶん



 わたし仕事しごとは、DBエンジニアです。といってもべつのぞんでデータベースの世界せかいへきたわけではなく、当初とうしょわたしはこの分野ぶんや面白おもしろくありませんでした。「Webけい花形はながた、データベースは日陰ひかげ」という言葉ことばささやかれていました。いまでもささやかれているかもしれません。
 ですが、しばらくデータベースをさわっているうちに、わたしはこの世界せかいにとても興味深きょうみぶかいテーマがおおくあることをりました。なぜもっとはやづかなかったのか、後悔こうかいすることしきりです。 もちろん、自分じぶん不明ふめい最大さいだい原因げんいんですが、この世界せかいあしれた当時とうじ先生せんせいも、みちびきのしょとなる入門にゅうもんしょもなかったことも事実じじつです。 いまでこそバイブルとあおぐ『プログラマのためのSQL だい2はん』も新入しんにゅう社員しゃいんには敷居しきいたかすぎました (2015ねん2がつ追記ついき:その自分じぶんだい4はん訳出やくしゅつできたのだから、 人生じんせいなにがあるかからないものです)。
 そこで、です。このサイトの目的もくてきは、データベースの世界せかいあしれた当時とうじ自分じぶんかって、多少たしょう見通みとおしをつことのできた現在げんざいわたしが、データベース入門にゅうもんのてほどきをおこなうことです。  当時とうじ「こんなサイトがあれば」とかんじた、そういうサイトをつくることです。
 以下いか条件じょうけんてはまるひと読者どくしゃ想定そうていしています。

  • なぜ"関係かんけい"モデルという抽象ちゅうしょうてき用語ようご使つかうのかからない。"ひょう"モデルでいいじゃない。
  • なぜ「= NULL」ではなく「IS NULL」とかねばならないのかからない。
  • E.F.Codd、C.J.Date、J.Celko のほんんだことがない。
  • IN述語じゅつごとEXISTS述語じゅつごでは、IN のほう直観ちょっかんてきかりやすいからきだ。
  • IN述語じゅつご、EXISTS述語じゅつご、LIKE述語じゅつご・・・「述語じゅつご」ってなにだ?
  • テーブル設計せっけいのときは滅多めったに NOT NULL制約せいやくけない。しかもそれが大罪だいざいであることの自覚じかくがない。
  • SQLで分岐ぶんきとループを表現ひょうげんする方法ほうほうりたい。
  • SQLでCASEしき使つかったことがない。
  • SQLで自己じこ結合けつごう使つかったことがない。
  • HAVINGかげうす脇役わきやくだとおもっている。
  • GROUP BYとPARTITION BYのちがいを一言ひとこと説明せつめいできない。
  • SQLで構造こうぞうのデータをあつかいたい

NewSQL

パフォーマンス・チューニング

  • SQLをはやくするぞ
     なるべくベンダー依存いぞん技術ぎじゅつあつめました。おな結果けっかる SQL でもかた次第しだいでかなりのパフォーマンス向上こうじょうのぞめるものです。

  • 治療ちりょうとしてのパフォーマンスチューニング
     「パフォーマンスチューニング」という仕事しごとがどのようなフローにしたがって実施じっしされるかを、医師いしの「治療ちりょう」に見立みたてて解説かいせつしました。
    実際じっさい医者いしゃとエンジニアの仕事しごとには意外いがい共通きょうつうてんおおいのです。社会しゃかいてき地位ちいはずいぶんちがいますが。

実践じっせん

  • CASEしきのススメ
     便利べんりなのに意外いがい使つかわれていないCASEしきを、もっと活用かつようしましょう。
     レイアウトのやすい CodeZine ばんはこちら → 前編ぜんぺん 後編こうへん

  • 自己じこ結合けつごう使つかかた
     CASEしきおとらず強力きょうりょくだけど、動作どうさがイメージしづらくてあまり利用りようされていない自己じこ結合けつごうについての解説かいせつ。「集合しゅうごう指向しこう言語げんごとしてのSQL:その1」

  • HAVINGちから
     「集合しゅうごう指向しこう言語げんごとしてのSQL:その2」です。かげうす脇役わきやくおもわれがちなHAVING復権ふっけんのために。いい出来できだとおもう。

  • 外部がいぶ結合けつごう使つかかた
     結合けつごうシリーズだい2だん。さあ、みんなで結合けつごうしよう。

  • SQLでループ! 相関そうかんサブクエリの使つかかた
     初心者しょしんしゃかならずつまづく相関そうかんサブクエリについて、基礎きそから解説かいせつしました。相関そうかんサブクエリも集合しゅうごうの「カット」という操作そうさなのだ、というてん理解りかいしてくれれば、マスターしたも同然どうぜん

  • 相関そうかんサブクエリでくだりくだり比較ひかくする
     「集合しゅうごう指向しこう言語げんごとしてのSQL:その3」。これもなかなか。「自己じこ結合けつごう使つかかた」とあわむと面白おもしろいかも。

  • SQLで数列すうれつあつか
     「数列すうれつ」というのは、あくまで順序じゅんじょ集合しゅうごう一番いちばんかりやすいれいとしてしたものなので、方法ほうほうろん自体じたい一般いっぱんせいたかいものです。なにげにりょうはなしまでれてしまった欲張よくばりなかい

  • SQLでれんばんあつか
     初出しょしゅつは『Web+DB Press』Vol.45。「れんばん」というのも、SQL ではなかなか素直すなおあつかえない対象たいしょうです。しかし、近年きんねんでは ROW_NUMBER、RANK など手続てつづがたかんがかた操作そうさできる関数かんすう追加ついかされるようになったため、かなりとっつきやすくなっています。

  • SQLで集合しゅうごう演算えんざん
     UNION、INTERSECT、EXCEPTなどを中心ちゅうしんに、SQLでの集合しゅうごう演算えんざん利用りよう方法ほうほう解説かいせつした記事きじです。「集合しゅうごう指向しこう言語げんごとしてのSQL:その4」

  • かえってきたHAVING
     ジュワッ! 「HAVINGちからだい2だんです。HAVING と GROUP BY の解説かいせつとしては決定けっていばんといってつかえないでしょう。類別るいべつ特性とくせい関数かんすうはなしせて満足まんぞく一品いっぴん

  • 更新こうしんなんてこわくない!
     SQL というと、どうしても検索けんさく主眼しゅがんかれますが、じつ最近さいきん更新こうしん手段しゅだんもかなり充実じゅうじつしており、DB 内部ないぶでさまざまなデータ編集へんしゅうをすることが可能かのうになっています。

  • スカラ・サブクエリの使つかかた
     スカラふくごうというのは、「だい1正規せいきがたとはなにか」という関係かんけいモデルの基礎きそかかわる重要じゅうよう区分くぶんです。それを理解りかいすると SQL のなかでのスカラ使つかかたかります。

  • OLAP関数かんすう強力きょうりょく統計とうけい処理しょり実現じつげん
     『Web+DB Press』で2年間ねんかん連載れんさいしていた「SQLアタマアカデミー」の最終さいしゅうかい。SQL:2003で標準ひょうじゅんはいった OLAP 関数かんすう(ウィンドウ関数かんすう分析ぶんせき関数かんすう)について、基礎きそから応用おうようまでいちとお理解りかいできるよう解説かいせつしています。

  • SQLアタマ養成ようせい講座こうざ (PDF) (HTML)
     初出しょしゅつは『Web+DB Press』Vol.44。SQLの重要じゅうようさん機能きのう分岐ぶんき(CASEしき)、ループ(相関そうかんサブクエリ、OLAP関数かんすう)、カット(GROUP BY、PARTITION BY)の使つかかた解説かいせつしたもの。「中級ちゅうきゅう入門にゅうもん」の対象たいしょうしゃ意識いしきしてきました。

  • SQLで階層かいそう構造こうぞうのデータをあつかう(1)――集合しゅうごうモデル
     近年きんねん、データベースの世界せかい要望ようぼうたかまりをせている構造こうぞうあつかかたを、「集合しゅうごうモデル」という独創どくそうてき方法ほうほうもとづいて解説かいせつします。このモデルは、はじめてるときはけっこう感動かんどうします。
     『Web+DB Press』ばんこちら

  • SQLで階層かいそう構造こうぞうのデータをあつかう(2)――経路けいろ列挙れっきょモデル
     構造こうぞうあつかかただい2だんです。今度こんどは、ノードをディレクトリに見立みたてて、文字もじれつ操作そうさ駆使くしします。ファイルシステムの発想はっそうとも共通きょうつうてんおお興味深きょうみぶか方法ほうほうろんです。

  • SQLで階層かいそう構造こうぞうのデータをあつかう(3)――区間くかんモデル
     集合しゅうごうモデルには、整数せいすう座標ざひょう使つかっているため、更新こうしんのパフォーマンスがわるいという欠点けってんがありました。それを克服こくふくするため、整数せいすうから有理数ゆうりすう一般いっぱんしたモデル。これもはじめてるときにはふるえがきます。

  • SQLで数学すうがくパズルをかずろんへん わせろんへん
     どうせ SQL をまなぶなら、たのしみながらまなべたほううれしいもの。問題もんだい解法かいほう随時ずいじ受付うけつけちゅう

設計せっけい・その

SQL緊急きんきゅう救命きゅうめいしつ

アーキテクチャ





基礎きそ理論りろん

  • なぜ"関係かんけい"モデルという名前なまえなの?
     なぜ「おもてモデル」という名前なまえではないのか?その疑問ぎもんこたえるための小文おぶみ関係かんけい正確せいかく定義ていぎりたいひとけ。

  • アドレス、この巨大きょだい怪物かいぶつ
     関係かんけいモデルはなぜかんがされたのか。それはアドレスという怪物かいぶつからデータベースを解放かいほうするためのアイデアでした。

  • SQLのなか述語じゅつご論理ろんり
     IN述語じゅつご、EXISTS述語じゅつご、LIKE述語じゅつご ・・・・・・ じゅつかたってなにだ? それは関数かんすう ―― 正確せいかくには述語じゅつご論理ろんり基礎きそ概念がいねんである「命題めいだい関数かんすう」 ―― のことです。データベースの世界せかいから述語じゅつご論理ろんり入門にゅうもん

  • そんなあなたが大好だいすきよ
     いやあ、SQL って本当ほんとうに、いいもんですね。

  • GROUP BYとPARTITION BY
     普段ふだんなにげなく使つかっているGROUP BYとPARTITION BY。本当ほんとうはどういう機能きのうたしているか、かりますか? SQL の背後はいごにある集合しゅうごうろん群論ぐんろんかんがかた解説かいせつします。

  • 再帰さいき集合しゅうごうとSQL
     ランキングや累計るいけいもとめるクエリでは、ノイマンがた再帰さいき集合しゅうごう重要じゅうよう役割やくわりたします。そのアイデアの源泉げんせんは、自然しぜんすう帰納的きのうてき定義ていぎという集合しゅうごうろん基礎きそにまでさかのぼります。その理論りろんてき背景はいけいさぐるコラム。

歴史れきし

  • リレーショナル・データベースの歴史れきし (1)  (2)  (3)
     リレーショナル・データベースが誕生たんじょうしてから30ねん歴史れきしを、データベースかい指導しどうてき論客ろんかくである C.J.Date が概観がいかんした連載れんさい要約ようやくです。
     ちなみにこの連載れんさい好評こうひょうだったのかほんにもなってます。

  • 国家こっか・データベース・イノベーション
     リレーショナル・データベースの歴史れきしると、関係かんけいモデルというアイデアが破壊はかいてき技術ぎじゅつであり、その誕生たんじょうはそのままイノベーションのジレンマを展開てんかいだったことがかります。

  • 決定けっていばん】RDBMSとNoSQLにみるDBきん現代げんだい
     エンジニアHUBに掲載けいさいされた記事きじ。RDBからNoSQLまでの歴史れきし概観がいかんしています。

NULLにまつわるしょ問題もんだい

その