(1/2)RDBの中心は、データを格納するテーブルである。論理DB操作の手始めとして、今回は実際に手作業でテーブルを作成してみよう。2000の物理データベース・アーキテクチャについて解説した。大量のデータを効率よく利用し、管理するために、OSのファイル・システムの機能をそのまま使うのではなく、データベース・システム側でデータ管理にさまざまな工夫を加えていることが分かった。データベースを操作するアプリケーション・プログラムは、データが物理的にどのように格納されているかを意識しない。テーブルやビュー(仮想テーブル)などといった、論理的なオブジェクトの集合体としてデータベースを操作する。Manager(管理ツール)での実行例などを紹介しながら解説していこう。リレーショナル・データベース基礎の基礎データベースは、データ・モデルに従ってデータを管理するシステムである。データ・モデルとは、データの型や、データとデータとの関係を管理する概念だ。Serverを始め、現在、データベースといえば、リレーショナル・データ・モデルに基づくリレーショナル・データベースが主流だが、このほかにも階層型データ・モデル(メインフレーム環境などで使われていた)やネットワーク型データ・モデル(かつてはよくCOBOLプログラムで使われていた)などがあり、特定用途では現在でも使われている。ほとんどのプログラマや管理者は、リレーショナル・データベース以外に触れる機会は少ないだろう。リレーショナル・データ・モデルでは、すべてのデータを2次元の表(テーブル)で表す。テーブルの例(人事データ)リレーショナル・データ・モデルでは、すべてのデータをこのような2次元の表として扱う。このような表データから、条件を満たす行や列を取り出して(選択して)操作したり、別の表と組み合わせて(結合して)操作したりする。リレーショナル・データ・モデルでは、このような表データから、条件に合致する行だけを取り出して操作したり(入社年度が2000年の社員だけ、など)、別の表と組み合わせて(結合して)仮想的な表を作って操作したりできる。データ・モデルを理解しやすく、柔軟性が高いのがリレーショナル・データベースの特長である。図に示したとおり、1つのテーブルは、そこに含まれる複数の列で構成される。このようにテーブルは、どのような列で構成されるかによって構造が決定される。テーブル構造は、リレーション・スキーマと呼ばれることもある。スキーマ(schema)は「概要」「略図」の意味だ。データベースの論理データ構造を設計することを「スキーマ設計」という。テーブルの縦方向は「列」(「カラム」)、横方向は「行」(「レコード」)と呼ぶ。この人事テーブルの例では、社員1人分のデータが1つの行に対応している。一連のリレーション・スキーマの列に従って格納された1つの行データを指して「レコード・オカレンス」と呼ぶこともある。オカレンス(occurrence)は「存在」という意味だ。ある行データの主キーの値は、テーブルの中でその行データを唯一特定できる値である。前出の例なら、「社員番号」が主キーになる。社員番号が決まれば、社員(行データ)を一意に特定できる。key)テーブルの列のうち、全行のオカレンスに対して、その列の値が異なるもの(ユニークなもの)を主キーと呼ぶ。社員テーブルでは、社員番号を主キーにできる。同じ社員番号を持つ社員は2人といないからだ。主キーとなっている列を利用すれば、テーブルから重複せずに1つの行を特定できるようになる。これは、あるテーブルから別のテーブルを参照する際に重要な意味を持つ。データベースを利用するアプリケーションは、必要なデータの検索や更新、削除をデータベースに対して実行する。manipulation)」と呼ばれる。アプリケーションからデータベースへのデータ検索依頼は、「問い合わせ」という意味のクエリ(query)という用語を使う。Serverでは、データベースへの問い合わせ用コードをGUIで作成できるツールが用意されている。これについては、後で具体的な例とともにご紹介しよう。Serverでごく簡単なテーブルを作成しながら話を進めよう。Manager)を利用する。Serverデータベースに関するさまざまな作業ができる。Serverグループ。Serverをインストールしたときには、自分のコンピュータだけがここに表示される。Serverグループに追加して、リモート管理することも可能。Serverによって管理されているデータベース。Serverのインストール直後でも、各種システム・データベースが一覧される。(3)そのほかのサービス・グループ。今回は述べないが、データ変換サービスやレプリケーション(複製)など、データベースに対するさまざまな作業をここから実行できることが分かる。Serverグループの「データベース」に表示される。Serverシステムが使うシステム・データベース、それ以外がユーザー・データベースである(Northwindはチュートリアル用として提供されているもの)。新規データベースを作成するには、左側のペインにある[データベース]フォルダを右クリックし、表示されるメニューの[新規データベース]を実行する。左のツリーで「データベース」を右クリックし、表示されるメニューを使う。(1)データベースを作成するにはこれを実行する。して表示されるダイアログの[名前]部分にデータベースの名前を指定する。任意でよいが、ここでは仮に「人事データベース」とした。別のタブなどでいくつかの設定を行えるが、取りあえずここでは名前だけを指定して[OK]ボタンをクリックする。(1)作成するデータベースの名前を指定する。細かい設定はさておき、ここではデータベースの名前だけ指定して、[OK]ボタンをクリックする。これでユーザー・データベースが出来上がる。作成されたデータベース「ダイアグラム」や「テーブル」「ビュー」などはデータベースを構成するオブジェクトだ。「テーブル」を選択すると、何もしていないのに多数のテーブルが存在することが分かる。Serverシステムが使用するシステム・テーブルである(通常、アプリケーションからは直接アクセスしない)。(1)今回作成したデータベース。作成した「人事データベース」の中には、さまざまなデータベース・オブジェクトが作成されている。上の画面は、これらの中から[テーブル]オブジェクトを選択し、テーブル一覧を右ペインに表示したところ。Serverシステムが使用するテーブル群で、通常はアプリケーションから直接にはアクセスしない。ここでは例として、ごく簡単な人事テーブルを作成する。作成するテーブルは以下のPersonとSectionの2つである。Personテーブルには各社員のデータを、Sectionテーブルには部署データをそれぞれ格納する。作成するサンプル・テーブル作成するテーブルはPersonとSectionの2つ。それぞれPersonテーブルには社員情報を、Sectionテーブルには部署情報を格納する。Managerのデータベースで[テーブル]を右クリックし、表示されるポップアップ・メニューの[新規テーブル]を実行する。次に表示されるダイアログでテーブルを構成する列の情報を定義する。新規テーブルの作成テーブルの作成では、各列の名前、データ型、長さ、Nullの許容可否を入力する。左にある小さな鍵のマークは、主キーであることを表す。(1)主キーとなる列には小さな鍵マークのアイコンが表示される。主キーを設定するには、列を右クリックし、表示されるポップアップ・メニューの[主キーの設定]を選択する。