- ベストアンサー
リレーショナルデータベースとは
リレーショナルデータベースを、全くパソコン初心者の方に説明する必要が出てきました・・・。 なるべく簡潔で、わかりやすい例を探しているのですが わかりません。どうしても複雑になってしまうのです。 リレーショナルデータベースを全くパソコン初心者にわかってもらう いい例えをお持ちの方が、いらっしゃいましたらご教授お願いします。 表を使用するものが、リレーショナルデータベースです。といっているのですが。 いまいちのようで・・・。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
リレー競争(relay)とリレーション(relate)とを結び付けるのは 無理がありそう。 ひとつのデータと別のデータを各々のデータの中の特定の値で関連 付ける(別データを参照したりグループ化できる等)ことができる データベース、でいいのでは? 例えば学校の生徒名簿なら、カード型データベースでいえば一つ一 つのデータは個人データですけど、クラス名をリレーショナルキー とすれば、あるクラスには何人在籍しているとかなどキーでグルー プ化して計算できたりします。 表は関係無いです。
その他の回答 (5)
- kuroizell
- ベストアンサー率55% (95/170)
> ただ、単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目なのです。 「Excelデータベースで出来ないことや問題点を解決するもの」程度に 認識してもらえば良いのではないでしょうか。 それだけでは足りないのなら、 全くの初心者なら問題にすらぶち当たっていないでしょうから、 まずは諸種問題点から説明する。 それら問題にぶち当たって、初めてソリューションとしてのRDBの出番です。 そして問題解決のためのRDB使用にあたり、厳しいルール(正規化)に従う必要がある。 よって、ルールに従って各種データはこのような形となる(第n正規形とかRDB構築に取り組まない人には不要)。 唯一無二であることを示すためのアイデンティティとして、主キー(ID)が必要になる。 最終的には主キーに従属するデータを持たせる、これがデータ同士の関連性、リレーションである。 これにより、前述の諸種問題は解決できる。 ・・・うん、やっぱり分からないでしょうね。
お礼
情報がありがとうございます。 >・・・うん、やっぱり分からないでしょうね。 ちょっと難しいです。 >全くの初心者なら問題にすらぶち当たっていないでしょうから、 まずは諸種問題点から説明する。 この方式で様子見をしてみることにします。
- aton
- ベストアンサー率47% (160/334)
個人的には 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)
お礼
情報ありがとうございます。 やっぱりこれだけの説明が要りますよね・・・。 行の重複とかは一通り説明したのですが。 やってもらうしかないですかね。
- takuranke
- ベストアンサー率31% (3923/12455)
ある項目やレコードを関連付けることで、別々のデータベース群を連携させ情報抽出等が出来るようにしたデータベース。 リレーショナルは関係や相関的なという意味です。 データは行と列から構成される表形式で表します。 列は各項目を表し、行はデータのレコードを表します。 各データ群は表と表の関係によって関連付けられ、 構造化問い合わせ言語(SQL)によりユーザーの目的に応じて操作できます。 大雑把な例えですが、顧客管理のデータ群と販売情報のデータ群があったとして、 顧客番号という項目で関連付けをすることで、双方のデータ群と連携が出来ます。 階層型の場合は、ツリー構造で、ある1つのデータが他の複数のデータに対して、親子の関係をもつので、1つのデータを探す手順(アクセスするルート)は1通りしか存在しません。 なのででリレーションは出来ません。
お礼
情報ありがとうございます。 >大雑把な例えですが、顧客管理のデータ群と販売情報のデータ群があったとして、 顧客番号という項目で関連付けをすることで、双方のデータ群と連携が出来ます。 ちょっと例を作成してこれで説明してみようと思います。
- Hirorin_20
- ベストアンサー率20% (136/648)
>表を使用するものが、リレーショナルデータベースです。といっているのですが 間違いです。 データベースはどれだって表になります。複数の表を関連させられるがリレーショナルデータベースです。 運動会のリレーとか箱根駅伝とか思い浮かべてください。これがまさにリレーです。このときバトンとかタスキを受け渡します。これを受け渡すことによりリレーが成立するのです。バトンとかタスキとかがあってリレーになるのです。 別々の表をバトンとかタスキで繋ぐことができるのがリレーのようになってるデータベースと言うことでリレーショナルデータベースと言います。略してRDBです。
お礼
すばらしい例を教えて頂き、ありがとうございます。 ちょっといくつかお聞きさせて頂ければと思います。 >複数の表を関連させられるがリレーショナルデータベース そのとおりです。申し訳ありません。 訂正ありがとうございます。 >運動会のリレーとか箱根駅伝とか思い浮かべてください。これがまさにリレーです。このときバトンとかタスキを受け渡します。これを受け渡すことによりリレーが成立するのです。 これは、リレーションのことと認識させて頂きましたが問題ないでしょうか? >別々の表をバトンとかタスキで繋ぐことができるのがリレーのようになってるデータベースとと言うことでリレーショナルデータベースと言います。略してRDBです。 リレーションを使えることの出来るデータベースがリレーショナルデータベースと言います。で認識させて頂きましたが問題ないでしょうか? 最後に 階層型DBでは、リレーション使えないのでしょうか?
- hiro001001
- ベストアンサー率22% (87/389)
何のためにその方に説明するのかによって、答えは変わると思いますが… とりあえず、概念の説明をしようとせず、具体例だけ示して「こういうのを(リレーショナル)データベースっていうんだよ」と教えるのが良いと思います。 例えばクラス名簿の例で、「学年」「クラス」「出席番号」「性別」「生徒氏名」の一覧表を見せます。 その上で ・「○年○組の出席番号○番の生徒の氏名」を調べる例 ・「○年○組の男子生徒の氏名の一覧」を取得する例 を説明し、データベースのselectの概念を大雑把に把握してもらいます。 さらに、「学年」「クラス」「担任」の一覧表を用意し、 ・「○○○○という氏名の生徒の担任の名前」を調べる例 を説明し、「リレーション」の概念を大雑把に把握してもらいます。 とりあえずこれだけ説明して、後は本人から質問してもらって、徐々に理解してもらうのが良いのでは。
お礼
>何のためにその方に説明するのかによって、答えは変わると思いますが… ただ、単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目なのです。 早期ご回答ありがとうございます。 例までつけて頂きありがとうございます。 例を説明するのにselectの話が若干必要になり 理解できなかった場合、そこでパニックを起こすと思います。 そこで挫けてしまうと、 例を説明しても効力が無いように思います。 こちらでももう少し考えて見ます。 ご意見ありがとうございました。
お礼
情報ありがとうございます。 >ひとつのデータと別のデータを各々のデータの中の特定の値で関連 付ける(別データを参照したりグループ化できる等)ことができる データベース、でいいのでは? これで説明しようと思います。