矢沢久雄 グレープシティ アドバイザリースタッフ
今回のキーワード
・データ型
・スキーマとビュー
図1●SQL文を入力するウインドウ |
CREATE TABLE MeisiTbl( Shimei CHAR(50), Jusho CHAR(50), Nenrei INTEGER ); |
図2●データ型はDBMSのツールで指定する |
スキーマとビュー
最後に,またまたデータベース関連の用語をいくつか覚えていただきましょう。連載の第1回「SQLを学ぶ前に(3)---リレーショナル・データベースとは」で,列の属性,制約,及びテーブル間のリレーションなどの定義をスキーマと呼ぶと説明しました。ただし実際には,スキーマを3種類に分類して考えます(図3[拡大表示])。前回説明したスキーマは,正確には,概念スキーマに相当するものです。
図3●ANSIの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)」という