注目の書籍

好評発売中!

IT業界徹底研究就職ガイド2013年版

IT/ネット業界で働くと いうことを分かりやす く解説。2013年3月卒 業の学生向けの1冊。

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

情報システム

1週間で学ぶIT基礎の基礎

ITpro

忙しいあなたのためのSQL入門 第2回(2)

SQLの基礎(2)---SQLのデータ型はDBMSに依存する

2002/01/16

矢沢久雄 グレープシティ アドバイザリースタッフ

今回のキーワード
・データ型
・スキーマとビュー

図1●SQL文を入力するウインドウ
 SQLでフィールドのデータ型を意識しなければならないのは,DDLでデータベースを作成するときだけです。参考までに,以下にCREATEを使って,図1[拡大表示]のテーブルを定義するSQL文を示します。CHARやINTEGERは,文字列と整数を表すSQLのデータ型です。CHARのカッコ内には,文字数を指定します。SQL文の末尾はセミコロンで明示されるものなので,以下の例のように途中で改行しても問題ありません。

CREATE TABLE MeisiTbl(
Shimei CHAR(50),
Jusho CHAR(50),
Nenrei INTEGER
);

図2●データ型はDBMSのツールで指定する
 CHARやINTEGER以外にもSQLのデータ型はありますが,それらを覚える必要はないでしょう。なぜなら,データベースの作成のようにデータ型を指定するような状況では,SQL文の実行ではなく,DBMSが提供するツールを使うからです。これらのツールでは,生のSQLのデータ型でなく,分かりやすい日本語の表現でデータ型を指定するのが一般的です。図2[拡大表示]は,Accessでテーブルを作成しているところです。ここでは,データ型をリストの中から選択できるようになっています。DBMSの種類によって,指定できるデータ型の種類や名称に若干の違いがあることに注意してください。

スキーマとビュー

 最後に,またまたデータベース関連の用語をいくつか覚えていただきましょう。連載の第1回「SQLを学ぶ前に(3)---リレーショナル・データベースとは」で,列の属性,制約,及びテーブル間のリレーションなどの定義をスキーマと呼ぶと説明しました。ただし実際には,スキーマを3種類に分類して考えます(図3[拡大表示])。前回説明したスキーマは,正確には,概念スキーマに相当するものです。

図3●ANSIの3層スキーマ
 図3のように,スキーマを「内部スキーマ」,「概念スキーマ」,及び「外部スキーマ」の3種類に分類して考える手法を「ANSIの3層スキーマ」と呼びます。これらのスキーマは,同じデータベースを見る人の視点の違いで分類したものです。3層スキーマでデータベースを考えるのが一般的です(そのことを知っておいてほしいので,説明しています)。

 「内部スキーマ」は,ファイル名,ファイルのサイズ,ファイルの分割方法など,物理的な視点からデータベースを見たものです。「概念スキーマは」は,テーブルの定義,テーブル間のリレーションなど,開発者の視点からデータベースを見たものです。「外部スキーマ」は,ユーザーの視点からデータベースを見たものです。

 ユーザーの視点からデータベースを見たものは,「ビュー(view)」とも呼ばれます。ビューは,SELECT命令によって取得されたデータの集合体(データベース本体とは関係ない仮のテーブル)であると考えることができます。さらに,SQLには,データベースの中にあらかじめビューを作成しておくCREATE VIEW命令(これは2単語で1命令です)があります。CREATE VIEW命令によって作成されたビュー(仮のテーブル)は,実際のテーブルと同様にSQL文で操作できます。

 以下は,ShimeiとNenreiだけから構成されたビューを作成するSQL文です。ビューの名前は,MyViewとなっています。AS以下(修飾子です)に,SELECT命令を使ったSQL文が指定されていることに注目してください。このSELECT命令によって取得されたデータがビューとなるのです。SEELCT命令の結果がCREATE VIEW命令の対象になるとは,なかなか面白いですね!

CREATE VIEW MyView AS SELECT Shimei,Nenrei FROM MeisiTbl;

 上記のSQL文を実行したら,MyViewビューを通常のテーブルと同様に扱うことができます。以下は,MyViewビューのすべてのフィールドを取得するSQL文です。これまでテーブル名を指定していたFROMの後にビュー名を指定しています。

SELECT * FROM MyView;

 適切なビューを作成することで,効率的にデータベースを操作することが可能となります。この場合のビューは,ユーザーの視点でなく,開発者の視点にあるものかもしれませんが,実際のテーブル(概念スキーマ)とは異なるので,外部スキーマなのです。ほら,データベースの説明では,3層スキーマの用語がポンポン出てくるでしょう。だからこそ,用語とその意味を知ることは重要なのです。

 SQL文の基本構文をマスターできた皆さんは,実際のDBMSを使ってSQL文を実行してみたいと気持ちでウズウズとしてきたことでしょう。そこで次回は,SELECT命令を中心に,Accessを使って様々なSQL文を実行してみます。お楽しみに!

◎今回の復習
・DBMSの種類によって,指定できるデータ型の種類や名称に若干の違いがある
・ファイル名,ファイルのサイズ,ファイルの分割方法など,物理的な視点からデータベースを見たものを「内部スキーマ」という
・ユーザーの視点からデータベースを見たものを「外部スキーマ」あるいは「ビュー(view)」という

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介