• ベストアンサー

アクセスについて

アクセスを使ったデータベースの作り方がよくわかりません。昔どうしても仕事で必要で覚えなければいけなかったのですが、どうやらDBというものの構造が理解できていないようでどれだけ本を読んでもちんぷんかんぷんでした。ある人に相談したところ情報処理2種の勉強の中で「リレーショナルDB」などDBの構造を理解するためのものが書かれているはずだからそれをやったら?」などと言われました。「DBの構造」というものがどんなものなのか、身近にある例で示していただける方はいらっしゃいませんか?どうもイメージがつかないのです。

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

  • ベストアンサー
回答No.5

「DBの構造」を身近にある例でっていうことなので、社内情報を例にしてみます。 リレーショナルDBってテーブル(表)の集まりです。 このような「社員テーブル」があったとします。 ------------------------------ 社員番号 名前 所属部署コード ――――――――――――――― 2046  田中   J 2047  鈴木   E ------------------------------ 所属部署コードが記号で表されています。 もう1つ次のような「部署テーブル」があったとします。 -------------------- 部署コード 名称 ――――――――――   J     人事   E     営業 -------------------- 社員テーブルの所属部署コードと部署テーブルの部署コードが連携してるような感じですね。 あるテーブルではコードをもっていて、他のテーブルがそのコードの名称をもっているというのが多いパターンではないかと思います。 DBの構造のイメージがちょっとはわかったでしょうか?(説明が下手だからわかりにくいかなぁ) 補足でつっこんでもらっても構いません。

mimizuku
質問者

お礼

補足に対する回答、どうもありがとうございました。 お礼が遅くなってしまってすみません。 わかりやすく説明いただきました。みなさんの回答を拝見してやっとDBの構造というものの大枠はつかめたように思います。(友人にも確認しました)本当にどうもありがとうございました。

mimizuku
質問者

補足

回答ありがとうございました。補足OKということでしたので、お言葉に甘えて質問させていただきます。よろしくお願いします。 私はエクセルをよく使うのですが、たとえば -------------------- 部署コード 名称 ――――――――――   J     人事   E     営業 -------------------- という表を関数の「定義」を使って定義しますよね? そのあと、別のシートの中にある、 -------------------- 部署コード 社員番号 ――――――――――   J     000   E     001 -------------------- の表で「VLOOKUP」関数で部署コードから部署名を呼び込むことをしますが、リレーショナルDBというのはこれと 同じような考え方なのでしょうか? これをアクセスでやる場合には「定義されたDB」と 基になる(ここでは下の表)DBをつなぐための「クエリー」という機能を使う ということですか? ということはいくつかのDBをすべてリレーショナルにするときには、共通の項目(たとえば社員番号など)をすべてのDBに設けておく必要があるということですか? お忙しいところすみませんが、よろしくご回答お願い致します。

その他の回答 (5)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.6

>データベースアプリケーションという言葉は初めて聞いたのですが、アクセスですと、テーブル以外のすべての機能、すなわち「クエリー、フォーム、レポート、マクロ、モジュール」がすべてデータベースアプリケーションということでしょうか? データベース → 蓄積されたデータの事。 データベースアプリケーション → データベースを利用するためのソフト。 ですから、 ・テーブル(に蓄積されたデータ)=データベース。 ・フォーム、レポートマクロ等を駆使して、使いやすいように作ったソフト = データベースアプリケーション ってことでいいと思います。

mimizuku
質問者

お礼

お礼が遅くなりましてすみません。 どうもありがとうございました。後は実際に使って学びたいと思います。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

リレーショナルDBについて 仮に下のような表があったとします。 [売上表] 顧客名称 売上 ○○商店 \100 △△販売 \200 ○○商店 \150 ○○省店 \300 「○○商店」が何度も登場して、入力するのがなんとも面倒臭そうですね。 おまけに、4件目のデータには入力ミスがあります。これじゃぁ、後で「○○商店」の売上を集計しようと思っても、正確な値は出ません。 もし仮に以下のような表もあったとします。 [顧客表] 番号 顧客名  住所 1  ○○商店 どっか 2  △△販売 あっち これなら、[顧客表]の[番号]を使って、[売上表]の入力を楽できそうですね。 [売上表] 顧客 売上 1  \100 2  \200 1  \150 1  \300 っていうのがリレーショナルDBの考え方です。 一見、顧客番号をいちいち覚えなくてはいけなくて、件数が多いと大変な気がしますが、実際には、「1」って入力した段階で隣に「○○商店」って表示させたり、顧客の一覧を表示して、マウスで選択すると「1」が入力できたりするので、それほど大変じゃないです。 二つの表を合成して、 [売上-顧客] 顧客名称 売上 住所 ○○商店 \100 どっか △△販売 \200 あっち ○○商店 \150 どっか ○○省店 \300 どっか と表示させたりする事も出来ます。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

この手の知識は、本を読むだけでは、まず身につきませんよん。 理解してから作るのではなく、作りながら理解するっていうのが、正しい勉強方法です。(多分ネ。) アクセス(Access)に関しては、「そもそもデータベースとは」ってとこから始めた、ビギナー向けの書籍がいっぱい出ておりますので、まずはそれらを読みながら、実際に作ってみられるのがいいと思います。(情報処理2種云々の本は、基本的に分かってる人向けのものだと思うので、お勧めしません。) どの入門書も肌に合わないときは、Accessを教えてくれるパソコン教室も結構ありますので、それを利用するって手もあります。 ***** さてさて、絶対に入門書の方が分かりやすいことに自信がありますが(笑)、とりあえず説明してみます。(文字だけで伝えるのって難しいですネ。) DBって基本的に表だと思ってください。 例えば、Excelの表にしても、商店の帳簿にしても、電車の時刻表だって、データベースだってことです。 そして、この「表」から、「住所の一覧」や「昨日最後に発送した商品の個数」といった情報を取り出して、表 示/編集したり、あるいは帳票を印刷する機能を持たしたものを「データベース・アプリケーション」といいます。 ですから、「Accessでデータベースを作る」と言った場合、実際には、「データベースと、データベース・アプリケーションを作る」と言った意味合いになるんですね。 AccessでDBアプリを作成するには、以下のような部品を作成して、それを組み合わせることによって実現します。 ・「テーブル」  テーブルとは、データベースの基礎となる「表」です。この表にデータを入力して、蓄えます。 ・「クエリー」  「テーブルからどのようにデータを取り出すのか」という条件を記述したものです。  中身は「住所録にある赤川氏の電話番号」のようになっているので、仮に他の誰かが赤川氏のデータを書き換えたとしても、常に最新のデータを得る事が出来ます。 ・「フォーム」  テーブルやクエリーからデータを受け取り、それを表示したり編集したりするためのものです。  データの入力チェックを行ったり、効率よくデータを入力するための支援機能を組み込んだりできます。 ・「レポート」  印刷物を作成するために使います。 ・「マクロ」「モジュール」  DBアプリを使いやすくするために必要です。

mimizuku
質問者

補足

回答ありがとうございました。データベースアプリケーションという言葉は初めて聞いたのですが、アクセスですと、テーブル以外のすべての機能、すなわち「クエリー、フォーム、レポート、マクロ、モジュール」がすべてデータベースアプリケーションということでしょうか?お忙しいところすみませんが、ご回答よろしくお願い致します。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

多分。分からないのはRDBのことではなく アクセスの操作方法ではないかと思うのですが(^^; あれは非常にとっつきにくいソフトです。 身近にあるRDBと言えば・・・そうですなぁ たくさん所有しているクラシックCDのデータベースと かどうでしょう。 この場合の情報は CDのタイトル・曲目・作曲者・演奏家・出版社・値段などなどが考えられますが。 テーブル一つで作ろうと考えた場合非常に無駄が多い ですよね。 CD1・曲1・作曲者A・演奏家A・出版社A・値段A CD1・曲2・作曲者B・演奏家A・出版社A・値段A CD2・曲1・作曲者A・演奏家C・出版社B・値段B ってな感じになるとどうしても重複するでしょ。 この場合 CD・出版社・値段 曲目・作曲者 演奏家 は別テーブルで作ると無駄が少なくなるし それぞれのテーブルの管理も楽になるというのは 分かりますかね? んでそれぞれのテーブルを関連付け (リレーショナル)させて一つのものとして扱う 訳なんですが。 どうなんでしょ。こんなんで分かりました?

  • Naka
  • ベストアンサー率44% (527/1181)
回答No.1

◆mimizukuさんが、どの程度理解していらっしゃるのか、ちょっとわからないので、私がいつも「生徒さん」に説明するような初歩的な内容のお話をさせていただきます。 例えば、個人の名簿のようなものを考えてください。 そこには、個人の住所、氏名、電話番号、誕生日、会社、などが記載されているものとします。 通常の名簿ですと、これがまとめて、または1枚1枚カードのようになっていて、一括に管理されていますね。 そこから、「神奈川県」に住んでいる人だけを抽出しようとすると、それを1件ずつ見ていって抜き出す、という作業をしなければなりません。 だったら、住所の都道府県別に分けておけばいいだろう、ということになるのですが、そうすると今度は「9月が誕生日の人だけ選びたい」というとき、また大変な作業になりますよね。 このように、個々のデータはその種類や項目に応じて分けておきたいのですが(テーブルと言います)、そのためにはテーブルごとに名簿を用意しなければなりません。 Accessなどのデータベースソフトは、それを必要に応じて自動的にやってくれます(クエリーと言います)。 そして、必要な情報だけを検索・抽出して、新たなデータの集合を作ることができるのです。 手順としては… 1.まずデータの入れ物となる「データベース」を作成します。 2.データの項目を定義して、テーブルを作成します。 入力する項目を「フィールド」、個々のデータの集まりを「レコード」と言います。 3.各場面で必要なデータを検索したり、加工をしたりするためのクエリーを作成します。。 4.データを入力するための画面(フォーム)を作成します。 5.レポート(全体の調整、印刷するためのフォーマット)を作成します。 という流れになります。 また、マクロを用いることによって、作業の自動化を行うこともできます。 具体的な操作については、何か1冊、わかりやすい参考書を買ってきて、実際にやってみるのが一番だと思います。

関連するQ&A