データベース
レシートを見てみよう コンビニやスーパーで買物をするときの レシートを見てみよう – 何がかいてあるだろうか? – レジで全部打ち込んでいる? – なぜ、打ち込まないのにレシートには商品名 や価格が出てくるの?
図書館の本を探す 図書館の検索システムを見てみよう 何を手がかりに探す? 書名 作者名 シリーズ名 様々な手がかりで探せるのはなぜだろう?
データを蓄積する データが蓄積されていると、 いろいろなものを探すことができる 図書館の場合 書名、作者名、シリーズ名、出版社名 等が 登録されているので、どこからでも探すこと ができる コンビニなどの場合 バーコードと商品名、価格などを登録してお くと、バーコードだけで他のことがわかる
データがあると他に何ができる? 会員証を忘れても、 電話番号と名前で探してくれる! オンラインショップの場合、 以前に買ったものがわかる お店の人にとっては、 売れた商品を調べることができる (よく売れる商品を仕入れることができる)
どっちが探しやすい? たとえば、紙に記録してある 次の2つを考えてみよう 1つめの記録の束 – 学年、クラス、名前、性別、クラブが 順番に書かれていて書く場所も決まっている – 学年、クラス、名前、性別、クラブが 書かれているが、場所は決まっていない
データの残し方 データをためておけば、 いろいろなところに利用できる でも、何も考えずにためておいても、 利用しにくい – 目的のものを探しにくい – 計算したりしにくい
データベース データを蓄積して利用するためには、 効率のいい方法で、管理しておく必要がある この管理のためにデータベースが使われる – 今は、関係データベースという方法が使われて いる
関係データベース 表のようにして、データを管理する レコード フィールド
フィールドってなに? たとえば、Aさんには 1年1組 △△高校 バスケット部 ××市にすんでいる といったいろいろな特徴がある
Bさんにも 同じような特徴がある 1年2組 △△高校 ハンドボール部 ◯◯市 フィールドってなに?
フィールドって何? これらをグループにしてみよう? – 1年1組とハンドボール部はグループになる? – ハンドボール部とバスケット部は グループになる?
フィールドって何? グループになるもの同士を結びつけて、 タイトルを付けてみよう 1年1組と1年2組 クラス 組 バスケット部と ハンドボール部 クラブ 部活動
フィールドとは このように、それぞれがもっている特徴 をグループにして、タイトルをつけるこ とができる これをフィールド(属性)という
レコードとは AさんやBさんは、フィールドに対して、そ れぞれの答えを持っている というように、AさんやBさんについてだけ 属性の内容を集めたものをレコードという Aさんのクラブの属性はバスケット部 Aさんのクラスは1年1組
関係データベースでは 表のかたちにして、 縦にフィールド、横にレコードを書く レコード フィールド
一枚の表で大丈夫? なんでもかんでも 1枚の表にしておいて大丈夫?
一枚の表で大丈夫 これは、1回の貸出のレシート
一枚にするとどうなるか 1回に借りる数が多いとどこまでも横に伸びる どこまで伸びるかわからない 短い人もいる 管理しにくい
複数の表で管理する データを全部1枚にすると 管理しにくくなる 複数の表で管理する事が多い 複数の表の分け方を正規化という
テーブルのデータの区別 名前で区別 同姓同名は? 住所で区別 家族は同じ住所
主キー テーブルにあるレコードを区別するため のフィールド 顧客のデータであれば、名前や住所では なく、顧客番号をつけて管理する 生徒も名前やクラスではなく、生徒番号 をつける 主キー
複数の主キー 貸出データのような場合、1回の貸出を貸出 番号にするが、1度に複数借りる場合がある 顧客番号や商品番号だけでも難しい – 同じ顧客が何度も借りる – 同じ商品も何度も貸し出される – 1人の顧客が、同じ物を再び借りる 同じ物を一度に2つは借りないとすれば、貸 出番号と商品番号で、レコードの区別をする ことができる
レンタルデータの場合の主キー