こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

リレーショナルデータベースとは

リレーショナルデータベースを、全くパソコン初心者の方に説明する必要が出てきました・・・。

なるべく簡潔で、わかりやすい例を探しているのですが
わかりません。どうしても複雑になってしまうのです。

リレーショナルデータベースを全くパソコン初心者にわかってもらう
いい例えをお持ちの方が、いらっしゃいましたらご教授お願いします。

表を使用するものが、リレーショナルデータベースです。といっているのですが。
いまいちのようで・・・。

投稿日時 - 2012-01-22 01:35:06

QNo.7258952

すぐに回答ほしいです

質問者が選んだベストアンサー

リレー競争(relay)とリレーション(relate)とを結び付けるのは
無理がありそう。
ひとつのデータと別のデータを各々のデータの中の特定の値で関連
付ける(別データを参照したりグループ化できる等)ことができる
データベース、でいいのでは?
例えば学校の生徒名簿なら、カード型データベースでいえば一つ一
つのデータは個人データですけど、クラス名をリレーショナルキー
とすれば、あるクラスには何人在籍しているとかなどキーでグルー
プ化して計算できたりします。
表は関係無いです。

投稿日時 - 2012-01-23 20:34:18

お礼

情報ありがとうございます。

>ひとつのデータと別のデータを各々のデータの中の特定の値で関連
付ける(別データを参照したりグループ化できる等)ことができる
データベース、でいいのでは?

これで説明しようと思います。

投稿日時 - 2012-01-24 02:03:14

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(6)

ANo.5

> ただ、単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目なのです。

「Excelデータベースで出来ないことや問題点を解決するもの」程度に
認識してもらえば良いのではないでしょうか。
それだけでは足りないのなら、
全くの初心者なら問題にすらぶち当たっていないでしょうから、
まずは諸種問題点から説明する。
それら問題にぶち当たって、初めてソリューションとしてのRDBの出番です。
そして問題解決のためのRDB使用にあたり、厳しいルール(正規化)に従う必要がある。
よって、ルールに従って各種データはこのような形となる(第n正規形とかRDB構築に取り組まない人には不要)。
唯一無二であることを示すためのアイデンティティとして、主キー(ID)が必要になる。
最終的には主キーに従属するデータを持たせる、これがデータ同士の関連性、リレーションである。
これにより、前述の諸種問題は解決できる。


・・・うん、やっぱり分からないでしょうね。

投稿日時 - 2012-01-23 11:09:20

お礼

情報がありがとうございます。

>・・・うん、やっぱり分からないでしょうね。
ちょっと難しいです。

>全くの初心者なら問題にすらぶち当たっていないでしょうから、
まずは諸種問題点から説明する。

この方式で様子見をしてみることにします。

投稿日時 - 2012-01-24 02:07:27

ANo.4

個人的には No.1 の回答者の方に1票。
「誰に」「どういう目的で」が明らかでないと,本来的にはどう説明すればいいかは決められないと思います。

今回,「誰に」は「全くパソコン初心者の方に」ということですが,「どういう目的で」の方がはっきりしていません。ShiftTailさんは「単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目」と書かれていますが,教えられる側の方が「どういう時にその知識を活用したい」のかというようなこともわからないのでしょうか? 極論「試験に受かる/いい成績を取るため」でもいいので,なにかそういう活用シーンというのがあるはずだと思うのですが。それがないのであれば,逆にいうとその知識は不要なのではないでしょうか?

とにかく,基本的に何かを説明するということは,「正確さ」と「わかりやすさ」のトレード・オフであり,そのバランスは,「誰に」「どういう目的で」という要素で変わってきます。

一応「初心者」向けに,「正確さ」より「わかりやすさ」を優先した私なりの説明を以下に述べておきます。「目的」がわからないので,本当に最低限の説明になっています。

・「データベース」とは,たくさんのデータの集まり。
・「リレーショナル・データベース」とは,表形式で表されるデータの集まり。ただし,同じ表の中に同じデータは1つしかないことが保証されている。

以下は質問が出たときの補足。
・「表形式」というのは,「行」と「列」で表現されるという事。リレーショナル・データベースの世界では,データを「行」,データの項目を「列」として扱う事になっている。
例:項目「番号」が「11」,項目「名前」が「佐藤」,項目「年齢」が「16」のデータ
 列  列  列
 ↓  ↓  ↓
+——+——+——+
|番号|名前|年齢|
+——+——+——+
|11 |佐藤|16 |←行=データ
+——+——+——+

・「同じ表の中に同じデータは1つしかない」については,リレーショナル・データベースになっている表となっていない表の,2つの表を例に説明する。
リレーショナルでない例:
+————+——+
|氏名  |年齢|
+————+——+
|佐藤一郎|16 |
+————+——+
|鈴木二郎|16 |
+————+——+
|佐藤一郎|16 |
+————+——+
リレーショナルな例:
+——+————+——+
|番号|氏名  |年齢|
+——+————+——+
|11 |佐藤一郎|16 |
+——+————+——+
|12 |鈴木二郎|16 |
+——+————+——+
|13 |佐藤一郎|16 |
+——+————+——+
同姓同名で年齢が同じ人も,番号という項目を持つことで識別できる。
リレーショナル・データベースでは,上の表に,もう一行「番号」が「11」,「氏名」が「佐藤一郎」,「年齢」が「16」の行を追加しようとすると拒否される。

さらに詳細な質問のための説明は以下。
・では「番号」が「11」,「氏名」が「佐藤一郎」,「年齢」が「17」の行を追加するのは可能か?
→このままだと可能。それで困る場合は,「主キー」を指定する。「主キー」は,データが重複しているかどうかを判断するのに利用する項目のこと。このばあい,主キーに「番号」を指定すると,「番号」が同じ行は追加できなくなる。

・なぜ重複を排除するのか
その方が検索や更新がしやすくなるから。いい加減面倒になったので,例は質問者ご自身で考えてみてください。

・各行の各項目にはどういう値が入れられるのか
一般的なリレーショナル・データベースでは数値または文字のどちらかしか入れられない。
109→OK
山田太郎→OK
3.14159→OK
1, 2, 180→NG(複数の値を一つのセルに入れる事はできない)
109, 山田太郎→NG(複数種類/複数の値を一つのセルに入れる事はできない)

ちなみに,「リレーショナル・データベース」とは,上で説明した「重複のない表」を表す数学用語「リレーション(relation)」を扱うデータベースという意味です。数学用語「リレーション(relation)」の日本語訳は「関係」ですが,これは通常の意味の「関係」とは全く異なる定義を持つ数学用語であり,上に書いた通り,「重複のない表」を指す名詞です。
http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82_(%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9)

投稿日時 - 2012-01-22 17:49:35

お礼

情報ありがとうございます。

やっぱりこれだけの説明が要りますよね・・・。

行の重複とかは一通り説明したのですが。
やってもらうしかないですかね。

投稿日時 - 2012-01-24 02:04:32

ANo.3

ある項目やレコードを関連付けることで、別々のデータベース群を連携させ情報抽出等が出来るようにしたデータベース。

リレーショナルは関係や相関的なという意味です。

データは行と列から構成される表形式で表します。
列は各項目を表し、行はデータのレコードを表します。
各データ群は表と表の関係によって関連付けられ、
構造化問い合わせ言語(SQL)によりユーザーの目的に応じて操作できます。

大雑把な例えですが、顧客管理のデータ群と販売情報のデータ群があったとして、
顧客番号という項目で関連付けをすることで、双方のデータ群と連携が出来ます。


階層型の場合は、ツリー構造で、ある1つのデータが他の複数のデータに対して、親子の関係をもつので、1つのデータを探す手順(アクセスするルート)は1通りしか存在しません。
なのででリレーションは出来ません。

投稿日時 - 2012-01-22 03:24:22

お礼

情報ありがとうございます。

>大雑把な例えですが、顧客管理のデータ群と販売情報のデータ群があったとして、
顧客番号という項目で関連付けをすることで、双方のデータ群と連携が出来ます。

ちょっと例を作成してこれで説明してみようと思います。

投稿日時 - 2012-01-24 02:00:36

ANo.2

>表を使用するものが、リレーショナルデータベースです。といっているのですが
間違いです。
データベースはどれだって表になります。複数の表を関連させられるがリレーショナルデータベースです。

運動会のリレーとか箱根駅伝とか思い浮かべてください。これがまさにリレーです。このときバトンとかタスキを受け渡します。これを受け渡すことによりリレーが成立するのです。バトンとかタスキとかがあってリレーになるのです。
別々の表をバトンとかタスキで繋ぐことができるのがリレーのようになってるデータベースと言うことでリレーショナルデータベースと言います。略してRDBです。

投稿日時 - 2012-01-22 02:01:48

お礼

すばらしい例を教えて頂き、ありがとうございます。
ちょっといくつかお聞きさせて頂ければと思います。

>複数の表を関連させられるがリレーショナルデータベース

そのとおりです。申し訳ありません。
訂正ありがとうございます。

>運動会のリレーとか箱根駅伝とか思い浮かべてください。これがまさにリレーです。このときバトンとかタスキを受け渡します。これを受け渡すことによりリレーが成立するのです。
これは、リレーションのことと認識させて頂きましたが問題ないでしょうか?

>別々の表をバトンとかタスキで繋ぐことができるのがリレーのようになってるデータベースとと言うことでリレーショナルデータベースと言います。略してRDBです。
リレーションを使えることの出来るデータベースがリレーショナルデータベースと言います。で認識させて頂きましたが問題ないでしょうか?

最後に
 階層型DBでは、リレーション使えないのでしょうか?

投稿日時 - 2012-01-22 02:31:19

ANo.1

何のためにその方に説明するのかによって、答えは変わると思いますが…

とりあえず、概念の説明をしようとせず、具体例だけ示して「こういうのを(リレーショナル)データベースっていうんだよ」と教えるのが良いと思います。

例えばクラス名簿の例で、「学年」「クラス」「出席番号」「性別」「生徒氏名」の一覧表を見せます。
その上で
・「○年○組の出席番号○番の生徒の氏名」を調べる例
・「○年○組の男子生徒の氏名の一覧」を取得する例
を説明し、データベースのselectの概念を大雑把に把握してもらいます。

さらに、「学年」「クラス」「担任」の一覧表を用意し、
・「○○○○という氏名の生徒の担任の名前」を調べる例
を説明し、「リレーション」の概念を大雑把に把握してもらいます。

とりあえずこれだけ説明して、後は本人から質問してもらって、徐々に理解してもらうのが良いのでは。

投稿日時 - 2012-01-22 01:58:57

お礼

>何のためにその方に説明するのかによって、答えは変わると思いますが…
ただ、単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目なのです。


早期ご回答ありがとうございます。
例までつけて頂きありがとうございます。

例を説明するのにselectの話が若干必要になり
理解できなかった場合、そこでパニックを起こすと思います。

そこで挫けてしまうと、
例を説明しても効力が無いように思います。

こちらでももう少し考えて見ます。
ご意見ありがとうございました。

投稿日時 - 2012-01-22 02:27:02

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-