SQLの説明の前に①・・・(リレーショナルデータベースの基礎①)



リレーショナルデータベースの基礎

SQLは、リレーシヨナルデータベースを使うための言語です。SQLを学ぶには、その前にまず、リレ-シヨナルデータベースとは何かについて知っておく必要があります。この章では、リレーシヨナルデータベースの概念と特性について説明します。

ここで確認すること

・データベースとはなにか
・データモデルとはなじか
・リレーシヨナルデータベースの原理
・集合演普と関係演算

1.1 データベースとDBMS

「データベース」とは、いったいどのようなものなのでしょうか?また、「データ」とはそもそも、どんなものをいうのでしょうか? 年賀状を書くとき、私たちは知人の指名や住所といった情報を利用しています。データとは、このように現実の世界にさまざまな状態で存在している情報のことをいいます。私たちは多くの情報をデータとして蓄積し、日々の暮らしの中で利用しているのです。データを蓄積すれば、さまざまな用途に役立てることができます。私たちは、知人の住所や氏名などのデータを書きとめ、それを住所録として利用しています。ここで、コンピュータを使えば、さらに多くのデータを管理し、活用することが可能になります。コンピュータで扱うことのできるかたちにデータをまとめたものを、ファイルと呼びます。住所録のデータをファイルとして記録し、検索機能を持つアプリケーシヨンプログラムを作成すれば、より有効にデータを活用することができるようになるでしょう。
しかし、さらに膨大で複雑なデータを扱う場合を考えてみてください。たとえば、企業の売上に関するデータを管理する場合はどうでしょうか。このとき、在庫管理、販売管理などのアプリケーシヨンがそれぞれ、売上データを自分専用のファイルとして持っていては、データの管理の面で効率がよくありません。たとえば、新商品が売り出された場合には、その商品に関する情報をそれぞれのファイルに個別に登録しなければなりません。
そこで、より効率的にデータを管理するために利用されているのが、データベースです。データベースは、膨大で複雑なデータを複数のアプリケーションで共有をすることを目的としています。企業の売上を管理するデータベースでは,新商品が売り出された場合にも、その商品の情報を商品マスターに登録しておくだけで、すべてのアプリケーションからその情報にアクセスすることができます。データベースを利用すれば、企業全体でデータを共有し、より有効にデータを活用することが可能になるのです。

しかし、実際にデータベースを利用するには、事前に様々なことを決定しておかなければなりません。たとえば、電車の座席予約システムを考えてみてください。別々の利用者がたまたま同じタイミングで、2人の人が同じ座席を予約しようとする場合を想定してみましよう。

下の図を見てください。空席になっているある席に対して、ある人がA駅から、別の人がB駅から確認し(Tu T2)、それぞれがその席を予約しようとしてデータベースに情報を書き込むと同じ座席に対して2つの切符が発券されてしまいます。これでは、データに不整合が起きてしまいます。データベースを構築する場合には、このような問題を未然に防ぐための手段が欠かせません。

さらに、大規模なデータベースを利用する場合には、他にもさまざまな問題を想定する必要ががあります。一般に、次のような状況が考えられます。

・まちがったデータがデータベースじ入力されることを防止したい。
・権限のない人間が不正にデータべースじアクセスすることを阻止したい。
・データベースに障害が起きたときの為に迅速な複旧手順を確立しておきたい。

このようなさまざまな問題を解決してくれるのが、データベース管理システム(DBMS :DataBase Management System)です。DBMSは、データベースじ関する問題解決を一
手に引きをけてくれます。DBMSを利用することによって、アプリケーションの開発者は、データベースの管理に気をとられず、データベースを利用するためのインターフェイスの
開発に専念することができるようになるのです。

1.2 データモデル

実際のコンピューダにデータベースを実装し、DBMSを導入するためじは、さまざまなデータカ巧をしている現実の世界をコンピュータの化巧に移し替えなければなりません。
そのためじはまず、データがどのようじ楠成され、組み立てられているのかを、一をの枠組みの中で定義ずる化要があります。このような、データの構造を表すための枠祖みのこ
とをデータモデルと呼びます。
データモデルじは、これまでじいろいろなものが考案されできました。主なデータモデルには、ホのようなものがあります。

・階層型
・ネットワーク型
・リレーシヨナル

これらのうち、リレーショナル型データモデルがSQLの基礎となるもので、現在、最も広く普及しているデータモデルです。一方、階属型とネットワーク型は、リレーショナル
型が考案される前から使われていたデータモデルです。ここでは、これらのデータモデルの概念と特性について、簡単に見ておきましょう。

階眉型とネットワーク型のデータモデルでは、データどうしの関係を親子関係として表現します。階層型では、1つのデータは1つの親データを持ちます。一方、ネットワーク型では、1つのデータが複数の親データを持っことができまず。下の図は、これら2つのデータモデルの概念を表しています。

これらのデータモデルでは、データの親子関係を示すためにポインタという方式を使います。ポインタとは、次のデータの物理的な格納位置を指し示す情報のことです。ボインタを使うこれらのデータモデルでは、ポインタの情報を書き換えることによって、データの追加や削除を簡単に行うことができます。しかし、その一方で、特定のデータを検索しようとする場合には、ポインタの連鎖をたどって目的のデータを探していかなければならないため、非常に効率が悪くなることがあります。

そのような弱点を克服する新しいデータモデルが、リレーシヨナルデータモデルです。リレーシヨナルデータモデルは、1970年、アメリカ IBMのE.F.Codd博士が提唱した論文,Relational Model of Data for I_arge Shared Data Banks”によって生まれました。このデータモデルの特徴は、データを表として表現し、表を集合としてとらえることです。データを操作するには、集合論に基づく数学上の計算を表に対して実行します。下の図は、リレーシヨナルデータモデルの概念を表しています。

一般に、リレーショナルデータモデルに基づくデータベースのことをリレーシヨナルデータベースと呼びます。また,リレーショナルデータベースを管理するためのDBMSのことを、RDBMS (Relational DataBase Management System)と呼びます。これから説明していくSQLは、RDBMSと対話し、りレーショナルデータべースを操作するための言語です。SQLの使い方と、RDBMSごとの実装の違いについては、以降で詳しく説明します。

1.3 リレーシヨナルデータベース

リレーシヨナルデータベースでは、すべてのデータを2次元の表として表現します。表という構造を用いることによって、だれにでもわかりやすい形式でデータを表現することが可能になります。表の中のデータを操作するには、表に対して数学上の演算を実行します。この演算については、以降の記事で取り上げます。ここではまず、表の構造と、表の中で重要な意味を持つ概念であるキーについて見ておきましょう。

主キー:表の中の1つの行を特定するために使う列のことを、主キーと呼びます。

候補キー:主キーとなりうる列のこと。複数存在することもあります。

連結キー:複数の列の組み合わせによって構成されるキーのことを、連結キーまたは複合キーと呼びます。

リレーションシップと外部キー

リ レーショナルデータベースでは、 通常、1つのデータべースの中に複数の表を作成します。しかし、それぞれの表がデータベースの中でバラバラに存在しているわけではありません。複数の表がつながって1つの表になるように、表どうしを関連付けておくのです(このことを「りレーシヨンシップをとる」といいます)。リレーショナルデータべースでは、リレーションシップに則って表どうしをつなぎ合わせることによって、新たな表を作り出すことができます。その場その場で必要となる情報を持つ表を,状況に応じて作り上げていくことができるのです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です