2010年9月10日(金) 09:25 JST

HOME > i am BEST > 「RDB & SQL 入門」

「RDB & SQL 入門」

  • 2010年6月25日(金) 02:27 JST
  • 投稿者:
    hidehi

WEB+DB PRESS Vol.57」 の第二特集として、「RDB & SQL 入門」という総計 29ページの特集記事が載っています。

「データベースとは何か」から始まって、SQL による「データ操作の基礎」、「少し高度な SQL」から「トランザクションと更新」に至るまで、とても簡潔にわかりやすくデータベースの基本的な知識がまとめられています。

例として載っている SQL は全部 DB2 for IBM i で実行してみましたが、もちろん(そもそも実行できないことになっている例を除いて)全部実行可能でした。
最新の DB2 for i である V7R1 はもとより、その一つ前のバージョンである V6R1(2008年出荷) でもすべてきちんと正しい結果が返ってくることを確認ずみです。

あらためてリレーショナルデータベースと SQL の知識を整理してみるのはいかがでしょうか??
DB2 for i を活用するための新たな視点が得られると思いますよ!!



ちなみに、サブタイトルに「DBアタマの最初の一歩」とあって、RDB/SQL を学んでいくうえでのアドバイス的なことばもけっこう載っています。


たとえば P.86 の「時代遅れはよくない」という項では、
"テーブル名を FROM 句でカンマで区切って並べ、結合条件を ON ではなく WHERE 句で記述"するやり方について、
"結合条件と通常の検索条件の区別がわかりにくく、可読性の低いコードになる"ということと、
"いずれこの構文が廃止されて使えなくなる可能性がある"という問題があるため、おすすめではないと書かれています。

このブログの「SQL で複数テーブルを使う時はどう書くのがいいの?」でのお話と同じことが書いてあって、ちょっと嬉しくなりました。


また、SQL の"とっつきにくさ"についても、
"筆者はリレーショナルデータベースについて学習する最も良い方法は、SQL も手続き型言語も両方一緒に勉強することだと思っています"と、
その解決策についてふれられています。

かなり我田引水になりますが、このブログの「DB2 for i の埋め込みSQL って実はけっこうカンタン!?」 や「RPG でも埋め込みSQL!! のすすめ」でふれているように、ILE RPG で埋め込み SQL を使ったプログラミングを勉強することはまさしく "SQL も手続き型言語も両方一緒に勉強すること" になると思います。

DB2 for i の SQL は「Oracle では実行できないけど DB2 for i では実行できるSQL!?」 などでもふれられているように、"標準 SQL" そのものと言っていい実装になっています。
また、RPG も「ILE RPG と C は似ている!?」 などでもふれられているように、学ぶことで C を読みこなす基礎になったりするくらい、手続き型言語の "標準的実装" になっています。


まったくの新人さんも、旧式の RPG しか知らない方々も、これをいい機会にして "標準 SQL" と "(標準的)手続き型言語" を学び直して、
どんなリレーショナルデータベースに通じる正統派の知識を手に入れませんか!?

 本当にとても簡潔に要領よくまとまったリレーショナル・データベースと SQL についての入門になっています。
手始めの第一歩としてすばらしくよいものだと思いますので、ぜひご一読をどうぞ!!

トラックバック

このエントリのトラックバックURL:
http://www.iforum.ne.jp/trackback.php/20100624022739762
表示形式
コメント投稿

コメントは投稿者の責任においてなされるものであり,サイト管理者は責任を負いません。

  • 「RDB & SQL 入門」
  • 投稿者:hidehi on 2010年7月 1日(木) 04:00 JST

ちなみに、例のうち FULL OUTER JOIN を使用したものは V5R4 ではそのまま実行はできません。

とはいうものの、結果を得るための機能はあるので、SQL を書き換えることで取得可能です。

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/sqlp/rbafysimulatefoj.htm

iForumサポーター

      iFourmの趣旨にご賛同いただき、ご支援いただける企業または個人を募集しています。詳しくは、info@iforum.ne.jp へお願いします。