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