Amazonは21日、新たなWebサービス「Amazon Elastic Block Store」を公開した。高可用、高性能なブロックデバイスのストレージを、EC2のインスタンスから利用することができる。
SQLに対するよくある誤解の1つに、「SQLは帳票作成のための言語だ」というものがあります。確かに、SQLは定型・非定型を問わず、さまざまな帳票や統計表を作成するシステムで利用されています。そのこと自体に問題はありませんが、エンジニアにとってもSQLにとっても不幸なことは、SQLの本来の用途ではない結果のフォーマット整形までがSQLに求められることです。あくまでS...
」に詳しく書いたのでそちらを参照してください)。そのため、除算をするときは自前でクエリを作る必要があります。 テーブル同士のコンペア――集合の相等性チェック:基本編 さて、それでは集合演算の実践的な応用を見ていきましょう。 DB環境を移行したり、バックアップと最新環境を比較したい場合など、2つのテーブルが等しいか否かを調べたいことがあります。...
SQLiteはお手軽軽量なDBとしてさまざまなアプリケーションに使えるものと思います。このお手軽さを享受できるのがC/C++だけではもったいない。C++/CLIで薄いラッパーを被せれば、C#やVB.NETから使えるようにできるはずですが、そのお話はまたいずれ。 ……という、なんとも思わせぶりな「まとめ」で締めくくってました、このまま放っておくわけにもいきませんよね。 そんな...
データベースを操作するための言語であるSQLを別の用途に使おうとする理由は、SQLが宣言的な記述が可能な言語の中で最も普及していると思われるからです(宣言的言語と言えばPrologを思い浮かべる方も多いかもしれませんが、残念なことにPrologは、SQLほどには普及していません)。 まず、宣言的な記述について説明しましょう。タクシーに乗ることを想像してください。「...
」(画面1)は、株式会社モバオクが運営する携帯電話およびPC向けのオークションサービスで、2007年2月末時点での有料会員数84万人、出品数284万品、1日のページビュー数7000〜8000万という規模である。 画面1:「モバオク」公式サイトトップページ 「モバゲータウン」(画面2)は、株式会社ディー・エヌ・エー(以下、DeNA)が運営している携帯電話サービスで、無料ゲームやSN...
今回の題材は、近所の図書館にあった書籍の予約用紙(図1)です。子供たちと本を借りに行った際にカウンターに置いてあったので早速利用することにしました。では、データベース設計のはじまりです。 図1 予約(リクエスト)申込書 イベントを見出す まずは核となるテーブルを見出しましょう。そもそもこの紙は何のためのものでしょうか。そう、予約を受け付けるための...
ここ最近のうちにオープンソースデータベース開発を行った人ならば、アプリケーションで使うデータベースを選ぼうとすると選択肢が山ほどあるということをご存知でしょう。現在では、Microsoft SQL ServerやOracleなどの商用製品だけでなく、MySQLやPostgreSQLのように、同等の機能を何分の一かのコストで提供するオープンソース製品も実用的な代替手段として利用できます。 た...
iBATISはSQLを利用することに注力したフレームワークです。高機能なO/Rマッピングフレームワークに比べて簡単に理解でき、レガシーなJDBC、ResultSetを使ったプログラミングから簡単に乗り換えられます。 特にSQLを多用する人には使いやすいフレームワークです。 SQLは使いたいがJDBCは低レベルすぎる 高機能なO/Rマッピングフレームワークは難しすぎる ソースコードからSQLを分...
デスクトップCGIフレームワークを用いたアプリケーションにおいては、同一のCGIを繰り返して起動したり、CGIからCGIを呼び出すようなスクリプトを書くことが多く、連続的、連鎖的にCGIが起動されます。その度に新たなプロセスを生成していては、パフォーマンス的には不利です。このような場合には、PerlのCGIにおいてはmod_perlを使うとよいはずです。今回は、WindowsのApacheでmod_...
本稿では、MySQLの内部構造を見ていきます。MySQLサーバのさまざまな部分がどのように連携して動いているかを知ることは、楽しくてためになります。MySQLの実装は、テクノロジーの魅惑的な組み合わせです。このテクノロジーは、おびただしい数の開発者の長年にわたる汗とインスピレーションから生み出された、真に目覚ましい功績にほかなりません。 オープンソーステク...
[PR]いつスレッド化するのですか? コアを熟知するインテルが、ソフトウェア開発をシングルスレッドからマルチスレッドに移行する方法を提案します。 「レイアウトだけ?セキュリティも考えた帳票ツールはないの?」[PR]内部統制を背景に、帳票の見直しが進行中。暗号化やアクセス制御、電子化をはじめ、データ流出を堅固にガードする帳票コンポーネントをラインナップ。 ...
これを分析関数で書き換えてみます。まずは、数学の視点から集合が等しいという意味について考察してみます。数学の集合では集合の相等性を調べる公式として、次の式が成立することが知られています。 (A ⊆ B ) かつ (A ⊇ B) ⇔ (A = B) 一方、次の場合も同様です。 (集合Aと集合Bの要素数が等しい) かつ (A ⊆ B) ⇔ (A = B) 集合Aと集合Bが両方とも空集合の...
私は最近、いつもの共有ディレクトリメカニズムを使ってファイル共有を実装することに嫌気がさしてきました。管理者レベルで定義するアクセス権が多すぎるだけでなく、異なるオペレーティングシステム間でファイルを共有するためのあらゆる処理が必要になります。その上、インターネット接続しか使用できないとしたらどうでしょう。もちろん、EメールやFTPを使うこと...
記事は編集作業を経て公開されていますが、あくまで情報提供を第一の目的としたものであり、 内容には、不正確な記述、執筆者の予断や誤解に基づくもの、リンク切れ、環境要件が古いものが含まれていることがあります。 記事(翻訳記事を除く)の訂正に関しては、編集部の判断により随時対応することがありますが、各著作権者および(株)翔泳社はその内容の完全性を...
で数えた行数と連番の最大値が一致したなら、それは最初から最後まで抜けなくカウントアップできたという証拠だからです。抜けがあれば、「COUNT(*) < MAX(seq)」となり、HAVING句の条件が真になります。わずか3行のエレガントな解答です。 ところで、このSQL文にはGROUP BY句が存在しません。こういう場合、テーブル全体が1行に集約されます。その場合でも、HAVING句は問題なく...
(unordered pair)です。順序対は、<1, 2>のように尖った括弧で、非順序対は{1, 2}のような括弧で表記します。順序対は、順序が違えば別物なので、<1, 2> ≠ <2, 1>ですが、非順序対の場合は順序を無視するので、{1, 2} = {2, 1}です。 さて、次のように単純に直積を作ると、順序対が得られます。 --重複順列を得るSQL SELECT P1.name AS name_1, P2.name AS name_2 FROM Products P1, Products P2; ...
[PR]Java/PHPデベロッパーのためのFlashアプリケーション開発ツール Adobe Flex Builder 2なら、リッチなWebアプリケーションを Eclipse IDEで今すぐ開発できます。Mac版も新登場! マルチコアが主流に:並列化はお済ですか? Webセミナー開催[PR]いつスレッド化するのですか? コアを熟知するインテルが、ソフトウェア開発をシングルスレッドからマルチスレッドに移行する方法を提案します...
SQLのクラスを教えるとき、最大の課題の一つが、生徒たちがそれまでに手続き型言語から身に付けたことを、一度「頭から追い出す(unlearn)」ことだ。私がそのとき採る一つの方法は、処理を「レコード単位」ではなく、集合という観点から考えるよう強調することである。 ――――J.セルコ SQLの考え方を習得するときに最大の障壁となるのが、私たちの多くが慣れ親しんだ...